Skip to main content

思科ADSL/PPPoE拨号 封禁IP完整配置

# 思科ADSL/PPPoE拨号(Dialer接口)封禁 206.82.0.0/16 完整配置
## 核心原理
ADSL拨号虚拟接口 `Dialer1` 是外网接口,**`in` 方向过滤公网主动流入的流量**,用**扩展ACL(100~199)** 精准阻断源网段 `206.82.0.0/16` 所有访问内网的数据包,不影响内网主动向外访问该网段。

### 网段反掩码换算
`206.82.0.0/16` 掩码 `255.255.0.0` → 反掩码 `0.0.255.255`

## 完整可复制配置(适配你现有Dialer1拨号环境)
```ios
conf t
! 1. 创建扩展ACL,拒绝206.82.0.0/16公网主动访问内网
access-list 160 deny ip 206.82.0.0 0.0.255.255 any log
! 放行所有其他公网正常流量(ACL末尾隐含deny any,必须加permit ip any any)
access-list 160 permit ip any any

! 2. 绑定到ADSL拨号外网接口Dialer1,入站过滤in(公网进来的包)
interface Dialer1
 ip access-group 160 in
exit
end
```

## 两种需求区分(按需选择)
### 需求1:仅禁止206.82.0.0/16 主动连入你的内网(推荐上面配置)
- 效果:公网 `206.82.x.x` 无法发起TCP/UDP连接访问你的内网服务器;
- 内网设备主动去访问 `206.82.x.x` 不受限制,可正常建立连接。

### 需求2:双向完全阻断(内网也不能访问206.82.0.0/16)
额外在Dialer1出站out方向追加规则:
```ios
conf t
access-list 160 deny ip any 206.82.0.0 0.0.255.255 log
interface Dialer1
 ip access-group 160 out
end
```

## 结合你之前业务ACL150兼容方案(无需新建ACL,直接复用)
如果你已经在用 `access-list 150` 做外网入站控制,直接追加封禁规则到现有ACL头部(ACL从上到下匹配,deny要放在permit前面):
```ios
conf t
! 在原有ACL最顶部插入封禁网段
access-list 150 deny ip 206.82.0.0 0.0.255.255 any log
! 下面保留你原有所有规则不变
access-list 150 permit udp any host 218.1.210.220 range 16000 20000
access-list 150 deny udp any host 218.1.210.220 eq 5060
access-list 150 permit ip any any
! 接口绑定不变,已经绑定过Dialer1 in无需重复操作
end
```

## 校验与排错命令
1. 查看ACL匹配计数,确认206.82网段流量被拦截(匹配数字持续增长代表生效)
```ios
show access-list 160
show access-list 150
```
2. 查看Dialer接口ACL绑定状态
```ios
show run interface Dialer1
```
3. 实时查看被拦截的数据包日志(配置里加了`log`关键字)
```ios
terminal monitor
```
4. 临时清空ACL匹配计数
```ios
clear access-list counters 160
```

## 关键注意事项
1. **方向不能写反**:`ip access-group XXX in` 是过滤公网进来的流量;写out只会拦截内网主动对外访问,无法阻止外部主动扫描攻击。
2. ACL顺序优先级:deny网段规则必须放在所有permit规则**最前面**,否则会被放行规则先匹配,封禁失效。
3. `log` 参数作用:记录每一条被丢弃的数据包源目IP、协议,方便事后溯源攻击行为,生产环境建议保留。
4. ADSL拨号接口固定为Dialer1,物理ATM/以太网接口不需要绑定ACL,所有外网流量统一经过Dialer虚拟接口过滤。