三次握手
第一次: syn=1 ack=0 fin=0
第二次: syn=1 ack=1 fin=0
第三次: syn=0 ack=1 fin=0
主机间通讯条件:
sip dip smac dmac sport dport syn ack fin
主机间通讯状态:
CLOSED LISTEN SYN_RECV SYN_SENT ESTABLISHD FIN_WAIT1 FIN_WAIT2 TIME_WAIT LAST_ACK CLOSING
iptables基本组成
链
PREROUTING 数据表路 径选择之前 主机外的数据包 进来就会走prerouting
在队数据表进行过滤之前所要应用的链(防火墙刚刚接收数据包)
FORWARD 数据表外部 转换到内部 一个网卡到例外一个网卡才会forward
将数据包从一个网络转发到例外一个网络 过程中所要应用的链
POSTROUTING 转发后执行的操作
在对数据库进行选择之后需要应用的链(防火墙即将数据包转发出去前)
INPUT 向本地主机 上层应用转发
对于数据包的目的是 防火墙主机的上层应用 需要应用的链
OUTPUT 上层应用 向下层转发
对于防火墙以及上层应用所产生的 所要运用的链
表
filter表 过滤数据包操作。
三个链: input forward output
nat表 不能过滤数据包 修改数据包中的ip和端口。
三个链: prerouting postrouting output
mangle表 不能过滤也不能修改 修改数据包的报文。比如ttl/TOS
全部五个链
raw表 决定是否对数据包状态追踪 是否运用防火墙规则
两个链: output prerouting

iptables命令
格式: iptables [ -t 表名 ] COMMAND 链名 [ 规则序号 ] 匹配条件 -j 执行操作
说明:
表名缺省是filter表
COMMAND 要执行的命令 添加/删除/替换/修改 规则
-A 链名 指定的链中追加规则 末尾追加
-I 链名 [num] 指定的链中插入规则 默认首部插入
-D 链名 [num] 删除指定的链中的规则 默认最后一个
-R 链名 [num] 替换规则
-F [链名] 清楚链中规则 不指定 删除整个表的规则
-N 自定义一个新链
-P 修改一个链的默认规则
链名不能缺省
如果规则序号缺省 通常是对最后一个进行操作
匹配条件 是对什么数据包进行过滤
执行操作 放行/阻止 ACCETP/DROP/SNAT/DNET
