在统信UOS Server中应使用firewall-cmd配置firewalld策略:先启动并启用服务,再基于public区域开放端口或服务,结合富规则实现IP级精细控制,最后重载并验证规则生效。

如果您在统信UOS系统中需对网络流量实施区域化、服务化策略控制,而系统已安装并启用了firewalld服务(常见于UOS Server版本),则应使用firewall-cmd命令进行规则配置。以下是具体操作步骤:
一、确认并启动firewalld服务
firewalld服务是动态管理防火墙区域与富规则的基础运行环境,必须处于active状态才能接受后续配置指令。
1、检查firewalld当前运行状态:sudo systemctl status firewalld
2、若显示inactive (dead)或未安装,先执行安装命令:sudo apt install -y firewalld
3、启动firewalld服务:sudo systemctl start firewalld
4、设置开机自启:sudo systemctl enable firewalld
5、验证服务是否正常运行:sudo firewall-cmd --state,返回running即成功。
二、查看并确定默认区域
firewalld通过“区域(zone)”划分不同安全等级的网络环境,规则需绑定至具体区域才可生效;public区域为UOS Server默认激活区域,适用于多数外网接口场景。
1、列出所有已启用的区域:sudo firewall-cmd --get-active-zones
2、查看public区域当前完整配置:sudo firewall-cmd --zone=public --list-all
3、若public未激活,可手动将网卡绑定至该区域:sudo firewall-cmd --set-default-zone=public
4、确认默认区域已设定:sudo firewall-cmd --get-default-zone
三、开放指定端口(TCP/UDP)
端口开放需使用--permanent参数确保重启后持续生效,且必须配合--reload命令使规则载入运行时内核策略。
1、向public区域永久添加HTTP端口(80/TCP):sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
2、向public区域永久添加HTTPS端口(443/TCP):sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
3、向public区域永久添加DNS端口(53/UDP):sudo firewall-cmd --zone=public --add-port=53/udp --permanent
4、向public区域永久添加端口范围(如5000–6000/TCP):sudo firewall-cmd --zone=public --add-port=5000-6000/tcp --permanent
5、重新加载全部配置以激活新规则:sudo firewall-cmd --reload
四、按服务名开放标准协议
firewalld内置服务定义文件(位于/usr/lib/firewalld/services/),支持通过语义化服务名替代端口号,提升可读性与兼容性。
1、查看系统预置服务列表:sudo firewall-cmd --get-services
2、永久启用SSH服务(自动映射22/TCP):sudo firewall-cmd --zone=public --add-service=ssh --permanent
3、永久启用MySQL服务(自动映射3306/TCP):sudo firewall-cmd --zone=public --add-service=mysql --permanent
4、永久启用VNC服务(自动映射5900/TCP):sudo firewall-cmd --zone=public --add-service=vnc-server --permanent
5、执行重载操作应用变更:sudo firewall-cmd --reload
五、配置富规则实现IP级精细控制
富规则(rich rule)支持基于源IP、目标端口、协议、连接状态等多维度条件组合匹配,适用于白名单访问、临时放行或日志审计等高阶场景。
1、允许特定IPv4地址(192.168.1.100)访问80端口:sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port="80" protocol="tcp" accept' --permanent
2、拒绝来自10.0.30.5的所有TCP连接请求:sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.30.5" reject' --permanent
3、允许192.168.1.0/24子网访问3389端口(RDP远程桌面):sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3389" protocol="tcp" accept' --permanent
4、记录并丢弃TTL值为1的入站ICMP包(用于反扫描):sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" icmp-type name="echo-request" ttl-le 1 log prefix="ttl1-scan" level="info" drop' --permanent
5、完成全部富规则添加后执行重载:sudo firewall-cmd --reload
六、验证与调试端口规则
配置完成后需即时验证规则是否正确载入运行时策略,并确认对应端口在网络层面可达,避免因语法错误或未重载导致策略失效。
1、列出public区域当前所有开放端口:sudo firewall-cmd --zone=public --list-ports
2、查询某端口(如8080/TCP)是否已被开放:sudo firewall-cmd --query-port=8080/tcp
3、查询某服务(如http)是否已启用:sudo firewall-cmd --query-service=http
4、查看所有富规则详情:sudo firewall-cmd --zone=public --list-rich-rules
5、检查运行时实际生效的完整策略快照:sudo firewall-cmd --zone=public --list-all

















