在CentOS系统上搭建iptables防火墙主要涉及以下几个步骤:
1. 安装iptables
CentOS 7及以上版本默认已经安装了iptables,如果没有安装,可以使用以下命令安装:
sudo yum install iptables-services
2. 启动并启用iptables服务
安装完成后,启动iptables服务并设置为开机自启:
sudo systemctl start iptables sudo systemctl enable iptables
3. 配置iptables规则
iptables的配置文件通常位于/etc/sysconfig/iptables
。你可以直接编辑这个文件来添加规则,或者使用命令行工具iptables
来动态添加规则。
使用命令行添加规则
以下是一些基本的iptables规则示例:
-
允许所有流量:
sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT
-
允许SSH连接(端口22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
-
允许HTTP和HTTPS连接(端口80和443):
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
-
阻止所有其他入站连接:
sudo iptables -A INPUT -j DROP
使用配置文件添加规则
编辑/etc/sysconfig/iptables
文件,添加你的规则。例如:
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # 允许SSH连接 -A INPUT -p tcp --dport 22 -j ACCEPT # 允许HTTP和HTTPS连接 -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT # 允许本地回环接口的流量 -A INPUT -i lo -j ACCEPT # 允许已建立的连接 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT COMMIT
保存文件后,重启iptables服务以应用更改:
sudo systemctl restart iptables
4. 查看iptables规则
你可以使用以下命令查看当前的iptables规则:
sudo iptables -L -n -v
5. 保存iptables规则
CentOS 7及以上版本使用firewalld
作为默认的防火墙管理工具,但iptables规则不会自动保存。你可以使用以下命令手动保存iptables规则:
sudo service iptables save
或者使用iptables-save
命令:
sudo iptables-save > /etc/sysconfig/iptables
6. 使用firewalld(可选)
如果你更喜欢使用firewalld
,可以安装并配置它:
sudo yum install firewalld sudo systemctl start firewalld sudo systemctl enable firewalld
然后使用firewall-cmd
命令来管理防火墙规则:
# 允许SSH连接 sudo firewall-cmd --permanent --add-service=ssh # 允许HTTP和HTTPS连接 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 重新加载防火墙配置 sudo firewall-cmd --reload
通过以上步骤,你可以在CentOS系统上成功搭建并配置iptables防火墙。