在Linux系统中,iptables是一款功能强大的基于包过滤的防火墙工具,能够对流入、流出、流经系统的数据包进行精细控制。特别是在CentOS7系统中,尽管默认使用firewalld作为防火墙工具,但iptables依然因其灵活性和强大的功能而受到许多用户的青睐。下面,我们就来详细讲解如何在CentOS7下配置iptables。
一、安装iptables
首先,你需要检查系统中是否已经安装了iptables。可以通过以下命令来检查iptables服务的状态:
systemctl status iptables
如果系统提示未找到iptables服务,那么说明iptables尚未安装。此时,你可以通过yum包管理器来安装它,并建议同时安装iptables-services包,这个包包含了保存iptables规则并设置开机自启的功能。
sudo yum install -y iptables iptables-services
二、关闭firewalld与SELinux
在CentOS7中,默认的防火墙是firewalld,使用iptables需要先关闭firewalld防火墙。同时,SELinux也可能影响iptables的配置,因此建议一并关闭。
# 关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux,需要编辑/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,然后重启系统
三、配置iptables规则
安装并关闭相关服务后,就可以开始配置iptables规则了。以下是一些常用的配置命令:
1. 开放特定端口
# 开放SSH端口(22端口)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 开放HTTP端口(80端口)
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 开放HTTPS端口(443端口)
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
2. 设置默认策略
# 默认拒绝其他所有进入的连接
sudo iptables -P INPUT DROP
# 允许所有本地产生的流量
sudo iptables -P OUTPUT ACCEPT
# 禁止转发
sudo iptables -P FORWARD DROP
3. 保存并启用iptables规则
配置完iptables规则后,需要保存这些规则,并确保在系统启动时自动加载它们。由于我们安装了iptables-services,可以使用service命令来保存规则:
sudo service iptables save
sudo systemctl enable iptables
四、查看与测试iptables规则
配置完成后,你可以通过以下命令查看iptables的规则:
iptables -L -n
同时,你也可以通过尝试访问相关端口来测试iptables规则是否生效。
五、总结
在CentOS7下配置iptables防火墙,需要经历安装iptables、关闭firewalld与SELinux、配置iptables规则、保存并启用规则以及查看与测试规则等步骤。通过合理配置iptables规则,你可以有效保护你的Linux系统免受外部攻击。
重点内容:在配置iptables时,一定要确保firewalld和SELinux已关闭,否则可能会导致iptables规则不生效。同时,配置完iptables规则后,一定要保存并启用这些规则,以确保在系统启动时自动加载。