iptables详解
iptables详解及一些常用规则

iptables详解及⼀些常⽤规则iptables简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防⽕墙,与⼤多数的Linux软件⼀样,这个包过滤防⽕墙是免费的,它可以代替昂贵的商业防⽕墙解决⽅案,完成封包过滤、封包重定向和⽹络地址转换(NAT)等功能。
iptables基础规则(rules)其实就是⽹络管理员预定义的条件,规则⼀般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。
规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、⽬的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的⽅法来处理这些数据包,如放⾏(accept)、拒绝(reject)和丢弃(drop)等。
配置防⽕墙的主要⼯作就是添加、修改和删除这些规则。
iptables和netfilter的关系:这是第⼀个要说的地⽅,Iptables和netfilter的关系是⼀个很容易让⼈搞不清的问题。
很多的知道iptables却不知道netfilter。
其实iptables只是Linux防⽕墙的管理⼯具⽽已,位于/sbin/iptables。
真正实现防⽕墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。
iptables传输数据包的过程①当⼀个数据包进⼊⽹卡时,它⾸先进⼊PREROUTING链,内核根据数据包⽬的IP判断是否需要转送出去。
②如果数据包就是进⼊本机的,它就会沿着图向下移动,到达INPUT链。
数据包到了INPUT链后,任何进程都会收到它。
本机上运⾏的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③如果数据包是要转发出去的,且内核允许转发,数据包就会如图所⽰向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
iptables四表五链

iptables四表五链⼀、什么是iptables iptables是Linux的防⽕墙管理⼯具⽽已,真正实现防⽕墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进⾏防⽕墙过滤等操作 Netfilter模块: 它是主要的⼯作模块,位于内核中,在⽹络层的五个位置(也就是防⽕墙四表五链中的五链)注册了⼀些钩⼦函数,⽤来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的规则:匹配之后,进⾏相应的处理ACCEPT、DROP等等。
下⾯这张图很明了的说明了Netfilter和iptables之间的关系⼆、四表五链(重要) 四表五链: 链就是位置:共有五个进路由(PREROUTING)、进系统(INPUT) 、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING); 表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放⾏、丢弃、转发还是修改等等操作。
2.1. 具体的四表filter表——过滤数据包Nat表——⽤于⽹络地址转换(IP、端⼝)Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOSRaw表——决定数据包是否被状态跟踪机制处理2.2. 具体的五链INPUT链——进来的数据包应⽤此规则链中的策略OUTPUT链——外出的数据包应⽤此规则链中的策略FORWARD链——转发数据包时应⽤此规则链中的策略PREROUTING链——对数据包作路由选择前应⽤此链中的规则(所有的数据包进来的时侯都先由这个链处理)POSTROUTING链——对数据包作路由选择后应⽤此链中的规则(所有的数据包出来的时侯都先由这个链处理)2.3. 四表五链之间的关系三、iptables语法参数3.1.iptables语法格式iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]3.2.iptables常⽤参数-P 设置默认策略:iptables-P INPUT (DROP|ACCEPT)-F 清空规则链-L 查看规则链-A 在规则链的末尾加⼊新规则-I num 在规则链的头部加⼊新规则-D num 删除某⼀条规则-s 匹配来源地址IP/MASK,加叹号"!"表⽰除这个IP外。
iptables参数详解

iptables参数详解⼀、limit:速率限制-m limit 说明:--limit 1000/s #设置最⼤平均匹配速率--limit 5/m --limit-burst 15 #表⽰⼀开始能匹配的数据包数量为15个,每匹配到⼀个,limit-burst的值减1,所以匹配到15个时,该值为0,每过12s,limit-burst的值会加1,表⽰⼜能匹配1个数据包例⼦:iptables -A INPUT -i eth0 -m limit --limit 5/m --limit-burst 15 -j ACCEPTiptables -A INPUT -i eth0 -j DROP注意要点:1、--limit-burst的值要⽐--limit的⼤2、limit本⾝没有丢弃数据包的功能,因此,需要第⼆条规则⼀起才能实现限速的功能⼆、time :在特定时间内匹配-m time 说明:--monthdays day1[,day2]在每个⽉的特定天匹配--timestart hh:mm:ss在每天的指定时间开始匹配--timestop hh:mm:ss在每天的指定时间停⽌匹配--weekdays day1[,day2]在每个星期的指定⼯作⽇匹配,值可以是1-7例⼦:iptables -A INPUT -i eth0 -m time --weekdays 1,2,3,4 -jACCEPTiptables -A INPUT -i eth0 -j DROP三、ttl:匹配符合规则的ttl值的数据包-m ttl 说明:--ttl-eq 100匹配TTL值为100的数据包--ttl-gt 100匹配TTL值⼤于100的数据包--ttl-lt 100匹配TTL值⼩于100的数据包例⼦:iptables -A OUTPUT -m ttl --ttl-eq 100 -j ACCEPT四、multiport:匹配离散的多个端⼝-m multiport 说明:--sports port1[,port2,port3]匹配源端⼝--dports port1[,port2,port3]匹配⽬的端⼝--ports port1[,port2,port3]匹配源端⼝或⽬的端⼝例⼦:iptables -A INPUT -m multiport --sports 22,80,8080 -j DROP五、state:匹配指定的状态数据包-m state 说明:--state valuevalue可以为NEW、RELATED(有关联的)、ESTABLISHED、INVALID(未知连接)例⼦:iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT六、mark:匹配带有指定mark值的数据包-m mac 说明:--mark value匹配mark标记为value的数据包例⼦:iptables -t mangle -A INPUT -m mark --mark 1 -j DROP拒绝特定的mac地址访问例⼦:iptables -A FORWARD -m mac --mac-source 00:0C:24:FA:19:80 -j DROP其它参数详解参数 --tcp-flags只过滤TCP中的⼀些包,⽐如SYN包,ACK包,FIN包,RST包等等例如: iptables -p tcp --tcp-flags SYN,FIN,ACK SYN说明⽐对 TCP 封包的状态旗号,参数分为两个部分,第⼀个部分列举出想⽐对的旗号,第⼆部分则列举前述旗号中哪些有被设,未被列举的旗号必须是空的。
iptables 触发 日志 级别 规则

iptables 触发日志级别规则摘要:1.iptables简介2.iptables触发日志级别3.iptables规则详解4.日志级别应用场景5.总结正文:IPTables是Linux系统下的一款防火墙工具,通过配置规则,可以实现对网络流量的控制和管理。
在iptables的配置过程中,日志级别和规则起到了关键作用。
本文将详细介绍iptables的日志级别和规则,以及如何根据实际需求进行配置。
一、iptables简介iptables作为Linux系统的防火墙,可以实现对网络流量的过滤和控制。
它具有灵活的规则配置,可以针对不同的网络协议、端口和地址进行筛选。
iptables的配置文件位于`/etc/iptables`,通过命令行工具进行操作。
二、iptables触发日志级别iptables日志分为五个级别,分别是:DEBUG、INFO、WARNING、ERROR和CRITICAL。
日志级别用于控制iptables的输出,方便用户了解防火墙的运行状态。
以下为各个日志级别的含义:1.DEBUG:详细信息,通常只在诊断问题时使用。
:一般性信息,表示iptables正常运行。
3.WARNING:表示某些规则可能有问题,需要检查。
4.ERROR:表示iptables运行过程中出现错误。
5.CRITICAL:表示iptables严重故障,需要立即处理。
三、iptables规则详解iptables规则分为预设链和自定义链两种。
预设链包括:PREROUTING、POSTROUTING、INPUT、FORWARD和OUTPUT。
自定义链可以根据需求进行创建。
以下为一条示例规则:```iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-destination 192.168.1.100```这条规则表示在POSTROUTING链中,将发自eth0接口的流量SNAT (源地址转换)为目标地址为192.168.1.100的设备。
Linux下iptables超详细教程和使用示例

Linux下iptables超详细教程和使⽤⽰例iptables的结构:iptables由上⽽下,由Tables,Chains,Rules组成。
⼀、iptables的表tables与链chainsiptables有Filter, NAT, Mangle, Raw四种内建表:1. Filter表Filter是iptables的默认表,它有以下三种内建链(chains):INPUT链 – 处理来⾃外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他⽹卡设备上。
2. NAT表NAT表有三种内建链:PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。
它会转换数据包中的⽬标IP地址(destination ip address),通常⽤于DNAT(destination NAT)。
POSTROUTING链 – 处理即将离开本机的数据包。
它会转换数据包中的源IP地址(source ip address),通常⽤于SNAT(source NAT)。
OUTPUT链 – 处理本机产⽣的数据包。
3. Mangle表Mangle表⽤于指定如何处理数据包。
它能改变TCP头中的QoS位。
Mangle表具有5个内建链(chains):PREROUTINGOUTPUTFORWARDINPUTPOSTROUTING4. Raw表Raw表⽤于处理异常,它具有2个内建链:PREROUTING chainOUTPUT chain5.⼩结⼆、IPTABLES 规则(Rules)规则的关键知识点:Rules包括⼀个条件和⼀个⽬标(target)如果满⾜条件,就执⾏⽬标(target)中的规则或者特定值。
如果不满⾜条件,就判断下⼀条Rules。
⽬标值(Target Values)在target⾥指定的特殊值:ACCEPT – 允许防⽕墙接收数据包DROP – 防⽕墙丢弃包QUEUE – 防⽕墙将数据包移交到⽤户空间RETURN – 防⽕墙停⽌执⾏当前链中的后续Rules,并返回到调⽤链(the calling chain)中。
iptables命令、规则、参数详解

iptables命令、规则、参数详解表 (table)包含4个表:4个表的优先级由高到低:raw-->mangle-->nat-->filterraw---RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。
一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.filter---这个规则表是预设规则表,拥有INPUT、FORWARD 和OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的理动作net----此规则表拥有prerouting和postrouting两个规则链,主要功能为进行一对一、一对多、多对多等网址转译工作(SNATDNAT)mangle--此规则表拥有prerouting、FORWARD、postrouting 三个规则链,除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(ITL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤)这时就必须将这些工作定义在mangles规则表中常用命令:-A 追加规则-->iptables -A INPUT-D 删除规则-->iptables -D INPUT 1(编号)-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则-N 新的规则-->iptables -N allowed 定义新的规则通用参数:-p 协议例:iptables -A INPUT -p tcp-s源地址例:iptables -A INPUT -s 192.168.1.1-d目的地址例:iptables -A INPUT -d 192.168.12.1-sport源端口例:iptables -A INPUT -p tcp --sport 22-dport目的端口例:iptables -A INPUT -p tcp --dport 22-i指定入口网卡例:iptables -A INPUT -i eth0-o指定出口网卡例:iptables -A FORWARD -o eth0-j 指定要进行的处理动作常用的ACTION:DROP:丢弃REJECT:明示拒绝ACCEPT:接受SNAT基于原地址的转换source--指定原地址比如我们现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1这个假设出来的外网地址:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1(外网有效ip)这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP.MASQUERADE(动态伪装)--家用带宽获取的外网ip,就是用到了动态伪装iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADEDNAT目标地址转换destination-指定目标地址iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.210.18访问80端口转换到100.2上MASQUERADE:源地址伪装REDIRECT:重定向:主要用于实现端口重定向MARK:打防火墙标记的RETURN:返回在自定义链执行完毕后使用返回,来返回原规则链。
iptables命令详解附实例

-d:匹配目的地址,可以是 IP、NET、DOMAIN,也可以空
例如:
-d 202.106.0.20 匹配去往 202.106.0.20 的数据包
-d 202.106.0.0/16 匹配去往 202.106.0.0/16 网络的数据包
例如:
iptables -t filter -A INPUT -j DROP
在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则)
匹配所有访问本机 IP 的数据包,匹配到的丢弃
-I 链名 [规则号码]
INSERT,插入一条规则
例如:
iptables -I INPUT -j DROP
注意:
当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
-F [链名]
FLUSH,清空规则
例如:
iptables -F INPUT
清空 filter 表 INPUT 链中的所有规则
iptables -t nat -F PREROUTING
清空 nat 表 PREROUTING 链中的所有规则
注意:
1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
2、-P 设置了 DROP 后,使用 -F 一定要小心!!!
3、如果不写链名,默认清空某表里所有链里的所有规则
-[vxn]L
-L 列出规则
·流入、流出接口(-i、-o)
·来源、目的地址(-s、-d)
·协议类型 (-p)
·来源、目的端口(--sport、--dport)
1.iptables规则详解

1.iptables规则详解1.什么是防⽕墙,防⽕墙的种类有哪些防⽕墙:古⼈⽤来隔绝失⽕后的⾼墙,阻挡外来的⽕势,起到了隔离的⼿段。
在互联⽹上,我们会采⽤类似于防⽕墙的⽅法,来保护我们的⽹络不受外来攻击,为此我们需要设定⼀些防⽕墙的规则,确定哪些数据允许通过,哪些不能通过,具有这种功能的设备或软件,我们将其称为防⽕墙防⽕墙的种类:逻辑层⾯:主机防⽕墙:针对单个主机进⾏防护,例如Windows防⽕墙⼀般是软件⽹络防⽕墙:处于⽹路⼊⼝的边缘,针对⽹络⼊⼝进⾏防护⼀般是硬件,也可以⽤软件物理层⾯:硬件防⽕墙:⼀个实体的硬件,嵌⼊软件,实现防⽕墙的功能,性能⾼,成本⾼软件防⽕墙:通过软件的⽅式,模拟防⽕墙的功能,运⾏在操作系统上⾯,性能低,成本低2.iptables介绍1.什么是iptables?iptables可以理解为是⼀个代理程序,⽤户通过代理程序,将安全规则添加到安全框架中 net filter(内核空间)netfilter/iptables 是Linux中的包过滤型防⽕墙,是免费的,可以代替昂贵的商业防⽕墙解决⽅案,可以实现数据包的过滤,实现数据包的转换。
2.什么是包过滤防⽕墙?包过滤型防⽕墙在我们⽹络层拦截⽹络数据包的包头(header),可以针对数据包的包头,与我们事先准备好的防⽕墙规则进⾏⽐对,与规则相匹配的包放⾏,不匹配的包丢弃或者执⾏⼀些复杂的动作,包过滤型防⽕墙⼀般作⽤在我们的⽹络层,故通常header中带有客户端来源IP,源端⼝,⽬标IP,⽬标端⼝,协议类型:tcp udp icmp,根据这些状态信息来判断,是否符合我们的IP tables的过滤规则,符合通过,不然拒绝。
3.包过滤型防⽕墙是怎么实现的?是基于net filter安全框架实现的,是内核的⼀部分,如果我们想要让防⽕墙达到防⽕的⽬的,需要我们在内核中,设定⼀些关卡,所有进出的报⽂,根据设定的这些关卡进⾏检查,将符合条件的放⾏,不符合的阻⽌,在net filter中,这些关卡就是链3.iptables链的概念1.什么是链?防⽕墙的作⽤就是在于将经过的报⽂与设定的规则进⾏⽐对,然后执⾏响应的动作,报⽂经过链时,必须匹配链的规则,在链上不⽌⼀条规则,存在着很多规则,当我们将这些规则穿在⼀起的时候就形成了链链的匹配规则,如下图所⽰,当有报⽂经过时,会以此往下匹配规则,如果匹配成功,则执⾏相对于的动作,如果匹配不成功,就以此往下匹配,直到最后⼀条规则还是没有匹配成功,会执⾏链的默认规则。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Iptables详解一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。
无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。
而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。
目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。
对于TCP/IP的七层模型来讲,我们知道第三层是网络层,三层的防火墙会在这层对源地址和目标地址进行检测。
但是对于七层的防火墙,不管你源端口或者目标端口,源地址或者目标地址是什么,都将对你所有的东西进行检查。
所以,对于设计原理来讲,七层防火墙更加安全,但是这却带来了效率更低。
所以市面上通常的防火墙方案,都是两者结合的。
而又由于我们都需要从防火墙所控制的这个口来访问,所以防火墙的工作效率就成了用户能够访问数据多少的一个最重要的控制,配置的不好甚至有可能成为流量的瓶颈。
二:iptables 的历史以及工作原理1.iptables的发展:iptables的前身叫ipfirewall (内核1.x时代),这是一个作者从freeBSD上移植过来的,能够工作在内核当中的,对数据包进行检测的一款简易访问控制工具。
但是ipfirewall工作功能极其有限(它需要将所有的规则都放进内核当中,这样规则才能够运行起来,而放进内核,这个做法一般是极其困难的)。
当内核发展到2.x系列的时候,软件更名为ipchains,它可以定义多条规则,将他们串起来,共同发挥作用,而现在,它叫做iptables,可以将规则组成一个列表,实现绝对详细的访问控制功能。
他们都是工作在用户空间中,定义规则的工具,本身并不算是防火墙。
它们定义的规则,可以让在内核空间当中的netfilter来读取,并且实现让防火墙工作。
而放入内核的地方必须要是特定的位置,必须是tcp/ip的协议栈经过的地方。
而这个tcp/ip协议栈必须经过的地方,可以实现读取规则的地方就叫做netfilter.(网络过滤器)作者一共在内核空间中选择了5个位置,1.内核空间中:从一个网络接口进来,到另一个网络接口去的2.数据包从内核流入用户空间的3.数据包从用户空间流出的4.进入/离开本机的外网接口5.进入/离开本机的内网接口2.iptables的工作机制从上面的发展我们知道了作者选择了5个位置,来作为控制的地方,但是你有没有发现,其实前三个位置已经基本上能将路径彻底封锁了,但是为什么已经在进出的口设置了关卡之后还要在内部卡呢?由于数据包尚未进行路由决策,还不知道数据要走向哪里,所以在进出口是没办法实现数据过滤的。
所以要在内核空间里设置转发的关卡,进入用户空间的关卡,从用户空间出去的关卡。
那么,既然他们没什么用,那我们为什么还要放置他们呢?因为我们在做NAT和DNAT的时候,目标地址转换必须在路由之前转换。
所以我们必须在外网而后内网的接口处进行设置关卡。
这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链。
1.PREROUTING (路由前)2.INPUT (数据包流入口)3.FORWARD (转发管卡)4.OUTPUT(数据包出口)5.POSTROUTING(路由后)这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。
3.防火墙的策略防火墙策略一般分为两种,一种叫“通”策略,一种叫“堵”策略,通策略,默认门是关着的,必须要定义谁能进。
堵策略则是,大门是洞开的,但是你必须有身份认证,否则不能进。
所以我们要定义,让进来的进来,让出去的出去,所以通,是要全通,而堵,则是要选择。
当我们定义的策略的时候,要分别定义多条功能,其中:定义数据包中允许或者不允许的策略,filter过滤的功能,而定义地址转换的功能的则是nat选项。
为了让这些功能交替工作,我们制定出了“表”这个定义,来定义、区分各种不同的工作功能和处理方式。
我们现在用的比较多个功能有3个:1.filter 定义允许或者不允许的2.nat 定义地址转换的3.mangle功能:修改报文原数据我们修改报文原数据就是来修改TTL的。
能够实现将数据包的元数据拆开,在里面做标记/修改内容的。
而防火墙标记,其实就是靠mangle来实现的。
小扩展:对于filter来讲一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTINGiptables/netfilter(这款软件)是工作在用户空间的,它可以让规则进行生效的,本身不是一种服务,而且规则是立即生效的。
而我们iptables现在被做成了一个服务,可以进行启动,停止的。
启动,则将规则直接生效,停止,则将规则撤销。
iptables还支持自己定义链。
但是自己定义的链,必须是跟某种特定的链关联起来的。
在一个关卡设定,指定当有数据的时候专门去找某个特定的链来处理,当那个链处理完之后,再返回。
接着在特定的链中继续检查。
注意:规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的。
三.规则的写法:iptables定义规则的方式比较复杂:格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION-t table :3个filter nat mangleCOMMAND:定义如何对规则进行管理chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的CRETIRIA:指定匹配标准-j ACTION :指定如何进行处理比如:不允许172.16.0.0/24的进行访问。
iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP当然你如果想拒绝的更彻底:iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECTiptables -L -n -v #查看定义规则的详细信息四:详解COMMAND:1.链管理命令(这都是立即生效的)-P :设置默认策略的(设定默认门是关着的还是开着的)默认策略一般只有两种iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的比如:iptables -P INPUT DROP 这就把默认规则给拒绝了。
并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了。
-F: FLASH,清空规则链的(注意每个链的管理权限)iptables -t nat -F PREROUTINGiptables -t nat -F 清空nat表的所有链-N:NEW 支持用户新建一个链iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
-X: 用于删除用户自定义的空链使用方法跟-N相同,但是在删除之前必须要将里面的链给清空昂了-E:用来Rename chain主要是用来给用户自定义的链重命名-E oldname newname-Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)iptables -Z :清空2.规则管理命令-A:追加,在当前链的最后新增一个规则-I num : 插入,把当前规则插入为第几条。
-I 3 :插入为第三条-R num:Replays替换/修改第几条规则格式:iptables -R 3 …………-D num:删除,明确指定删除第几条规则3.查看管理命令“-L”附加子命令-n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。
-v:显示详细信息-vv-vvv :越多越详细-x:在计数器上显示精确值,不做单位换算--line-numbers : 显示规则的行号-t nat:显示所有的关卡的信息五:详解匹配标准1.通用匹配:源地址目标地址的匹配-s:指定作为源地址匹配,这里不能指定主机名称,必须是IPIP | IP/MASK | 0.0.0.0/0.0.0.0而且地址可以取反,加一个“!”表示除了哪个IP之外-d:表示匹配目标地址-p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)-i eth0:从这块网卡流入的数据流入一般用在INPUT和PREROUTING上-o eth0:从这块网卡流出的数据流出一般在OUTPUT和POSTROUTING上2.扩展匹配2.1隐含扩展:对协议的扩展-p tcp :TCP协议的扩展。
一般有三种扩展--dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口,比如--dport 21 或者--dport 21-23 (此时表示21,22,23)--sport:指定源端口--tcp-fiags:TCP的标志位(SYN,ACK,FIN,PSH,RST,URG)对于它,一般要跟两个参数:1.检查的标志位2.必须为1的标志位--tcpflags syn,ack,fin,rst syn = --syn表示检查这4个位,这4个位中syn必须为1,其他的必须为0。
所以这个意思就是用于检测三次握手的第一次包的。
对于这种专门匹配第一包的SYN为1的包,还有一种简写方式,叫做--syn-p udp:UDP协议的扩展--dport--sport-p icmp:icmp数据报文的扩展--icmp-type:echo-request(请求回显),一般用8 来表示所以--icmp-type 8 匹配请求回显数据包echo-reply (响应的数据包)一般用0来表示2.2显式扩展(-m)扩展各种模块-m multiport:表示启用多端口扩展之后我们就可以启用比如--dports 21,23,80六:详解-j ACTION常用的ACTION:DROP:悄悄丢弃一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表REJECT:明示拒绝ACCEPT:接受custom_chain:转向一个自定义的链DNATSNATMASQUERADE:源地址伪装REDIRECT:重定向:主要用于实现端口重定向MARK:打防火墙标记的RETURN:返回在自定义链执行完毕后使用返回,来返回原规则链。