Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126455
  • 博文数量: 24
  • 博客积分: 1516
  • 博客等级: 上尉
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-22 17:11
文章分类
文章存档

2011年(4)

2010年(10)

2009年(10)

分类: LINUX

2009-06-25 13:33:22

   提到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及其例子
 
阅读(1669) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~