四表:主要用filter表和nat表
filter:过滤,防火墙
nat:network address translathion 网络地址转换
mangle:拆解报文,做出修改,封装报文
raw:关闭nat 表上启用的链路追踪机制,决定数据包是否被状态跟踪机制处理
五链:(函数)
prerouting :在对数据包作路由选择之前,应用此链中的规则。
input:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
forward:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。
output:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。
postrouting:在对数据包作路由选择之后,应用此链中的规则。
nat :网络地址转换
prerouting:数据包到防火墙时改变目的地址
output:改变本机产生的数据包的目的地址
postrouting:
filter:过滤数据包
input: 过滤所有目标地址是本机的数据包
forward:过滤所有路过本机的数据包
output:过滤所有由本机产生的数据包
不常用
mangle:数据包打标记
prerouting
output
postrouting
input
forward
raw:
output
prerouting
规则优化原则:
1:规则不要写太多,否则匹配缓慢
2:把匹配范围大的规则写在下面
规则表之间的优先顺序:
raw>mangle>nat>filter
iptables
添加、插入、删除、清空规则和查看规则是最常用的管理选项
在filter表的INPUT链的末尾添加一条防火墙规则。
iptables -t filter -A INPUT -p tcp -j ACCEPT
在filter表的INPUT链中插入一条防火墙规则
iptables -I INPUT -p udp -j ACCEPT
查看规则表:iptables -L
删除、清空规则
删除filter表INPUT链中的第2条规则。
iptables -D INPUT 2
清空filter表、nat表、mangle表各链中的所有规则
iptables -F
设置规则链的默认策略
最基本的两种策略为ACCEPT(允许)、DROP(丢弃)。
将filter表中FORWARD规则链的默认策略设为DROP
iptables -t filter -P FORWARD DROP
用于检查数据包的IP地址、网络地址。在iptables命令中使用“-s 源地址”和“-d 目标地址”的形式,分别对应于源(–source)地址和目标(–destination)地址。
eg: 拒绝转发来自192.168.1.11主机的数据,允许转发来自192.168.0.0/24网段的数据。
iptables -A FORWARD -s 192.168.1.11 -j REJECT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT