一、iptables的结构:
iptables由上而下,由Tables,Chains,Rules组成。
1.1 iptables的表tables与链chains
1.1.1 配置文件:
默认配置文件路径:/etc/sysconfig/iptables
配置文件内容:
1.1.2 iptables的四种内建表:Filter, NAT, Mangle, Raw
表的处理优先级:raw>mangle>nat>filter。
filter:一般的过滤功能,是iptables的默认表,它有三种内建链(chains):INPUT链 – 处理来自外部的数据;OUTPUT链 – 处理向外发送的数据;FORWARD链 – 将数据转发到本机的其他网卡设备上。
nat:用于nat功能(端口映射,地址映射等)
mangle:用于对特定数据包的修改
raw:优先级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
默认表是filter(没有指定表的时候就是filter表)。
1.2 iptables的规则(Rules)
Rules的关键生效原则:
Rules包括一个条件和一个目标(target)
如果满足条件,就执行目标(target)中的规则或者特定值。
如果不满足条件,就判断下一条Rules。
1.3 iptables的目标值(Target Values)
在target里指定的特殊值:
ACCEPT – 允许防火墙接收数据包
DROP – 防火墙丢弃数据包
QUEUE – 防火墙将数据包移交到用户空间
RETURN – 防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中
常用的是ACCEPT和DROP。
二、iptables简单基本规则策略:
2.1 iptables默认全局策略:
关闭端口:(切记不要直接输入该指令,否则不管iptables服务是否启动,都会立即生效,导致xshell断开)
关闭入站数据:
iptables -P INPUT DROP
关闭转发数据:
iptables -P FORWARD DROP
关闭出站数据
iptables -P OUTPUT DROP
开启端口:
开启入站数据:
iptables -P INPUT ACCEPT
开启转发数据:
iptables -P FORWARD ACCEPT
开启出站数据:
iptables -P OUTPUT ACCEPT
2.2 单个端口的开启和关闭策略:
关闭:
关闭入站的指定端口:
iptables -A INPUT -p tcp --dport 80 -j DROP
取消关闭入站的指定端口:
iptables -D INPUT -p tcp --dport 80 -j DROP
关闭出战的指定端口:
iptables -A OUTPUT -p tcp --sport 22 -j DROP
取消关闭出战的指定端口:
iptables -D OUTPUT -p tcp --sport 22 -j DROP
开启:
开启入站的指定端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
取消开启入站的指定端口:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
开启出站的指定端口:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
取消开启出站的指定端口:
iptables -D OUTPUT -p tcp --sport 22 -j ACCEPT
2.3 IP和IP段的开启和关闭策略:
关闭:
封单个IP的命令:
iptables -I INPUT -s 124.115.0.199 -j DROP
解封单个IP的命令:
iptables -D INPUT -s 124.115.0.199 -j DROP
封整个段的命令:
iptables -I INPUT -s 194.42.0.0/8 -j DROP
解封整个段的命令:
iptables -D INPUT -s 194.42.0.0/8 -j DROP
开启:
仅需将上述指令的DROP换成ACCEPT即可
2.4 IP和端口的组合策略:
直接将上述指令叠加即可,例如仅对某一IP开放22端口:
iptables -A INPUT –s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
2.5 其他常用指令:
配置生效:
service iptables save (当配置的策略在命令行键入指令后,策略会立即生效,但仅为临时生效,不会保存到配置文件,重启iptables服务后,配置的策略会复原,此指令将配置的策略保存到配置文件,重启iptables服务后,配置的策略则不会复原)
查看当前生效的详细防火墙策略规则:
iptables -L –n
一键清空所有规则,恢复到默认规则:
iptables –F:
注意:
清除后,仍是临时生效,重启iptables服务后,策略恢复;service iptables save保存后,永久生效。
三、防火墙设计思路:
可以将默认全局设置为全部开启,然后配置黑名单,禁止某些端口或某些IP;
也可以将默认全局设置为全部关闭,然后配置白名单,开启某些端口或某些IP;
还可以有其他复杂的组合。