访问控制列表(二)
n 扩展访问控制列表的配置
1. 创建ACL
命令语法如下:
Router(config)# access-list access-list-number { permit | deny } protocol { source source-wildcard destination destination-wildcard } [ operator operan ]
下面是命令参数的详细说明:
? access-list-number:访问控制列表表号,对于扩展ACL来说,是100-199的一个数字。
? permit|deny:如果满足测试条件,则允许|拒绝该通信流量。
? protocol:用来指定协议类型,如IP、TCP、UDP、ICMP等。
? source、destination:源和目的,分别用来标识源地址和目的地址
? source-wildcard、destination-wildcard:反码,source-wildcard是源反码,与源地址向对应;destination-wildcard是目的反码,与目的地址对应。
? operator operan:lt(小于)、gt(大于)、eq(等于)或neq(不等于)一个端口号。
例1 允许网络192.168.1.0/24访问网络192.168.2.0/24的IP流量通过,而拒绝其他任何流量,ACL命令如下所示:
Router(config)# access-list 101 permit ip 192.168.2.0/24 0.0.0.255 192.168.2.0 0.0.0.255
Router(config)# access-list 101 deny ip any any
例2 拒绝网络192.168.1.0/24访问FTP服务器192.168.2.2/24的IP流量通过,而允许其他任何流量,ACL命令如下所述:
Router(config)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config)# access-list 101 permit ip any any
例3 禁止网络192.168.1.0/24中的主机ping通服务器192.168.2.2/24,而允许其他任何流量,ACL命令如下所述:
Router(config)# access-list 101 deny icmp 192.168.1.0 0.0.0.255 host 192.168.2.2 echo
Router(config)# access-list 101 permit ip any any
删除已建立的扩展ACL命令语法与标准ACL一样,如下所示:
Router(config)# no access-list access-list-number
扩展ACL与标准ACL一样,也不能删除单条ACL语句,只能删除整个ACL。
2. 将ACL应用于接口
与标准ACL一样,只有将ACL应用于接口,ACL才会生效。
命令语法与标准ACL一样,如下所示:
Router(config-if)# ip access-group access-list-number {in | out}
要在接口上取消ACL的应用,可以使用如下命令:
Router(config-if)# no ip access-group access-list-number {in | out}
n 扩展ACL的配置实例
实验要求:
? 拓扑图如上所示,现允许主机PC1访问Web服务器的WWW服务,而禁止主机PC1访问Web服务器的其他任何服务。
? 允许主机PC1访问网络192.168.2.0/24。
配置步骤:
1. 配置全网互通。
2. 分析在哪个接口应用扩展ACL
? 应用在入站接口还是出站接口
与标准ACL一样,应该尽量把访问控制列表应用到入站接口
? 应用在哪台路由器上
由于扩展ACL可以根据源IP地址、目的IP地址、指定协议、端口等过滤数据包,因此最好应用到路由器R1的入站接口。如果应用在路由器R2或R3的入站接口上,会导致所经过的路由器占用不必要的资源。也就是说,应该把扩展ACL应用在离源地址最近的路由器上。
3. 配置扩展ACL并应用到接口上。
命令如下:
4. 查看并验证配置
? 使用show access-list命令查看ACL配置。
? 验证配置
u 在PC1上可以访问Web服务器的WWW服务,但不能ping通Web服务器
u 在PC1上可以ping通网络192.168.2.0/24中的任一台主机
n 命令访问控制列表的配置
1. 创建ACL
命令语法如下:
Router(config)# ip access-list {standard | extended} access-list-name
参数access-list-name可以使用一个由字母、数字组合的字符串
如果是标准命令ACL,命令语法如下所述:
Router(config-std-nacl)# [Sequence-Number] {permit | deny} source [source-wildcard]
如果是扩展命名ACL,命令语法如下所述:
Router(config-std-nacl)# [Sequence-Number] { permit | deny } protocol {source source-wildcard destination destination-wildcard} [ operator operan ]
无论是配置标准命名ACL语句还是配置扩展命名ACL语句,都有一个可选参数Sequence-Number。Sequence-Number参数表明了配置的ACL语句在命令ACL中所处的位置,默认情况下,第一条为10,第二条为20,依次类推。
Sequence-Number可以很方便的将新添加的ACL语句插入到原有的ACL列表的指定位置,如果不选择Sequence-Number,参数就会添加到ACL列表末尾并且序列号加10。
例4 允许来自主机192.168.1.1/24的流量通过,而拒绝其他流量,标准命名ACL命令如下所述:
Router(config)# ip access-list standard cisco
Router(config-std-nacl)# permit host 192.168.1.1
Router(config-std-nacl)# deny any
使用show access-list命令查看ACL配置,结果如下所述:
Router# show access-list
Standard IP access-list cisco //标准访问控制列表cisco
10 permit 192.168.1.1 //配置的第1条ACL语句序列号为10
20 deny any //配置的第2条ACL语句序列号为20
此时更改需求,除允许来自主机192.168.1.1/24的流量通过外,也允许来自主机192.168.2.1/24的流量通过,可以进行如下配置:
Router(config)# ip access-list standard cisco
Router(config-std-nacl)# 15 permit host 192.168.2.1 //配置ACL语 句序列号为15
再次查看配置的ACL,结果如下:
Router# show access-list
Standard IP access-list cisco
10 permit 192.168.1.1
15 permit 192.168.2.1 //新配置的ACL语句,放到了ACL列表的指 定位置
20 deny any
注意:如果不指定序列号,则新添加的ACL被添加到列表的末尾。
例5 拒绝网络192.168.1.0/24访问FTP服务器192.168.2.2/24的流量通过,而允许其他任何流量,扩展命名ACL命令如下所述:
Router(config)# ip access-list extended cisco
Router(config-ext-nacl)# deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21
Router(config-ext-nacl)# permit ip any any
删除已建立的命令ACL
命令语法如下:
Router(config)# no ip access-list {standard | extended} access-list-name
对命名ACL来说,可以删除单条ACL语句,而不必删除整个ACL。并且,ACL语句可以有选择的插入到列表中的某个位置,使得ACL配置更加方便灵活。
如果要删除某一ACL语句,可以使用“no Sequence-Number”或“no ACL语句”两种方式。例如,在例1中删除“permit host 192.168.1.1”的语句命令如下:
Router(config)# ip access-list standard cisco
Router(config-std-nacl)# no 10
或
Router(config)# ip access-list standard cisco
Router(config-std-nacl)# no permit host 192.168.1.1
2. 将ACL应用于接口
创建命令ACL后,也必须将ACL应用于接口才会生效。
命令语法如下:
Router(config-if)# ip access-group access-list-name {in | out}
要在接口上取消命令ACL的应用,可以使用如下命令:
Router(config-if)# no ip access-group access-list-name {in | out}
n 命名ACL配置实例
实验要求:
一.公司新建了一台服务器(IP地址:192.168.2.2),出于安全方面考虑要求如下:
? 192.168.1.0/24网段中除192.168.1.1和192.168.1.3外的其余地址都不能访问服务器。
? 其他公司网段都可以访问服务器。
具体步骤:
1. 拓扑图如上所示,配置全网互通。
2. 设备配置ACL如下:
3. 使用show access-list命令查看配置的ACL信息,结果如下:
4. 验证配置。主机192.168.1.1和192.168.1.3能ping通服务器,主机192.168.1.2不能。
二.网络运行一段时间后,由于公司人员调整,需要变更访问服务器的ACL,要求如下:
? 不允许主机192.168.1.1和192.168.1.3 访问服务器
? 允许主机192.168.1.2访问服务器
具体步骤:
1. ACL变更配置如下:
2. 再次查看配置的ACL信息,结果如下:
3. 验证配置。主机192.168.1.1和192.168.1.3不能ping通服务器了,主机192.168.1.2可以ping通服务器。
注意:如果不指定序列号,则新添加的ACL被添加到列表的末尾。
n 访问控制列表的应用
公司内部网络已经建成,拓扑图如上所示。
公司内部网络规划如下:
? 根据公司现有各部门主机数量和以后增加主机的情况,为每个部门分配一个C类地址并且每个部门使用一个VLAN,便于管理。
? 分配一个C类地址作为设备的管理地址
按照上述规划配置设备,已经实现了网络连通
基于信息安全方面考虑,公司要求如下:
? 限定不同的部门能够访问的服务器,例如:财务部只能访问财务部服务器,生产部只能访问生产部服务器。
? 网络管理员可以访问所有服务器。
? 网络设备只允许网管区IP地址通过TELNET登录,并配置设备用户名为benet,密码为123456。
? 只有网络管理员才能通过远程桌面、TELNET、SSH等登录方式管理服务器。
? 要求所有部门之间不能互通,但都可以和网络管理员互通。
? 公司中有几名信息安全员,公司要求信息安全员可以访问服务器,但不能访问Internet。
? 外网只能访问特定服务器的特定服务。
网络规划如下:
? 公司全部使用192.168.0.0/16网段地址。
? 配置设备的网管地址。其中SW3L为192.168.0.1/24,SW1为192.168.0.2/24,SW2为192.168.0.3/24,R1为1.1.1.1/32。
? PC1为网络管理区主机,其IP地址为192.168.2.2/24,网关为192.168.2.1/24,属于VLAN 2;PC2为财务部主机,IP地址为192.168.3.2/24,网关为192.168.3.1/24,属于VLAN 3;PC3为信息安全员主机,IP地址为192.168.4.2/24,网关为192.168.4.1/24,属于VLAN 4。
? 在SW3L交换机VLAN 2接口的IP地址为192.168.2.1/24,VLAN 3接口的IP地址为192.168.3.1/24,VLAN 4接口的IP地址为192.168.4.1/24,VLAN 100接口的IP地址为192.168.100.1/24。
? 服务器IP地址为192.168.100.2/24,网关地址为192.168.100.1/24,属于VLAN 100。
? SW3L和R1的互联地址为10.0.0.0/30。
? 配置R1路由器的Loopback接口地址的为123.0.1.1/24,模拟外网地址。
按照公司网络规划和要求配置设备。
具体配置:
1. 配置设备,实现全网互通
R1配置如下:
R1(config)# int f0/0
R1(config-if)# ip address 10.0.0.1 255.255.255.252
R1(config-if)# no sh
R1(config)# int loopback 0
R1(config-if)# ip address 123.0.1.1 255.255.255.0
R1(config)# ip route 192.168.0.0 255.255.0.0 10.0.0.2
R1(config)# int loopback 1
R1(config-if)# ip address 1.1.1.1 255.255.255.255
SW3L配置信息如下:
SW3L(config)# vlan 2
SW3L(config)# vlan 3
SW3L(config)# vlan 4
SW3L(config)# vlan 100
SW3L(config)# int f0/1
SW3L(config-if)# no switchport
SW3L(config-if)# ip address 10.0.0.2 255.255.255.252
SW3L(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.1
SW3L(config)# int range int f0/13 -14
SW3L(config-if-range)# switchport trunk encapsulation dot1q
SW3L(config-if-range)# seitchport mode trunk
SW3L(config)# int vlan 2
SW3L(config-if)# ip address 192.168.2.1 255.255.255.0
SW3L(config-if)# no sh
SW3L(config)# int vlan 3
SW3L(config-if)# ip address 192.168.3.1 255.255.255.0
SW3L(config-if)# no sh
SW3L(config)# int vlan 4
SW3L(config-if)# ip address 192.168.4.1 255.255.255.0
SW3L(config-if)# no sh
SW3L(config)# int vlan 100
SW3L(config-if)# ip address 192.168.100.1 255.255.255.0
SW3L(config-if)# no sh
SW3L(config)# ip routing
SW3L(config)# int vlan 1
SW3L(config-if)# ip address 192.168.0.1 255.255.255.0
SW3L(config-if)# no sh
SW1配置信息如下:
SW1(config)# vlan 2
SW1(config)# vlan 3
SW1(config)# vlan 4
SW1(config)# int f0/14
SW1(config-if)# switchport mode trunk
SW1(config)#int f0/1
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 2
SW1(config)#int f0/2
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 3
SW1(config)#int f0/3
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 4
SW1(config)# int vlan 1
SW1(config-if)# ip address 192.168.0.2 255.255.255.0
SW1(config-if)# no sh
SW1(config)# ip default-gateway 192.168.0.1
SW2配置信息如下:
SW3(config)# vlan 100
SW3(config-vlan)# exit
SW3(config)#int f0/14
SW3(config-if)#switchport mode trunk
SW3(config)# int f0/1
SW3(config-if)# switchport mode access
SW3(config-if)# switchport access vlan 100
SW3(config)#int vlan 1
SW3(config-if)# ip address 192.168.0.3 255.255.255.0
SW3(config-if)# no sh
SW3(config)# ip default-gateway 192.168.0.1
2. 配置ACL实现公司要求
配置实现网络设备只允许网管去IP地址可以通过TELNET登录,并配置设备用户名为benet,密码为123456,R1的配置如下:
R1(config)# access-list 1 permit 192.168.2.0 0.0.0.255
R1(config)# username benet password 123456
R1(config)# line vty 0 4
R1(config-line)# login local
R1(config-line)# access-class 1 in
R1(config-line)# exit
SW3L、SW1、SW2的配置与R1相同
公司其他要求的配置命令如下:
//ACL 100 表示内网主机都可以访问服务器,但是只有网络管理员才能通过TELNET、SSH和远程桌面登录服务器,外网只能访问服务器的80端口
SW3L(config)#access-list 100 permit ip 192.168.2.0 0.0.0.255 host 192.168.100.2
//上述一条ACL表示:允许网络管理员网段192.168.2.0/24访问服务器
SW3L(config)#access-list 100 deny tcp 192.168.0.0 0.0.255.255 host 192.168.100.2 eq telnet
SW3L(config)#access-list 100 deny tcp 192.168.0.0 0.0.255.255 host 192.168.100.2 eq 22
SW3L(config)#access-list 100 deny tcp 192.168.0.0 0.0.255.255 host 192.168.100.2 eq 3389
//上述四条ACL表示:除192.168.2.0/24网段外其他所有内网地址均不能通过TELNET、SSH和远程桌面登录服务器
SW3L(config)#access-list 100 permit ip 192.168.0.0 0.0.255.255 host 192.168.100.2
SW3L(config)#access-list 100 permit tcp any host 192.168.100.2 eq 80
//上述两条ACL表示:允许内网主机访问服务器,允许外网主机访问服务器的80端口
SW3L(config)#access-list 100 deny ip any any
SW3L(config)# int vlan 100
SW3L(config-if)# ipaccess-group 100 out
SW3L(config-if)# exit
//ACL 101表示192.168.3.0/24网段主机可以访问服务器,可以访问网络管理员网段,但不能访问其他部门网段,也不能访问外网
SW3L(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 host 192.168.100.2
SW3L(config)#access-list 101 permit ip 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255
SW3L(config)#access-list 101 deny ip any any
SW3L(config)# int vlan 3
SW3L(config-if)# ip access-group 101 in
SW3L(config-if)# exit
//ACL 102表示192.168.4.0/24网段主机可以访问服务器,可以访问网络管理员网段,但不能访问其他部门网段,可以访问外网(这里用于测试目的)
SW3L(config)#access-list 102 permit ip 192.168.4.0 0.0.0.255 host 192.168.100.2
SW3L(config)#access-list 102 permit ip 192.168.4.0 0.0.0.255 192.168.2.0 0.0.0.255
SW3L(config)#access-list 102 deny ip 192.168.4.0 0.0.0.255 192.168.0.0 0.0.255.255
SW3L(config)#access-list 102 permit ip any any
SW3L(config)# int vlan 4
SW3L(config-if)# ip access-group 102 in
SW3L(config-if)# exit