Linux我用 Linux

Linux 防火墙iptables学习

2017-06-27  本文已影响1387人  ALvin_l

Linux 网络数据包处理流程

image.png

iptables 用法

注意事项:
属于一个流的数据包只经过nat表一次。如果第一个包被允许做NAT或者Masqueraded, 那么余下的数据包会自动得做相同的操作。这也是为什么不推荐在nat表中做过滤的原因。

  1. INPUT
    网络数据包的目的地是本地Linux主机。
  2. OUTPUT
    网络数据包的原是本地Linux 主机。
  3. FORWARD
    由一个本地Linux 主机的一个网卡接收到的数据发到另一个网卡。
  4. PREROUTING
    路由前
  5. POSTROUTING
    路由后
  6. 自定义链

所有状态的改变和计算都是在nat表中的PREROUTING链和OUTPUT链里完成的: 如果本地发送一个数据包,那么会在OUTPUT链里标记状态为NEW,当本地接收到回应的包时,会在PREROUTING中标记为ESTABLISHED状态。

  1. TCP连接

  2. UDP

  3. ICMP
    ICMP包有很多类型,但只有四种类型有应答包,它们是回显请求和应答(Echo request and reply),时间戳请求和应答(Timestamp request and reply),信息请求和应答(Information request and reply),还有地址掩码请求和应答(Address mask request and reply),这些包有两种状态,NEW和ESTABLISHED 。


    ICMP 1

ICMP的另一个非常重要的作用是,告诉UDP、TCP连接或正在努力建立的连接发生了什么,这时ICMP应答被认为是RELATED的。主机不可达和网络不可达就是这样的例子。当试图连接某台机 子不成功时(可能那台机子被关上了),数据包所到达的最后一台路由器就会返回以上的ICMP信息,它们就 是RELATED的,如下图:


ICMP 2

参考文献

鸟哥的Linux 私房菜 服务器架设篇
iptables 指南 1.1.19

上一篇 下一篇

猜你喜欢

热点阅读