iptable

Posted Bo_OuYang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptable相关的知识,希望对你有一定的参考价值。

iptables语法:          iptables   [-t 表]  <操作命令>  [要操作的链]    [规则号码]  [匹配条件]  [-j  匹配到以后的动作]


表:      filter      过滤数据包,默认表                       nat         网络地址转换         (DNAT、SNAT、NASQUERADE)          mangle    修改数据包,改变包头中内容(TTL,TOS,MARK)            (1)TOS:设置改变数据包的服务类型,不要使用TOS设置发往Internet的包除非打算依赖TOS来路由,不能再表中配置任何过滤。SNAT、DNAT        (2)TTL:  改变数据包的生存时间,可以让数据包只有一个特殊的TTL,欺骗ISP,有些ISP并不希望多台计算机共享一个连接访问Internet,ISP通过检查一台计算机所发出的数据包是否含有不同的TTL来判断。        (3)Mask:给数据包设置特殊的标记,通过标记配置带宽限制和基于请求分类。                                  raw            
链: filter表中的三条链:       INPUT 链     :  过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)       OUTPUT链   :  过滤所有本机产生的数据包(对源地址得数据包的过滤)       FORWARD链 :   过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包)  

NAT表中的三条链:       PREROUTING  :   数据包到达防火墙时改变包的目的地址       OUTPUT         :  改变本地产生数据包的目标地址       POSTROUTING  :  在数据包离开防火墙时改变数据包的源地址
 Mangle表中的5条链:       INPUT              在数据包进入本机后,应用程序接受之前改变数据包       OUTPUT           在数据包被确定目的地址前改变数据包       FORWARD        第一次路由判断之后,最后一次路由判断前改变数据包        PREROUTING     数据包进入防火墙后,路由判断之前改变数据包                  POSTROUTING       数据确定了目标地址后,即路由判断前改变数据包

操作命令: -A   -I  -D   -R    -P  -F  -L 查看filter表的forward链命令:  iptables     -vnL   --line-number      FORWARD 查看nat表命令:   iptables  -t nat  -L 设置某链默认策略:  iptables  -P  INPUT DROP
匹配条件: 流入、流出接口(-i、 -o)         (-i   eth+ 所有的ethernet网卡)           (-i   ! eth0 除了eth0网卡) 来源、目的地址(-s、-d)     (-s     ! 192.168.0.0/24) 协议类型           (-p)          (-p  all )        --tcp-flags            是-p  tcp协议的扩展                                       iptables  -p tcp  --tcp-flags  SYN,FIN,ACK SYN                                       TCP状态旗号:SYN(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(强迫推送)                                       --syn                      iptables  -p tcp  --syn                                       用来比对是否为要求联机之TCP封包,与iptables   -p  tcp  --tcp-flags  SYN,FIN,ACK的作用完全相同, 来源、目的端口(--sport、--dport)       --sport  800:1000    或者       :1000 --tcp-flags  

动作(处理方式): ACCEPT DROP DNAT  --to     改写封包目的地IP为某特定IP或范围 SNAT   --to     改写来源IP为某特定IP或IP范围 MASQUERADE    iptables   -t nat  -A  POSTROUTING  -p tcp  -o  eth0  -j SNAT   --to-source  194.236.50.155-194.236.50.160:1024-32000 iptables  -t  nat  -A POSTROUTING  -s 192.168.0.0/24 -j MASQUERADE  将源地址是192.168.0.0/24的数据包进行地址伪装
附加模块: 按包状态匹配         state 按来源MAC匹配     mac 按包速率匹配          limit 多端口匹配             multiport

-m  state   --state 检测会话之间的连接关系                               状态:   NEW、RELATED、ESTABLISHED、INVALID                               NEW:该包想要开始一个连接(重新连接或将连接重定向)                              ESTABLISHED:  只要发送并接到应答,一个数据连接从NEW变为ESTABLISHED,而且该状态会继续匹配这个连接的后续数据包                                RELATED:该包是属于某个已经建立的连接所建立的新连接,例如:FTP的数据传输连接就是控制连接所RELATED出来的连接、--icmp-type 0(ping应答)--                             icmp-type 8(ping请求)所RELATED出来的                              INVALID:数据包不能被识别属于哪个连接或没有任何状态比如内存溢出,收到不知属于哪个连接的ICMP错误信息,一般应该DROP这个状态的任何数据                              iptables  -A INPUT -m  state  --state  RELATED,ESTABLISHD  -J ACCEPT
-m  mac    --mac    --mac-source   MAC                               报文经过路由后,数据包中原有得mac信息会被替换,所以在路由后得iptables中使用mac模块是没有意义得                               iptables  -A FORWARD -m mac  --mac-source  xx:xx:xx:xx:xx:xx -j DROP
-m  limit   --limit  匹配速率 [--burst 缓冲数量]                               用一定速率去匹配数据包                               iptables  -A FORWARD  -d 192.168.0.1-m limit --limit  50/s   -j ACCEPT   也可以/minute  /hour  /day                       iptables   -A INPUT  -m  limit     --limit                                          3/hour  比对每小时平均流量是否超过一次3个封包                                     --limit-burst   用来比对瞬间大量封包的数量                               iptables  -A  INPUT  -m  limit  --limit-burst  5                     -m  multiport  <--sports | --dports  |  --ports  >  端口1[ ,端口2. . . . ,端口n]                               一次性匹配多个端口,可以区分源端口,目的端口或不指定端口                               iptables  -A   INPUT  -p tcp    -m multiport  --dports  21,22,25,80,110  -j ACCEPT                               必须与-p参数一起使用

以上是关于iptable的主要内容,如果未能解决你的问题,请参考以下文章

火币推出虚拟资产基金和挖矿私募股权基金!SAS国际公链打着开源旗号割韭菜!

为啥我的 Eclipse Java 包被视为文件夹?

2.1大礼包被拒解决方法

SharpPcap - 传入的数据包被丢弃

WSARecv 钩子:防止数据包被可执行文件接收

Linux下如何查看一个下载的包被安装在什么位置