在CentOS系统上搭建iptables防火墙主要涉及以下几个步骤:
CentOS 7及以上版本默认已经安装了iptables,如果没有安装,可以使用以下命令安装:
sudo yum install iptables-services
安装完成后,启动iptables服务并设置为开机自启:
sudo systemctl start iptables
sudo systemctl enable 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
你可以使用以下命令查看当前的iptables规则:
sudo iptables -L -n -v
CentOS 7及以上版本使用firewalld
作为默认的防火墙管理工具,但iptables规则不会自动保存。你可以使用以下命令手动保存iptables规则:
sudo service iptables save
或者使用iptables-save
命令:
sudo iptables-save > /etc/sysconfig/iptables
如果你更喜欢使用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防火墙。