防火墙与 SELinux¶
防火墙和 SELinux 属于高风险变更。远程服务器操作前应保留当前 SSH 会话,并准备回滚命令。
firewalld¶
# 查看状态
firewall-cmd --state
# 查看当前 zone
firewall-cmd --get-active-zones
# 查看规则
firewall-cmd --list-all
# 临时开放端口
sudo firewall-cmd --add-port=8080/tcp
# 永久开放端口
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
# 删除端口
sudo firewall-cmd --permanent --remove-port=8080/tcp
sudo firewall-cmd --reload
ufw¶
# 查看状态
sudo ufw status verbose
# 允许 SSH
sudo ufw allow 22/tcp
# 允许 HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 拒绝端口
sudo ufw deny 8080/tcp
iptables¶
# 查看规则
sudo iptables -L -n -v
# 备份规则
sudo iptables-save > iptables.backup
# 允许端口
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
高危提醒: iptables -F 会清空规则,可能导致服务暴露或远程连接中断。
nftables¶
# 查看规则
sudo nft list ruleset
# 查看表
sudo nft list tables
SELinux¶
# 查看状态
getenforce
sestatus
# 临时切换为 Permissive
sudo setenforce 0
# 临时切换为 Enforcing
sudo setenforce 1
查看 SELinux 拒绝记录:
sudo ausearch -m avc -ts recent
sudo journalctl | grep -i selinux
排查顺序¶
- 先确认服务是否监听:
ss -tulnp。 - 再确认本机访问是否正常:
curl 127.0.0.1:<port>。 - 再确认防火墙规则。
- 最后检查 SELinux 或安全中心策略。
高危提醒¶
- 不要为了排障长期关闭防火墙或 SELinux。
- 修改远程服务器防火墙前保留当前 SSH 会话。
- 生产环境建议先添加允许规则,再删除旧规则。
延伸阅读: 命令风险等级说明。