一、安装iptables
1.1、查看是否安装成功
命令:systemctl status iptables
输出结果表示没有iptables的相关服务,我们需要安装
1.2、安装iptables
命令:yum install iptables-services
1.3、检查是否安装成功
命令:systemctl status iptables
输出结果表示已经安装了iptables但是还没有启动
1.4、启动iptables
命令:systemctl start iptables.service
1.5、关闭SELINUX
这里需要关闭SELINUX,因为当SELINUX不关闭时,iptables不读取配置文件
二、命令
2.1、系统命令
systemctl start iptables
#启动
systemctl status iptables
#查看运行状态
systemctl restart iptables.service
#重启
systemctl stop iptables.service
#停止
systemctl enable iptables.service
#设置开机启动
systemctl disable iptables.service
#禁止开机启动
2.2、常用命令
iptables -h
#查询帮助iptables -L -n
#列出(filter表)所有规则iptables -L -n --line-number
#列出(filter表)所有规则,带编号iptables -L -n -t nat
#列出(nat表)所有规则iptables -F
#清除(filter表)中所有规则iptables -F -t nat
#清除(nat表)中所有规则service iptables save
#保存配置(保存配置后必须重启iptables)systemctl restart iptables.service
#重启
三、语法
3.1、filter表解析
filter表是iptables默认使用的表,负责对流入、流出本机的数据包进行过滤,该表中定义了3个链,分别是:INPUT、OUTPUT、FORWARD
INPUT:过滤进入主机的数据包
OUTPUT:处理从本机出去的数据包
FORWARD:负责转发流经本机但不进入本机的数据包,起到转发作用
3.2、iptables常用语法
-
-A:追加到规则的最后一条
-
-D:删除记录
-
-I:添加到规则的第一条
-
-p:(proto)规定通信协议,常见的协议有:tcp、udp、icmp、all
-
-j:(jump)指定要跳转的目标,常见的目标有:ACCEPT(接收数据包)、DROP(丢弃数据包)、REJECT(重定向)三种,但是一般不适用重定向,会带来安全隐患
四、常见案例
4.1、IP过滤
- 禁止192.168.1.3 IP地址的所有类型数据接入
iptables -A INPUT ! -s 192.168.1.3 -j DROP
4.2、开放端口
-
开放端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放80端口
-
开放端口范围
iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT #开发22-80范围的端口
-
不允许80端口流出
iptables -I OUTPUT -p tcp --dport 80 -j DROP