华为防火墙配置-基于IP地址和端口的安全策略
目录
组网需求
数据规划
配置思路
操作步骤
结果验证
配置脚本
通过配置安全策略,实现基于IP地址、时间段以及服务(端口)的访问控制。
组网需求
如图1所示,某企业部署两台业务服务器,其中Server1通过TCP 8888端口对外提供服务,Server2通过UDP 6666端口对外提供服务。需要通过FW进行访问控制,8:00~17:00的上班时间段内禁止IP地址为10.1.1.2、10.2.1.2的两台PC使用这两台服务器对外提供的服务。其他PC在任何时间都可以使用这两台服务器对外提供的服务。
数据规划
项目 | 数据 | 说明 |
---|---|---|
GigabitEthernet 1/0/1 | IP地址:10.2.0.1/24 安全区域:dmz | - |
GigabitEthernet 1/0/2 | IP地址:10.1.1.1/24 安全区域:trust | - |
GigabitEthernet 1/0/3 | IP地址:10.2.1.1/24 安全区域:trust | - |
Server 1 | IP地址:10.2.0.10/24 端口:TCP 8888 | 通过非知名端口提供服务 |
Server 2 | IP地址:10.2.0.11/24 端口:UDP 6666 | 通过非知名端口提供服务 |
配置思路
本例的访问控制涉及到限制源IP、目的IP及端口、时间段,需要提前配置好地址集、服务集和时间段,然后配置安全策略引用这些限制条件。
-
配置源IP地址集,将几个不允许访问服务器的IP地址加入地址集。
配置安全策略时可以直接指定多个IP地址或地址段,但是对于零散的、不连续的地址建议配置为地址集,方便集中管理,而且也方便被其他策略复用。
因为策略的目的地址是单一的地址,所以这里没有配置目的IP的地址集,采用了配置安全策略时直接输入目的地址的方式。
-
配置两个自定义服务集,分别将两台服务器的非知名端口加入服务集。
本例中服务器使用的是非知名端口,必须配置自定义服务集,然后在安全策略中引用。
如果服务器通过知名端口(例如HTTP的80端口)提供的服务,可以在配置安全策略时直接使用预定义服务集(例如HTTP、FTP等)。
- 配置一个范围为上班时间(08:00~17:00)的时间段。
-
配置两条安全策略,分别限制IP地址为10.1.1.2和10.2.1.2的PC对两台服务器的访问。
-
本例中除了两台特殊的PC外,整个trust区域的PC都可以访问服务器,所以先配置禁止两台PC访问服务器的安全策略,然后再开放trust到dmz的域间访问。
系统默认存在一条缺省安全策略(条件均为any,动作默认为禁止)。如果需要控制只有某些IP可以访问服务器,则需要保持缺省安全策略的禁止动作,然后配置允许哪些IP访问服务器的安全策略。
另外安全策略是按照配置顺序匹配的,注意先配置细化的后配置宽泛的策略。例如需要控制在10.1.1.0/24网段中,除了某几个IP不能访问服务器外,其他的IP都可以访问。此时需要先配置拒绝特殊IP通过的安全策略,然后再配置允许整个网段通过的安全策略。
操作步骤
- 配置接口IP地址和安全区域,完成网络基本参数配置。
-
配置GigabitEthernet 1/0/1接口IP地址,将接口加入dmz域。 <FW> system-view [FW] interface GigabitEthernet 1/0/1 [FW-GigabitEthernet1/0/1] ip address 10.2.0.1 24 [FW-GigabitEthernet1/0/1] quit [FW] firewall zone dmz [FW-zone-dmz] add interface GigabitEthernet 1/0/1 [FW-zone-dmz] quit
- 配置GigabitEthernet 1/0/2接口IP地址,将接口加入trust域。
[FW] interface GigabitEthernet 1/0/2 [FW-GigabitEthernet1/0/2] ip address 10.1.1.1 24 [FW-GigabitEthernet1/0/2] quit [FW] firewall zone trust [FW-zone-trust] add interface GigabitEthernet 1/0/2 [FW-zone-trust] quit
- 配置GigabitEthernet 1/0/3接口IP地址,将接口加入trust域。
[FW] interface GigabitEthernet 1/0/3 [FW-GigabitEthernet1/0/3] ip address 10.2.1.1 24 [FW-GigabitEthernet1/0/3] quit [FW] firewall zone trust [FW-zone-trust] add interface GigabitEthernet 1/0/3 [FW-zone-trust] quit
-
- 配置名称为server_deny的地址集,将几个不允许访问服务器的IP地址加入地址集。
[FW] ip address-set server_deny type object [FW-object-address-set-server_deny] address 10.1.1.2 mask 32 [FW-object-address-set-server_deny] address 10.2.1.2 mask 32 [FW-object-address-set-server_deny] quit
- 配置名称为time_deny的时间段,指定PC不允许访问服务器的时间。
[FW] time-range time_deny [FW-time-range-time_deny] period-range 08:00:00 to 17:00:00 mon tue wed thu fri sat sun [FW-time-range-time_deny] quit
- 分别为Server1和Server2配置自定义服务集server1_port和server2_port,将服务器的非知名端口加入服务集。
[FW] ip service-set server1_port type object [FW-object-service-set-server1_port] service protocol TCP source-port 0 to 65535 destination-port 8888 [FW-object-service-set-server1_port] quit [FW] ip service-set server2_port type object [FW-object-service-set-server2_port] service protocol UDP source-port 0 to 65535 destination-port 6666 [FW-object-service-set-server2_port] quit
- 配置安全策略规则,引用之前配置的地址集、时间段及服务集。
未配置的匹配条件缺省值均为any。 # 限制PC使用Server1对外提供的服务的安全策略 [FW] security-policy [FW-policy-security] rule name policy_sec_deny1 [FW-policy-security-rule-policy_sec_deny1] source-zone trust [FW-policy-security-rule-policy_sec_deny1] destination-zone dmz [FW-policy-security-rule-policy_sec_deny1] source-address address-set server_deny [FW-policy-security-rule-policy_sec_deny1] destination-address 10.2.0.10 32 [FW-policy-security-rule-policy_sec_deny1] service server1_port [FW-policy-security-rule-policy_sec_deny1] time-range time_deny [FW-policy-security-rule-policy_sec_deny1] action deny [FW-policy-security-rule-policy_sec_deny1] quit # 限制PC使用Server2对外提供的服务的安全策略 [FW-policy-security] rule name policy_sec_deny2 [FW-policy-security-rule-policy_sec_deny2] source-zone trust [FW-policy-security-rule-policy_sec_deny2] destination-zone dmz [FW-policy-security-rule-policy_sec_deny2] source-address address-set server_deny [FW-policy-security-rule-policy_sec_deny2] destination-address 10.2.0.11 32 [FW-policy-security-rule-policy_sec_deny2] service server2_port [FW-policy-security-rule-policy_sec_deny2] time-range time_deny [FW-policy-security-rule-policy_sec_deny2] action deny [FW-policy-security-rule-policy_sec_deny2] quit # 允许PC使用Server1对外提供的服务的安全策略 [FW-policy-security] rule name policy_sec_permit3 [FW-policy-security-rule-policy_sec_permit3] source-zone trust [FW-policy-security-rule-policy_sec_permit3] destination-zone dmz [FW-policy-security-rule-policy_sec_permit3] destination-address 10.2.0.10 32 [FW-policy-security-rule-policy_sec_permit3] service server1_port [FW-policy-security-rule-policy_sec_permit3] action permit [FW-policy-security-rule-policy_sec_permit3] quit # 允许PC使用Server2对外提供的服务的安全策略 [FW-policy-security] rule name policy_sec_permit4 [FW-policy-security-rule-policy_sec_permit4] source-zone trust [FW-policy-security-rule-policy_sec_permit4] destination-zone dmz [FW-policy-security-rule-policy_sec_permit4] destination-address 10.2.0.11 32 [FW-policy-security-rule-policy_sec_permit4] service server2_port [FW-policy-security-rule-policy_sec_permit4] action permit [FW-policy-security-rule-policy_sec_permit4] quit [FW-policy-security] quit
结果验证
在08:00到17:00时间段内,IP地址为10.1.1.2、10.2.1.2的两台PC无法使用这两台服务器对外提供的服务,在其他时间段可以使用。其他PC在任何时间都可以使用这两台服务器对外提供的服务。
配置脚本
以下只给出与本例有关的脚本。
#
ip address-set server_deny type object
address 0 10.1.1.2 mask 32
address 1 10.2.1.2 mask 32
#
ip service-set server1_port type object
service 0 protocol tcp source-port 0 to 65535 destination-port 8888
#
ip service-set server2_port type object
service 0 protocol udp source-port 0 to 65535 destination-port 6666
#
time-range time_deny
period-range 08:00:00 to 17:00:00 daily
#
interface GigabitEthernet 1/0/1
undo shutdown
ip address 10.2.0.1 255.255.255.0
#
interface GigabitEthernet 1/0/2
undo shutdown
ip address 10.1.1.1 255.255.255.0
#
interface GigabitEthernet 1/0/3
undo shutdown
ip address 10.2.1.1 255.255.255.0
#
firewall zone trust
set priority 85
add interface GigabitEthernet 1/0/2
add interface GigabitEthernet 1/0/3
#
firewall zone dmz
set priority 50
add interface GigabitEthernet 1/0/1
#
security-policy
rule name policy_sec_deny1
source-zone trust
destination-zone dmz
source-address address-set server_deny
destination-address 10.2.0.10 32
service server1_port
time-range time_deny
action deny
rule name policy_sec_deny2
source-zone trust
destination-zone dmz
source-address address-set server_deny
destination-address 10.2.0.11 32
service server2_port
time-range time_deny
action deny
rule name policy_sec_permit3
source-zone trust
destination-zone dmz
destination-address 10.2.0.10 32
service server1_port
action permit
rule name policy_sec_permit4
source-zone trust
destination-zone dmz
destination-address 10.2.0.11 32
service server2_port
action permit
#
return