R1(conf)# no cdp run #在边界路由器上关闭CDP协议,防止非法用户通过CDP检测内部网络
R1(conf)# no service tcp-small-service #echo 17; chargen 19; daytime 13;
R1(conf)# no service udp-small-service #关闭低端口服务,如防止***发送流量灌水到chargen服务端口,占用CPU资源,防止DoS***
R1(conf)# no ip finger #关闭FINGER,防止***通过finger检查路由器登录的用户
R1(conf)# no ip identd #identD允许远程设备为了识别目的查询的一个TCP端口,端口号为113;
R1(conf)# no ip source-route #关闭IP源路,防止***利用IP源由选择路由来绕过防火墙;
R1(conf)# no ftp-server enable #关闭FTP-SERVER功能,防止***在路由器上建立FTP服务器;
R1(conf)# no ip bootp server #防止***通过路由器作为Boot启动;
R1(conf)# no service pad #PAD(packet assembler/disassemble)用于X.25网络
R1(conf)# no boot network #禁止通过路由器作为TFTP启动
R1(conf)# no service config # 关闭服务器设定
R1(conf)# no ip proxy-arp #有一种情况下,不应该关闭ARP代理:当路由器端远程接入IPSec ×××连接时,当地设备要通过×××远程防问客户端,路由器响应来自本地设备的arp请求,这种情况下要打开APR代理功能;
R1(conf)# no ip directed-broadcast #Dos***利用广播定向功能向特定的网络或是子网进行洪水***;
R1(conf)# no ip unreachable #***使用DoS***来使路由器生成ICMP不可达消息;
R1(conf)# no ip redirect #***可能利用ip重定向方法,让路由产生环路由,造成网络瘫痪;
R1(conf)# no ip mask-reply #利用子网消息请求功能,***可进行定向广播DoS***子网;
--------------------------------------------------------------------------------------
ACL参数说明:
precedence :过滤特定的优先级别,范围为0到7级别。IP数据包头通常为服务质量保证(Quality of Service, Qos)和队列的目的进行流量分类。
dscp:过滤IP数据包头中的区分服务代码(Differentiated Services Code Point,DSCP)值进行过滤;
tos: 过滤IP数据包头中的服务类型域,用于QoS实施
log: 用于记录控制吧、内部缓存或是系统日志,被记录内容包括有TCP、UDP或是ICMP,记录源端口号和目的端口号等;
log-input: 记录的信息包括接收到的数据包的输入接口和数据包中的第二层源地址;
ACL例子:
access-list 100 permit tcp any host 200.1.1.2 eq 25 # 任何流量都可以发送E-mail流量到200.1.1.2
access-list 100 permit tcp any eq 25 host 200.1.1.2 established #内部E-mail 服务器发送邮件到外部服务器,并接收回复。established是用户发送到去的TCP流量将允许返回,但此参数在边界路由器上会产生有一漏洞,即是***可以利用返回数据的ACK \ FIN \ PSH \ RST \ SYS等TCP标记位进行修改并进行***;
在接口下利用ip accounting access-violations 进行IP 统计
--------------------------------------------------------------------------------------
使用PAM和ACL来限制CBAC审查
R1(config)# ip port-map http port 8080 list 1
R1(config)#access-list permit 192.168.100.2
R1(config)# ip port-map http port 8090 list 2
R1(config)#access-list permit 192.168.100.3
--------------------------------------------------------------------------------------
使用ACL来处理TCP SYN洪水***
R1(config)# ip access-list extended tcp-syn-flood
R1(config-ext-nacl)# permit tcp any 200.1.1.0 0.0.0.255 establised
R1(config-ext-nacl)# permit tcp any host 200.1.1.11 eq 25
R1(config-ext-acl)# deny ip any any
R1(config)# interface g0/1
R1(config-if)# ip access-group tcp-syn-flood in
此例ACL不能阻止E-mail服务器TCP SYN洪水***,要结合CBAC审查;
--------------------------------------------------------------------------------------
* 使用ACL来阻塞Smurf和Fraggle,Smurf为icmp回声(echo)的Dos***,Fraggle是使用UDP回声进行***
R1(config)# ip access-list extended Smurf-fraggle
R1(config-ext-nacl)# deny icmp any any echo
R1(config-ext-nacl)# deny icmp any any echo-reply
R1(config-ext-nacl)# deny udp any any echo
R1(config-ext-nacl)# deny udp any any echo-reply
R1(config-ext-acl)# deny ip any any
R1(config)# interface g0/1
R1(config-if)# ip access-group Smurf-fraggle in
R1(config-if)# ip access-group Smurf-fraggle out
--------------------------------------------------------------------------------------
过滤icmp、traceroute、RPC、SQL
R1(config)# ip access-list extended ICMP-IN-OUT
R1(config-ext-nacl)# deny icmp any any echo
R1(config-ext-nacl)# deny icmp any any redirect
R1(config-ext-nacl)# deny icmp any any mask-request
R1(config-ext-nacl)# permit icmp any host 200.1.1.5 echo-reply
R1(config-ext-nacl)# deny icmp any any echo-reply
R1(config-ext-nacl)# permit icmp any 200.1.1.0 0.0.0.255
R1(config-ext-nacl)# deny udp any any range 32400 34400 #过滤Traceroute
R1(config-ext-nacl)# deny tcp any any eq 514 #过滤RPC
R1(config-ext-nacl)# deny udp any any eq 1434 #过滤SQL
R1(config-ext-nacl)# deny tcp any any eq 1433 #过滤SQL
R1(config-ext-nacl)# deny tcp any any eq 445 #过滤SMB
R1(config-ext-acl)# deny ip any any
R1(config)# interface g0/1
R1(config-if)# ip access-group CMP-IN-OUT in
R1(config-if)# ip access-group CMP-IN-OUT out
--------------------------------------------------------------------------------------
过滤Trinoo
R1(config)# ip access-list extended trinoo
R1(config-ext-nacl)# deny tcp any any eq 1524
R1(config-ext-nacl)# deny tcp any any eq 1524
R1(config-ext-nacl)# deny udp any any eq 1524
R1(config-ext-nacl)# deny tcp any any eq 27665
R1(config-ext-nacl)# deny tcp any any eq 27665
R1(config-ext-nacl)# deny tcp any any eq 31335
R1(config-ext-nacl)# deny tcp any any eq 31335
R1(config-ext-acl)# deny ip any any
R1(config)# interface g0/1
R1(config-if)# ip access-group trinoo in
R1(config-if)# ip access-group trinoo out
--------------------------------------------------------------------------------------
过滤DCOM连接,***利用微软的RPC代码的缺陷进行***。微软在分布式对像模块(Distributed Component Object Module,DCOM)中发现漏洞。DCOM使用的端口是 135 139 445
R1(config)# ip access-list extended Deny_RPC
R1(config-ext-nacl)# deny tcp any any eq 135
R1(config-ext-nacl)# deny udp any any eq 135
R1(config-ext-nacl)# deny tcp any any eq 139
R1(config-ext-nacl)# deny udp any any eq 139
R1(config-ext-nacl)# deny tcp any any eq 445
R1(config-ext-nacl)# deny udp any any eq 445
R1(config-ext-nacl)# deny udp any any eq 593
R1(config-ext-nacl)# deny udp any any eq 4444
R1(config-ext-nacl)# permit ip any any
R1(config)# interface g0/1
R1(config-if)# ip access-group Deny_RPC in
--------------------------------------------------------------------------------------
使用CBAC来阻止DoS***
R1(config)# ip inspect tcp synwait-time 20
R1(config)# ip inspect tcp idle-time 60
R1(config)# ip inspect udp idle-time 20
R1(config)# ip inspect max-incomplete high 400
R1(config)# ip inspect max-incomplete low 300
R1(config)# ip inspect one-minute high 600
R1(config)# ip inspect one-minute low 500
R1(config)# ip inspect tcp max-incomplete host 300 block-time 0
设置一个简单的CBAC的审查配置
R1(config)# ip access-list extended extended_acl
R1(config-ext-nacl)# deny tcp any any log
R1(config-ext-nacl)# deny udp any any log
R1(config-ext-nacl)# deny icmp any any log
R1(config-ext-nacl)# permit ip any any
R1(config)# ip inspect name cbac-example tcp
R1(config)# ip inspect name cbac-example udp
R1(config)# ip inspect name cbac-example icmp
R1(config)# interface g0/1
R1(config-if)# ip access-group extended_acl
R1(config-if)# ipinspect cbac-example in
--------------------------------------------------------------------------------------
使用CBAC来阻止DoS***
R1(config)# ip inspect tcp synwait-time 20
R1(config)# ip inspect tcp idle-time 60
R1(config)# ip inspect udp idle-time 20
R1(config)# ip inspect max-incomplete high 400
R1(config)# ip inspect max-incomplete low 300
R1(config)# ip inspect one-minute high 600
R1(config)# ip inspect one-minute low 500
R1(config)# ip inspect tcp max-incomplete host 300 block-time 0
--------------------------------------------------------------------------------------
使用TCP截取来保护区内部服务器
R1(config)# access-list 100 tcp permit tcp any host 192.168.1.1 eq 80
R1(config)# access-list 100 tcp permit tcp any host 192.168.1.2 eq25
R1(config)# ip tcp intercept list 100
R1(config)# ip tcp intercept mode watch
R1(config)# ip tcp intercept watch-timeout 20
R1(config)# ip tcp intercept connection-time 120
R1(config)# ip tcp intercept max-incomplete high 600
R1(config)# ip tcp intercept min-incomplete low 500
R1(config)# ip tcp intercept one-minute high 800
R1(config)# ip tcp intercept one-minute low 600