个别电脑上班时间要禁用业务系统?华为防火墙按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官方文档