什么是网络访问控制列表
在网络设备中,比如路由器或防火墙,访问控制列表(ACL)是一组规则,用来决定哪些数据包可以通过,哪些被拒绝。你可以把它想象成小区门口的保安,只允许登记过的住户和访客进入,其他人一律拦下。
比如公司内网不希望员工随意访问某些高风险网站,或者服务器只想让特定IP访问管理后台,这时候ACL就派上用场了。
ACL的基本类型
常见的ACL分为两种:标准ACL和扩展ACL。标准ACL只能根据源IP地址做判断,适合简单场景;扩展ACL能更精细地控制,可以基于源IP、目标IP、协议类型(如TCP/UDP)、端口号等条件来过滤。
举个例子:你想阻止192.168.1.100这台电脑访问外网,但其他人都可以,那就用标准ACL。如果想禁止所有人访问某个网站的443端口(HTTPS),就得用扩展ACL。
在路由器上配置ACL示例
以常见的Cisco风格命令为例,假设你使用一台企业级路由器。下面这条规则的作用是:拒绝来自192.168.1.100的所有流量。
access-list 1 deny 192.168.1.100
access-list 1 permit any这里的“1”是标准ACL的编号范围(1-99)。第一条规则拒绝指定IP,第二条允许其他所有IP通过。顺序很重要,设备会从上往下逐条匹配,一旦命中就不再继续。
如果是扩展ACL,比如要阻止内网访问百度的80端口,可以这样写:
access-list 101 deny tcp any host 110.242.68.66 eq 80
access-list 101 permit ip any any编号101属于扩展ACL的范围(100-199)。“any”代表所有源地址,“host 110.242.68.66”表示目标主机是百度IP,“eq 80”表示目标端口是80。最后一行放行其余所有IP通信。
应用到接口才生效
写好规则只是第一步,必须绑定到具体接口才能起作用。比如要把上面的标准ACL应用到路由器的GigabitEthernet0/0接口的入方向:
interface GigabitEthernet0/0
ip access-group 1 in“in”表示对进入该接口的数据包进行过滤。如果是出方向,则用“out”。
注意事项和常见问题
ACL默认末尾有一条隐式的“deny all”,也就是说如果你没写“permit any”,那么所有未明确允许的流量都会被拒绝。新手常犯的错误就是忘了加放行规则,结果整个网络断了。
另外,修改已启用的ACL不能直接删改,通常需要先移除接口上的绑定,再更新规则,最后重新应用。有些系统支持命名ACL,修改起来更方便。
实际操作前最好在测试环境验证,避免误配导致业务中断。比如远程维护时不小心把自己关在外面,那就尴尬了。