Linux防火墙安装与配置指南
Linux防火墙是保障系统安全的第一道防线,它通过控制网络流量进出,防止未授权访问和恶意攻击,本文将以主流的防火墙工具iptables和firewalld为例,详细介绍Linux防火墙的安装、配置及管理方法,帮助用户构建安全可靠的网络环境。

防火墙工具选择:iptables与firewalld
Linux系统中最常用的防火墙工具包括iptables和firewalld。iptables是传统的Linux内核防火墙,功能强大且灵活,适合需要精细控制规则的场景;而firewalld是CentOS 7及更高版本默认的动态防火墙管理工具,支持区域(Zone)概念,更适合动态管理网络流量,用户可根据系统版本和需求选择合适的工具。
安装iptables防火墙
在基于Debian/Ubuntu的系统上,iptables通常已预装,若未安装可通过以下命令安装:
sudo apt update && sudo apt install iptables -y
在基于RHEL/CentOS的系统上,执行:
sudo yum install iptables-services -y
安装完成后,启动并设置开机自启:
sudo systemctl start iptables sudo systemctl enable iptables
iptables基础配置
iptables通过表(Table)和链(Chain)管理规则,默认使用filter表,包含INPUT(入站)、OUTPUT(出站)和FORWARD(转发)三条链,以下为常用配置示例:
-
查看当前规则
sudo iptables -L -n -v
-
设置默认策略
默认拒绝所有入站流量,允许出站流量:sudo iptables -P INPUT DROP sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD DROP
-
允许特定端口
允许SSH(22端口)和HTTP(80端口)流量:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-
保存规则
在Debian/Ubuntu系统中安装iptables-persistent保存规则:sudo apt install iptables-persistent -y sudo netfilter-persistent save
在RHEL/CentOS系统中:
sudo service iptables save
安装与配置firewalld
对于CentOS 7+、RHEL 7+或Fedora系统,firewalld已默认安装,若需手动安装:
sudo yum install firewalld -y
启动并启用服务:
sudo systemctl start firewalld sudo systemctl enable firewalld
firewalld基础操作
-
查看防火墙状态
sudo firewall-cmd --state
-
查看开放的服务
sudo firewall-cmd --list-services
-
永久开放端口
添加SSH服务:sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
-
自定义区域规则
将接口加入trusted区域(允许所有流量):
sudo firewall-cmd --permanent --zone=trusted --add-interface=eth0
高级安全策略
-
限制访问频率
使用iptables的recent模块防止暴力破解:sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 3 -j DROP
-
日志记录
为DROP规则添加日志:sudo iptables -A INPUT -j LOG --log-prefix "DROP: " --log-level 4
-
NAT配置
若需配置SNAT(源地址转换):sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
防火墙维护与故障排查
-
规则管理
- 删除规则:
sudo iptables -D INPUT 1(删除第一条规则) - 清空规则:
sudo iptables -F
- 删除规则:
-
日志分析
查看防火墙日志:sudo tail -f /var/log/syslog | grep "DROP"
-
常见问题
- 若无法访问服务,检查
INPUT链规则是否允许相关端口。 - 确认
firewalld或iptables服务状态,避免冲突(两者同时运行时需谨慎)。
- 若无法访问服务,检查
Linux防火墙是系统安全的核心组件,合理配置iptables或firewalld能有效提升系统防护能力,用户需根据实际需求选择工具,结合默认策略、端口开放、高级规则等手段构建多层次防御体系,定期审查日志和更新规则,确保防火墙策略与安全需求同步,通过本文的指导,即使是初学者也能快速掌握Linux防火墙的安装与配置,为服务器安全保驾护航。




















