在 CentOS 系统中,使用 iptables
命令可以修改防火墙的默认策略。以下是一些基本步骤来修改默认策略:
1. 查看当前的 iptables
规则
首先,你可以查看当前的 iptables
规则,以便了解现有的配置:
sudo iptables -L -n -v
2. 修改默认策略
你可以通过以下命令来修改默认策略:
修改 INPUT 链的默认策略
sudo iptables -P INPUT DROP
修改 FORWARD 链的默认策略
sudo iptables -P FORWARD DROP
修改 OUTPUT 链的默认策略
sudo iptables -P OUTPUT ACCEPT
3. 添加允许规则
在修改默认策略后,你需要添加一些允许规则来确保必要的流量可以通过防火墙。例如:
允许本地回环接口的流量
sudo iptables -A INPUT -i lo -j ACCEPT
允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允许 SSH 连接(假设 SSH 监听在默认端口 22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许 HTTP 和 HTTPS 连接
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
4. 保存 iptables
规则
修改完规则后,你需要保存这些规则,以便在系统重启后仍然有效。CentOS 7 及以上版本使用 firewalld
服务来管理防火墙规则,而 iptables
规则通常不会自动保存。你可以使用以下命令来保存 iptables
规则:
sudo service iptables save
或者,你可以手动将规则保存到一个文件中:
sudo iptables-save > /etc/sysconfig/iptables
5. 重启防火墙服务
如果你使用的是 firewalld
服务,可以重启该服务以应用新的规则:
sudo systemctl restart firewalld
如果你使用的是 iptables
,通常不需要重启服务,因为规则已经保存。
注意事项
- 修改默认策略时要非常小心,确保不会阻止必要的流量。
- 在生产环境中,建议先在测试环境中验证规则的正确性。
- 如果你不确定某些规则的作用,可以使用
iptables -L -n -v --line-numbers
来查看规则的详细信息和行号,方便调试。
通过以上步骤,你应该能够成功修改 CentOS 系统中 iptables
的默认策略。