CentOS 7系统默认的防火墙是firewalld,但许多用户仍习惯于使用iptables,以下是在CentOS 7系统中安装和使用iptables的详细步骤:
1、禁止firewalld开机启动:为了防止与iptables冲突,必须先禁止firewalld开机启动,连接CentOS 7.4实例后,执行以下命令查看服务状态:
systemctl status firewalld
如果服务处于active状态,运行以下命令关闭firewalld服务:
systemctl stop firewalld
禁止firewalld开机启动:
systemctl disable firewalld
2、安装iptables:执行以下命令安装iptables:
yum install y iptablesservices
3、启动iptables并设置为开机启动:执行以下命令启动iptables:
systemctl start iptables
查看iptables是否成功启动:
systemctl status iptables
设置iptables开机启动:
systemctl enable iptables.service
重启实例验证配置:
systemctl reboot
4、查看并修改iptables默认规则:执行以下命令查看iptables默认规则:
iptables L
如果之前已经设置过规则,建议先备份原有的iptables文件:
cp a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
清空所有规则:
iptables F
根据业务需求添加规则,例如放行80端口和22端口:
iptables I INPUT p tcp dport 80 m state state NEW j ACCEPT iptables I INPUT p tcp dport 22 m state state NEW j ACCEPT
确认新规则生效:
iptables L
保存添加的规则:
iptablessave > /etc/sysconfig/iptables
5、高级配置:加载必要的内核模块以确保iptables功能完整,执行以下命令加载相关模块:
modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state
检查模块是否加载成功:
lsmod | egrep 'filter|nat|ip_conntrack'
6、常见问题解决:关闭SELinux以避免其对iptables配置文件读取的影响,编辑SELinux配置文件:
vi /etc/selinux/config
将SELINUX设置为disabled,然后重启系统使更改生效。
FAQs:
1、如何在CentOS 7中禁用firewalld?:要禁用firewalld,首先确保它当前未运行,然后防止它在系统启动时自动启动,具体操作如下:停止正在运行的firewalld服务:systemctl stop firewalld
;禁止firewalld在开机时自动启动:systemctl disable firewalld
,通过这两个步骤,可以确保firewalld不会与iptables产生冲突。
2、如何在CentOS 7中保存iptables规则?:保存iptables规则是确保系统重启后规则依旧有效的关键步骤,执行以下命令将当前的iptables规则保存到文件中:iptablessave > /etc/sysconfig/iptables
,这条命令会将当前的规则集导出并覆盖/etc/sysconfig/iptables
文件,该文件在系统启动时会被读取以应用这些规则。