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 阅读(382)
评论(0) 编辑 收藏 所属分类:
Linux