网络工程师交换试验手册附录4:网络路由器安全配置手册
安全威胁类型:
网络命令、PING扫描、端口扫描侦察
非授权访问
资源过载型拒绝服务攻击(表一)拒绝服务(DOS)
带外数据型拒绝服务攻击(表二)
其他拒绝服务攻击(分布式拒绝服务攻击DDOS、、缓冲区溢出、恶意applet、CPU独占)
数据操纵 IP欺骗(IP Spooling)
会话重放和劫持(Hijacking)
重路由(Rerouting)
否认(Repudianton)
(表一)
类型 描述 防范措施
Ping flood 向一台主机发送大量ICMP回声请求包 将边界路由器设置为拒绝响应ICMP回声请求
网络命令、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包,导致一些主机出现内核混乱
半开(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”命令:将口令以一种加密的方式存储在路由器的配置文件中,
保护管理接口的安全
设置控制台(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] [sour
路由器限定具体的某台主机拥有”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] [sour
ce-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
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
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
通常的访问列表,如果想开启一个访问列表让授权用户在不信任端访问内部资源的话,那么这个访问通道将会永久有效直到删除,以致带来巨大的安全漏洞;动态访问列表解决这个问题,它提供了一个用户名和密码的认证方式,避免了不信任端的用户非法侵入。
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、创建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定义具体的时间范围
自反访问列表:
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
!
自反访问列表创建语句:
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
react router拦截!
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 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]”
用安全策略控制数据流实例:
例一:
抑制从路由更新中收到的路由
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 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 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 ....” 命令就可以实现。
!
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 ....” 命令就可以实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论