2024年2月9日发(作者:)

网络工程师交换试验手册附录4:网络路由器安全配置手册

安全威胁类型:

网络命令、PING扫描、端口扫描侦察 

非授权访问

资源过载型拒绝服务攻击(表一)拒绝服务(DOS)

带外数据型拒绝服务攻击(表二)

其他拒绝服务攻击(分布式拒绝服务攻击DDOS、电子邮件炸弹、缓冲区溢出、恶意applet、CPU独占)

数据操纵  IP欺骗(IP Spooling)

会话重放和劫持(Hijacking)

重路由(Rerouting)

否认(Repudianton)

(表一)

类型 描述 防范措施

Ping flood 向一台主机发送大量ICMP回声请求包 将边界路由器设置为拒绝响应ICMP回声请求包

半开(half-open)syn攻击 向端口发起大量不完整TCP会话连接请求,导致宕机 使用TCP拦截,lock-and-key,IDC检测

数据包风暴 发送大量的UDP包 使用cisco PIX上的syn flooding 保护功能

(表二)

类型 描述 防范措施

过大的数据包(死亡ping) 修改ip包头中的长度大于实际包长,导致接收系统崩溃 过滤ICMP数据包

重叠的数据包(winnuke.c) 对已建立的连接发送带外数据,导致目标重起或停止(典型的对NETBIOS,端口137) 如果不需要关闭NETBIOS

分片(teardrop.c) 利用一些TCP/IP的IP分片组装代码实施中的漏洞,导致内存缓冲区溢出 在边界路由器上扔掉来自外部的被分片了的IP包

IP源地址欺骗(land.c) 导致计算机产生对自身的TCP连接,陷入死循环 在路由器或主机上过滤掉虚假源地址IP包

畸形包头(UDP炸弹) 制造一些包头中长度不正确的UDP包,导致一些主机出现内核混乱 根据CERT建议列表在主机上安装操作系统补丁

保护管理接口的安全

设置控制台(Console)口令:

router(config)#line console 0

router(config-line)#login

router(config-line)#password cisco_psw1

设置vty(Telnet)口令:

router(config)#line vty 0 4

router(config-line)#login

router(config-line)#password cisco_psw2

设置特权模式一般口令:

router(config)#enable password cisco_psw3

设置特权模式秘密口令:

router(config)#enable secret cisco_psw4

”service  password-encryption”命令:将口令以一种加密的方式存储在路由器的配置文件中,以致在

“Show config”中不可见。

路由器限定具体的某台主机拥有”telnet”访问的权限:

router(config)# access-list 21 permit 10.1.1.4

router(config)#line vty 0 4

router(config-line)#access-class 21 in

管理员只能在10.1.1.4上用Telnet访问路由器

CISCO访问列表类型:

标准访问列表:只允许过滤源地址,功能十分有限

access-list [list-number] [permit|deny] [source address] [wildcard-mask] [log]

有三个关键字host、any、log适用此列表,host和any分别适用单个主机和所有主机

access-list 1 permit 192.168.11.0 0.0.0.255 log

access-list 1 deny host 192.168.0.5

 access-list 1 permit any

扩展访问列表:允许过滤源地址、目的地址、协议、端口、上层应用数据

access-list [list-number] [permit|deny] [protocol] [protocol keyword] [sourece address] [source-wildcard]

[source port] [destination address] [destination-wildcard] [destination port] [log] [options]

access-list 101 pemit tcp any host 198.78.46.8 eq smtp

access-list 101 pemit ip 196.2.22.0 0.0.0.255 host 198.78.46.8

标准或扩展列表定义好以后,必须用“ip access-group [list-number] [in|out]”应用到端口上

标准的命名IP访问列表:

ip access-list standard name

ip access-list standard test-name

permit 196.2.20.0 0.0.0.255

permit 196.2.12.0 0.0.0.255

ip access-group test-name out

定义和应用的格式与标准列表不同,其他用法和标准列表相同

扩展的命名IP访问列表:

ip access-list extended name

ip access-list extended sever-security

permit tcp any host 202.32..5.69 eq 21

ip access-group sever-security out

定义和应用的格式与扩展列表不同,其他用法和扩展列表相同

动态访问表(lock-and-key):

 例一:两个以太网接口E0:198.78.46.0,E1:205.131.175.0;服务器198.78.46.12;希望任何用户都能访问198.78.46.12服务器,并允许205.131.175.0的网络能HTTP和FTP访问 INTERNET。

username test password cisco

!

interface serial0

ip address 175.10.1.1 255.255.255.0

ip access-group 100 in

!

access-list 100 permit tcp any host 175.10.1.1 eq telnet

access-list 100 permit udp any eq 53 205.131.175.0 0.0.0.255 gt 1023

access-list 100 permit tcp any eq www 205.131.175.0 0.0.0.255 gt 1023 established

access-list 100 permit tcp any eq 21 205.131.175.0 0.0.0.255 gy 1023 established

access-list 100 dynamic test timeout 180 permit ip any host 198.78.46.12 log

!

logging buffered 64000

!

line vty 0 2

login local

autocommand access-enable host timeout 10

line vty 3 4

login local

rotary 1

通常的访问列表,如果想开启一个访问列表让授权用户在不信任端访问内部资源的话,那么这个访问通道将会永久有效直到删除,以致带来巨大的安全漏洞;动态访问列表解决这个问题,它提供了一个用户名和密码的认证方式,避免了不信任端的用户非法侵入。

必需步骤:

1、创建user和password

2、创建Telnet连接,如果不允许此连接就不能在访问表中创建动态的访问表项。

3、配置动态访问列表项和其它访问列表项

4、必须在line vty下配置“Autocommand”,一般在“line vty 0 2”下。

5、必须在line vty 下配置“rotary 1”

6、将动态和一般访问列表应用到接口:ip access-group list-number in|out

基于时间的访问列表:

interface ethernet0

ip access-group 101 in

Time-range allow-http

Absolute start 7:00 1 June 2000 end 17:00 31 December 2000

Periodic weekends 7:00 to 17:00

ip access-list 101 permit tcp any any eq 80 allow-http

!

必需步骤:

1、定义时间范围:(具体参数见表三)

time-range time-range-nameabsolute [start time date] [end time date]

periodic days-of-the -week hh:mm to [days-of-the-week]hh:mm

2、定义访问列表并应用时间范围名称,以及将列表应用到接口

(表三)

Time-range-name 用来标识时间范围进行应用的名称

Time 以小时和分钟方式(hh:mm)输入的时间

Date 以日/月/年 方式输入的日期

Days-of-the-week 产生作用的某天或某周,参数可以是单一的某天(如Monday、Tuesday),或daily(从周一到周五)、weekdays(从周一到周五)、weekend(周六和周日)

absolute是用于定义全面的时间范围,在一个“time-range”中,只能有一个absolute,但可以有多个Periodic定义具体的时间范围

自反访问列表:

自反访问列表在路由器的一边创建IP流量的动态开启,该过程是基于来自路由器另一边的会话进行

的。它必须是基于扩展的IP命名访问列表。作用类似于一般访问列表中的“established”参数,它可创建一个动态的临时的相反方向的访问列表

自反访问列表创建语句:

1.使用一条permit语句创建一个扩展ip命名访问列表,并在每个permit语句中使用reflect关键字,用以表明访问表中使用一个自反向开启表项。格式:permit protocol source destination reflect name

[timeout seconds]。

2.使用evaluate语句将终止包含一条或多条自反向表项的扩展ip命名访问列表。格式:evaluate name

3.使用ip reflexive-list timeout 命令改变临时自反访问表表项的全局超时缺省值。格式:ip reflexive-list

timeout seconds

解决方案一:

interface serial 0

ip access-group outfilter out

ip access-group infilter in

!

ip access-list extended outfilter

permit tcp any any eq 80 reflect my-packets timeout 240

permit tcp any any eq 23 reflect my-packets timeout 60

permit udp any any eq 53 reflect my-packets timeout 180

ip access-list extended infilter

evaluate my-packets

解决方案二:

interface serial 0

ip access-group infilter0 in

ip access-group outfilter0 out

!

ip reflexive-list timeout 180

!

ip access-list extended infilter0

evaluate my-packets0

!

ip access-list extended outfilter0

permit tcp any any eq 23 reflect my-packets0

permit udp any any eq 53 reflect my-packets0

permit tcp any any eq 80 reflect my-packets0

interface serial 1

ip access-group infilter1 in

ip access-group outfilter1 out

!

ip access-list extended infilter1

permit icmp any host 205.131.175.12 echo request

permit tcp any host 205.131.175.12 eq 80

evaluate my-packets1

!

ip access-list extended outfilter1

permit tcp any any eq 23 reflet my-packets1

permit udp any any eq 53 reflect my-packets1

permit tcp any any eq 80 reflect my-packets1

一般在一个向外的 扩展ip命名访问列表中定义合适的方向语句。这样就可以使临时开启表项出现在向内的方向上

基于上下文的访问控制:

用过滤器控制数据流

抑制路由使它不在路由更新中被广播出去

router(config)# access-list 45 deny 10.1.2.0 0.0.0.255

router(config)# access-list 45 permit any any

router(config-line)#router eigrp 200

router(config-router)#distribute-list 45 out serial0

在路由更新被广播出去的时候,10.1.2.0网段的地址路由信息不被广播,并在Serial0上将该访问控制列表用于外出的EIGRP数据流进行过滤。

抑制从路由更新中收到的路由

router(config)# access-list 46 permit 10.2.0.0 0.0.255.255

router(config-line)#router eigrp 200

router(config-router)#distribute-list 46 in serial0

配置一个访问列表只接收来自被信任网络10.2.0.0的路由更新,并在Serial0上将该访问控制列表施加于进入该接口的数据流。

抑制从路由更新使之不被从接口发出

阻止路由更新消息从某个指定路由器接口上发送出去的命令为“Passive-interface type number”( 该特性应用于除BGP、EGP之外的所有基于IP的路由协议)

过滤路由信息的来源

可以利用管理距离参数让路由器智能地辩选路由信息的来源,过滤路由信息来源的命令为“distance weight [address mask [access-list-number|name]][ip]”

用安全策略控制数据流实例:

例一:

安全策略:1、允许所有外出的数据流;

2、允许且只允许由内部发起的入数据流,防止IP欺骗造成的攻击

3、允许对已建立连接的外出数据流的入响应

4、拒绝所有其它入数据流,并记录这些非授权访问企图

router(config)#access-list 47 permit 10.1.2.0 0.0.0.255

router(config)#access-list 103 permit tcp any any established

router(config)#access-list 103 deny ip any any log

router(config)#interface serial0

router(config-if)#ip access-group 47 out

router(config-if)#ip access-group 103 in

控制对路由器上HTTP服务器模块的访问

可以用“ip http server”全局配置命令让任何路由器能通过Cisco web浏览器接口被监控配置

可以用“ip http port”全局配置命令来设置一个将被客户端软件接口使用的端口(例如端口8080)

可以用“ip http access-class”全局配置命令为将被使用的HTTP服务器分配一个访问控制列表

可以用“ip http authentcation”全局命令来指定一种对“IP HTTP”服务器用户的认证,以提供安全

ip http authentication {aaa | enable | local | tacacs}

配置路由器PAT

ip nat pool mypat 172.16.1.100 172.16.1.100 netmask 255.255.255.0

ip nat inside source list 1 pool mypat overload

!

interface serial1/0

ip address 172.16.1.1 255.255.255.0

ip nat outside

!

interface ethernet1/0

ip address 192.168.0.1 255.255.255.0

ip nat inside

!

access-list 1 permit 192.168.0.0 0.0.0.255

在边界路由器上配置了PAT,它将动态地将所有符合访问列表1 (源地址在192.168.0.0/24网段内)的源地址转换为地址池 mypat 中的地址。该地址只有一个ip 地址:172.16.0.100 overload”命令参数使路由器能为许多本地地址使用一个全局地址:172.16.1.100 配置了复用(overloading)后,内部主机不同的TCP或UDP端口号可以区分采用一个本地IP地址的不同会话。

配置路由器动态NAT

ip nat pool mynat 172.16.1.100 172.16.1.199 netmask 255.255.255.0

ip nat inside source list 1 mynat

!

interface serial 1/0

ip address 172.16.1.1 255.255.255.0

ip nat outside

!

interface ethernet 1/0

ip address 192.168.0.1 255.255.255.0

ip nat inside

!

access-list 1 permit 192.168.0.0 0.0.0.255

在动态转换情况下,为接口定义并分配一个内部全局地址,路由器动态地将内部本地地址转换为全局地址池中可用的地址。在上述配置中合法的地址池是172.16.1.100~172.16.0.199 ,局域网内部地址为192.168.0.0也可以静态地进行NAT转换,这样就不需要地址池,用“static ....” 命令就可以实现。