Iptables
  感觉防火墙可能不能完美的保护主机,比如ping措施,这时,就需要使用iptables来进行配置。
  使用Iptables的内置firewall机制,是通过kernel中的netfilter        模块实现的,Linux kernel使用netfilter对进出数据包进行过滤,netfilter由三个规则表组成,每个表又有许多内建的链组成。使用iptables命令可以对这些表链进行操作,如添加、删除、列出规则等。
  Netfilter 规则表 --- filter nat managle
  filter用于路由网络数据包。是默认的,也就是说如果没有指定-t参数,当创建一条新规则时,他默认存放到该表内。
  INPUT 网络数据包流向服务器
  OUTPUT 网络数据包从服务器流出
  FORWARD 网络数据包经服务器路由
  nat 用于NAT表 Net Address Translation 是一种IP地址转换方法
  PREROUTING 网络数据包到达服务器时可以被修改
  POSTROUTING 网络数据包在即将从服务器发出时可以被修改
  managle 用于修改网络数据包的表 
   
  配置iptables
  当数据包进入服务器时,Linux kernel会查找对应的链,直到找到一条规则与数据包匹配。如果该规则的target是ACCEPT,就会跳过剩下的规则,数据包会继续被传送。如果该规则target是DROP,该数据包会被拦截掉,kernel不会在参考其他规则。
   
  Note:如果从始至终都没有一条规则与数据包匹配,而且表末尾有没有drop all规则,那么该数据包会被accept。Cisco则相反,在表末尾会因含deny all的规则。
  1)     iptables命令选项
  iptables [-t iptables ] command option parameter target
  -A 在链尾添加一条规则
  -C 将规则添加到用户定义链之前对其进行检查
  -D 从链中删除一条规则
  -E重命名用户定义的链,不改变链本身
  -F 清空链,删除链上的所有规则
  -I在链中插入一条规则
  -L 列出某个链上的规则,如:iptables –L INPUT 列出INPUT链上的规则
  -N 创建一个新链
  -P 定义某个链的默认策略
  -R替换链上的某条规则
  -X 删除某个用户相关的链
  -Z 将所有表的所有链的字节和数据包统计数器清零
  2)     Iptables的命令参数
  -p protocol
  应用于数据包的协议类型,可以是TCP UDP ICMP 或 ALL ! 也可以
  当使用-p tcp时,还可使用其他可选项,一边允许进一步定义规则,选项如下:
  -sport 允许指定匹配数据包源端口 port1:port2表示port1和port2之间的所有端口
  -dport目的端口,和sport雷同
  当使用-p !udp 时,也有特殊的选项供使用
  -sport和-dport与-p tcp相同,只不过用于UDP包
  使用-p icmp参数时,只有一个选项可用
  -icmp-type 允许在过滤规则中指定icmp类型
  -s source 指定数据包包的源地址,该参数后跟一个IP地址,一个带有sub-net mask的网络地址,或者一个主机名(不建议使用主机名)
  -d destination 数据包的目的地址 同-s
  -j jump 用于指定一个target,告诉规则将该匹配的数据包发送到该target。Target可以是ACCEPT,DROP,QUEIE,PETURN。如果没有-j,那么不会对数据包进行任何操作,只是将计数器加1
  -I in-interface 对于INPUT FOREARD PREROUTING链,指定数据包到达服务器时所使用的端口
  -o out-interface 对于OUTPUT FORWARD POSTROUTING链,该参数指定数据包离开服务器时使用的端口
  3)Iptables的命令target
  创建规则最后一步是指定iptables对数据包的操作。只要某一规则匹配该数据包,就不会再有别的规则的操作。内建的target有:ACCEPT 允许数据包通过 ,到达目的地
  DROP 拒绝数据包通过,丢弃该包
  QUEUE 将数据包发送回到用户应用程序处理
  RETURN 不再根据当前链的其他规则来检查数据包,而是直接返回,继续被发送到其目的地址,或下一个链。
  2、示例:
  允许www
  Iptables –A INPUT –p tcp –dport 80 –j ACCEPT
  该规则被调价到filter表的INPUT链,允许目的端口为80的数据包通过
  在内部接口上允许DHCP
  Iptables –A INPUT –I eth0 –p tcp - - sport - - dport 67 ACCEPT
   Iptables –A INPUT –I eth0 –p udp - - sport - - dport 67 ACCEPT
  同时允许tcp和udp协议
  3、保存和修改iptables
  使用iptables-save 可将现行的iptables规则保存
  恢复iptables
  使用iptables-restore可从配置文档恢复iptables表到现行iptables表。
   
	posted on 2011-06-30 18:59 
David1228 阅读(411) 
评论(0)  编辑  收藏  所属分类: 
Linux