posts - 167,  comments - 30,  trackbacks - 0

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会查找对应的链,直到找到一条规则与数据包匹配。如果该规则的targetACCEPT,就会跳过剩下的规则,数据包会继续被传送。如果该规则targetDROP,该数据包会被拦截掉,kernel不会在参考其他规则。

 

Note:如果从始至终都没有一条规则与数据包匹配,而且表末尾有没有drop all规则,那么该数据包会被acceptCisco则相反,在表末尾会因含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表示port1port2之间的所有端口

-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,告诉规则将该匹配的数据包发送到该targetTarget可以是ACCEPTDROPQUEIEPETURN。如果没有-j,那么不会对数据包进行任何操作,只是将计数器加1

-I in-interface 对于INPUT FOREARD PREROUTING链,指定数据包到达服务器时所使用的端口

-o out-interface 对于OUTPUT FORWARD POSTROUTING,该参数指定数据包离开服务器时使用的端口

3Iptables的命令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

同时允许tcpudp协议

3、保存和修改iptables

使用iptables-save 可将现行的iptables规则保存

恢复iptables

使用iptables-restore可从配置文档恢复iptables表到现行iptables表。

posted on 2011-06-30 18:59 David1228 阅读(382) 评论(0)  编辑  收藏 所属分类: Linux

只有注册用户登录后才能发表评论。


网站导航:
 

<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(4)

随笔分类

随笔档案

文章档案

新闻分类

新闻档案

相册

收藏夹

Java

Linux知识相关

Spring相关

云计算/Linux/虚拟化技术/

友情博客

多线程并发编程

开源技术

持久层技术相关

搜索

  •  

积分与排名

  • 积分 - 356900
  • 排名 - 154

最新评论

阅读排行榜

评论排行榜