上一篇
linux如何开通防火墙
- Linux
- 2025-07-24
- 9
在Linux中,开通防火墙可通过以下方式:使用
service iptables start
即时启用,或
chkconfig iptables on
设为开机自启;若用firewalld,则执行
systemctl start firewalld
。
在Linux系统中开通防火墙是保障网络安全的重要措施,不同的Linux发行版和防火墙工具有不同的配置方法,以下是针对常用防火墙工具的详细操作指南,涵盖iptables、firewalld、UFW等主流方案,以及规则管理与常见问题解答。
iptables防火墙配置
iptables是Linux经典的防火墙工具,适用于大多数发行版,以下是基础配置流程:
-
清空现有规则
sudo iptables -F # 清除所有链的规则 sudo iptables -X # 清除自定义链
-
设置默认策略
sudo iptables -P INPUT DROP # 默认拒绝所有输入流量 sudo iptables -P FORWARD DROP # 默认拒绝转发流量
-
添加基础规则
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 允许已建立连接的流量 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 开放SSH端口(根据需求调整)
-
保存规则
不同发行版的保存路径可能不同:- CentOS/RHEL:
sudomicro /etc/sysconfig/iptables -w sudo systemctl save iptables
- Ubuntu/Debian:
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
- CentOS/RHEL:
-
启用防火墙服务
sudo systemctl enable iptables sudo systemctl start iptables
firewalld防火墙管理
firewalld是CentOS/RHEL系列的默认防火墙工具,支持动态配置和区域(zone)概念。
-
启动与启用服务
sudo systemctl start firewalld sudo systemctl enable firewalld
-
查看当前区域与规则
sudo firewall-cmd --get-active-zones sudo firewall-cmd --list-all # 查看当前区域的规则
-
开放端口与服务
sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload # 应用更改
-
配置默认区域
sudo firewall-cmd --set-default-zone=public
UFW(Uncomplicated Firewall)配置
UFW是Ubuntu/Debian系列的简化防火墙工具,基于iptables。
-
安装与启用
sudo apt install ufw # 安装UFW sudo ufw enable # 启用防火墙 sudo ufw default deny # 设置默认策略为拒绝
-
开放端口与服务
sudo ufw allow 22/tcp # 开放SSH端口 sudo ufw allow http # 开放HTTP服务 sudo ufw allow from 192.168.1.0/24 # 允许特定子网访问
-
检查状态与日志
sudo ufw status # 查看当前规则 sudo ufw logging on # 开启日志记录
防火墙规则管理核心操作
操作目标 | iptables命令 | firewalld命令 | UFW命令 |
---|---|---|---|
开放端口22 | sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT |
sudo firewall-cmd --permanent --add-port=22/tcp && sudo firewall-cmd --reload |
sudo ufw allow 22/tcp |
拒绝特定IP访问 | sudo iptables -A INPUT -s 192.168.1.100 -j DROP |
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' |
sudo ufw deny from 192.168.1.100 |
允许已建立连接的数据包 | sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT |
默认允许,无需额外配置 | 默认允许,无需额外配置 |
限制SYN洪水攻击 | sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT |
需通过firewalld-cmd 自定义规则 |
需手动编写iptables规则 |
常见问题与解决方案
FAQs
如何验证防火墙是否生效?
- 方法1:尝试从外部设备访问被防火墙拒绝的端口(如关闭SSH后测试端口22)。
- 方法2:使用工具检查规则:
sudo iptables -L -v # iptables sudo firewall-cmd --list-all # firewalld sudo ufw status # UFW
如何迁移防火墙规则至另一台服务器?
- iptables:
sudo iptables-save > rules.v4 scp rules.v4 target_server:/etc/iptables/ sudo systemctl restart iptables
- firewalld:
sudo firewall-cmd --runtime-to-permanent sudo firewall-cmd --save-all scp /etc/firewalld/zones/ target_server:/etc/firewalld/zones/
- UFW:
sudo ufw export default > ufw-default.conf sudo ufw export routes > ufw-routes.conf scp .conf target_server:/etc/ufw/
注意事项
- 规则顺序:防火墙规则按顺序匹配,优先度高的规则应放在前面。
- 服务冲突:开放端口前需确保对应服务(如SSH、HTTPD)已启动。
- 持久化配置:未保存规则将在重启后丢失(如iptables需手动保存)。
- 安全建议:最小化开放端口,禁用不必要的服务,定期审计规则。
通过以上配置,可灵活管理Linux防火墙以满足不同场景的安全需求,建议结合系统日志(如/var/log/messages
)监控防火墙运行状态,及时