iptables

 

1。The first is the mangle table which is responsible for the alteration of quality of service bits in the TCP header.
2。The second table is the filter queue which is responsible for packet filtering.
    * Forward chain: Filters packets to servers protected by the firewall.
    * Input chain: Filters packets destined for the firewall.
    * Output chain: Filters packets originating from the firewall.
3。The third table is the nat queue which is responsible for network address translation. It has two built-in chains; these are:
    * Pre-routing chain: NATs packets when the destination address of the packet needs to be changed.
    * Post-routing chain: NATs packets when the source address of the packet needs to be changed


iptables 是采用规则堆栈的方式来进行过滤,当一个封包进入网卡,会先检查 Prerouting,然后检查目的 IP 判断是否需要转送出去,接着就会跳到 INPUT 或 Forward 进行过滤,如果封包需转送处理则检查 Postrouting,如果是来自本机封包,则检查 OUTPUT 以及 Postrouting。过程中如果符合某条规则将会进行处理,处理动作除了 ACCEPT、REJECT、DROP、REDIRECT 和 MASQUERADE 以外,还多出 LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK 等,其中某些处理动作不会中断过滤程序,某些处理动作则会中断同一规则炼的过滤,并依照前述流程继续进行下一个规则炼的过滤,一直到堆栈中的规则检查完毕为止。

 

  1. ACCEPT 放行packets,执行完此处理动作后,不再比对其他规则,直接跳往下一个规则链
  2. REJECT 拦阻该封包,并发送封包通知给对方,ICMP port-unreachable,ICMP echo-reply, tcp-reset(这个封包会要求对方关闭联机)
    iptables -A FORWARD -p tcp --dport 22 -j REJECT --reject-with tcp-reset

     

  3. DROP 丢弃packets,执行完此处理动作后,将不再比对其他规则,直接中断过滤程序
  4. REDIRECT 将封包导向另一个端口(PNAT),是于nat表PREROUTING时进行处理
    iptables -t nat -I PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
  5. MASQUERADE 改写封包来源 IP 为防火墙 NIC IP,可以指定 port 对应的范围,进行完此处理动作后,直接跳往下一个规则炼(mangle:postrouting)。这个功能与 SNAT 略有不同,当进行 IP 伪装时,不需指定要伪装成哪个 IP,IP 会从网卡直接读取,当使用拨接连线时,IP 通常是由 ISP 公司的 DHCP 服务器指派的,这个时候 MASQUERADE 特别有用。范例如下:
    iptables -t nat -A POSTROUTING -p tcp -j MASQUERADE --to-ports 1024-3000

     

  6. LOG 将封包相关讯息纪录在 /var/log/messages 中,进行完此处理动作后,将会继续比对其它规则。例如:

    iptables -A INPUT -p tcp -j LOG --log-prefix 'INPUT packets'

     

  7. SNAT 改写封包来源 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将直接跳往下一个规则炼(mangle:postrouting)。范例如下:
    iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 1.1.1.1-1.1.1.3:1024-3000

     

  8. DNAT 改写封包目的地 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将会直接跳往下一个规则炼(filter:input 或 filter:forward)。范例如下:
    iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 1.1.1.2-1.1.1.5

     

  9. RETURN 结束在目前规则炼中的过滤程序,返回主规则炼继续过滤,如果把自订规则炼看成是一个子程序,那么这个动作,就相当于提早结束子程序并返回到主程序中。
  10. MARK 将封包标上某个代号,以便提供作为后续过滤的条件判断依据,进行完此处理动作后,将会继续比对其它规则。范例如下:
    iptables -t mangle -A PREROUTING -p udp --dport 22 -j MARK --set-mark 22

     

 

posted @ 2020-09-28 20:43  ascertain  阅读(107)  评论(0编辑  收藏  举报