上一篇                     
               
			  linux如何开通防火墙
- Linux
 - 2025-07-24
 - 4514
 
 在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)监控防火墙运行状态,及时
			
			
			
			
			
			
			
			