三次握手
    第一次: 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

    image.png

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