CentOS 使用 iptables 作为其默认的防火墙,可以通过编写脚本来实现自动化管理。以下是一些建议和方法:
创建一个 Shell 脚本文件,例如 iptables_rules.sh
,并在其中添加 iptables 规则。例如:
#!/bin/bash
# 清除现有规则
iptables -F
iptables -X
# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH 连接
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许 HTTP 和 HTTPS 连接
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 保存规则
service iptables save
给脚本添加可执行权限:
chmod +x iptables_rules.sh
运行脚本以应用规则:
./iptables_rules.sh
iptables-persistent
:iptables-persistent
是一个用于保存和恢复 iptables 规则的工具。安装并启用它:
sudo yum install iptables-services
sudo systemctl enable iptables
sudo systemctl start iptables
将规则添加到 /etc/sysconfig/iptables
文件中,例如:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
COMMIT
保存文件后,运行以下命令以应用规则:
sudo systemctl restart iptables
firewalld
:firewalld
是 CentOS 7 中的另一个防火墙管理工具,它提供了更简单且易于管理的接口。安装并启用它:
sudo yum install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
使用 firewall-cmd
命令添加规则,例如:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --reload
这些方法可以帮助你实现 CentOS 上 iptables 的自动化管理。你可以根据自己的需求选择合适的方法。