缺省情况下,SmartHammer防火墙在没有任何配置情况下,安全策略默认是启动的,各接口的安全级别都为0,即互相之间不可互相访问,这样是为了达到不经过任何配置,防火墙就已经实现安全隔离的目的;安全级别具备0-100个等级,数字越大,表示级别越高,一般情况下,确定好内部网络和外部网络的接口后,配置内部接口的安全级别最高,外部接口的安全级别最低;
在简单的应用条件下,可以首先确定防火墙的内部接口、外部接口及DMZ接口,并分别赋予不同的优先级别,一般来将,内部接口的优先级最高,DMZ次之,外部接口最低,这样就保证了内部接口对外部的全权访问,而外部主机无法主动访问内部网络;
在SmartHammer防火墙的实现策略中,设备本身也作为一个特殊的接口,可以通过local的相关指令来进行配置管理优先级别,在后面的文档中将详细介绍.
SmartHammer防火墙对于接口到达的数据,一般要经过3个方面的检测,状态检测、规则匹配和缺省策略;基本的原则如下:
1、对于已建连接,数据包允许通过,此时不在做后面的检测,体现了基于状态防火墙的主要特点;
2、对于非已建连接,要查看入接口和数据包将要转发的出接口是否能够匹配到规则,如果在入接口或出接口匹配到显示的规则,则根据规则匹配的情况进行相应通过或drop处理,而不再检测缺省策略;规则匹配的顺序是先入口,再出口;
3、对于在情况2中,入接口和出接口都没有匹配到规则的情况,此时执行缺省策略,在SmartHammer防火墙中,缺省策略是有安全级别来决定的;
在简单的应用条件下,可以首先确定防火墙的内部接口、外部接口及DMZ接口,并分别赋予不同的优先级别,一般来将,内部接口的优先级最高,DMZ次之,外部接口最低,这样就保证了内部接口对外部的全权访问,而外部主机无法主动访问内部网络;
在SmartHammer防火墙的实现策略中,设备本身也作为一个特殊的接口,可以通过local的相关指令来进行配置管理优先级别,在后面的文档中将详细介绍.
SmartHammer防火墙对于接口到达的数据,一般要经过3个方面的检测,状态检测、规则匹配和缺省策略;基本的原则如下:
1、对于已建连接,数据包允许通过,此时不在做后面的检测,体现了基于状态防火墙的主要特点;
2、对于非已建连接,要查看入接口和数据包将要转发的出接口是否能够匹配到规则,如果在入接口或出接口匹配到显示的规则,则根据规则匹配的情况进行相应通过或drop处理,而不再检测缺省策略;规则匹配的顺序是先入口,再出口;
3、对于在情况2中,入接口和出接口都没有匹配到规则的情况,此时执行缺省策略,在SmartHammer防火墙中,缺省策略是有安全级别来决定的;
对于已建连接和相关连接,防火墙允许数据包通过,相关连接如ftp协议的20和21端口,有内部网络发起的ftp协议连接请求成功后,ftp的数据传输数据连接就属于相关连接,可以通过;
缺省策略的判断依据是:
1、 当进入接口安全级别低于或等于离开接口的安全级别时,策略为deny;
2、 当进入接口安全级别高于离开接口的安全级别时,策略为permit。
各接口安全级别缺省为0,即各接口安全级别相同,在这种情况下,禁止所有访问。通过调整接口的安全级别,可以改变缺省策略。
1、 当进入接口安全级别低于或等于离开接口的安全级别时,策略为deny;
2、 当进入接口安全级别高于离开接口的安全级别时,策略为permit。
各接口安全级别缺省为0,即各接口安全级别相同,在这种情况下,禁止所有访问。通过调整接口的安全级别,可以改变缺省策略。
接口安全级别配置
安全级别在接口下进行配置,定义好内部接口,外部接口并配置好安全级别后,防火墙的功能已经开始起作用了。
SmartHammer# configure terminal
SmartHammer(config)# interface ge0
SmartHammer(config-if)# ip security-level 90
SmartHammer(config-if)# exit
SmartHammer(config)# interface ge1
SmartHammer(config-if)# ip security-level 10
SmartHammer(config-if)# end
安全级别在接口下进行配置,定义好内部接口,外部接口并配置好安全级别后,防火墙的功能已经开始起作用了。
SmartHammer# configure terminal
SmartHammer(config)# interface ge0
SmartHammer(config-if)# ip security-level 90
SmartHammer(config-if)# exit
SmartHammer(config)# interface ge1
SmartHammer(config-if)# ip security-level 10
SmartHammer(config-if)# end
安全策略-过滤规则的配置:
为了丰富防火墙对业务的控制能力,SmartHammer防火墙采用access-list 作为安全策略的过滤规则,来对匹配的数据报文做不同的处理,access-list 只是简单的作为规则链,具有如下特点:
access-list 不同于传统的ACL概念,
access-list 没有缺省策略
access-list 也与接口安全级别没有关系
access-list 的启用基于接口,对于设备本身,可当作一个接口来考虑
access-list 在没有加载到接口前,过滤规则不起作用
可通过ip access-group in命令在进入接口上启用ACL规则链进行第一次访问控制,数据包经过路由后,对于发往其它接口的数据包,可通过ip access-group out命令在离开接口上启用ACL规则链进行第二次访问控制。
对于发往设备的数据包,可通过local ip access-group in启用ACL规则链进行第二次访问控制。对于设备发出的数据包,防火墙不做控制
配置例子:
access-list inside permit tcp 192.168.0.0/16 any 0.0.0.0/0 80
inside :访问策略的名称
permit:动作,允许或拒绝(permit\deny)
tcp:协议名称或协议号,如TCP、UDP、ICMP
192.168.0.0/16 :数据包源IP地址,可以是主机地址或网段地址,不加子网掩码为主机地址
any:数据包源端口号,只对TCP、UDP数据有效,any为所有的端口
0.0.0.0/0:数据包目的IP地址,可以是主机地址或网段地址
80:数据包目的端口号,只对TCP、UDP数据有效
支持基于时间的ACL,由于用的不多在此不做赘述,看参阅HSOS配置手册
为了丰富防火墙对业务的控制能力,SmartHammer防火墙采用access-list 作为安全策略的过滤规则,来对匹配的数据报文做不同的处理,access-list 只是简单的作为规则链,具有如下特点:
access-list 不同于传统的ACL概念,
access-list 没有缺省策略
access-list 也与接口安全级别没有关系
access-list 的启用基于接口,对于设备本身,可当作一个接口来考虑
access-list 在没有加载到接口前,过滤规则不起作用
可通过ip access-group in命令在进入接口上启用ACL规则链进行第一次访问控制,数据包经过路由后,对于发往其它接口的数据包,可通过ip access-group out命令在离开接口上启用ACL规则链进行第二次访问控制。
对于发往设备的数据包,可通过local ip access-group in启用ACL规则链进行第二次访问控制。对于设备发出的数据包,防火墙不做控制
配置例子:
access-list inside permit tcp 192.168.0.0/16 any 0.0.0.0/0 80
inside :访问策略的名称
permit:动作,允许或拒绝(permit\deny)
tcp:协议名称或协议号,如TCP、UDP、ICMP
192.168.0.0/16 :数据包源IP地址,可以是主机地址或网段地址,不加子网掩码为主机地址
any:数据包源端口号,只对TCP、UDP数据有效,any为所有的端口
0.0.0.0/0:数据包目的IP地址,可以是主机地址或网段地址
80:数据包目的端口号,只对TCP、UDP数据有效
支持基于时间的ACL,由于用的不多在此不做赘述,看参阅HSOS配置手册
基于角色的安全策略:
SmartHammer(config)# access-list admin permit ip admin-ip any any 80
admin-ip:地址组名称,下面为其定义的地址组
SmartHammer(config)# ip-group admin-ip
SmartHammer(config-ip-group)# address 192.168.0.10
SmartHammer(config-ip-group)# address 10.1.1.10
SmartHammer(config)# access-list admin permit ip admin-ip any any 80
admin-ip:地址组名称,下面为其定义的地址组
SmartHammer(config)# ip-group admin-ip
SmartHammer(config-ip-group)# address 192.168.0.10
SmartHammer(config-ip-group)# address 10.1.1.10
SmartHammer(config)# access-list user deny tcp 192.168.0.0/16 any serverip highport
serverip:地址组名称,下面为其定义的地址组
SmartHammer(config)# ip-group serverip
SmartHammer(config-ip-group)# address 10.1.0.4
SmartHammer(config-ip-group)# address 10.1.0.5
highport:端口组名称,下面为其定义的端口组
SmartHammer(config)# port-group highport
SmartHammer(config-port-group)# port 1138
SmartHammer(config-port-group)# port 21
serverip:地址组名称,下面为其定义的地址组
SmartHammer(config)# ip-group serverip
SmartHammer(config-ip-group)# address 10.1.0.4
SmartHammer(config-ip-group)# address 10.1.0.5
highport:端口组名称,下面为其定义的端口组
SmartHammer(config)# port-group highport
SmartHammer(config-port-group)# port 1138
SmartHammer(config-port-group)# port 21
如果想要允许外部网络可以主动访问内部网络,只能通过增加特定的过滤规则一种方式,来允许特定的业务访问内部网络;
SmartHammer(config)# access-list toDMZ permit tcp any any 192.168.0.10 80
SmartHammer(config)# ip access-group ge1 ge2 toDMZ
ge1:数据入接口
ge2:数据出接口
toDMZ:策略标识(即ACL名称)
上面的意思即为容许外部的设备访问DMZ区的WWW服务器(192.168.0.10 )
SmartHammer(config)# access-list toDMZ permit tcp any any 192.168.0.10 80
SmartHammer(config)# ip access-group ge1 ge2 toDMZ
ge1:数据入接口
ge2:数据出接口
toDMZ:策略标识(即ACL名称)
上面的意思即为容许外部的设备访问DMZ区的WWW服务器(192.168.0.10 )
允许特定主机访问防火墙设备
请不要把本地接口地址理解成loopback的IP地址,设备所有的接口都相当于本地设备,添加本地的安全策略时,可以选择任何一个接口的地址作为过滤规则使用;
access-list admin permit tcp administrator any 192.168.0.1 adminport
admin:策略(ACL名称)
administrator:管理员IP组
SmartHammer(config)# ip-group administrator
SmartHammer(config-ip-group)# address 192.168.0.10
SmartHammer(config-ip-group)# address 192.168.1.11
SmartHammer(config-ip-group)# address 192.168.2.10
adminport:管理端口组
SmartHammer(config)# port-group adminport
SmartHammer(config-port-group)# port 23
SmartHammer(config-port-group)# port 443
应用这个策略:
SmartHammer(config)# local ip access-group admin
请不要把本地接口地址理解成loopback的IP地址,设备所有的接口都相当于本地设备,添加本地的安全策略时,可以选择任何一个接口的地址作为过滤规则使用;
access-list admin permit tcp administrator any 192.168.0.1 adminport
admin:策略(ACL名称)
administrator:管理员IP组
SmartHammer(config)# ip-group administrator
SmartHammer(config-ip-group)# address 192.168.0.10
SmartHammer(config-ip-group)# address 192.168.1.11
SmartHammer(config-ip-group)# address 192.168.2.10
adminport:管理端口组
SmartHammer(config)# port-group adminport
SmartHammer(config-port-group)# port 23
SmartHammer(config-port-group)# port 443
应用这个策略:
SmartHammer(config)# local ip access-group admin
NAT配置:
定义一个外部合法地址池:
ip nat pool SM 202.99.8.2 202.99.8.200 netmask 255.255.255.0
PAT:转换成一个单一合法地址,
ip nat pool SM 202.99.8.1 202.99.8.1 netmask 255.255.255.255
定义NAT语句:
ip nat ge1 source list 10 interface
ge1:NAT名称
interface:PAT:转换成出接口地址
或者以下面的格式,转换成外部地址池:
ip nat Outside source list 10 pool SM //将内部地址nat为外部地址池内的地址
定义符合转换条件的内部地址:
access-list 10 permit ip 192.168.0.0/16
在外部接口下启用指定的NAT:
SmartHammer(config)# interface ge1
SmartHammer(config-if)# ip nat Outside
NAT的实现与ACL的实现类似,首先可以配置几条NAT规则链,在接口上没启用规则链之前,规则链并不起作用;
SmartHammer的NAT转换和路由器的使用方式存在一些不同,SmartHammer不用象路由器那样定义inside和outside接口,SmartHammer在接口数据转发的时候,会自动进行NAT转换处理,这种在接口下直接通过NAT的名字来启用 ,方便了NAT的配置管理,比如在不同的出接口启用不同的NAT转换;
NAT只是使用ACL作为条件匹配,应该尽量避免使用deny和any的关键字,尤其是使用any,SmartHammer把所有数据报文做源地址转换,包括本设备本身发出的数据包,所有使用时应该尽量使用permit关键字对于特定的网段进行设置;
定义一个外部合法地址池:
ip nat pool SM 202.99.8.2 202.99.8.200 netmask 255.255.255.0
PAT:转换成一个单一合法地址,
ip nat pool SM 202.99.8.1 202.99.8.1 netmask 255.255.255.255
定义NAT语句:
ip nat ge1 source list 10 interface
ge1:NAT名称
interface:PAT:转换成出接口地址
或者以下面的格式,转换成外部地址池:
ip nat Outside source list 10 pool SM //将内部地址nat为外部地址池内的地址
定义符合转换条件的内部地址:
access-list 10 permit ip 192.168.0.0/16
在外部接口下启用指定的NAT:
SmartHammer(config)# interface ge1
SmartHammer(config-if)# ip nat Outside
NAT的实现与ACL的实现类似,首先可以配置几条NAT规则链,在接口上没启用规则链之前,规则链并不起作用;
SmartHammer的NAT转换和路由器的使用方式存在一些不同,SmartHammer不用象路由器那样定义inside和outside接口,SmartHammer在接口数据转发的时候,会自动进行NAT转换处理,这种在接口下直接通过NAT的名字来启用 ,方便了NAT的配置管理,比如在不同的出接口启用不同的NAT转换;
NAT只是使用ACL作为条件匹配,应该尽量避免使用deny和any的关键字,尤其是使用any,SmartHammer把所有数据报文做源地址转换,包括本设备本身发出的数据包,所有使用时应该尽量使用permit关键字对于特定的网段进行设置;
静态地址转换 static NAT
ip nat Snat source static 192.168.1.10 202.99.8.10
ip nat Snat source static 192.168.1.11 202.99.8.11
ip nat Snat source static 192.168.1.10 202.99.8.10
ip nat Snat source static 192.168.1.11 202.99.8.11
另外,在一个NAT内,可以同时配置静态NAT和动态NAT
SHammer(config)# ip nat Snat source static 192.168.1.11 202.99.8.11 //静态的一对一转换
SHammer(config)# ip nat Snat source list 10 202.88.8.12 //其他符合条件的内部地址将转换成唯一的合法地址
最后别忘记了在端口上应用 :)
. SHammer(config)# ip nat Snat source static 192.168.1.11 202.99.8.11 //静态的一对一转换
SHammer(config)# ip nat Snat source list 10 202.88.8.12 //其他符合条件的内部地址将转换成唯一的合法地址
最后别忘记了在端口上应用 :)