个别电脑上班时间要禁用业务系统?华为防火墙按IP端口时段做策略管控
公司里常有这种管控需求:业务服务器上架了,大多数员工正常使用,但个别电脑要在上班时间段禁掉访问——比如交接中的工位、外部驻场人员的终端,下班后放开;同时其他任何电脑不受影响。这类"按人、按业务、按时段"的三维管控,在防火墙上用一条安全策略就能把三个条件拼在一起:谁(IP 地址对象)、用什么(端口服务)、什么时候(时间段),禁得精准、放得干净。华为官方文档有一套完整的 CLI 举例——配置基于IP地址和端口的安全策略,本篇按这套示例从地址对象、时间段、自定义服务一路配到四条策略规则,命令逐段给出。
本文的组网需求、配置思路与命令步骤,整理自华为官方发布的典型配置案例,参数可直接参考使用。
组网需求
组网中有两台业务服务器,其中Server1通过TCP 8888端口提供服务,Server2通过UDP 6666端口提供服务。需要通过设备DeviceA进行访问控制,8:00~17:00的时间段内禁止IP地址为10.1.1.2、10.2.1.2的两台PC使用这两台服务器提供的服务。其他PC在任何时间都可以访问这两台服务器。
本例中interface1,interface2和interface3分别代表GE0/0/1,GE0/0/2和GE0/0/3。
配置思路
先把"禁谁、禁什么、禁多久"做成三样东西,再拼进策略:
- 地址对象 server_deny:装进两台受限 PC 的 IP(10.1.1.2、10.2.1.2),两条禁用规则共用一份。
- 自定义服务 server1_port、server2_port:分别对应 Server1 的 TCP 8888 与 Server2 的 UDP 6666。
- 时间段 time_deny:圈定每天 08:00 到 17:00。
然后按"先细化、后宽泛"的顺序配四条规则:两条 deny 挡住受限 PC 在时段内访问两台服务器,两条 permit 放行其他所有 PC 的正常访问。
操作步骤
第一步,配置接口IP地址和安全区域。配置GE0/0/1接口IP地址,将接口加入dmz域:
<HUAWEI> system-view
[HUAWEI] sysname DeviceA
[DeviceA] interface ge 0/0/1
[DeviceA-GE0/0/1] undo portswitch
[DeviceA-GE0/0/1] ip address 10.2.0.1 24
[DeviceA-GE0/0/1] quit
[DeviceA] firewall zone dmz
[DeviceA-zone-dmz] add interface ge 0/0/1
[DeviceA-zone-dmz] quit
配置GE0/0/2接口IP地址,将接口加入trust域:
[DeviceA] interface ge 0/0/2
[DeviceA-GE0/0/2] undo portswitch
[DeviceA-GE0/0/2] ip address 10.1.1.1 24
[DeviceA-GE0/0/2] quit
[DeviceA] firewall zone trust
[DeviceA-zone-trust] add interface ge 0/0/2
[DeviceA-zone-trust] quit
配置GE0/0/3接口IP地址,将接口加入trust域:
[DeviceA] interface ge 0/0/3
[DeviceA-GE0/0/3] undo portswitch
[DeviceA-GE0/0/3] ip address 10.2.1.1 24
[DeviceA-GE0/0/3] quit
[DeviceA] firewall zone trust
[DeviceA-zone-trust] add interface ge 0/0/3
[DeviceA-zone-trust] quit
第二步,配置名称为server_deny的地址对象,将不允许访问服务器的IP地址加入地址对象:
[DeviceA] ip address-set server_deny type object
[DeviceA-object-address-set-server_deny] address 0 10.1.1.2 mask 32
[DeviceA-object-address-set-server_deny] address 1 10.2.1.2 mask 32
[DeviceA-object-address-set-server_deny] quit
第三步,配置名称为time_deny的时间段,为特定PC不允许访问服务器的时间:
[DeviceA] time-range time_deny 08:00 to 17:00 daily
第四步,分别为Server1和Server2配置自定义服务server1_port和server2_port,将服务器的非知名端口加入服务:
[DeviceA] ip service-set server1_port type object
[DeviceA-object-service-set-server1_port] service protocol TCP source-port 0 to 65535 destination-port 8888
[DeviceA-object-service-set-server1_port] quit
[DeviceA] ip service-set server2_port type object
[DeviceA-object-service-set-server2_port] service protocol UDP source-port 0 to 65535 destination-port 6666
[DeviceA-object-service-set-server2_port] quit
如果服务器通过知名端口(例如HTTP的80端口)提供的服务,可以在配置安全策略时直接使用预定义服务集(例如HTTP、FTP等)。
第五步,配置安全策略规则,引用之前配置的地址对象、时间段和服务。
配置限制特定PC使用Server1对外提供的服务的安全策略:
[DeviceA] security-policy
[DeviceA-policy-security] rule name policy_sec_deny1
[DeviceA-policy-security-rule-policy_sec_deny1] source-zone trust
[DeviceA-policy-security-rule-policy_sec_deny1] destination-zone dmz
[DeviceA-policy-security-rule-policy_sec_deny1] source-address address-set server_deny
[DeviceA-policy-security-rule-policy_sec_deny1] destination-address 10.2.0.10 32
[DeviceA-policy-security-rule-policy_sec_deny1] service server1_port
[DeviceA-policy-security-rule-policy_sec_deny1] time-range time_deny
[DeviceA-policy-security-rule-policy_sec_deny1] action deny
[DeviceA-policy-security-rule-policy_sec_deny1] quit
配置限制特定PC使用Server2对外提供的服务的安全策略:
[DeviceA-policy-security] rule name policy_sec_deny2
[DeviceA-policy-security-rule-policy_sec_deny2] source-zone trust
[DeviceA-policy-security-rule-policy_sec_deny2] destination-zone dmz
[DeviceA-policy-security-rule-policy_sec_deny2] source-address address-set server_deny
[DeviceA-policy-security-rule-policy_sec_deny2] destination-address 10.2.0.11 32
[DeviceA-policy-security-rule-policy_sec_deny2] service server2_port
[DeviceA-policy-security-rule-policy_sec_deny2] time-range time_deny
[DeviceA-policy-security-rule-policy_sec_deny2] action deny
[DeviceA-policy-security-rule-policy_sec_deny2] quit
配置允许其他PC使用Server1对外提供的服务的安全策略:
[DeviceA-policy-security] rule name policy_sec_permit3
[DeviceA-policy-security-rule-policy_sec_permit3] source-zone trust
[DeviceA-policy-security-rule-policy_sec_permit3] destination-zone dmz
[DeviceA-policy-security-rule-policy_sec_permit3] service server1_port
[DeviceA-policy-security-rule-policy_sec_permit3] action permit
[DeviceA-policy-security-rule-policy_sec_permit3] quit
配置允许其他PC使用Server2对外提供的服务的安全策略:
[DeviceA-policy-security] rule name policy_sec_permit4
[DeviceA-policy-security-rule-policy_sec_permit4] source-zone trust
[DeviceA-policy-security-rule-policy_sec_permit4] destination-zone dmz
[DeviceA-policy-security-rule-policy_sec_permit4] service server2_port
[DeviceA-policy-security-rule-policy_sec_permit4] action permit
[DeviceA-policy-security-rule-policy_sec_permit4] quit
[DeviceA-policy-security] quit
安全策略是按照配置顺序匹配的,注意先配置细化的后配置宽泛的策略。
检查配置结果
在08:00到17:00时间段内,IP地址为10.1.1.2、10.2.1.2的两台PC无法使用这两台服务器对外提供的服务,在其他时间段可以使用。其他PC在任何时间都可以使用这两台服务器对外提供的服务。
验证时可以拿受限 PC 和正常 PC 各一台,在时段内外各试一次两台服务器的业务端口,四种组合的结果与上面四条规则一一对应,就说明策略顺序和匹配都没配错。
配置脚本
#
sysname DeviceA
#
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 08:00 to 17:00 daily
#
interface GE0/0/1
ip address 10.2.0.1 255.255.255.0
#
interface GE0/0/2
ip address 10.1.1.1 255.255.255.0
#
interface GE0/0/3
ip address 10.2.1.1 255.255.255.0
#
firewall zone trust
set priority 85
add interface GE0/0/2
add interface GE0/0/3
#
firewall zone dmz
set priority 50
add interface GE0/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 mask 255.255.255.255
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 mask 255.255.255.255
service server2_port
time-range time_deny
action deny
rule name policy_sec_permit3
source-zone trust
destination-zone dmz
service server1_port
action permit
rule name policy_sec_permit4
source-zone trust
destination-zone dmz
service server2_port
action permit
#
return
脚本里能看到对象化的好处:address-set server_deny 被两条 deny 规则引用,service server1_port/server2_port 同时出现在 deny 与 permit 规则里,time-range time_deny 只挂在 deny 上——permit 不带时间段,所以其他 PC 全天可访问。
注意事项
- 规则顺序决定成败:安全策略按配置顺序匹配,细化程度高的 deny 必须排在宽泛的 permit 前面,顺序颠倒会让受限 PC 先命中 permit 而绕过限制。
- 非知名端口要走自定义服务:Server1 的 TCP 8888、Server2 的 UDP 6666 不在预定义服务集里,先建 server1_port、server2_port 再引用;用知名端口的服务可直接引用 HTTP、FTP 等预定义服务集。
- 时间段语法:
time-range time_deny 08:00 to 17:00 daily表示每天同一时段生效,改时段只动这一条。 - 受限名单集中管理:后续要增加或移出受限电脑,改地址对象 server_deny 一处即可,两条 deny 规则自动跟着变。
策略条目越加越多之后,容易出问题的往往不是单条规则,而是顺序和遗漏,承接这类整改前习惯先把现网全量策略导出留底,再逐条往上加,诚鑫致达科技在这类策略梳理上有一套自己的复核清单。各厂商设备的命令与默认参数存在差异,本文步骤与命令均出自华为官方文档,操作前请核对你的设备型号与软件版本。
源:华为USG防火墙6000F-S官方文档