iptables我要注意的

来源:互联网 发布:淘宝康爱多买药靠谱吗 编辑:程序博客网 时间:2024/06/03 03:50

iptables的语法

1.定义默认策略

1)作用:当数据包不符合链中任一条规则时,iptables将根据该链预先定义的默认策略来处理数据包

2)默认策略的定义格式: iptables   [-t  表名]   <-P>   <链名>   <动作> 
参数说明如下:
(1)[-t   表名]
指默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表
(2)<-P>
定义默认策略
(3)<链名>
指默认策略将应用于哪个链,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING
(4)<动作>
处理数据包的动作,可以使用ACCEPT(接受数据包)和DROP(丢弃数据包)

mangle 表

这个表主要用来mangle包,你可以使用mangle匹配来改变包的TOS等特性。

Caution
强烈建议你不要在这个表里做任何过滤,不管是DANT,SNAT或者Masquerade。
以下是mangle表中仅有的几种操作:

*

TOS
*

TTL
*

MARK

TOS操作用来设置或改变数据包的服务类型域。这常用来设置网络上的数据包如何被路由等策略。注意这个操作并不完善,有时得不所愿。它在 Internet上还不能使用,而且很多路由器不会注意到这个域值。换句话说,不要设置发往Internet的包,除非你打算依靠TOS来路由,比如用 iproute2。

TTL操作用来改变数据包的生存时间域,我们可以让所有数据包只有一个特殊的TTL。它的存在有一个很好的理由,那就是我们可以欺骗一些ISP。为什么要欺骗他们呢?因为他们不愿意让我们共享一个连接。那些ISP会查找一台单独的计算机是否使用不同的TTL,并且以此作为判断连接是否被共享的标志。

MARK用来给包设置特殊的标记。iproute2能识别这些标记,并根据不同的标记(或没有标记)决定不同的路由。用这些标记我们可以做带宽限制和基于请求的分类。


nat 表

此表仅用于NAT,也就是转换包的源或目标地址。注意,就象我们前面说过的,只有流的第一个包会被这个链匹配,其后的包会自动被做相同的处理。实际的操作分为以下几类:

*

DNAT
*

SNAT
*

MASQUERADE

DNAT操作主要用在这样一种情况,你有一个合法的IP地址,要把对防火墙的访问重定向到其他的机子上(比如DMZ)。也就是说,我们改变的是目的地址,以使包能重路由到某台主机。

SNAT改变包的源地址,这在极大程度上可以隐藏你的本地网络或者DMZ等。一个很好的例子是我们知道防火墙的外部地址,但必须用这个地址替换本地网络地址。有了这个操作,防火墙就能自动地对包做SNAT和De-SNAT(就是反向的SNAT),以使LAN能连接到Internet。如果使用类似 192.168.0.0/24这样的地址,是不会从Internet得到任何回应的。因为IANA定义这些网络(还有其他的)为私有的,只能用于LAN内部。

MASQUERADE的作用和MASQUERADE完全一样,只是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址是配置好的。当然,这也有好处,就是我们可以使用通过PPP、 PPPOE、SLIP等拨号得到的地址,这些地址可是由ISP的DHCP随机分配的。

Filter 表

filter 表用来过滤数据包,我们可以在任何时候匹配包并过滤它们。我们就是在这里根据包的内容对包做DROP或ACCEPT的。当然,我们也可以预先在其他地方做些过滤,但是这个表才是设计用来过滤的。几乎所有的target都可以在这儿使用。


三种表的用法,要注意,要不会死的很惨。
查看iptables -L -t mangle  

iptables -L -t mangle  
 
清除
iptables -t mangle -F PREROUTING     
[清除nat表POSTROUTING链]
iptables -t nat -F POSTROUTING
[清除自定义链]
  iptables -X
原创粉丝点击