Netfilter/Iptables入门

Netfilter/Iptables入门linux

Linux的内核是由www.kernel.org这个组织负责开发维护,下面咱们要讨论的Netfilter/iptables是www.netfilter.org组织为Linux开发的防火墙软件。因为Linux是很是模块化的,不少功能都是以模块加载扩充系统功能,Netfilter一样采用这种方式存在于Linux中。若是你理解了Linux模块加载也就可以理解Netfilter的模块加载方式。你们在 /lib/modules/kernel_version/kernel/net/ipv4/netfilter/目录下可以看到不少以“.ko”为扩展名的文件,哪里存放的就是已经编译好的模块文件。
学习Iptables首先须要学习者具有TCP/IP的基本概念、封包在网络中如何传送,有什么限制,尤为是TCP和IP包头结构以及TCP、UDP和Socket有什么关系,理解这些内容是学习本章的基础。
1. Netfilter的功能
若是你到Netfilter模块目录仔细查看会发现各类功能的模块,这些模块仅是提供某些过滤功能,若是想让Netfilter为我所用,还须要赋予它执行的“规则”,定出了规则后,Netfilter才知道哪些数据包经过,哪些数据包阻止,又有哪些数据包被置换处理。根据功能划分,Netfilter分为Filter、NAT、Mangle和RAW四个功能,由这四个功能也派生出了四张表,其主要功能以下:
Filter:其主要功能是进行数据包过滤。
NAT(Network Address Translation):IP地址转换,主要解决上网问题。
Mangle:其主要功能是修改防火墙封包。
RAW:其功能是加快数据包经过防火墙的速度,以提升防火墙性能。
注意:这四个表按使用平率从多到少依次是这么排的,可是按表的处理优先级,是这样:Raw > Mangle > Nat > Filter。
1. 1 理解Filter机制
首先,咱们看下面的一个例子,在客户机上经过Firefox访问,远端Apache服务器上的Web页面,像这样个日常操做中对于Netfilter有这三种封包类型,而这就是Filter的关键机制。
clip_image002
图 封包类型
INPUT类型
当客户机访问Web 服务器的httpd进程时,对于Web服务器而言,属于入站的包,换句话所就是网上其余主机送给本机httpd进程的封包,这里把它定义为INPUT类型封包(图中红色箭头)。
OUTPUT类型
与INPUT相反,由Web服务器的httpd进程连接到客户机上的这类封包就属于OUTPUT类型(图中的绿色箭头),也就是本机httpd进程所产生的封包。
FORWARD类型
在图中,路过Web服务器的封包,就属于FORWARD类型。在什么状况下会产生这种类型封包?咱们拿Linux当作路由器使用时就会有FORWARD类型封包产生。
有了上面的基本概念,下面开始讨论过滤表,Filter Table有三个链(Chain),所谓链你们能够形象的理解为自行车中的链条,它是环环相扣的,封包在网络上传送也是如此。
clip_image004
Filter 表结构
上图中系那是了Filter表的结构,你会发现这不就是三种封包类型吗?下面详细分析一下:
INPUT链:为了理解这一问题,咱们仍是拿个实例进行分析,例如咱们要保护Web服务器的httpd进程,在三种封包类型中,应该注意哪种呢?确定是INPUT类型封包,那么你须要将用来过滤INPUT类型的封包写到INPUT链的规则之中。这样就能起到保护httpd进程的目的。广而言之,INPUT链就是用来存放过滤INPUT类型封包的规则,经常使用在保护本机的状况下。
OUTPUT链:仍是接着上面的访问网站的实例讲解,若是打算限制客户机不能浏览www.website.com网站,咱们该限制那一种封包?你们能猜出是OUTPUT类型封包,没错。咱们能够在OUTPUT链中写入“若是封包由httpd进程产生,并发往错误!超连接引用无效。口,就将封包丢弃”这段伪代码,这样就达到限制网络的连接行为。因此OUTPU链就是用来存放过滤INPUT类型封包的规则,经常使用于限制本机进程的网络连接。
FORWARD链:在上图中linux服务器做为路由器使用,用来保护远端的一台Web服务器,那么应该限制那类封包类型?确定是FORWARD类型,也就是说FORWARD链用来保护防火墙后面的服务器。
因为Filter机制很是复杂,为了你们容易的理解,用了一个简单的示意图表示Filter原理,注意图中路由表虽然画了两个,但实际只有一个,也就是咱们在系统中用“route –n”看到的内容,路由表决定了封包的传送路径,尤为在多网卡的系统中尤其重要。本地进程就是上面所述的Web服务器进程,你们能够理解为httpd进程。
clip_image006
图 Filter原理图
接下来,以三种不一样的场景来讲明网络封包在Filter机制中被处理的过程。
1) 在上网时,客户机链接服务器,也就是网络封包的目的地是Web服务器的httpd进程,封包首先送到路由表,并有路由表的内容决定传输路径。既然客户机是访问Web服务器上的页面,也就是封包是送给本地进程httpd的,所以封包被送入INPUT链,这是若是INPUT链若是让过,封包就会被送入本地进程,不让过就被丢弃(Drop掉)。
2) 当服务器返回结果,须要连接客户机进程,这是由本地进程httpd往外传送封包,首先封包会被传送如入路由表,由这里的内容决定封包传输路径,接着被送入OUTPUT链,若是容许则出站,若是不容许丰碑就会被丢弃(Drop掉)。
3) 当Linux系统做为防火墙部署,当作网关式防火墙使用,当封包要经过防火墙,首先入站进入路由表,由路由表判断,封包是要由另外一个NIC口送出,封包就会送入FORWARD链,此时若是FORWARD链里的规则不准封包经过,那么直接丢弃。反之封包出站离开防火墙。
2. 规则匹配过程
在介绍了Filter工做原理以后接下来说解封包在每一个链中如何匹配,这个概念也很是重要。仍是以上图加以说明,实际应用中每一个链中包含的规则数量不尽相同,不管那一个Filter表其匹配原则都是“First Match”,即优先执行。当咱们在防火墙上添加的新规则被逐条加入到INPUT链中,被顺序编号,例如rules一、rules2等。当封包进入INPUT链以后,Filter机制会以这个封包的特征从INPUT链内的第一条规则逐一贯下匹配,若是封包进来遇到第一条规则容许经过,那么这个封包就会进入到本地进程httpd,而无论下面的rule二、rule3的规则是什么都不重要;相反若是第一条规则说要丢弃,即使是rule2规则容许经过也不起任何做用,这就是“first match”原则。
在使用规则是你们要注意一个原则,尽可能减小没必要要的规则,由于当封包进入防火墙后会在特定的链里逐一被对比,规则条数越多,封包在防火墙中滞留的时间就越长,防火墙性能就会下降。
防火墙规则顺序也会影响其工做效率,例如客户端经过Linux防火墙收取外网邮件, 客户端使用程序为Outlook,使用的是Pop3协议。防火墙规则以下:
1. iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT
2. iptables -A INPUT -p tcp --sync -m state --state NEW --dport 25 -j ACCEPT
3. iptables -A INPUT -p tcp --sync -m state --state NEW --dport 80 -j ACCEPT
4. iptables -A INPUT -p tcp --sync -m state --state NEW --dport 110 -j ACCEPT
5.iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
当客户段的第一个封包须要花费4次匹配动做,若是一封邮件须要1000个封包的话在加上TCP三次握手的封包这样的匹配的次数达到数万次之多,若是将第四条规则移到第一条那么匹配次数只需1千屡次,因而可知规则的顺序对于防火墙性能有着很大影响。因此只要将使用平度最高的规则写在第一个,之后依次类推就行了。
那么,如何肯定哪一个规则使用频率高或者低呢?可以使用下面命令查看:clip_image008
还有特殊状况,封包从INPUT链进来从第一条规则匹配到最后一条都没有匹配成功,怎么办?系统已有考虑,在每一个链的最后有一条默认策略,并且这条默认策略老是最后才被匹配,并且这条默认策略的状态只有一种(ACCEPT或DROP),咱们假设默认策略为ACCEPT,那么封包这是就能够进入到本地进程,若是为DROP则被默认策略所丢弃。最后强调一点Netfilter的默认策略预设值为ACCEPT,这个也是能够修改的。
3.Iptables实战
Iptables原理难理解,操做命令的参数多,在使用上也比较复杂,咱们先无论复杂的语法和繁多的参数,首先看看下面简单的例子应用:
1) 列出Filter表的全部内容web

iptables –t filter -L

clip_image010
2) 清除 Filter表中全部内容算法

iptables –t filter –F

3) 在 INPUT链中加入规则shell

iptables –t filter –A INPUT –p udp -j ACCEPT

clip_image012
4) 在INPUT链中第二行的位置插入新规则数据库

iptables –t filter –I INPUT 2 –p tcp –j ACCEPT

clip_image014
注意: 2 表明插入到第二条规则的位置,-p tcp –j ACCEPT为本次要插入的规则,-L参数后面加入—line-number表示能够再规则前显示行号。
5) 删除第二条规则浏览器

iptables –t filter –D INPUT 2

6)将INPUT链中的默认策略改为DROP安全

iptables –t filter –P INPUT DROP \*注意这里字母P为大写\

看完上述演示,不当心是否是就入门啦,照葫芦画瓢将上面的命令用在其余表上就照样能够哦。下面咱们继续讲解。
7)禁止192.168.11.100主机ping我
须要将192.168.11.100发送到本机的ICMP封包丢弃,操做以下:服务器

iptables –A INPUT –p icmp –s 192.168.11.100 –j DROP

分析:
由于保护对象时本机,因此选择的是INPUT链;
-p icmp 注意是小写。 这里是匹配icmp协议封包,扩展一下” –p tcp”匹配TCP封包,-p udp匹配UDP封包而“-p all”匹配全部协议封包。
-s 192.168.11.100 源IP地址为192.168.11.100,那么若是是目的地址呢就是”-d”,若是目的地是个网址呢“-d www.website.com”,若是是一个网段呢“-d 192.168.11.0/24”就用CIDR形式表示。
-j DROP 符合前面两项条件就DROP掉
8)容许192.168.11.100主机能够ssh登陆本机网络

iptables –A INPUT –p tcp s0 192.168.11.100 –dport 22 –j ACCEPT

--dport 22 匹配目的端口为22的封包,TCPPort 22为SSH服务端口
-j ACCEPT: 符合前三项条件的封包可进入
9)容许192.168.11.0/24网网段全部主机访问本机192.168.12.1任何服务请求并发

iptables –A INPUT –p all –s 192.168.11.0/24 –d 192.168.12.1 –j ACCEPT

10)禁止企业内部主机访问外网

iptables –A FORWARD –I eth1 –o eth0 –p tcp –dport 80 –j DROP

这里是将linux安装在双网卡服务器上做为防火墙使用,因此确定使用FORWARD链,eth0接外网,eth1接企业内网。
-i eth1 : 匹配封包进入的接口
-o eth0 :匹配封包离开的接口,结合-i,-o两个参数便可匹配封包的目的传送方向。
-p tcp: 匹配TCP协议的封包
--dport 80 : 匹配目的端口为80的封包,补充一点可搭配“!”来表明反向,如“—sport ! 80”表明匹配不是从Web发送的封包。
-j DROP 符合以上4个条件的封包丢弃
4 Iptables语法
下面不得不讲解语法了,看完以上10个例子相信你们已有了基本概念下面我总结一下:
Iptables 命令格式
Iptables [-t table] command [chain] [rules] [-j target]
你们在看到这一格式时不是是有些眼熟,其实上面不少命令都是按照这个格式来写的。
Table:指定表名,例如filter表,raw表,mangle表,nat表
Command:对链的操做,好比-A表示追加规则,-I表示插入规则
Chain:链名称,好比INPUT链,OUTPUT链,FORWARD链,PREROUTING链,POSTOUTING链
Rules:规则
Target:动做如何进行,也就是理解为处理方式,当前面规则里的条件匹配时如何处理是ACCEPT(经过),仍是DROP(丢弃)REJECT(丢弃并回应发送端一个Destination Unreachable的ICMP封包)
Netfilter的NAT原理
NAT是网络地址转换(Network Address Translation)的缩写,主要功能与其说节省公网IP的使用量不如说是能够隐藏内网IP地址。这种技术既能够运用在Server端也能够用在Client端。NAT种类繁多主要有本书主要介绍一对多的NAT使用。
clip_image016
图 NAT原理
NAT工做过程:
下面经过NAT方式,实现企业内网全部主机经过一个公有Ip上网,图例以下图所示。在图中个设备参数说明以下:
? 客户机IP 192.168.11.10
? NAT服务器由Linux的Iptables实现,Linux服务器安装了双网卡。
? eth1接内网,Private Ip为192.168.11.1
? eth0接外网,Public IP为10.0.0.1
? 公网WebserverIP为202.202.202.202
首先,192.168.11.10这台客户机在浏览器输入http://202.202.202.202/,通过如下六步完成显示网页的过程。
第一步,192.168.11.10送出封包给202.202.202.202服务器;
第二步,这个封包交给NAT网关处理,接着NAT主机将这收到的封包源地址改为NAT主机的PublicIP;
第三步,NAT主机记录下来这个封包,而后将这个封包当即发往202.202.202.202主机;
第四步,远端主机202.202.202.202相应给这个主机回应封包,但此次响应的目的端主机为10.0.0.1这个Public IP,而不是客户机的IP;
第五步,这个包被送回到NAT主机;
第六步,当NAT主机收到这个封包后,就从以前记录下来的信息中找到最初NAT主机把192.168.11.10转换成10.0.0.1的记录,最后NAT主机把这个封包内的目的IP改为192.168.11.10,最终客户机收到了Web服务器的回应。也就是内网主机借助NAT去访问外网资源。
注意:在第一步到第二步的过程当中,封包的源地址改变了,这种变动源地址的过程称为SNAT,而在第五步到第六步中,目的地址呗改变了,同理就被称为DNAT,基本上每种NAT都是由SNAT和DNAT共同搭配而成。
接着上面实例分析,封包由eth1接口进入,通过装换后由eth0离开,封包产生依次为POSTROUTING(源地址转换),Routing Table和PREROUTING(目的地址转换)三种不一样机制的变化。若是封包由eth0送入并有eth1送出则顺序相反。因此POSTROUTING和PREROUTING的位置和封包流向有关。
clip_image018
图 封包流向与SNAT、DNAT的关系
查看Nat Table结构命令以下:

iptables –t nat –L

clip_image020
总结,POSTROUTING是源地址转换,要把你的内网地址转换成公网地址才能让你上网。PREROUTING是目的地址转换,要把别人的公网IP换成大家内部的IP,才让访问到大家内部受防火墙保护的机器。下图介绍了NAT的完整结构。
clip_image022
图 NAT结构
1) PREROUTING
当你想改变封包目的IP时请将规则放置于PREROUTING Chain以内,由于PREROUTING Chain的功能在于执行DNAT。
2) POSTROUTING
POSTROUTING China的功能则是变动封包的源IP,即它主要是执行SNAT任务。值得注意的是它位于整个NAT机制的最末尾,所以咱们执行SNAT,源IP变动也是在最后执行。
一对多NAT举例
一对多NAT的应用平时最经常使用,下面咱们看看实际应用,拓扑和配置仍是看上图。
在设置这种NAT时,咱们的考虑封包进入和出去两个方向,首先考虑由企业内部传送封包到外网的状况,若是192.168.11.0/24网段的主机要访问外网202.202.202.202这台主机,其服务器请求封包内的源IP可定时私有IP,确定不可能直接送达外网,所以必须由NAT主机上的SNAT机制将外送封包内的源IP改为NAT主机上的PublicIP,这样才能让外网主机响应回的封包能够顺利返回到NAT主机对外的PublicIP上,此SNAt规则写法以下:

iptables –t nat –A POSTROUTING –o eth0 –s 192.168.11.0/24 -j SNAT –-to 10.0.0.1

注意,放在NAT主机后方的系统并不安全,以一对一的NAT为例,当黑客从外网攻击NAT的Public IP地址时,这个攻击的封包会被转送给NAT后方的主机。要提升安全性还须要和Filter机制相结合才行。
Iptables规则库管理
咱们知道iptables的规则被存储在各类不一样的链中,至关于一个规则库,当咱们修改完规则可用iptables-save命令进行存储。对于ossim系统而言iptables规则存储在/etc/ossim_firewall文件中,每次启动系统时会经过iptables-restore 调用/etc/ossim_firewall文件到内存中。若是是Redhat系统则是用过”service iptables save”命令存储,默认规则路径为/etc/sysconfig/iptables文件内。可是这样管理未必是好事,好比规则库中有100条规则,有80条规则都包含地址192.168.11.10,那么若是须要修改将原来的192.168.11.10改为192.168.12.10,你打算将全部的地址都从新输入一遍吗?那样效率过低了。可建议你们采用脚本管理方式,也就是将规则写入shell脚本,这样能够将ip地址存储变量中
Mangle机制
Mangle表主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)指以及为数据包设置Mark标记,以实现Qos(Quality Of Service,服务质量)调整以及策略路由等应用,mangle 表对应的内核模块为 iptable_mangle。因为须要相应的路由设备支持,应用并不普遍。注意Mark并无真正地改动数据包,它只是在内核空间为包设了一个标记,Mangle应用顺序要高于nat、filter。
iptables -F -t mangle # 清除mangle表中,全部规则链中的规则
iptables -t mangle -X # 清除mangle表中,使用者自订链中的规则
RAW机制
RAW表只使用在PREROUTING链和OUTPUT链上,由于优先级最高,从而能够对收到的数据包在链接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即再也不作地址转换和数据包的连接跟踪处理了.
RAW表能够应用在那些不须要作nat的状况下,以提升性能。如大量访问的web服务器,可让80端口再也不让iptables作数据包的连接跟踪处理,以提升用户的访问速度。
执行如何指令便可
iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
iptables -t raw -A PREROUTING -p tcp --sport 80 -j NOTRACK
iptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
Netfilter模块应用范例
封包的匹配是Netfilter筛选封包的基本方式,匹配方法越多,提取出的封包种类就越细致,这样防火墙的保护范围就越大。
举例:
1) 禁止内网用户访问http://www.website.com

iptables –A FORWARD –p tcp –I eth1 –o eth0 –d www.website.com –j DROP

2) 匹配目的端口
禁止192.168.11.0/24网段内的全部主机访问外网FTP服务,规则以下:

iptables –A FORWARD –i eth1 –o eth0 –p tcp –s 192.168.11.0/24 --dport 21:22 –j REJECT

若是时匹配源端口呢?只须要将“--dport”改为“—sport”便可。
3) TCP-Flags匹配
为了防范一些非正常封包咱们能够利用netfilter过滤tcp-flags状态,咱们能够利用—syn来判断封包内含有syn标志。例如:

iptables –A INPUT –p tcp --tcp-flags ALL SYN,FIN –j DROP

4)MAC地址匹配
一些公司内部是DHCP分配客户机IP,但有时须要制定特定IP才能访问数据库服务器,怎么处理呢?咱们能够根据这些指定机器的MAC地址进行过滤假设MS SQL服务器所使用端口为1433,指定的主机网卡MAC地址为00:0c:29:53:ab:60 ,规则以下:

iptables –A INPUT –p tcp --dport 1433 –m mac --mac-source 00:0c:29:53:ab:60 –j ACCEPT

其中-m mac表示调用xt_mac.ki模块,它的功能是匹配MAC地址。
5. IP地址范围匹配
当你想封锁某个IP地址段的时候不会去一条条IP地址输入吧,Netfiletre中有ipt_iprange.ko模块能够用一条语句解决问题,规则以下:

iptables –A INPUT –m iprange --src-range 192.168.11.110-192.168.11.150 –j DROP

一样方法,若是须要限制目的地址,那么就须要把”--src-range”换成”--dst-range”便可。
6. TTL值的匹配
生存时间(time-to-live)指定数据包被路由器丢弃以前容许经过的网段数量。它是IP(中文全称:网络协议)协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃,通常状况下LinuxTTL值为64或255,Windows 2000/XP TTL值为128。
TTL值的匹配是由Netfilter的ipt_ttl.ko模块实现。举例,咱们要将TTL值为128的封包丢弃,规则以下:

iptables –A INPUT –m ttl --ttl-sq 128 –j REJECT

  1. 匹配MTU值
    这个和封包长度有关,MTU是最大传输单元,它是指一种通讯协议的某一层上面所能经过的最大数据包大小(以字节为单位),下面以ICMP封包为例讲个特殊场景。
    Ping是个常见命令,而在linux下以ping –f –s 16384 1.2.3.4 就会产生大量大型ICMP封包不但占用机器CPU并且占用网络带宽,“-s 16386”会产生出来的ICMP封包所承载的数据大小为16KB,若是用ping –f –s 0 1.2.3.4指令则会产生更多的ICMP请求包。这样一来就会慢慢造成DOS攻击。
    clip_image024
    有些朋友想到禁止Ping,会使用如下命令
    echo 1 >; /proc/sys/net/ipv4/icmp_echo_ignore_all
    有时候搞得本身也不能ping 很不方便,仍是使用iptables的xt_length.ko模块好使。

iptables –A INPUT –p icmp --icmp-type 8 –m length --length 1:99 –j ACCEPT

iptables –A INPUT –p icmp --icmp-type 8 –m length --length 1000:16386 –j DROP

注意:咱们把不符合要求的ICMP type 8封包过滤掉的目的是避免主机受到大量ICMP封包的攻击。--length 1000:16386表示匹配MTU值介于1000~16386 Bytes的封包
8. 对指定封包重复率的匹配
使用limit的灵活度就比上面的规则强,不是一棍子打死。比方说我但愿每分钟有10个ICMP封包就进入,若是超过,那咱们就限制每分钟只能进来6个ICMP。实现规则以下:

iptables –A INPUT –p icmp --icmp-type 8 –m limit --limit 6/m --limit-burst 10 –j ACCEPT

iptables –A INPUT –p icmp --icmp-type 8 –j DROP

注意:6/m,其中的m表明分钟,后面的—limit-burst 10 表示每分钟进入10个封包,千万别忘记第二条规则,只有两条都输入才起做用。
9. 对封包内承载内容进行匹配
假设外网攻击者经过发送“./winnt/system32/cmd.exe?/c+dir”攻击了内网IIS服务器,在服务器漏洞没有彻底修复前咱们能够尝试在Linux网关防火墙上利用xt_string.ko模块的匹配功能暂时阻止攻击者再次袭击。规则以下:

iptables –A FORWARD –I eth0 –o eth1 –p tcp –d 10.0.0.1 --dport 80 –m string --algo bm --string “system32” –j DROP

含义:若是封包要送往IIS Server的80端口,就用string模块匹配,bm表明(Boyer-Morre)算法,若是封包含有 system32字符创就丢弃。不过要注意这只是临时处理方法而不是救命稻草。
10. 对日志的处理
Netfilter默认并不会产生日志,若是须要记录日志就须要用到ipt_log.ko这个模块,下面举例说明,咱们要记录曾对本机发出FTP服务请求的IP地址,可以使用以下命令:

iptables –A INPUT –p tcp --dport 21 –j LOG

iptables –A INPUT –p tcp --dport 21 –j ACCEPT

LOG只会记录封包信息,而不会处理这个封包,LOG是个比较特殊的处理方法,这个封包会继续匹配INPUT链内的其余规则,而LOG所记录下来的日志则会存放在/var/log/messages中,查看方法:

tail –f /var/log/messages

clip_image026
你在使用中会发现log日志量增加很快,由于LOG会记录每一个FTP协议封包的信息。下面咱们修改一下,只记录每条链接的第一个分包,这样日志的尺寸就大为减少。

iptables –A INPUT –p tcp --syn --dport 21 –j LOG

下面接下来的问题就是如何从/var/log/messages中提取LOG,咱们可使用--log-level参数,改进方法以下:

iptables –A INPUT –p tcp --syn --dport 21 -j LOG --log-level alert

先别着急,你好须要在/etc/syslog.conf文件中加入下面以行配置
Kern.=alert /var/log/netfilter
这表示若是log由Kernel产生,并且log level 为alert级别的日志的话,就存储到/var/log/netfilter文件。
最后重启syslog服务,之后关于FTP协议的log 就会存放到/var/log/netfilter文件。
这里介绍的LOG是由系统syslog处理,另外还有更先进的能够采用ULOG处理方法这里就不详细介绍感兴趣读者参考《UNIX/Linux网络日志分析与流量监控》一书。

相关文章
相关标签/搜索