iptables防火墙
主要实现数据包的过滤、封包重定向和网络地址转换(NAT)等功能
- iptables:用户空间的命令行工具,用于管理配置
- netfilter:真正实现功能的是netfilter运行在内核空间
iptables的4表5链
-
链:通过数据包的走向可以分为5种状态
- inupt:对于目的是用户态应用程序的情况下使用的链
- output:对于用户态应用程序产生的数据包使用的链
- forward:用于一个网卡到另一个网卡使用的链
- prerouting:对数据包路由选择之前使用的链
- postrouting:对数据包路由选择之后使用的链
-
表:针对链下面的类似规则属性进行汇总,便于管理
- filter表:过滤数据包功能
- nat表:实现网络地址转换,修改ip和端口功能
- mangle:拆解报文,做出修改,并重新封装的功能
- raw表:是否对连接追踪机制进行处理
5种数据包状态链
- 有数据包去往主机的:PREROUTING>INPUT
- app应用产生的数据包发出去:OUTPUT>POSTROUTING
- 数据包的目的不是本机:PREROUTING>FORWARD>POSTROUTING
不是所有的链都包含4张表,每个数据包经过各链的表进行匹配规则
规则(iptables配置)
格式:iptables [-t 表名] command 链名 [规则序号] 匹配条件 -j 执行动作 (默认不写表名为filter表)
- command:执行的命令,查看、删除、插入、修改等等
- 链名:5个链的链名
- 规则序号:用于规则的匹配位置,默认不写为末尾行添加
- 匹配条件:基于tcp五元组包过滤条件
- 执行动作:规则匹配具体的动作,拒绝、运行、nat等等
- ACCETP:允许
- DROP:阻止,不返回icmp
- REJECT:拒绝,返回icmp
- SNAT:源nat
- DNAT:目的nat
- LOG:日志文件
匹配条件
- 通用匹配:
- -s:源ip
- -d:目的ip
- -i:指定接口进入的数据包
- -o:指定接口发出的数据包
- 扩展匹配
- -p:协议类似,tcp、udp、icmp
- - -sport:源端口
- - - dport:目的端口
永久存储
- iptables-save > /etc/sysconfig/iptables