检查状态
先检查是否安装了iptables
$ service iptables status
安装iptables
$ yum install iptables
升级iptables
$ yum update iptables
安装iptables-services
$ yum install iptables-services
编辑配置
$ vi /etc/sysconfig/iptables-config
添加配置
- 示例:开放RabbitMQ 的 对外端口
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
保存配置
$ service iptables save
更多操作请往下阅读
重启服务
systemctl restart iptables.service
更多详细配置规则
编辑配置
$ vi /etc/sysconfig/iptables-config
规则操作
查看iptables现有规则
iptables -L -n
允许所有
iptables -P INPUT ACCEPT
允许IO访问
允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
开放443端口(TCP)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
开放443端口(FTP)
iptables -A INPUT -p tcp --dport 443 -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
更多常用命令操作
清除规则
- 清除已有iptables规则
iptables -F #清空所有默认规则
iptables -X #清空所有自定义规则
iptables -Z #所有计数器归0
保存配置
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
开启服务
$ systemctl start firewalld
检查状态
$ service iptables status
停止服务
$ systemctl stop firewalld
重启服务
$ systemctl restart iptables.service
查看规则
iptables -L -n
- v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
- x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探
- n:只显示IP地址和端口号,不将ip解析为域名
标记显示
- 将所有iptables以序号标记显示
$ iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:15672
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5672
删除规则
- 比如要删除INPUT里序号为1的规则
iptables -D INPUT 1
禁用服务
$ systemctl mask firewalld
开机启动
systemctl enable iptables.service