在Linux系统中,打开和配置防火墙需要根据系统所采用的防火墙管理工具来操作。当前主流的Linux防火墙管理工具主要有三种:iptables(传统内核级防火墙)、firewalld(CentOS/RHEL 7+及Fedora默认防火墙)和ufw(Ubuntu/Debian默认防火墙)。

首先介绍firewalld的配置方法,这是CentOS、RHEL、Rocky Linux等发行版的默认方案。查看防火墙状态使用命令 systemctl status firewalld 或 firewall-cmd --state。启动防火墙使用 systemctl start firewalld,设置开机自启用 systemctl enable firewalld。开放端口(如80端口)使用 firewall-cmd --zone=public --add-port=80/tcp --permanent,其中--permanent参数表示永久生效。开放服务(如HTTP)使用 firewall-cmd --zone=public --add-service=http --permanent。配置完成后必须重新加载使规则生效:firewall-cmd --reload。查看已开放端口使用 firewall-cmd --zone=public --list-ports,移除端口使用 firewall-cmd --zone=public --remove-port=80/tcp --permanent。
其次介绍ufw(Uncomplicated Firewall),这是Ubuntu和Debian系统的默认防火墙工具,本质是iptables的前端简化工具。查看状态使用 sudo ufw status verbose。启用防火墙使用 sudo ufw enable,禁用使用 sudo ufw disable。开放端口使用 sudo ufw allow 80/tcp,或指定服务名 sudo ufw allow http。限制访问(如限制SSH)使用 sudo ufw limit ssh。关闭端口使用 sudo ufw deny 80 或 sudo ufw delete allow 80。若要重置所有规则,使用 sudo ufw reset。ufw默认策略可通过 sudo ufw default deny incoming 和 sudo ufw default allow outgoing 设置。
再介绍iptables,这是Linux内核Netfilter框架的传统管理工具,适用于所有Linux发行版。查看规则使用 iptables -L -n -v(-n不解析域名,-v显示详细信息)。开放TCP端口80使用 iptables -A INPUT -p tcp --dport 80 -j ACCEPT。允许已建立连接使用 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT。允许回环接口使用 iptables -A INPUT -i lo -j ACCEPT。保存规则在CentOS中使用 service iptables save,在Ubuntu中使用 iptables-save > /etc/iptables/rules.v4。需注意iptables规则默认不持久化,重启后失效,需配合iptables-persistent等工具实现开机自动加载。
在操作防火墙时需特别注意:远程管理服务器时切勿轻易阻断SSH端口(默认22),否则可能导致连接中断无法远程登录。建议先放行SSH服务再应用其他限制规则。修改防火墙规则后,应使用 ssh -p 端口 用户@IP 另开会话验证连通性。生产环境中应遵循默认拒绝(default deny)原则,仅放行业务必需的端口与服务,并定期审计规则。另外,云服务器(如阿里云、腾讯云)除系统防火墙外还需在云控制台安全组中同步放行端口。

查看详情

查看详情