1. 测试iptables命令是否正常使用
运行下面命令:
service iptables save或
#检查是否安装了iptables service iptables status
CentOS7中在/etc/sysconfig/没有iptables文件,当操作某个端口后不想重启系统就失效,在保存配置时使用‘service iptables save’命令时会报错如下图
问题在于缺少iptables 服务,
2.安装iptables服务
需要先关闭CentOS7防火墙,命令如下:
#关闭防火墙systemctl stop firewalld#查看防火墙状态firewall-cmd --state
安装iptables服务
#安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services
安装完成后使用、启动、保存iptables
#注册iptables服务 systemctl enable iptables #开启服务 systemctl start iptables #查看状态 service iptables save
此时在/etc/sysconfig文件夹下就有了iptables文件
最后启动防火墙
systemctl start firewalld
iptables常用命令讲解:
#查看iptables现有规则 iptables -L -n #先允许所有,不然有可能会杯具 iptables -P INPUT ACCEPT #清空所有默认规则 iptables -F #清空所有自定义规则 iptables -X #所有计数器归0 iptables -Z #允许来自于lo接口的数据包(本地访问) iptables -A INPUT -i lo -j ACCEPT #开放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放21端口(FTP) iptables -A INPUT -p tcp --dport 21 -j ACCEPT #开放80端口(HTTP) iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放443端口(HTTPS) iptables -A INPUT -p tcp --dport 443 -j ACCEPT #允许ping iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #其他入站一律丢弃 iptables -P INPUT DROP #所有出站一律绿灯 iptables -P OUTPUT ACCEPT #所有转发一律丢弃 iptables -P FORWARD DROP
附赠脚本文件一个(可根据需要修改)
#!/bin/sh iptables -P INPUT ACCEPT iptables -F iptables -X iptables -Zecho '允许来自于lo接口的数据包(本地访问)' iptables -A INPUT -i lo -j ACCEPTecho '开放22端口' iptables -A INPUT -p tcp --dport 22 -j ACCEPTecho '开放21端口' iptables -A INPUT -p tcp --dport 21 -j ACCEPTecho '开放80端口' iptables -A INPUT -p tcp --dport 80 -j ACCEPTecho '开放443端口' iptables -A INPUT -p tcp --dport 443 -j ACCEPTceho '允许ping' iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPTecho '允许接受本机请求之后的返回数据RELATED,是为FTP设置的' iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROPecho '保存...' service iptables saveecho '重启服务...' systemctl restart iptables.service