扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
防火墙的NAT配置与路由器的NAT配置基本一样,首先也必须定义供NAT转换的内部IP地址组,接着定义内部网段。
定义供NAT转换的内部地址组的命令是nat,它的格式为:nat [(if_name)] nat_id local_ip [netmask [max_conns [em_limit]]],其中if_name为接口名;nat_id参数代表内部地址组号;而local_ip为本地网络地址;netmask为子网掩码;max_conns为此接口上所允许的最大TCP连接数,默认为"0",表示不限制连接;em_limit为允许从此端口发出的连接数,默认也为"0",即不限制。如:
nat (inside) 1 10.1.6.0 255.255.255.0
表示把所有网络地址为10.1.6.0,子网掩码为255.255.255.0的主机地址定义为1号NAT地址组。
随后再定义内部地址转换后可用的外部地址池,它所用的命令为global,基本命令格式为:
global [(if_name)] nat_id global_ip [netmask [max_conns [em_limit]]] ,各参数解释同上。如:
global (outside) 1 175.1.1.3-175.1.1.64 netmask 255.255.255.0
将上述nat命令所定的内部IP地址组转换成175.1.1.3~175.1.1.64的外部地址池中的外部IP地址,其子网掩耳盗铃码为255.255.255.0。
11. Port Redirection with Statics
这是静态端口重定向命令。在Cisco PIX版本6.0以上,增加了端口重定向的功能,允许外部用户通过一个特殊的IP地址/端口通过防火墙传输到内部指定的内部服务器。其中重定向后的地址可以是单一外部地址、共享的外部地址转换端口(PAT),或者是共享的外部端口。这种功能也就是可以发布内部WWW、FTP、Mail等服务器,这种方式并不是直接与内部服务器连接,而是通过端口重定向连接的,所以可使内部服务器很安全。
命令格式有两种,分别适用于TCP/UDP通信和非TCP/UDP通信:
(1). static[(internal_if_name, external_if_name)]{global_ip|interface}local_ip[netmask mask] max_conns [emb_limit[norandomseq]]]
(2). static [(internal_if_name, external_if_name)] {tcp|udp}{global_ip|interface} global_port local_ip local_port [netmask mask] [max_conns [emb_limit [norandomseq]]]
此命令中的以上各参数解释如下:
internal_if_name:内部接口名称;external_if_name:外部接口名称;{tcp|udp}:选择通信协议类型;{global_ip|interface}:重定向后的外部IP地址或共享端口;local_ip:本地IP地址;[netmask mask]:本地子网掩码;max_conns:允许的最大TCP连接数,默认为"0",即不限制;emb_limit:允许从此端口发起的连接数,默认也为"0",即不限制;norandomseq:不对数据包排序,此参数通常不用选。
现在我们举一个实例,实例要求如下
●外部用户向172.18.124.99的主机发出Telnet请求时,重定向到10.1.1.6。
●外部用户向172.18.124.99的主机发出FTP请求时,重定向到10.1.1.3。
●外部用户向172.18.124.208的端口发出Telnet请求时,重定向到10.1.1.4。
●外部用户向防火墙的外部地址172.18.124.216发出Telnet请求时,重定向到10.1.1.5。
●外部用户向防火墙的外部地址172.18.124.216发出HTTP请求时,重定向到10.1.1.5。
●外部用户向防火墙的外部地址172.18.124.208的8080端口发出HTTP请求时,重定向到10.1.1.7的80号端口。
以上重写向过程要求如图2所示,防火墙的内部端口IP地址为10.1.1.2,外部端口地址为172.18.124.216。
图2
以上各项重定向要求对应的配置语句如下:
static (inside,outside) tcp 172.18.124.99 telnet 10.1.1.6 telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.99 ftp 10.1.1.3 ftp netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.208 telnet 10.1.1.4 telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp interface telnet 10.1.1.5 telnet netmask 255.255.255.255 0 0
static (inside,outside) tcp interface www 10.1.1.5 www netmask 255.255.255.255 0 0
static (inside,outside) tcp 172.18.124.208 8080 10.1.1.7 www netmask 255.255.255.255 0 0
12. 显示与保存结果
显示结果所用命令为:show config;保存结果所用命令为:write memory。
四、包过滤型防火墙的访问控制表(ACL)配置
除了以上介绍的基本配置外,在防火墙的安全策略中最重要还是对访问控制列表(ACL)进行配有关置。下面介绍一些用于此方面配置的基本命令。
1. access-list:用于创建访问规则
这一访问规则配置命令要在防火墙的全局配置模式中进行。同一个序号的规则可以看作一类规则,同一个序号之间的规则按照一定的原则进行排列和选择,这个顺序可以通过 show access-list 命令看到。在这个命令中,又有几种命令格式,分别执行不同的命令。
(1)创建标准访问列表
命令格式:access-list [ normal | special ] listnumber1 { permit | deny } source-addr [ source-mask ]
(2)创建扩展访问列表
命令格式:access-list [ normal | special ] listnumber2 { permit | deny } protocol source-addr source-mask [ operator port1 [ port2 ] ] dest-addr dest-mask [ operator port1 [ port2 ] | icmp-type [ icmp-code ] ] [ log ]
(3)删除访问列表
命令格式:no access-list { normal | special } { all | listnumber [ subitem ] }
上述命令参数说明如下:
●normal:指定规则加入普通时间段。
●special:指定规则加入特殊时间段。
●listnumber1:是1到99之间的一个数值,表示规则是标准访问列表规则。
●listnumber2:是100到199之间的一个数值,表示规则是扩展访问列表规则。
●permit:表明允许满足条件的报文通过。
●deny:表明禁止满足条件的报文通过。
●protocol:为协议类型,支持ICMP、TCP、UDP等,其它的协议也支持,此时没有端口比较的概念;为IP时有特殊含义,代表所有的IP协议。
●source-addr:为源IP地址。
●source-mask:为源IP地址的子网掩码,在标准访问列表中是可选项,不输入则代表通配位为0.0.0.0。
●dest-addr:为目的IP地址。
●dest-mask:为目的地址的子网掩码。
●operator:端口操作符,在协议类型为TCP或UDP时支持端口比较,支持的比较操作有:等于(eq)、大于(gt)、小于(lt)、不等于(neq)或介于(range);如果操作符为range,则后面需要跟两个端口。
port1 在协议类型为TCP或UDP时出现,可以为关键字所设定的预设值(如telnet)或0~65535之间的一个数值。port2 在协议类型为TCP或UDP且操作类型为range时出现;可以为关键字所设定的预设值(如telnet)或0~65535之间的一个数值。
●icmp-type:在协议为ICMP时出现,代表ICMP报文类型;可以是关键字所设定的预设值(如echo-reply)或者是0~255之间的一个数值。
●icmp-code:在协议为ICMP,且没有选择所设定的预设值时出现;代表ICMP码,是0~255之间的一个数值。
●log:表示如果报文符合条件,需要做日志。
●listnumber:为删除的规则序号,是1~199之间的一个数值。
●subitem:指定删除序号为listnumber的访问列表中规则的序号。
例如,现要在华为的一款防火墙上配置一个"允许源地址为10.20.10.0 网络、目的地址为10.20.30.0网络的WWW访问,但不允许使用FTP"的访问规则。相应配置语句只需两行即可,如下:
Quidway (config)#access-list 100 permit tcp 10.20.10.0 255.0.0.0 10.20.30.0 255.0.0.0 eq www
Quidway (config)#access-list 100 deny tcp 10.20.10.0 255.0.0.0 10.20.30.0 255.0.0.0 eq ftp
2. clear access-list counters:清除访问列表规则的统计信息
命令格式:clear access-list counters [ listnumber ]
这一命令必须在特权用户模式下进行配置。listnumber 参数是用指定要清除统计信息的规则号,如不指定,则清除所有的规则的统计信息。
如要在华为的一款包过滤路由器上清除当前所使用的规则号为100的访问规则统计信息。访问配置语句为:
clear access-list counters 100
如有清除当前所使用的所有规则的统计信息,则以上语句需改为:Quidway#clear access-list counters
3. ip access-group
使用此命令将访问规则应用到相应接口上。使用此命令的no形式来删除相应的设置,对应格式为:
ip access-group listnumber { in | out }
此命令须在端口用户模式下配置,进入端口用户模式的命令为:interface ethernet(),括号中为相应的端口号,通常0为外部接口,而1为内部接口。进入后再用ip access-group 命令来配置访问规则。listnumber参数为访问规则号,是1~199之间的一个数值(包括标准访问规则和扩展访问规则两类);in 表示规则应用于过滤从接口接收到的报文;而out表示规则用于过滤从接口转发出去的报文。一个接口的一个方向上最多可以应用20类不同的规则;这些规则之间按照规则序号的大小进行排列,序号大的排在前面,也就是优先级高。对报文进行过滤时,将采用发现符合的规则即得出过滤结果的方法来加快过滤速度。所以,建议在配置规则时,尽量将对同一个网络配置的规则放在同一个序号的访问列表中;在同一个序号的访问列表中,规则之间的排列和选择顺序可以用show access-list命令来查看。
例如将规则100应用于过滤从外部网络接口上接收到的报文,配置语句为(同样为在倾为包过滤路由器上):
ip access-group 100 in
如果要删除某个访问控制表列绑定设置,则可用no ip access-group listnumber { in | out } 命令。
4. show access-list
此配置命令用于显示包过滤规则在接口上的应用情况。命令格式为:show access-list [ all | listnumber | interface interface-name ]
这一命令须在特权用户模式下进行配置,其中all参数表示显示所有规则的应用情况,包括普通时间段内及特殊时间段内的规则;如果选择listnumber参数,则仅需显示指定规则号的过滤规则;interface 表示要显示在指定接口上应用的所有规则序号;interface-name参数为接口的名称。
使用此命令来显示所指定的规则,同时查看规则过滤报文的情况。每个规则都有一个相应的计数器,如果用此规则过滤了一个报文,则计数器加1;通过对计数器的观察可以看出所配置的规则中,哪些规则是比较有效,而哪些基本无效。例如,现在要显示当前所使用序号为100的规则的使用情况,可执行Quidway#show access-list 100语句即可,随即系统即显示这条规则的使用情况,格式如下:
Using normal packet-filtering access rules now.
100 deny icmp 10.1.0.0 0.0.255.255 any host-redirect (3 matches,252 bytes -- rule 1)
100 permit icmp 10.1.0.0 0.0.255.255 any echo (no matches -- rule 2)
100 deny udp any any eq rip (no matches -- rule 3)
5. show firewall
此命令须在特权用户模式下执行,它显示当前防火墙状态。命令格式非常简单,也为:show firewall。这里所说的防火墙状态,包括防火墙是否被启用,启用防火墙时是否采用了时间段包过滤及防火墙的一些统计信息。
6. Telnet
这是用于定义能过防火配置控制端口进行远程登录的有关参数选项,也须在全局配置用户模式下进行配置。
命令格式为:telnet ip_address [netmask] [if_name]
其中的ip_address参数是用来指定用于Telnet登录的IP地址,netmask为子网掩码,if_name用于指定用于Telnet登录的接口,通常不用指定,则表示此IP地址适用于所有端口。如:
telnet 192.168.1.1
如果要清除防火墙上某个端口的Telnet参数配置,则须用clear telnet命令,其格式为:clear telnet [ip_address [netmask] [if_name]],其中各选项说明同上。它与另一个命令no telnet功能基本一样,不过它是用来删除某接口上的Telnet配置,命令格式为:no telnet [ip_address [netmask] [if_name]]。
如果要显示当前所有的Telnet配置,则可用show telnet命令。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。