2023年12月15日发(作者:)

1.1路由器的几个操作模式

Router>

//用户模式

Router>enable

//用户模式敲入enable进入特权模式

Router#configure terminal

//特权模式敲入configure terminal进入全局配置模式

Router(config)#interface ethernet 0

//配置模式敲入interface+接口类型+接口编号,进入接口配置模式

(如:interface serial 0

或是interface serial 0/1 ,interface fast1/1,接口编号是多少具体要看是哪个型号的设备)

Router (config)#interface range fa 0/2 – 5

//利用range可以一次操作多个端口

Router(config-if)#exit

//从接口模式退出到配置模式

Router(config)#exit

//从配置模式退出到特权模式

注意:任何时候按Ctrl-z或是end都会退出到特权模式

1.2命名主机名

Router(config)#hostname

主机名

//路由默认主机名为Router,交换机为switch

如:

Router(config)# hostname Wisdom

//设置主机名是Wisdom

Wisdom(config)#

1.3给路由器设置时间

Wisdom(config)#clock set 23:46:50 sep 4 2006

Wisdom#show clock

//用show clock

命令查看时间

1.8.利用TELNET来管理网络

首先通CONSOLE口控制R1,控制R1后通过TELNET到R2,R3,对R2,R3进行管理.

在R1上实验:

R1#telnet 12.1.1.2

//从R1 TELNET到R2

R2>

x

切换回R1

R1#telnet 13.1.1.3

//从R1 TELNET到R3

R3>

x 切换回R1

R1#show sessions

//在R1上查看打开了多少个TELNET的会话

Conn Host Address Byte Idle Conn Name

1 12.1.1.2 12.1.1.2 0 0 12.1.1.2

* 2 13.1.1.3 13.1.1.3 0 0 13.1.1.3

R1#resume 2

//重新连接到R3

R3>

x 切换回R1

R1#

R1#disconnect 1

//从R1是主动断开到R2的连接(断开一个TELNET的会话)

在R2上实验:

R2#show users

//在R2上查看有谁登录到路由器

Line User Host(s) Idle Location

* 0 con 0 idle 00:00:00

2 vty 0 idle 00:01:52 12.1.1.1

R2#clear line 2

//发现有人TELNET过来,把他清除

R2#show users

Line User Host(s) Idle Location

* 0 con 0 idle 00:00:00

注意:

Show session和show user的区别

Disconnect 和Clear line的区别

Ctrl+shift+6 x 和resume

1.9 PING、TraceRoute、Debug、Syslog

a.使用PING命令

R1#ping 12.1.1.2

如果ping的结果是!!!!!则表明网络正常.

如果ping的结果是…..则表明网络不通.

如果ping的结果是U.U.U则表明下一跳不可达.

b.使用traceroute命令, 在网络层上追踪源到目的地址所经过的路由器.(或是数据包经过的路径)

例:

R2#traceroute 33.1.1.3

Tracing the route to 33.1.1.3

1 12.1.1.1 4 msec 4 msec 4 msec

2 13.1.1.3 4 msec 4 msec *

//从以上可以看出从R2

到达33.1.1.3经过了12.1.1.1和13.1.1.3两个路由器

例:

………………………………………………………………………………………………………………….

3.3使用串口管理交换机。

(1)连接交换机和PC

把串口电缆的一端插在交换机背面的Console口上,另一端插在普通PC的串口上,此时要记住电缆插在COM1还是COM2口上,以后设置会用得着。

(2)设置“超级终端”

接通交换机和电脑电源并开机。

如果没有“超级终端”服务可以在“添加/删除程序”中的“通讯”组内添加。

第一次运行“超级终端”时,系统默认为通过Modem连接,会要求用户输入连接的区号,随便输入一个即可。

如果你的电脑中没有安装Modem,则会提示“在连接之前必须安装调制解调器,现在就安装吗?”,这里点击[否]按钮。

程序运行之后会提示建立一个新的连接名称,我们在这里输入“Switch”。点击[确定]按钮后,会出现一个窗口,要求用户选择连接时使用哪一个端口。这里一定要注意,应该选择你连接的PC串口的序号。如果不太清楚,可以用“串口1”和“串口2”分别试试。

串口号后,点击[确定]按钮,会出现一个COM口属性的窗口,里面有波特率、数据位、奇偶检、停止位、流量控制等参数设置。这么多参数,如何设置呢?其实不要紧,只要点击一下[还原默认值]按钮,就会调用最保守的参数设置。默认参数在大多数的连接状况下都能适用,这样用户就不必再花费时间研究这些参数了。

设定好连接参数后,程序就会自动执行连接交换机的命令。咦!界面怎么一片空白?不要急,按一下回车键,交换机管理主界面的庐山真面目终于出现了。

从现在开始,你就得忘记鼠标的存在,所有的控制都要通过键盘来实现。不过操作非常简单:用回车键执行命令,用“Tab”键或箭头键在选项中移动,用空格键或键盘字母键、数字键改变某项参数。登录操作系统之前,用户需要输入管理员用户名和密码。大多数设备管理员的默认用户名都以“Admin”、“Super”等有意义的英文单词命名。有的交换机有初始口令,有的则没有,只要仔细查看交换机使用手册就可以了解这些信息。

1.11路由器交换机几条常用的命令:8888

Wisdom(config)#line console 0

Wisdom(config-line)#exec-timeout 0 0

//阻止会话退出,0分0秒表示永远不超时,等同于no exec-timeout

Wisdom (config-line)#logging synchronous

//使光标还原到原来的位置,重新显示被覆盖的命令

SW2950(config-if)#no shutdown

//启用接口

Router#show running-config

//查看正在运行的内存RAM中的配置文件,可以得到每个端口的配置信息

Router#show startup-config

//查看保存的配置(存放在NVRAM中,掉电不丢)

//配置交换机的IP地址

wg_sw_2950(config-if)#ip address {ip_address} {mask}

如:配置交换机的三层管理地址

[wg_sw_2950(config)#interface vlan 1

wg_sw_2950(config-if)#ip address 10.5.5.11 255.255.255.0

注:每个Vlan所配的ip,都可用于远程访问管理

//显示交换机的Ip地址

wg_sw_2950#show interface vlan 1

Vlan1 is up, line protocol is up

Hardware is Cat5k Virtual Ethernet, address is 0010.f6a9.9800 (bia 0010.f6a9.9800)

Internet address is 10.5.5.11/24

. . .

show ip interface brief

//查看接口基本状态,也可以看到交换机的IP地址

//配置交换机的缺省路由器地址(即缺省网关)

wg_sw_2950(config)#ip default-gateway Ip address

例如:ip default-gateway 10.5.5.3

//交换机端口的双工状态

wg_sw_2950(config)#interface fa0/1

wg_sw_2950(config-if)#duplex auto | full | half} //自适应/全双工/半双工

//显示端口状况

SW1#show interfaces [接口类型

模块号/接口号]

如: show interface serical 1

Show fa0/1

注:路由器端口或模块的编号从0开始,而大多数交换机从1开始

//设置交换机端口的访问模式(三种access /dynamic / trunk)

SW2950(config-if)#switchport mode access / trunk / dynamic auto

如:SW2950(config)#int fastEthernet 0/1

SW2950(config-if)#switchport mode access //设置FA0/1为ACCESS模式

SW2950(config-if)#switchport mode trunk

//设置FA0/1为TRUNK模式

SW2950(config-if)#switchport mode dynamic auto

//设置FA0/1为自动直协商模式

(一般交换机与交换机相连接的端口要设置为trunk模式)如下图:

SW1(config-if)#switchport mode trunk //设置FA0/24为TRUNK模式

SW2(config-if)#switchport mode trunk //设置FA0/24为TRUNK模式

//显示trunk端口

switch_I#show interfaces trunk

Port Mode Encapsulation Status Native vlan

Gi0/4 on 802.1q trunking 1

Port Vlans allowed on trunk

Gi0/4 1-4094

Port Vlans allowed and active in management domain

Gi0/4 1-6

Port Vlans in spanning tree forwarding state and not pruned

Gi0/4 1-6

1.7路由器,交换机密码的设置

A.enable密码

enable的密码就是从用户模式到特权模式的密码,enable密码有两种,一种是加密的,一种是不加密码的

Wisdom(config)#enable password

密码

//不加密

Wisdom(config)#enable secret

密码

//加密

//如果enable的两个密码同时设置,只是secret生效.

Wisdom#show run

Current configuration:

enable secret 5 $1$LNtZ$XFAQft5YyTsrXFVAXNp0Y/

//secret密码会加密

enable password cisco //password密码显示为明文,容易被破解.

对enable password进行手工加密

Wisdom(config)#service password-encryption

sw(config)#no enable secret //清除enable密码

sw(config)#no enable password //清除enable密码

B.设置交换机路由器的console 口密码

Wisdom(config)#line console 0

Wisdom(config-line)#login

//启用密码,

no login是不启用密码

Wisdom(config-line)#password cisco //设置的密码为cisco

Wisdom(config-line)#end

//清除console口密码

sw(config)#line console 0

sw(config-line)#no pass cisco

C.设置路由器交换机的vty 密码(即远程登陆telnet的密码)

Wisdom(config)#line vty 0 4

//04的意思是0到4,5个人可以同时登录

Wisdom(config-line)#login

//启用密码,no login

是不启用密码

Wisdom(config-line)#password cisco

//设置的密码为cisco

888

//配置交换机的端口安全

只允许主机A的MAC地址通过FAS0/1端口与其它主机通信.

sw2950(config)#int fas0/1

sw2950(config-if)#switchport mode access

//access模式

sw2950(config-if)#switchport port-security

//启用端口安全

sw2950(config-if)# switchport port-security maximum 1

//设置端口允许通过的MAC数,范围是1-132

sw2950(config-if)# switchport port-security mac-address 0030.94e6.04c2

//设置允许通过的具体MAC地址

sw2950(config-if)# switchport port-security violation shutdown/protect/restrict

//设置当不是所允许的MAC地址到达端口时,交换机所采取的动作: shutdown /protect /restrict

sw2950#show port-security

//显示当前的端口安全状况

二、VLAN配置相关

2.1实现跨交换机的Vlan (Vlan间不能通信)

配置步骤:

1.配置Trunk //交换机与交换机相连接的端口要设置为trunk模式

2.配置VTP DOMAIN

//配置VTP-VTP技术使得在大型的网络里布置多个VLAN变得简单

3.配置VTP MODE

如跨多台交换机的vlan

4.配置VLAN

5.将端口加入VLAN

6.检查

实例

命令:

配置SW1:

SW1(config)#interface fastEthernet 0/1

SW1(config-if)#switchport mode trunk

//配置fa0/1端口为Trunk端口

注://如果是3550或3560端口先要封装dot1q,因为默认为auto时不可以直接设置端口的trunk模式

SW2(config-if)#switchport trunk encapsulation dot1q

switchport mode trunk

SW1(config)#vtp domain wisdom

//配置Vtp域名为wisdom

SW1(config)#vtp mode server

//配置交换机的Vtp模式

SW1(config)#vtp password cisco

//配置vtp密码

SW1(config)#vtp pruning

//配置VTP的修剪,只要在SERVER端配置就行.

SW1#show vtp status

//查看当前的Vtp状态

SW1(config)#vlan 2 [name vlan名]

//创建VLAN2 VLAN3 VLAN4 VLAN5

或SW3560(config)#vlan 2

SW3560(config-vlan)#name wisdom

SW1#show vlan

//在交换机检查已创建的VLAN

SW1(config)#int fa0/1

//把端口fa0/1加入vlan2

SW1(config-if)#switchport mode access

SW1(config-if)#switchport access vlan 2

SW1(config)#interface range fa 0/2 – 5

//把端口fa0/2-fa0/5加入到VLAN3

SW1 (config-if-range)#switchport mode access

SW1 (config-if-range)#switchport access vlan 3

配置SW2(Cisco 3550):

SW2(config)#int fastEthernet 0/1

SW2(config-if)#switchport trunk encapsulation dot1q

SW2(config-if)#switchport mode trunk

//配置fa0/1端口为Trunk端口

SW2(config)#vtp domain wisdom

//配置Vtp域名为wisdom

SW2(config)#vtp mode client

//配置交换机的Vtp模式

SW2(config)#vtp password cisco

//配置vtp密码

//SW2不用配置VLAN,它会同步SW1的VLAN信息

SW1#show vlan

//查看同步有没有成功

2.2三层交换机实现VLAN之间访问(即Vlan间路由)

使用三层交换机来实现vlan间路由转发速度较快。通过在三层交换上配置相应的vlan地址(即网关地址),就能让不同vlan的用户通过三层交换的中继链路实现快速的互访。

配置步骤:

//启用三层交换机的路由功能

SW-3L(config)#ip routing

//为每个Vlan启用三层接口(即配置每个VLAN的IP地址)

SW-3L (config)#interface vlan 1

//配置vlan 1的三层ip地址

SW-3L (config-if)#ip address 192.168.1.1 255.255.255.0

SW-3L (config-if)#no shut

……..

//每个VLAN内的主机网关分别指向各自的Vlan IP址,本例中VLAN1,VLAN2,VLAN3的主机的网关分别指向192.168.1.1、192.168.2.1、192.168.3.1

2.3上Internet交换机所需配置

//配置静态路由

3550(config)#ip route 0.0.0.0 0.0.0.0

软路由IP

3550#show ip route

……

Gateway of last resort is to network 0.0.0.0

C 192.168.30.0 is directly connected, FastEthernet0/10

S* 0.0.0.0 [1/0] via 192.168.30.2

//30网段直连端口0

//静态路由下一跳地址

3.1交换机密码恢复(以2950为例)888

步骤:

a.重起交换机:按MODE键进入到switch:模式

: flash_init

: load_helper

: dir

List of filesystems currently registered:

flash[0]: (read-write)

xmodem[1]: (read-only)

null[2]: (read-write)

bs[3]: (read-only)

: dir flash:

Directory of flash:/

2 -rwx 736

3 -rwx 3086336

5 -rwx 1558 //交换机启动时应用的配置

6 -rwx 5

4650496 bytes available (3090944 bytes used)

f. switch: rename flash: flash:

//重命名

g. switch: reset

//重起交换机

重起交换机后由于交换机不会再应用配置文件,因为刚才已把配置文件的名字更改。交换机会进入到配置的对话模式。如下:

--- System Configuration Dialog ---

Would you like to enter the initial configuration dialog? [yes/no]: n

h. Switch#dir

Directory of flash:/

2 -rwx 736 Mar 01 1993 00:19:14 +00:00

3 -rwx 3086336 Jan 01 1970 01:12:26 +00:00

5 -rwx 1558 Mar 01 1993 02:36:44 +00:00

6 -rwx 5 Mar 01 1993 02:36:44 +00:00

7741440 bytes total (4650496 bytes free)

i. Switch#copy running-config

j. sw#config t

sw(config)#line console 0

sw(config-line)#no pass cisco

//清除console口密码

sw(config)#no enable secret //清除enable密码

sw(config)#no enable password //清除enable密码

sw#write

//重新保存

以上为密码删除,很多情况下可以不删除,就直接更改就OK了。

4.3 Cisco Ios 及配置文件的备份还原

备份还原主要有两种方式:利用文件系统以及利用底层通信协议

1.正常情况下的备份还原:

正常情况下利用文件系统进行备份还原。具体又分为:ftp、rcp、tftp三种方式。

步骤:

、rcp、tftp三种协议均需要一台network server。以下用tftp为例。

架设Tftp Server可用软件Cisco TFTP Server

2.在路由器/交换机上配置接口ip地址,

3.并在特权模式下使用相应的命令进行备份还原

//显示flash中的文件

Router#dir

//将flash中的文件进行改名

Router#rename

源文件名

新文件名

如:Router#rename config_

//拷贝flash中的文件到flash中

Router#copy

源文件名

新文件名

如:Router#copy config_

//从tftp服务器拷贝文件到flash中

Router#copy tftp:

新文件名

如:Router#copy tftp:

//删除flash中的文件

Router#delete

文件名

如:Router#delete config_

//将IOS操作系统备份到tftp服务器

Router#copy flash: tftp

//从tftp服务器还原IOS操作系统

Router#copy tftp flash:

………………………………………………………………………………………

//把正在运行的配置文件上传到Tftp Server上进行备份

Copy running-config tftp

//从Tftp服务器上拷贝配置文件到Ram中

Copy tftp running-config

………………………………………………………………………………………

//把NVRAM备份到TFTPSERVER

copy startup-config tftp:

//把Tftp服务器上的配置文件拷贝到Nvram中

Copy tftp startup-config

………………………………………………………………………………………

//把存盘的配置文件(即Nvram中的配置文件)调入RAM中

Configure startup-config running-config

//把RAM中的配置文件写入Nvram,即存盘

Copy running-config startup-config

………………………………………………………………………………………

删除Nvram中存盘的配置文件

Erase startup-config

//清除NVRAM(注:交换机和路由器所用命令一样),要重起路由器或是交换机,配置才会丢失.

4.3 ACL-访问控制列表

1.标准ACL语法

access-list [list number][permit|deny][host/any][sourceaddress][wildcard-mask][log]

2.用标准ACL书写

允许从198.78.46.8来的报文,标准ACL可以是下面任一条:

access-list 1 permit

host 198.78.46.8

access-list 1 permit 198.78.46.8 0.0.0.0

拒绝源地址为198.78.46.8的报文,并且要允许从其他源地址来的报文:

access-list 1 deny host 198.78.46.8

access-list 1 permit any

允许192.168.3.0网络上的主机进行访问:

Switch#access-list 1 permit 192.168.3.0 0.0.0.255

禁止172.10.0.0网络上的主机访问:

Switch#access-list 2 deny 172.10.0.0 0.0.255.255

允许所有IP的访问:

Switch#access-list 1 permit 0.0.0.0 255.255.255.255

或Switch#access-list 1 permit any

禁止192.168.1.33主机的通信:

Switch#access-list 3 deny 192.168.1.33 0.0.0.0

或Switch#access-list 3 deny host 192.168.1.33

3. 扩展ACL语法

Access-list listnumber permit/deny protocol sourceaddress sourcewildcard [关系]

[source port] destinationaddress destinationwildcard [关系] [destination port] log

option

4用扩展ACL书写以下要求

允许来自任何主机的TCP报文到达特定主机198.78.46.8的smtp服务端口(25)

access-list 101 permit tcp any host 198.78.46.8 eq smtp

允许来自任何主机的TCP报文到达指定的主机198.78.46.3的www或http服务端口(80)

access-list 101 permit tcp any host 198.78.46.3 eq www

拒绝交换机所连的子网192.168.3.0 ping通另一子网192.168.4.0:

Switch#access-list 100 deny icmp 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

阻止子网192.168.5.0

访问Internet(www服务)而允许其它子网访问:

Switch#access-list 101 deny tcp 192.168.5.0 0.0.0.255 any www

或 Switch#access-list 101 deny tcp 192.168.5.0 0.0.0.255 any 80

允许从192.168.6.0通过交换机发送E-mail,而拒绝所有其它来源的通信:

Switch#access-list 101 permit tcp 192.168.6.0 0.0.0.255 any smtp

5.如何找到各种应用所使用的端口?

在操作系统中的services文件中找

对于在services文件中找不到端口的应用,可以在运行程序的前后,运行netstat –ap来找出应用所使用的端口号。

利用防火墙来找

6.命名ACL语法

ip access-list stardard/extend

访问列表名

//注:ip access-list

是关键字 extend

表明是扩展的ACL(对应地,standard表示标准的ACL)

server- protect是access-list的名字,相当于编号ACL中的编号字段

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.20 eq www

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.22 eq ftp

7.修改命名ACL中的某条语句

ip access-list extend server- protect //首先进入相应的命名Acl

no permit tcp 10.0.0.0 0.0.255.255 host 10.1.2.21 eq 1521 //取消错误的语句

permit tcp 10.1.0.0 0.0.0.255 host 10.1.2.21 eq 1521 //加上正确的语句

exit //退出

8.基于时间的访问控制列表的作用?

使访问控制列表在所定义的时间范围内起作用

基于时间的访`问控制列表的使用方法

time-range TR1

//定义一个时间范围 time-range

时间范围名

absolute start 00:00 1 June 2003 end 00:00 3 June 2003

//指定时间

periodic weekdays start 9:00 18:00

exit

ip access-list extend internet_limit

deny tcp 10.1.0.0 0.0.255.255 any eq 80 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 443 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 1863 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

deny udp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

9.基于端口的ACL访问控制

语法:

access-list port

如:对交换机的端口4,拒绝来自192.168.3.0网段上的信息,配置如下:

Switch# acess-list 1 deny 192.168.3.0 0.0.0.255

Switch# acess-list port 4 1

//

把端口4

加入到规则1中。

10.ACL其它命令

a.显示ACL列表

Switch# show access-list [访问列表号]

注意:

对屏蔽码有为1(无关)的位时,show access-list

会将访问列表项IP地址部分对应的位设置为二进制0来显示。

如:access-list 101 permit ip 192.78.46.20 0.0.0.255 host 205.131.172.1

Show access-list 101

的显示结果为:

Permit ip 198.78.46.0 0.0.0.255 host 205.131.175.1

b.取消已建立的访问控制列表:

Switch# no access-list access-list-number

如:access-list 1 permit host 10.1.6.66

access-list 1 deny any

int vlan 1

ip access-group 1 out

//在vlan1出口方向应用access-list 1

下面是取消access-list 1

int vlan 1

no ip access-group 1 out //在取消或修改一个ACL前,必须先在它所应用的接口上把应用给no

掉,否则会导致相当严重的后果。

exit

no access-list 1

//对于非命名的ACL,可以只需要这一句就可以全部取消。

11. 三、ACL配置实例

1. E1:该实例在路由器上进行

第1部分:配置和引用标准IP访问控制列表

R2#conf t

允许除30.1.1.0/24网段外的所有网段数据流

R2(config)#access-list 1 deny 30.1.1.0 0.0.0.255

R2(config)#access-list 1 permit any

进入要应用访问控制列表的接口 serial 0

R2(config)#int s0

使用访问控制列表1,在报文进入serial 0接口时进行过滤,达到过滤来自30.1.1.0/24网段的数据包,允许其他所有网段的数据包通过的目的。

R2(config-if)#ip access-group 1 in

查看访问控制列表1

R2#sh ip access-list 1

Standard IP access list 1

deny 30.1.1.0,wukdcard buts 0.0.0.255 check=2

permit any(2 matches) //有2个数据包匹配此行条件,被S0接口接收。

R2#sh ip int s0

Serial0 is up, line protocol is up

Outgoing access list is not set

//在离开路由器的方向没有引用访问控制列表

Inbound access list is 1

//在进入路由器的方向引用了访问控制列表1

...

R2#clear access-list counters

//清空访问控制列表的计数器,

就是把访问控制列表各行的匹配数清空。

第2部分:配置和引用扩展IP访问控制列表

拒绝从20.1.1.0/24网段发往10.1.1.0/24网段的ICMP Echo包,即希望从20.1.1.0/24网段到10.1.1.0/24网段的ping失败。

R2(config)#access-list 101 deny icmp 20.1.1.0 0.0.0.255 10.1.1.0 0.0.0.255 echo

R2(config)#access-list 101 permit ip any any

R2(config)#int e0

R2(config-if)#ip access-g 101 out

R2(config-if)#int s0

R2(config-if)#no ip access-g 1 in

R2#sh ip access-list 101

Extended IP access list 101

deny icmp 20.1.1.0 0.0.0.255 10.1.1.0.0.0.0.255 echo(8 matches)

permit ip any any (40 matches)

2.基于时间的访问控制列表配置实例

配置任务

只容许172.16.3.0网段的用户在周末访问172.16.4.13上的FTP资源,工作

时间不能下载该FTP资源。

路由器配置命令:

定义时间段名称为softer

time-range softer

定义具体时间范围,为每周周末00:00-23:59

periodic weekend 00:00 to 23:59

定义ACL,禁止在时间段softer内访问172.16.4.13的FTP服务。

access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer

定义ACL,容许其他时间段和其他条件下的正常访问。

access-list 101 permit ip any any

进入E1端口

int e1

在数据包从e1接口出去时引用访问列表1

ip access-group 101 out

3.反向访问控制列表配置防病毒实例

网络结构:

路由器连接了二个网段,分别为172.16.4.0/24, 172.16.3.0/24。在172.16.4.0/24网段中的计算机都是服务器

配置任务:

禁止病毒从172.16.3.0/24这个网段传播到172.16.4.0/24这个服务器网段。

路由器配置命令:

允许所有来自172.16.3.0网段的计算机访问172.16.4.0网段中的计算机,前提是TCP连接已经建立了的。当TCP连接没有建立的话是不容许172.16.3.0访问172.16.4.0的。

access-list 101 permit tcp 172.16.3.0 0.0.0.255 172.16.4.0 0.0.0.255 established

进入E1端口

int e 1

在进入数据包离开e1端口时,引用扩展访问列表101

ip access-group 101 out

设置完毕后病毒就不会轻易的从172.16.3.0传播到172.16.4.0的服务器区了。因为病毒要想传播都是主动进行TCP连接的,由于路由器上采用反向ACL禁止了172.16.3.0网段的TCP主动连接,因此病毒无法顺利传播。

小提示:检验反向ACL是否顺利配置的一个简单方法就是拿172.16.4.0里的一台服务器PING在172.16.3.0中的计算机,如果可以PING通的话再用172.16.3.0那台计算机PING172.16.4.0的服务器,PING不通则说明ACL配置成功。

通过上文配置的反向ACL会出现一个问题,那就是172.16.3.0的计算机不能访问服务器的服务了,假如图中172.16.4.13提供了WWW服务的话也不能正常访问。解决的方法是在ESTABLISHED那句前头再添加一个扩展ACL规则,例如:access-list 101 permit tcp 172.16.3.0 0.0.0.255 172.16.4.13 0.0.0.0 eq

www

这样根据“最靠近受控对象原则”即在检查ACL规则时是采用自上而下在ACL中一条条检测的,只要发现符合条件了就立刻转发,而不继续检测下面的ACL语句。172.16.3.0的计算机就可以正常访问该服务器的WWW服务了,而下面的ESTABLISHED防病毒命令还可以正常生效。

4.用访问控制列表实现网络单向访问

做网络的单向访问其实实现的是防火墙的基本功能:我是内网,你是外网,我能访问你,但你不能访问我。

单向访问控制需要用到一种特殊的ACL,叫Reflexive ACL。Reflexive ACL的配置分为两个部分,一部分是outbound的配置,outbound部分决定了出去的哪些内网网络流量是需要被单向访问的;一部分是inbound的配置,inbound部分决定了这些流量在返回后能被正确的识别并送给内网发起连接的PC机。

Reflexive ACL中只能用named方式的ACL,不能用numbered方式的ACL。

配置任务:

使内网的PC机能ping通外网RouterB的S1口,但RouterB却ping不进内网。

RouterA的E0口所连网段为内网段,RouterA S0所连的网段为外网段

路由器配置命令:

outbound的部分:

ip access-list extended outbound_filter

permit icmp any any reflect icmp_traffic

注:reflect icmp_traffic,意思是这条ACE作为单向流量来处理,并且给了一个名称叫icmp_traffic,icmp_traffic在inbound部分被引用。

permit ip any any

注:这条并不是必要的,加在这里是为了另一个测试,下面会说明。

inbound的部分:

ip access-list extended inbound_filter

evaluate icmp_traffic

注:

对上述outbound配置中的icmp_traffic进行了引用,也就是说,它要检查从外网进来的流量,如果这个流量确实是从内网发起的对外访问的返回流量,那么允许这个流量进来。

deny ip any any log

注:虽然这句也是不必配的,因为是默认的deny ip any any,但我加了log来对上面outbound部分的permit

ip any any进行测试。

interface Serial0

//进入serial0接口

ip address 192.1.1.1 255.255.255.0

ip access-group inbound_filter in

ip access-group outbound_filter out

测试:在10.1.1.2上ping 192.1.1.2,通了,RouterB上则ping不通10.1.1.2。

问题:路由器既然已经deny了外网进来的所有流量,那么它是怎么允许内网出去的返回流量进来呢?

答:它是通过创建动态生成的ACL来允许返回流量的,下面看看show access-list

的结果:

……

Reflexive IP access list icmp_traffic

permit icmp host 192.1.1.2 host 10.1.1.2 (24 matches) (time left 196)

……

这些动态ACL可通过TCP的FIN/RST包来动态自动消除,对ICMP这样stateless的包来说,是通过内置的timer来消除的,这点可通过上述show access-list结果中的(time left 196)来核实。

测试:

在10.1.1.2上发起一个到192.1.1.2的TELNET连接,这个流量到了S0口后由ACL

outbound_filter中的permit ip any any检测后放行。到了RouterB后,RouterB进行处理然后返回流量,这个流量到了S0口后由inbound_filter检测,因为evaluate

icmp_traffic中并没有包含对TCP类型流量的检测,这个包由deny ip any any log一句处理后丢弃并生成日志:

00:24:28: %SEC-6-IPACCESSLOGP: list inbound_filter denied tcp 192.1.1.2(23) ->

10.1.1.2(1483), 1 packet

问题:

如果Reflexive ACL是做在内网口上,而不是在外网口上,该怎么写呢?

题外话:

在最开始想到单向访问问题时,我(也包括其它一些我的同事)自然的就这么想:那我在E0口上允许PC的流量进来,然后再在S0口上禁止RouterB的流量进来不就行了?看上去好像没什么问题,但一试就知道其实是不行的。为什么不行呢,因为很多人都忽略了这么一个问题:即绝大多数的网络流量都是有去有回的,上面的方法只解决了去的问题,但这个流量在到达RouterB后,RouterB还需要返回这个流量给PC,这个返回的流量到了RouterA的S0口,但上面的方法却在S0口上禁止了RouterB的流量进来,回来的流量被挡住了,通讯失败。

配置全例

网络环境:

公司建设了一个企业网,并通过一台路由器接入到互联网。在网络核心使用一台基于IOS的多层交换机,所有的二层交换机也为可管理的基于IOS的交换机,在公司内部使用了VLAN技术,按照功能的不同分为了6个VLAN。分别是网络设备与网管(VLAN1,10.1.1.0/24)、内部服务器(VLAN2)、Internet连接(VLAN3)、财务部(VLAN4)、市场部(VLAN5)、研发部门(VLAN6),出口路由器上Fa0/0接公司内部网,通过s0/0连接到Internet。每个网段的三层设备(也就是客户机上的缺省网关)地址都从高位向下分配,所有的其它节点地址均从低位向上分配。

配置任务:

a. 禁止普通用户telnet到网络设备,网管PC 10.1.6.66除外

方案1:

分析:在A公司的网络中,出口路由器在vlan3中,其它所有的网络设备是放在Vlan1中,那个只需要在到VLAN 1和VLAN3的接口上配置只允许源地址为10.1.6.66的包通过,其它的包通通过滤掉

命令:

access-list 101 permit tcp host 10.1.6.66 any eq telnet

access-list 101 deny tcp any any eq telnet

int vlan 1

ip access-group 101 out

int vlan 3

ip access-group 101 out

把这个ACL应用上去后,用户们开始打电话来骂娘了,因为他们都访问不了Internet了,是哪里出了问题了呢?

注意:所有的ACL,缺省情况下,从安全角度考虑,最后都会隐含一句deny any(标准ACL)或deny ip any any(扩展IP ACL)。所以在不了解业务会使用到哪些端口的情况下,最好在ACL的最后加上一句permit ip any any,在这里就是access-list 101 permit ip any

any。

现在用户倒是能够访问Internet了,但我们的可怜的网管却发现普通用户还是能够telnet到他的SWA上面,因为SWA上面有很多个网络接口,而且使用扩展的ACL会消耗很多的资源。有什么简单的办法能够控制用户对网络设备的Telnet访问,而又不消耗太多的资源呢?

方案2

分析:

telnet都是访问的设备上的line vty,在line vty下面使用access-class与ACL组进行关联即可

在每台网络设备上均进行如下配置:

access-list 1 permit host 10.1.6.66

line vty 0 4 (部分设备是15)

access-class 1 in

b. 只对员工开放web服务器(10.1.2.20)所提供的http、FTP服务器(10.1.2.22)提供的FTP服务和数据库服务器(10.1.2.21:1521),对于研发部门,只允许其领导(10.1.6.33)访问数据库服务器

分析:

服务器网段的的访问权限部分如下表所示:

协议 源地址

TCP

TCP

TCP

TCP

源端口 目的地址 目的端口 操作

允许访问

允许访问

允许访问

禁止访问

10.1/16

所有

(内网所有网段)

10.1/16

10.1.6.33/32

(研发部领导)

所有

所有

10.1.2.20/32 80

(web Server)

10.1.2.22/32 21

(Ftp Server)

10.1.2.21/32 1521

10.1.2.21/32 1521 10.1.6/24

所有

(Vlan6,研发部)

TCP

IP

命令:

10.1/16

10.1/16

所有

N/A

10.1.2.21/32 1521

(Db Server)

所有

N/A

允许访问

禁止访问

ip access-list extend server-protect

//注:ip access-list

是关键字 extend

表明是扩展的ACL(对应地,standard表示标准的ACL)server-

protect是access-list的名字,相当于编号ACL中的编号字段

permit tcp host 10.1.6.33 host 10.1.2.21 eq 1521

deny tcp 10.1.6.0 0.0.0.255 host 10.1.2.21 eq 1521

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.21 eq 1521

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.20 eq www

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.22 eq ftp

exit

int vlan 2

ip access-group server- protect

注意:最为精确匹配的ACL语句一定要写在最前面,只有这样才能保证不会出现无用的ACL

语句。如这三句不能这样写,否则研发部门仍能访问数据库服务器。

permit tcp 10.1.0.0 0.0.255.255 host 10.1.2.21 eq 1521

deny tcp 10.1.6.0 0.0.0.255 host 10.1.2.21 eq 1521

permit tcp host 10.1.6.33 host 10.1.2.21 eq 1521

888

c. 对内部员工上网进行控制。要求在上班时间内(9:00-18:00)禁止内部员工浏览internet,

禁止使用QQ、MSN。而且在2003年6月1号到2号的所有时间内都不允许进行上述操作。但在任何时间都可以允许以其它方式访问Internet

分析:

浏览internet现在基本上都是使用http或https进行访问,标准端口是TCP/80端口和TCP/443

MSN使用TCP/1863端口

QQ登录会使用到三个端口:TCP8000、UDP8000、UDP4000进行通讯。

而且这些软件都能支持代理服务器,目前的代理服务器主要布署在TCP 8080、TCP

3128(HTTP代理)和TCP1080(socks)这三个端口上。

需求表:

应用

IE

IE

MSN

QQ

QQ

QQ

协议 源地址

TCP

TCP

TCP

TCP

UDP

UDP

源端口 目的地址 目的端口 操作

所有

所有

所有

所有

所有

所有

所有

所有

所有

所有

80

443

1863

8000

8000

4000

8080

3128

1080

N/A

限制访问

限制访问

限制访问

限制访问

限制访问

限制访问

限制访问

限制访问

限制访问

允许访问

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16

所有

10.1/16 N/A

HTTP代理

TCP

HTTP代理

TCP

Socks

All other

TCP

IP

ACL应该在哪个位置配置比较好呢?

由于是对访问Internet进行控制,涉及到的是公司内部所有的网段,这们这次把ACL就放到公司的Internet出口处。在RTA上进行如下的配置

命令:

time-range TR1

absolute start 00:00 1 June 2003 end 00:00 3 June 2003

periodic weekdays start 9:00 18:00

exit

ip access-list extend internet_limit

deny tcp 10.1.0.0 0.0.255.255 any eq 80 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 443 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 1863 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

deny udp 10.1.0.0 0.0.255.255 any eq 8000 time-range TR1

deny udp 10.1.0.0 0.0.255.255 any eq 4000 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 3128 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 8080 time-range TR1

deny tcp 10.1.0.0 0.0.255.255 any eq 1080 time-range TR1

permit ip any any

int s0/0

ip access-group internet_limit out

或int fa0/0

ip access-group internet_limit in

或者将ACL配置在SWA上

int vlan 3

ip access-group internet_limit out

d. 禁止vlan5(市场部)和vlan6(研发部)访问到vlan4(财务部)中的数据,但vlan4能访问vlan5和vlan6中的数据(反向ACL实例)

分析: 这个需求需要使用ACL实现单向访问控制。

方案一:

命令:

ip access-list extend fi-access-limit

deny ip any 10.1.4.0 0.0.0.255

permit ip any any

int vlan 5

ip access-group fi-access-limit in

int vlan 6

ip access-group fi-access-limit in

问题:市场和研发部门确实访问不到财务部了,但财务部也访问不到市场与研发部门的数据了。

分析:两台主机A与B之间要实现通讯,既需要A能向B发包,也需要B能向A发包,任何一个方向的包被阻断,通讯都不能成功,在上面就存在这样的问题,财务部访问市场或研发部门时,包到到市场或研发部门的主机,这些主机返回的包在到达交换机时,由于普通

的ACL均不具备检测会话状态的能力,就被deny ip any 10.1.4.0 0.0.0.255这条ACL给阻断了,所以访问不能成功。

财务部门访问市场和研发部门时,必须能在市场和研发部门的ACL中临时生成一个反向的ACL条目,才能实现单向访问了。这里就需要使用到反向ACL技术。

方案2:

命令:

outbound的部分:

//在vlan4的进入方向定义主ACL fi-main,含三条反向ACL条目。指明符合这三个条目的流量要作单向流量处理。即对这些流量加上一些标识如reflect组名,允许的时间

ip access-list extend fi-main

permit tcp any 10.1.0.0 0.0.255.255 reflect r-main timeout 120

//reflect指时该acl条目是反向ACL

//r-main

是反向ACL的组名,具备相同reflect组名字的所有的ACL条目为一个reflect组。反向ACL的组名在inbound部分被引用。

//timeout xxx表明该反向ACL条目在没有流量的情况下,多长时间后会消失(缺省值为300秒),单位为秒。

permit udp any 10.1.0.0 0.0.255.255 reflect r-main timeout 200

permit icmp any 10.1.0.0 0.0.255.255 reflect r-main timeout 10

permit ip any any

int vlan 4

ip access-group fi-main in //vlan4的主机通过vlan4接口进入交换机的方向上使用acl fi-main

inbound的部分:

ip access-list extend fi-access-limit

evaluate r-main

//如果是符合r-main组中所定义的acl条目的流量,即需要单向处理的流量,则在evaluate语句所在的当前位置动态生成一条反向的permit语句。

deny ip any 10.1.4.0 0.0.0.255

permit ip any any

int vlan 5

ip access-group fi-access-limit in

int vlan 6

ip access-group fi-access-limit in