在麒麟操作系统上部署服务时,你是否遇到过这样的困扰:明明已经启用了防火墙,但外部的连接请求却总是被无情地拒绝?这通常不是防火墙本身的问题,而是因为系统的默认入站策略被设置为“拒绝”,而你还没有为需要开放的服务添加上明确的“允许”规则。掌握麒麟防火墙入站规则配置方法,是确保服务可访问的关键。

别担心,解决这个问题有多种途径。不同的工具和方法适用于不同的场景,从简单的端口开放到精细化的安全策略,你可以根据实际需求灵活选择。下面就来详细梳理一下这五种主流的麒麟OS安全规则配置方法。
一、使用firewalld配置入站端口规则
如果你习惯使用firewalld这套动态防火墙管理工具,那么通过它来放行端口是最直接的方式。这种方法通过向默认区域(比如public)永久添加规则来实现,非常适合需要开放特定TCP或UDP端口的场景,例如搭建Web服务、文件共享或是运行某个自定义应用。这是最常见的麒麟操作系统防火墙端口开放方式。
首先,确认firewalld服务正在后台运行:sudo systemctl status firewalld
接着,就可以添加规则了。假设你需要为LocalSend这类文件传输工具开放53317端口,可以依次执行以下命令:
永久开放TCP协议的53317端口:sudo firewall-cmd --permanent --add-port=53317/tcp
如果需要,再永久开放UDP协议的同一端口:sudo firewall-cmd --permanent --add-port=53317/udp
规则添加后,必须重载配置才能生效:sudo firewall-cmd --reload
最后,验证一下端口是否已经在允许列表中:sudo firewall-cmd --query-port=53317/tcp,如果返回“yes”,就表示成功添加了麒麟防火墙入站白名单规则。
二、使用ufw设置入站默认策略与端口规则
对于追求简洁的桌面用户,Uncomplicated Firewall (ufw) 是个不错的选择。它的设计哲学是“默认拒绝一切入站,只允许明确放行的”,这本身就是一种很好的安全基线。利用ufw配置麒麟系统入站规则,可以快速实现端口管控。
启用ufw并查看状态:sudo ufw enable
将默认的入站策略设置为拒绝,这是安全的第一步:sudo ufw default deny incoming
然后,开始逐条添加你需要的规则。例如,允许SSH远程管理:sudo ufw allow 22/tcp
允许HTTP服务:sudo ufw allow 80/tcp
或者允许特定的UDP端口,比如DNS查询:sudo ufw allow 53/udp
这种方式规则清晰,管理起来非常直观,非常适合初学者掌握麒麟OS防火墙入站策略。
三、使用kylin-firewall添加带源限制的入站规则
在信创或对安全审计有严格要求的场景下,麒麟系统自带的KYSEC安全子系统提供了更精细的控制能力。通过kylin-firewall命令,你可以实现基于源IP地址的访问控制。这是麒麟专属的防火墙入站规则配置工具,适合企业级安全需求。
首先确认服务状态:sudo systemctl status kylin-firewall
假设你只想让内部网络(192.168.1.0/24)访问服务器的80端口,可以这样添加规则:sudo kylin-firewall --add-rule "allow tcp in port 80 from 192.168.1.0/24"
如果某个端口(如6800)需要对所有地址开放,则省略来源:sudo kylin-firewall --add-rule "allow tcp in port 6800"
规则配置好后,记得保存并立即应用:
sudo kylin-firewall --save-rules
sudo kylin-firewall --apply-rules
四、使用iptables直接配置INPUT链入站规则
如果你需要终极的灵活性,或者进行复杂的网络调试,直接操作底层的iptables规则是最高效的方式。这让你能完全控制数据包过滤的每一个环节。对于高级用户,通过iptables配置麒麟系统防火墙入站规则,可以实现定制化安全策略。
通常,一个基础的、安全的iptables入站策略会包含以下几步:
首先,允许所有本地回环接口的通信,这是许多本地服务正常工作的基础:sudo iptables -A INPUT -i lo -j ACCEPT
接着,允许所有已建立的或相关的连接,这能确保你发起的对外请求的回应包不会被阻断:sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
然后,放行新的入站连接,例如SSH的22端口:sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
最后,在规则链的末尾,拒绝所有其他未匹配的入站连接,形成“白名单”机制:sudo iptables -A INPUT -j DROP
为了防止重启后规则丢失,记得将它们保存到持久化文件中:sudo iptables-save > /etc/iptables/rules.v4
五、通过firewalld启用预定义服务实现入站放行
如果你觉得记端口号太麻烦,或者担心开放一个服务需要多个端口时会有遗漏,那么firewalld的“服务”功能就派上用场了。它内置了许多常见服务的定义,一键即可开放所有必需的端口和协议。这是最便捷的麒麟操作系统防火墙入站规则配置方法之一。
例如,要允许SSH服务,它会自动处理好22端口及相关设置:sudo firewall-cmd --add-service=ssh --permanent
要部署网站,同时开放HTTP和HTTPS服务:sudo firewall-cmd --add-service=http --permanent && sudo firewall-cmd --add-service=https --permanent
需要配置Samba文件共享:sudo firewall-cmd --add-service=samba --permanent
同样,修改后需要重载:sudo firewall-cmd --reload
你可以随时查看当前已启用的所有服务:sudo firewall-cmd --list-services
以上就是五种在麒麟操作系统中配置防火墙入站规则的核心方法。从便捷的端口放行到精细的源IP控制,再到底层的直接管理,总有一种能契合你的运维习惯和安全需求。关键在于理解其原理,并根据实际场景选择最合适的工具,从而高效管理麒麟OS防火墙入站白名单。
