深入分析Linux防火墙

豆豆网   技术应用频道   2006年07月04日    社区交流

本文详细介绍深入分析Linux防火墙

  一个链(chain)其实就是众多规则(rules)中的一个检查清单(checklist)。每一条链中可以有一条或数条规则,每一条规则都是这样定义的“如果数据包头符合这样的条件,就这样处理这个数据包”。当一个数据包到达一个链时,系统就会从第一条规则开始检查,看是否符合该规则所定义的条件: 如果满足,系统将根据该条规则所定义的方法处理该数据包;如果不满足则继续检查下一条规则。最后,如果该数据包不符合该链中任一条规则的话,系统就会根据该链预先定义的策略(policy)来处理该数据包。

  而一个iptables命令基本上包含如下五部分:希望工作在哪个表上、希望使用该表的哪个链、进行的操作(插入,添加,删除,修改)、对特定规则的目标动作和匹配数据包条件。

  基本的语法为:iptables -t table -Operation chain -j target match(es)(系统缺省的表为"filter")

  基本操作如下:

  -A 在链尾添加一条规则

  -I 插入规则

  -D 删除规则

  -R 替代一条规则

  -L 列出规则

  基本目标动作,适用于所有的链:

  ACCEPT 接收该数据包

  DROP 丢弃该数据包

  QUEUE 排队该数据包到用户空间

  RETURN 返回到前面调用的链

  foobar 用户自定义链

  基本匹配条件,适用于所有的链:

  -p 指定协议(tcp/icmp/udp/...)

  -s 源地址(ip address/masklen)

  -d 目的地址(ip address/masklen)

  -i 数据包输入接口

  -o 数据包输出接口

  匹配条件扩展:

  TCP-----匹配源端口,目的端口,及tcp标记的任意组合,tcp选项等。

  UPD-----匹配源端口和目的端口

  ICMP----匹配ICMP类型

  MAC-----匹配接收到的数据的mac地址

责编:豆豆技术应用

正在加载评论...