linux学习笔记之iptables
表和链的关系
一共三个表,每个表有好几个链,每个链有很多规则
表和链如下:
filter:INPUT FORWARD OUTPUT
nat:PREROUTING OUTPUT POSTROUTING
mangle:不知道,没用过
常用命令:
iptables
Commands:
–append -A chain #Append to chain
#在链尾插入一条规则
–delete -D chain #Delete matching rule from chain
–delete -D chain rulenum #删除规则
#Delete rule rulenum (1 = first) from chain
–insert -I chain [rulenum] #在特定条目前插入规则
#Insert in chain as rulenum (default 1=first)
–replace -R chain rulenum #替换某条规则
#Replace rule rulenum (1 = first) in chain
–list -L [chain [rulenum]]#显示规则
#List the rules in a chain or all chains
–flush -F [chain] #清空所有规则
#Delete all rules in chain or all chains
–zero -Z [chain] #Zero counters in chain or all chains
#清空计数器
–delete-chain #清空链的内容
-X [chain] #Delete a user-defined chain
–policy -P chain target #更改默认策略(DROP ACCEPT)
#Change policy on chain to target
Options:
–proto -p [!] proto #protocol协议
–source -s [!] address[/mask]
#source specification源地址
–destination -d [!] address[/mask]
#destination specification目的地址
–in-interface -i [!] input name[+]
#network interface name ([+] for wildcard)入口网卡名称
–jump -j target
#target for rule (may load target extension)动作
–match -m match
#extended match (may load extension)匹配
–numeric -n #numeric output of addresses and ports
–out-interface -o [!] output name[+]
#network interface name ([+] for wildcard)指定出接口
–table -t table #table to manipulate (default: `filter’)指定表名
–verbose -v #verbose mode
–line-numbers #print line numbers when listing显示行号
–exact -x #expand numbers (display exact values)
–fragment -f #match second or further fragments only
–modprobe=<command> #try to insert modules using this command
–version -V #print package version.显示版本号
保存
iptables-save
service iptables save
效果是把当前配置保存成/etc/sysconfig/iptables,原配置备份成old。
常见规则
1.拒绝所有
iptables -F
iptables -t nat -F #清空原有规则
iptables -P INPUT DROP
-P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
#默认策略,拒绝所有
2.允许环回口
iptables -A INPUT -i lo -j ACCEPT
3.状态化连接设置
iptables -A INPUT -m state –state ESTABLISHED,RELEATED -j ACCEPT
iptables -A FORWARD -m state –state ESTABLISHED,RELEATED -j ACCEPT
4.允许DNS、HHTP、ICMP穿越
iptables -A FORWARD -p udp –dport 53 -j ACCEPT
iptables -A FORWARD -p udp –dport 80 -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT
TCP的DNS一般不用做,要是不放心,自己添加
QQ可以通过80口登录,要彻底禁止需要封腾讯IP
5.转跳(透明代理,计费网关)
iptables -A PREROUTING -i eth1 -p tcp -m tcp –dport 80
-j REDIRECT –to-ports 3128
6.NAT(网关)
iptables -t nat -A POSTROUTING -s 192.168.100.17 -j SNAT –to-destination 205.254.211.17
iptables -t nat -A POSTROUTING -s 192.168.100.17 -j MASQUERADE
7.DNAT(内部发布网站)
iptables -t nat -A PREROUTING -i eth2 -p tcp –dport 80
-j DNAT –to-destination 192.168.0.3:8080
iptables -A FORWARD -p tcp –dport 8080 -j ACCEPT
看清这两条规则,注意表和链的顺序
可参考:http://redking.blog.51cto.com/27212/143185
======================================
新补充资料 2010-07-12
Iptables的规则表和链:
Iptables采用“表”和“链”的分层结构。在REHL4中是三张表五个链。现在REHL5成了四张表五个链了,不过多出来的那个表用的也不太多,所以基本还是和以前一样。下面罗列一下这四张表和五个链。注意一定要明白这些表和链的关系及作用,因为很多的人就是在这一块不清楚。万一不行就把它背下来在慢慢地去体会。
规则表:
1. filter表——三个链:INPUT、FORWARD、OUTPUT
作用:过滤数据包 内核模块:iptables_filter.
2. Nat表——三个链:PREROUTING、POSTROUTING、OUTPUT
作用:用于网络地址转换(IP、端口) 内核模块:iptable_nat
3. Mangle表——五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
内核模块:iptable_mangle
(别看这个表这么麻烦,咱们设置策略时几乎都不会用到它)
4. Raw表——两个链:OUTPUT、PREROUTING
作用:决定数据包是否被状态跟踪机制处理 内核模块:iptable_raw
(这个是REHL4没有的,不过不用怕,用的不多)
规则链:
1. INPUT——进来的数据包应用此规则链中的策略
2. OUTPUT——外出的数据包应用此规则链中的策略
3. FORWARD——转发数据包时应用此规则链中的策略
4. PREROUTING——对数据包作路由选择前应用此链中的规则
(记住!所有的数据包进来的时侯都先由这个链处理)
5. POSTROUTING——对数据包作路由选择后应用此链中的规则
规则表之间的优先顺序:
Raw——mangle——nat——filter
规则链之间的优先顺序(分三种情况):
第一种情况:入站数据流向
从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(比如Apache服务器)进行响应。
第二冲情况:转发数据流向
来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
第三种情况:出站数据流向
防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。
参考资料:http://zpp2009.blog.51cto.com/730423/285192
资料来源于互联网,如有错误,敬请指正,谢谢!
上一篇: unix-center体验服务器地址列表
下一篇: 音乐欣赏-马克西姆《出埃及记》


目前这篇文章有3条评论(Rss)