使用 CentOS 的 iptables 进行安全策略制定是保护服务器的重要步骤。以下是一些基本的步骤和示例,帮助你设置防火墙规则:
在开始之前,你可以查看当前的iptables规则,以便了解现有的配置:
sudo iptables -L -n -v
通常建议将默认策略设置为 DROP,这意味着任何未明确允许的流量都将被丢弃。
# 设置默认策略为DROP
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
如果你需要通过SSH访问服务器,确保开放22端口:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
如果你需要提供Web服务,开放80和443端口:
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
开放53端口:
sudo iptables -A INPUT -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允许已经建立的连接和相关的数据包通过:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
CentOS 7及以上版本使用 firewalld 作为默认防火墙管理工具,但你可以使用 iptables-services 保存规则:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables
然后保存规则:
sudo service iptables save
如果你需要恢复默认规则,可以清空所有规则并重新设置默认策略:
sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
然后保存更改。
通过以上步骤,你可以使用 CentOS 的 iptables 进行基本的安全策略制定。根据你的具体需求,可能需要添加更多的规则和策略。