提到iptables 不得不提起其幕后的工作者 netfilter。
作为Linux内核中功能强大的联网子系统, netfilter 提供了有状态和无状态的分组过滤,NAT 和 IP伪装服务,还具备为高级选路和连接状态管理而mangle IP 头信息的能力。而netfilter所要做的工作是通过iptables工具来控制设置的
用户可以通过iptables添加其需要的策略。
1.基本概念
iptables 添加策略的一般格式
iptables [-t table] command [match] [target]
注:[]表示的意思是该项为可选项,以前在看man手册时常常不明白,先记下来,以免忘记。
1.1.表。
netfilter默认的有三个表组成。
如果没有指定表则默认为filter
表用来存放过滤规则链(chain),系统默认的表包含的链如表中所列,用户可在表中添加自定义的链,具体命令
iptables -N chain_name
链可以包含不同的规则
tables chain rule 从属关系如下。
具体如下表:
注:如需要添加新的表,必须在编译内核时完成,具体添加规则和方法,有待研究, 先挖个坑(balabit的zorp防火墙实现就是基于自己添加的tproxy表来实现的,tproxy中包含PREROUTING 和 OUTPUT两个链)。
1.2 command
command是 告诉iptables要做什么, eg:插入规则,将规则添加到chain的末尾,或者是删除规则。
如小表所示是常用的command及其例子
阅读(1700) | 评论(0) | 转发(0) |