免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1481 | 回复: 0
打印 上一主题 下一主题

IPtables 的学习笔记 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:52 |只看该作者 |倒序浏览

IPtables语言
Iptables [-t  要操作的表] <操作命令> [要操作的链] [规则号码] [匹配条件] [-j 匹配到以后的动作]
Iptable[-t table] command [match] [-j target/jump]
#-t 指定表
#-j 指定处理动作
-t参数用来指定规则表,内建的规则表有三个:nat , mangle 和filter 表,当未指定规则表时,默认为filter。


表含义是:
Nat:此规则表拥有Prerouting (修改到来的包)和Postrouting(修改准备出去的包)、 OUTPUT(修改路由之前本地的包)规则链。主要功能为进行一对一,一对多,多对多,埠转送等网址转译工作(SNAT DNAT PNAT),由于转译工作的特性,需进行目的地网址转译封包,就不需要进行来源网址转译,反之亦然。因此为了提升改写封包的效率,在防火墙动作时,每个封包只会经过这个规则表一次,如果我们把封包过滤的规则定义在这个资料表里,将会造成无法对同一封包进行多次比对,因此这个规则表除了作网址转译外,请不要做其它用途。(它是涉及到网络地址转换)


Mangle:些规则表拥有Prerouting(修改路由之前进入的包)、FORWARD和postrouting 、OUTPUT(修改路由之前本地的包)规则链。除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL,TOS)或者是设定MARK(将封包作记号,以便进行后续的过滤),这时就必须将这些工作定义在mangle规则中,由于使用率不高。(它主要应用在修改数据包内容上)


Filter:这些规则表是预设规则表,拥有INPUT(处理进入的包)、FORWARD(处理通过的包)和OUTPUT(处理本地生成的包)三个规则链,这个规则表顾名思义是用来 进行封包过滤的处理动作(例如:DROP、LOG、ACCEPT或REJECT),我们会将基本规则都建立在些规则表中。(它负责过滤数据包)

规则链的说明:Iptables中五个规则链,INPUT、OUTPUT、FORWARD、Prerouting、Postrouting。
INPUT:只有要到达本机的封包才会由INPUT函式处理,所以会让来自内部网络的封包无条件放行,来自外部网络的封包则过滤是否为响应封包,若是则放行。(就是链接接入本机地址的数据)
OUTPUT:从本机送出去的封包由这个函式处理,通话会放行所有封包。由本机产生,向外转发,处于POSTROUTING之前的数据包。
FORWARD:所有转送封包都在这里处理,这部分的过滤规则比较复杂。需要通过本地系统进行转发的数据包。
PREROUTING:需要转送处理的封包由此函式负责处理,此函式用来做目的地IP的转译动作(DNAT)。路由之前,刚到达的数据包。(由指定信息包一到达防火墙就改变它们的规则所组成)
POSTROUTING:转送封包送出之前,先透过这个函式进行来源IP的转译动作(SNAT)。通过路由后,即将离开系统的数据包。(由指定正当信息包打算离开防火墙时改变它们的规则所组成)

操作命令:(-A 、 -I 、 -D、 -R、-P  -F)
查看命令:(-[vnx]L)
 -A 链名:追加一条规则(放到最后)
 Iptables –t filter –A INPUT –j DROP  //在filter表的INPUT链里追加一条规则,匹配所有访问本机IP的数据包,匹配到的丢弃。-j DROP会在后面处理。

 -I 链名 规则号码:插入一条规则,指定位置。不加规则号码默认插入成第一条。
 Iptables –I INPUT 3 –j DROP

 -D 链名 规则号码|具体规则内容
 Iptables –D INPUT 3 –j DROP /Iptables –D INPUT –s 192.168.111.129 –j DROP   //注,若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条。

 -R 链名 规则号码 具体规则内容:替换一条规则,
 Iptables –R OUTPUT 3 –j ACCEPT  //将原来编号为3的规则内容替换为“-j ACCEPT”或其它也可

 -P 链名 动作:设置某链的默认规则
 Iptables –P INPUT DROP   //这只是在数据包没有被规则列表里的任何规则匹配到时,就按些默认规则处理。

 -F 链名:清空(所有)规则
 Iptables –F INPUT    //删除FILTER表INPUT链中的所有规则。如不指定链名,默认清空某表所有链的所有规则。

 -Z 链名:把所有链的包及字节的计数器清空,它可以和-L配合使用,在清空前察看计数器。
 Iptables –Z INPUT   //将封包计数器归零,封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。

 -N 新链名:定义新的用户定义的规则链
 Iptables –N new_chain_Tcp_allowed   //建立一个新用户链。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP