Linux软防火墙ACL匹配的优化点

首先,请求不要再诬陷Netfilter!虽然它有一些固有性能损耗,但敬请不要将iptables和Netfilter等同,如果你要抓元凶,请直接说iptables,而不要说成Netfilter!

iptables真的是弱爆了!它的ipt_do_table竟然是五大元凶之一,如果规则超过了7000,那么它就是之首(其它的元凶是
nf_conntrack函数,它们也是Netfilter的HOOK)。iptables低效的原因在于它的ACL规则没有经过预处理,直接使用人类配
置的方式和顺序让数据包逐个匹配,就跟在Linux协议栈中路由表没有转换成转发表而直接让数据包执行最长前缀匹配一样!这不是Linux的错,也不是
Netfilter的错,而是你的错。你咋就不试着使用或者修改nf-HiPAC呢?
       ACL的元素匹配可以分为“与”和“或“,一般认为,与操作在同一条规则内进行,而或操作则表示不同的规则,比如下面的规则:
iptables -A FORWARD -d $ip1 -p tcp -j DROP
iptables -A FORWARD -d $ip2 -p udp -j DROP

其中,ip1和tcp以及ip2和udp就是与操作,而两条规则则是或操作,如果我们进行分组,就会得出同组要串行,不同组可并行操作的结论。

如果将两条规则进行预处理,重新颠倒分组,我们能否不按规则而按匹配元素来重新分组呢?这么做是有理由的,因为匹配元素的数量是固定的,而规则数量则是不
固定的,我们必须在海量元素之间可以执行快速的查找算法而不是顺序遍历匹配的算法,因此必须不能让海量元素作为同组元素串行。在ACL匹配过程中,遍历和
快速查找都是需要的(前面说过的,同组串行-只能遍历,异组并行-可执行任意算法),但是必须记住的是,不要按照规则将规则分到一个组,而要以匹配元素为
分组基准。要知道,人的理解方式和计算机的处理方式是完全不同的,甚至是相反的。
      
大多数的防火墙产品(Cisco,华为的暂不说,XXWRT的都有类似的补丁,也许?嗯,好象是真的,虽然我没有亲见,只是猜的...)都对待人工敲进去
的ACL规则链都进行了预处理,这其实也是nf-HiPAC的方式,我之前写过几篇相关的文章。而Linux的iptables并没有任何的预处理,这就
是它低效的原因,但这种低效不能归结到Linux或者Netfilter身上,请明悉。
      
这个周末有点真又十分假!台风盼了又没来,擦过!我早在几天就对台风登陆报太大的希望,虽然气象台一直吵吵嚷嚷...他们这帮人都是根据历史数据进行大数
据分析的,根本就不明白西风带,台风,副高,上海的纬度之间的关系,我前几年分析过这个,只是没有发表,气象论坛的帐号丢了,且级别也不高,在IT论坛搞
这个又有点清高,只能心里空自叹了。昨天上海嘉定区雨不算大,中雨水平吧,我没打伞出去搞了一会儿灵感,结果回来跟老婆吵架...唉,如此自己喜欢的好天
气竟然泡汤了,下午雨势稍微大了一些,傍晚还可以,哄好了老婆一起去出去吃饭,闹市区好一个安静,周末晚饭点好一个不用排队!我自己淋着大雨出饭店买泡
芙,看见俩老外手里拿着伞但是没打开却淋着雨,瞬间有一种找到组织的感觉,随性就好,干嘛跟着别人或者大众的路子走啊。我喜欢下雨天,所以下雨天我不会打
伞,如果有人较真儿说为什么看见我打伞了,我会告诉他,我喜欢下雨,可我的手机不喜欢....

时间: 2024-10-12 12:34:25

Linux软防火墙ACL匹配的优化点的相关文章

Linux安全调优1:CentOS防火墙的设置与优化

CentOS防火墙的设置与优化 时间:2014-09-11 02:11来源:blog.csdn.net 作者:成长的小虫 的BLOG 举报 点击:4908次 一.设置主机防火墙. 开放: 服务器的:web服务.vsftpd 文件服务.ssh远程连接服务.ping 请求. 1.开放sshd服务 开放流入本地主机,22端口的数据报文.   [[email protected] ~]# iptables -A INPUT --destination 192.168.60.99 -p tcp --dpo

初接触Linux,防火墙的规则和语法

今天给大家带来的是防火墙 一.防火墙 防火墙分为网络防火墙和应用层防火墙 1.网络防火墙 网络防火墙就是一个位于计算机和它所连接的网络之间的防火墙.该计算机流入流出的所有网络通信均要经过此防火墙.防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行.防火墙还可以关闭不使用的端口.而且它还能禁止特定端口的流出通信,封锁特洛伊木马.最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信. 2.应用层防火墙 应用层防火墙是在 TCP/IP 堆栈的"应用层&

Linux:网络防火墙原理

Linux:网络防火墙 netfilter:Frame iptables: 数据报文过滤,NAT,mangle等规则生成的工具 网络:IP报文首部,TCP报文首部 防火墙:硬件,软件:规则(匹配标准,处理办法) Framework: 默认规则: 开放: 堵 关闭: 通 规则:匹配标准 IP:源IP,目标IP TCP:源端口,目标端口 tcp三次握手: SYN=1,FIN=0,RST=0,ACK=0; SYN=1,ACK=1,FIN=0,RST=0; ACK=1,SYN=0.RST=0,FIN=0

Linux软RAID配置

RAID卡一般分为硬RAID卡和软RAID卡两种,通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID.通过软件并使用CPU的RAID卡是指使用CPU来完成RAID的常用计算,软件RAID占用CPU资源较高,绝大部分服务器设备是硬件RAID. 一:Raid级别 raid0: 多个磁盘的容量大小相加.最后的容量就是多个磁盘容量的大小. 优点:扩大了磁盘的空间容量 缺点:没有数据冗余,一块磁盘坏掉,导致所有数据无法正常访问,此时就丢失了一个磁盘的数据量

主机防火墙的设置与优化

一.设置主机防火墙. 开放: 服务器的:web服务.vsftpd 文件服务.ssh远程连接服务.ping 请求. 1.开放sshd服务 开放流入本地主机,22端口的数据报文. [[email protected] ~]# iptables -A INPUT --destination 192.168.60.99 -p tcp --dport 22 -j ACCEPT 开放从本地主机22端口流出的数据报文 [[email protected] ~]# iptables -A OUTPUT --so

Linux iptables防火墙添加删除端口

一.  Linux 防火墙的启动和关闭1.1 启动命令[[email protected] ~]# service iptables stopFlushing firewall rules:                                   [  OK  ]Setting chains to policy ACCEPT: filter nat                [  OK  ]Unloading iptables modules:                  

掌握linux系统防火墙有它就够了

一.前言介绍 企业中的防火墙安全配置原则: 尽可能不给服务器配置外网IP,可以通过代理转发或者通过防火墙进行映射. 并发不是特别大情况有外网IP,可以开启防火墙服务. 一般大并发的情况下不能开iptables,影响性能,利用硬件防火墙提升架构安全. 二.Iptables防火墙概念介绍 Netfilter(内核)/Iptables(软件)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包顾虑的防火墙工具 他的功能十分强大,使用灵活可以对流入和流出服务器的数据包进行很精细的控制. i

raid基础及linux软raid之dmadm

RAID  0 : 条带         性能提升:读,写  n         冗余能力(容错能力):无         空间利用率: nS         至少2块磁盘    1 : 镜像         性能提升:写性能有所下降,读性能提升         冗余能力:有         空间利用率: 1/2         至少2块磁盘  2 :   3 :   4 :   5 :          性能表现:读写提升         冗余能力:有         空间利用率:(n-1)/

写了个Linux包过滤防火墙

花几天写了个so easy的Linux包过滤防火墙,估计实际意义不是很大.防火墙包括用户态执行程序和内核模块,内核模块完全可以用iptable代替.由于在编写的过程一开始写的是内核模块所以就直接用上来. 代码结构如下: .├── kernelspace│   ├── Makefile│   ├── Makefile_netlink│   ├── modules.order│   ├── Module.symvers│   ├── netfilter.c│   ├── netfilter.h│