Linux防火墙学习--iptables

agree 新人帖[复制链接]
发表于 : 2017-8-23 17:27:09 最新回复:2019-08-21 13:54:10
4461 7
Allen03
Allen03  

1      Iptable的基本概念与结构

            iptables组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。

            iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tableschains组成,而chains又由rules组成。如下图所示。

20170823172403400001.png

1.1      规则(rules

            规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为如果数据包头符合这样的条件,就这样处理这个数据包。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCPUDPICMP)和服务类型(如HTTPFTPSMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙的主要工作就是添加、修改和删除这些规则。

1.2      链(chains

            链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包

20170823172404515002.png

1.3      表(Tables

            每个表格中有INPUT/OUTPUT/FORWARD等相对应的链,每个链中包含了PolicyRule等过滤分析的规则。结合不同的链与规则使得表提供特定的功能,iptables内置了3个表,即filter表、nat表和mangle表,分别用于实现包过滤,网络地址转换和包重构(修改)。常用的表为filternat,后面也只详细介绍这两个表。

            20170823172405486003.png

1.4      内建各表格与链之间的相关性

http://hi3ms-image.huawei.com/hi/showimage-16869109-498429-6e51c52ab6ee8a180d2149347cf899ac.jpg

           

            报文进入linux主机使用资源(路径A:在路由判断后确定是向Linux主机要求资源的报文,主要通过filterINPUT链来进行管控。

            报文经由Linux主机的转发,没有使用主机资源,而是向后端主机流动(路径B:在路由判断之前进行封包表头的修订处理后,发现封包主要是要透过防火墙去后端,此时报文就会通过路径B来处理。即该报文的目标并不是Linux本机。其主要通过的链是filterFORWARD以及natPOSTROUTINGPREROUTING

            报文由Linux本机发送出去(路径C:例如回应用户端的要求,或是Linux本机主动发送出的报文,都是通过路径C来处理的。该类报文先是通过路由判断,决定输出的路径后,再通过filterOUTPUT链来处理,最后再经过natPOSTROUTING链。


 

2      Iptables的命令详解

       iptables [-t table] command [match] [target]

       iptables [-t table] command [chain] [rules] [-j target]

 

表(table

[-t table] 选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。

 

2.1      命令(command

       具有强制性的 command 部分是 iptables 命令的最重要部分。它告诉 iptables 命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。

20170823172407924005.png

 

1.链管理命令(这都是立即生效的)

            -P :设置默认策略的(设定默认门是关着的还是开着的)

                        默认策略一般只有两种

                        iptables -P INPUT (DROP|ACCEPT)  默认是关的/默认是开的

                        比如:

                        iptables -P INPUT DROP 这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了。

        -F: FLASH,清空规则链的(注意每个链的管理权限)

                iptables -t nat -F PREROUTING

                iptables -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 numReplays替换/修改第几条规则

            格式:iptables -R 3 …………

         -D num:删除,明确指定删除第几条规则

3.查看管理命令 -L

             附加子命令

             -n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。

             -v:显示详细信息

             -vv

             -vvv :越多越详细

             -x:在计数器上显示精确值,不做单位换算

             --line-numbers : 显示规则的行号

             -t nat:显示所有的关卡的信息

 

 

EX:

            $ iptables -A INPUT -s 205.168.0.1 -j ACCEPT

            $ iptables -D INPUT --dport 80 -j DROP
            $ iptables -D OUTPUT 3                                                                                                             (在链中3号位的规则)

            $ iptables -P INPUT DROP                                                         (链中任何规则都不匹配时执行此策略)

            $ iptables -N allowed-chain

            $ iptables -F FORWARD                                                                                                (删除该链下所有规则)

            $ iptables -F                                                                                                                     (删除所有链下所有规则)

            $ iptables -L allowed-chain

 

2.2      匹配(match

iptables 命令的可选 match 部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类: 通用匹配特定于协议的匹配。这里,我将研究可用于采用任何协议的信息包的通用匹配。

 

20170823172408878006.png

 

1.通用匹配:源地址目标地址的匹配

             -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP

                        IP | IP/MASK | 0.0.0.0/0.0.0.0

                        而且地址可以取反,加一个“!”表示除了哪个IP之外

             -d:表示匹配目标地址

             -p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP

             -i eth0:从这块网卡流入的数据

                        流入一般用在INPUTPREROUTING

             -o eth0:从这块网卡流出的数据

                        流出一般在OUTPUTPOSTROUTING

2.扩展匹配

2.1隐含扩展:对协议的扩展

    -p tcp :TCP协议的扩展。一般有三种扩展

            --dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口,比如

            --dport 21  或者 --dport 21-23 (此时表示21,22,23)

            --sport:指定源端口

            --tcp-fiagsTCP的标志位(SYN,ACKFIN,PSHRST,URG

                对于它,一般要跟两个参数:

                        1.检查的标志位

                        2.必须为1的标志位

                        --tcpflags syn,ack,fin,rst syn   =    --syn

                        表示检查这4个位,这4个位中syn必须为1,其他的必须为0。所以这个意思就是用于检测三次握手的第一次包的。对于这种专门匹配第一包的SYN1的包,还有一种简写方式,叫做--syn

    -p udpUDP协议的扩展

        --dport

        --sport

    -p icmpicmp数据报文的扩展

        --icmp-type

                        echo-request(请求回显),一般用8 来表示

                        所以 --icmp-type 8 匹配请求回显数据包

                        echo-reply (响应的数据包)一般用0来表示

2.2显式扩展(-m

     扩展各种模块

      -m multiport:表示启用多端口扩展

      之后我们就可以启用比如 --dports 21,23

2.3状态检测

            是一种显式扩展,用于检测会话之间的连接关系的,有了检测我们可以实现会话间功能的扩展。什么是状态检测?对于整个TCP协议来讲,它是一个有连接的协议,三次握手中,第一次握手,我们就叫NEW连接,而从第二次握手以后的,ack都为1,这是正常的数据传输,和tcp的第二次第三次握手,叫做已建立的连接(ESTABLISHED,还有一种状态,比较诡异的,比如:SYN=1 ACK=1 RST=1,对于这种我们无法识别的,我们都称之为INVALID无法识别的。还有第四种,FTP这种古老的拥有的特征,每个端口都是独立的,21号和20号端口都是一去一回,他们之间是有关系的,这种关系我们称之为RELATED

            所以我们的状态一共有四种:NEWESTABLISHEDRELATED INVALID

            进来的拒绝出去的允许,进来的只允许ESTABLISHED进来,出去只允许ESTABLISHED出去。默认规则都使用拒绝

              iptables -L -n --line-number  :查看之前的规则位于第几行

    改写INPUT

        iptables -R INPUT 2 -s 172.16.0.0/16 -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

        iptables -R OUTPUT 1 -m state --state ESTABLISHED -j ACCEPT

    此时如果想再放行一个80端口如何放行呢?

        iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

        iptables -R INPUT 1 -d 172.16.100.1 -p udp --dport 53 -j ACCEPT

 

EX

  • -p --protocol 该通用协议匹配用于检查某些特定协议。协议示例有 TCP UDP ICMP 、用逗号分隔的任何这三种协议的组合列表以及 ALL (用于所有协议)。 ALL 是缺省匹配。可以使用 ! 符号,它表示不与该项匹配。
    $ iptables -A INPUT -p TCP, UDP
    $ iptables -A INPUT -p ! ICMP
  • -s --source 该源匹配用于根据信息包的源 IP 地址来与它们匹配。该匹配还允许对某一范围内的 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。缺省源匹配与所有 IP 地址匹配。

$ iptables -A OUTPUT -s 192.168.1.1
$ iptables -A OUTPUT -s 192.168.0.0/24
$ iptables -A OUTPUT -s ! 203.16.1.89

第二条命令指定该规则与所有来自 192.168.0.0 192.168.0.24 IP 地址范围的信息包匹配。第三条命令指定该规则将与除来自源地址 203.16.1.89 外的任何信息包匹配。

  • -d --destination 该目的地匹配用于根据信息包的目的地 IP 地址来与它们匹配。该匹配还允许对某一范围内 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。

$ iptables -A INPUT -d 192.168.1.1
$ iptables -A INPUT -d 192.168.0.0/24
$ iptables -A OUTPUT -d ! 203.16.1.89

 

2.3      目标(target

我们已经知道,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。

            常用的ACTION

             DROP:悄悄丢弃

                        一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表

             REJECTDROP基本一样,区别在于它除了阻塞包之外, 还向发送者返回错误信息

             ACCEPT:接受

                        custom_chain:转向一个自定义的链

             DNAT  目标地址转换,即改变数据包的目的地址

             SNAT  源地址转换,即改变数据包的源地址

             MASQUERADEP伪装,即是常说的NAT技术,MASQUERADE只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP分配动态的;如果主机的IP地址是静态固定的,就要使用SNAT

             REDIRECT:重定向:主要用于实现端口重定向

             MARK:打防火墙标记的

             RETURN:返回

                        在自定义链执行完毕后使用返回,来返回原规则链。

            LOG     日志功能,将符合规则的数据包的相关信息记录在日志中,以便管理员的分析和排错

 

  • ACCEPT 当信息包与具有 ACCEPT 目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。该目标被指定为 -j ACCEPT
  • DROP 当信息包与具有 DROP 目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为 -j DROP
  • REJECT 该目标的工作方式与 DROP 目标相同,但它比 DROP 好。和 DROP 不同, REJECT 不会在服务器和客户机上留下死套接字。另外, REJECT 将错误消息发回给信息包的发送方。该目标被指定为 -j REJECT
    示例:

$ iptables -A FORWARD -p TCP --dport 22 -j REJECT

  • RETURN 在规则中设置的 RETURN 目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如 INPUT 之类的主链,则使用该链的缺省策略处理信息包。它被指定为 -jump RETURN 。示例:

$ iptables -A FORWARD -d 203.16.1.89 -jump RETURN

还有许多用于建立高级规则的其它目标,如 LOG REDIRECT MARK MIRROR MASQUERADE 等。

 

2.4      保存规则

用上述方法所建立的规则会被保存到内核中,当重新引导系统时,会丢失这些规则。所以,如果您将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用这些规则,那么必须将该规则集保存在文件中。可以使用 iptables-save命令来做到这一点:

$ iptables-save > iptables-script

现在,信息包过滤表中的所有规则都被保存在文件 iptables-script 中。无论何时再次引导系统,都可以使用 iptables-restore命令将规则集从该脚本文件恢复到信息包过滤表,如下所示:

$ iptables-restore iptables-script

如果您愿意在每次引导系统时自动恢复该规则集,则可以将上面指定的这条命令放到任何一个初始化 shell 脚本中。

 

 

 

-

 

除了内置链以外,还可以自定义链表,自定义链表的一般过程是:

1, 创建一个新链表,iptables-t filter -N newchain

2, 往新链表中添加rulesiptables-t filter -A newchain -s 192.168.75.129 -j DROP

3, 通过-j参数使用自定义的链,iptables-A INPUT -j newchain

 

3      新的资料收集暂存

20170823172409507007.png

20170823172410627008.png

http://img1.51cto.com/attachment/201108/213457974.gif

http://www.linuxidc.com/upload/2012_08/120811174595352.png

20170823172413756011.png

 

IPTABLES 规则(Rules)

Rules包括一个条件和一个目标(target),如果满足条件,就执行目标(target)中的规则或者特定值;如果不满足条件,就判断下一条Rules

目标值(TargetValues):

ACCEPT – 允许防火墙接收数据包

REJECT – 防火墙拒绝数据包,与”DROP”相比会有回应产生

DROP – 防火墙丢弃包

REDIRECT – 防火墙将数据包重定向

SNAT – 源地址翻译,将内网地址转换成公网的合法地址

DNAT – 目标地址翻译,多用在内部服务器的发布

MASQUERADE – 地址伪装,用在外网口地址经常发生变动(如pppoe拨号上网)的情况下

QUEUE – 防火墙将数据包移交到用户空间

RETURN – 防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。

 

 

 

 

IPTABLES命令参数

参数

功能

样例及说明

-A, --append

新增规则(追加方式)到某个规则链中,该规则将会成为规则链中的最后一条规则。

iptables -A INPUT ...

-D, --delete

从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。

iptables -D INPUT 1

删除INPUT链中的第一条规则

-I, --insert

插入一条规则

iptables -I INPUT 1 --dport 80 -j ACCEPT 
插入一条规则,原本该位置(位置1)上的规则将会往后移动一个顺位,变成第二条规则

-R, --replace

取代现行规则,规则被取代后并不会改变顺序

iptables -R INPUT 1 -s 192.168.0.1 -j DROP

-L, --list

列出某规则链中的所有规则。

iptables -L INPUT

-S, --list-rules

直接列出某规则链中的规则。

iptables -S INPUT

-F, --flush

删除某规则链中的所有规则。

iptables -F INPUT

-Z, --zero

将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。

iptables -Z INPUT

-N, --new-chain

定义新的规则链。

iptables -N allowed

定义一条名为“allowed”的新链

-X, --delete-chain

删除某个规则链。

iptables -X allowed

删除一条名为“allowed”的新链

-P, --policy

定义过滤政策。也就是未符合过滤条件之封包,预设的处理方式。

iptables -P INPUT DROP

-E, --rename-chain

修改某自订规则链的名称。

iptables -E allowed disallowed

将名为“allowed”的链更名为”disallowed”

-h

显示帮助信息

iptables -h

-p, --protocol

比对通讯协议类型是否相符,可以使用 ! 运算子进行反向比对,例如:-p ! tcp

iptables -A INPUT -p tcp (指定协议) -p all 所有协议, -p !tcp 去除tcp外的所有协议。

-s, --src,--source

用来比对封包的来源 IP,可以比对单机或网络,比对网络时请用数字来表示屏蔽,比对 IP 时可以使用 ! 运算子进行反向比对

iptables -A INPUT -s 192.168.1.1

匹配源地址192.168.1.1

-d, --dst,--destination

用来比对封包的目的地 IP,设定方式同上。

iptables -A INPUT -d 192.168.1.1

-j, --jump

用来指定要进行的处理动作

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

-g, --goto

用于指明包需要进行一个用户自定义链的处理。当使用--jump转到某个链中时,return不会继续后面的链中处理,而是返回至调用--jump的链中。而--goto与之不同。

iptables -N TESTA

iptables -A FORWARD -s 192.168.1.1 -j TESTA

上面的例子中-j(jump)相当于调用,自定义链结束后返回

iptables -N TESTB

iptables -A FORWARD -s 192.168.1.1 -j TESTB

-g(goto)一去不复返

-i, --in-interface

用来比对封包是从哪个网卡进入,可以使用通配字符 + 来做大范围比对

iptables -A INPUT -i eth0

-i eth+ 表示所有的 ethernet 网卡

-i ! eth0 表示eth0以外的所有ethernet网卡

-o, --out-interface

用来比对封包要从哪个网卡送出,设定方式同上。

iptables -A FORWARD -o eth0

 

-f, --fragment

这意味着在分片的包中,规则只询问第二及以后的片。自那以后由于无法判断这种把包的源端口或目标端口(或者是ICMP类型的),这类包将不能匹配任何指定对他们进行匹配的规则。如果"!"说明用在了"-f"标志之前,表示相反的意思。

iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT

指定第二个及其以后的 ip 碎片的数据流向

-c, --set-counters

在创建或更改规则时设置计数器

--set-counters 20 4000,意思是让内核把包计数器设为20,把字节计数器设为4000

-v, --verbose

在查看规则时显示详细信息

iptables -t filter -L -n -v --line-number

-n, --numeric

在查看规则时以数字形式显示

iptables -t filter -L -n -v --line-number

-x, --exact

扩展数字,显示包和字节计数器的精确值,代替用K,M,G表示的约数。这个选项仅能用于 -L 命令。

iptables -t filter -L -n –v

-x --line-number

--sport, --source-port

用来比对封包的来源端口号,可以比对单一端口,或是一个范围

--sport 22:80,表示从 22  80 端口之间都算是符合件

--dport, -destination-port

用来比对封包的目的端口号,设定方式同上。

iptables -A INPUT -p tcp --dport 22

--tcp-flags

比对 TCP 封包的状态旗号,参数分为两个部分,第一个部分列举出想比对的旗号第二部分则列举前述旗号中哪些有被设,未被列举的旗号必须是空的。TCP 状态旗号包括:SYN(同步)、ACK(应答)、
FIN
(结束)、RST(重设)、URG(紧急)PSH(***推送)等均可使用于参数中,除此之外还可以使用关键词 ALL  NONE 进行比对。比对旗号时,可以使用 ! 运算子行反向比对。

iptables -p tcp --tcp-flags SYN,FIN,ACK SYN

--syn

用来比对是否为要求联机之 TCP 封包

iptables -p tcp --syn

-m multiport --source-port

用来比对不连续的多个来源埠号,一次最多可以比对 15 个埠,可以使用 ! 运算进行反向比对。

iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110

-m multiport --destination-port

用来比对不连续的多个目的地埠号,设定方式同上。

iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110

-m multiport --port

这个参数比较特殊,用来比对来源埠号和目的埠号相同的封包,设定方式同上。

iptables -A INPUT -p tcp -m multiport --port 22,53,80,110

注意:在本范例中,如果来源端口号为 80目的地埠号为 110,这种封包并不算符合条件。

--icmp-type

用来比对 ICMP 的类型编号,可以使用代码或数字编号来进行比对。

iptables -A INPUT -p icmp --icmp-type 8

可以使用iptables -p icmp --help 来查看有哪些代码可用。

-m limit --limit

用来比对某段时间内封包的平均流量

iptables -A INPUT -m limit --limit 3/hour

表示每小时平均流量是否超过一次 3 个封包。除了每小时平均次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后: /second /minute/day。除了进行封数量的比对外,设定这个参数也会在条件达成时,暂停封包的比对动作,以避免因骇客使用洪水攻击法,导致服务被阻断。

--limit-burst

用来比对瞬间大量封包的数量

iptables -A INPUT -m limit --limit-burst 5

比对一次同时涌入的封包是否超过 5 个(这是默认值),超过此上限的封将被直接丢弃。

-m mac --mac-source

用来比对封包来源网络接口的硬件地址,这个参数不能用在 OUTPUT  Postrouting规则链上,这是因为封包要送出到网后,才能由网卡驱动程序透过 ARP 通讯协议查出目的地的 MAC 地址,所以 iptables 在进行封包比对时,并不知道封包会送到哪个网络接口去。

iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01

--mark

用来比对封包是否被表示某个号码,当封包被比对成功时,我们可以透过 MARK 处理动作,将该封包标示一个号码,号码最不可以超过 4294967296

iptables -t mangle -A INPUT -m mark --mark 1

-m owner --uid-owner

用来比对来自本机的封包,是否为某特定使用者所产生的,这样可以避免服务器使用 root 或其它身分将敏感数据传送出,可以降低系统被骇的损失。可惜这个功能无法比对出来自其它主机的封包。

iptables -A OUTPUT -m owner --uid-owner 500

-m owner --gid-owner

用来比对来自本机的封包,是否为某特定使用者群组所产生的,使用时机同上。

iptables -A OUTPUT -m owner --gid-owner 0

-m owner --sid-owner

用来比对来自本机的封包,是否为某特定联机(Session ID)的响应封包,使用时机同上。

iptables -A OUTPUT -m owner --sid-owner 100

-m state --state

用来比对联机状态,联机状态共有四种:INVALIDESTABLISHEDNEW  RELATED

INVALID 表示该封包的联机编号(Session ID)无法辨识或编号不正确。

ESTABLISHED 表示该封包属于某个已经建立的联机。

NEW 表示该封包想要起始一个联机(重设联机或将联机重导向)。

RELATED 表示该封包是属于某个已经建立的联机,所建立的新联机。例如:FTP-DATA 联机必定是源自某个 FTP 联机。

iptables -A INPUT -m state --state RELATED,ESTABLISHED

--line-numbers

在列出规则的时候加上行号

iptables -t filter -L -n -v --line-number

--modprobe

添加规则时加载必需的模块

iptables -t nat -A PREROUTING -d 192.168.1.44 -p tcp --dport 21 -i eth0 -j DNAT --to 192.168.2.100 --modprobe=ip_nat_ftp

 

 


评分

参与人数 2E币 +60 威望 +1 收起 理由
孙文峰 孙文峰 + 10 很给力!
wangxm wangxm + 1 赞一个
wangxm wangxm + 50 赞一个

查看全部评分

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
Allen03
Allen03   发表于 2017-8-23 17:27:30 已赞(0) 赞(0)

Linux防火墙学习--iptables
  • x
  • 常规:

点评 回复

wangxm
wangxm  导师 发表于 2017-8-23 17:38:14 已赞(0) 赞(0)

感谢分享!!!
  • x
  • 常规:

点评 回复

麻花藤卵蛋腾
麻花藤卵蛋腾   发表于 2017-10-15 21:16:03 已赞(0) 赞(0)

:)666
  • x
  • 常规:

点评 回复

Yep
Yep   发表于 2019-8-10 10:42:07 已赞(0) 赞(0)

厉害,学习一下!
  • x
  • 常规:

点评 回复

飞飞飞飞飞
飞飞飞飞飞   发表于 2019-8-13 14:33:43 已赞(0) 赞(0)

收藏收藏
  • x
  • 常规:

点评 回复

福建龙田网络科技有限公司
GhostBoy
GhostBoy   发表于 2019-8-21 13:53:58 已赞(0) 赞(0)

感谢分享
  • x
  • 常规:

点评 回复

GhostBoy
GhostBoy   发表于 2019-8-21 13:54:10 已赞(0) 赞(0)

感谢分享
  • x
  • 常规:

点评 回复

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

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录