经常看到很多人,在争论linux/bsd下面有那么多的防火墙,我们选择谁呢,其实咱们经常碰到的开源防火墙(那些由BSD基础定制开发的商业防火墙ciso,jump,华为等)不在此列)有:iptables,ipfilter,pf,ipfw(panabit7层),看起来很多其实我们完全没有必要恐慌,如果您有钱完全可以去买ciso,华为等品牌防火墙出了事可以找个背黑锅的,反正不是花咱们自己的钱,还能拿到他们的回扣。。。,这样的话你就不用往下面看了,因为你不用为选择什么防火墙烦恼了呵呵。

其实对于一般的中小企业,总出口带宽不超过千兆的话,完全不需要卖那些价格高高在上,性能低低在下的东东,编程时门学问,核心库算法都是百年不变的东西(基础都是数学,过时很难),有很多商家很聪明,会借用开源bsd,linux自己改改再加上一个定制的1U,半U机箱装上一个赛扬或者更低能的嵌入式cpu就说是完全自主开发,线性千兆性能了(就不告诉你倒是多大的包的性能测试,你问他64位小包性能,他就要哭了)。当然网络过滤性能是软件与硬件的共同结果,如果您企业的带宽超过了千兆,那就没办法省钱了,还是去买ciso,jump等大企业的mips多核心+专门网络加速模块防火墙吧,我想最少也要百来万把,不过您的实力肯定是小意思了。

好了废话不说了,最近由于项目原因,研究了下防火墙,我们网站的第一道防线,浅谈下个人对iptables,ipfilter,pf,ipfw的个人看法吧,仅供参考,请谨慎部署,出问题与本人无关!

1,iptables,linux自带的防火墙,对于这个防火墙本人不看好,首先我是不会拿linux来做防火墙的,为什么呢,很简单linux核心开发者太多,无组织,无纪律,隔山查尔的更新kernel,最新版的kernel都到3.6了,而我们的debian,centos才可怜的2.6.32可悲啊,不过我欣赏debian,centos发行版,为了稳定,还是不要冒进,linux核心都不稳定,选择iptables就是一个玩具了!动不动冒一个linux溢出漏洞,所有设置都是枉然,建议还是老老实实,用linux当后端的web,数据库用吧,当然如果你非要用,我那么我还是建议你使用linux的专门的防火墙发行版-IPCop ,毕竟如果安全要求不高话,还是可以用用的,毕竟linux的性能,iptables-nat转发性能大家都知道很高的,而且还有一个ly7项目,可以把iptables扩展到应用层去,不过你可千万不要还用ly7官网的特征码了,那个太老了,以至于panabit都在笑了,其实大家完全可以学习ly7的7层特征码正则表达式(不难就是用正则表达式过滤匹配分析数据包),自己通过,科莱分析软件,tcpdump等包分析软件书写自己的特诊吗,当然了这需要长时间的测试磨合了。
   2,下面就来说说我们可爱的freebsd上的几款防火墙其中最让我纠结就是ipfilter,ipfw了,这两个家伙,一个是普通过滤性能强悍-ipfw,一个是nat转发性能强悍-ipfilter(由于版权协议,已经被openbsd抛弃了,这也就诞生了pf),ipfw是freebsd的亲生防火墙,在以前很老的版本中nat模式还不是核心模式,所以转发性能很低下,当然现在已经是核心模式了,而且配置简单明了,而且有强人写了linux-iptables中的ly7山寨bsd7层过滤模块-ipfw-classly借用了linux-ly7的正则特征码,说白了就是linux-ly7的的bsd实现,只用我们常用到的pfsense,7层过滤功能就是调用了bsd-ly7模块,当然也是落后的7层过滤特征码,需要自己写新的,还有那个笑使用linux-ly7的panabit,其实他也是在使用ipfw-classly只是人家把所有的软件名字全部改掉了,不叫ipfw也不叫ipfw-classly了,(全完自主开发嘛),但是他们还是做了一点事情的就是设计了一个很漂亮的web前台,和自己经常性的编写最新的ly7特征码,以跟上腾讯QQ,迅雷的脚步,可惜啊,那些都是加密的,本人是没有办法破解了,但是加密了怎么能开源呢!对于ipfw我的看法是如果你不需要防护墙来实现 F5一样的集群负载均衡的话,可以使用,因为他缺乏pf的地址池轮训功能,只能说是一个功能和linux-iptables差不多的防火墙吧,我给他打70分吧。。。

至于ipfilter除了nat转发性能蛮好外,没有其他特别的功能,甚至还没有人开发7层过滤模块,当然如果您的防火墙后面保护的是网吧游戏电脑,可以有效的降低ping延迟,对于网吧来说是不不错的选择,不需要什么负载均衡啊,地址池,7层过滤等功能,是不不错的选择,建议选择基于freebsd的m0n0wall防火墙系统。。。打个60分吧。

下面我们来研究下我们的pf防火墙吧,这个东东原来是openbsd中用来替代ipfilter的防火墙,和openbsd配合简直是完美的集合,加上openbsd的relayd可以实现和F5(听说要几十万把)的防火墙负载均衡功能,pf有着很多很使用的功能,ip地址池的强大配置,syn代理握手,方便的包整流,流控,状态表控制,网关认证等等除了不支持7层过滤外,其他防火墙有的他都有,其他防火墙没有的他也有,全完能满足咱们的各种变态的要求,但是唯一的不好就是openbsd虽然安全但是,硬件支持不好,其中导致的最让我崩溃的就是没有不支持intel网卡的polling功能,遇到64小包,syn***等流量***直接挂住,定死!好在freebsd是一个研究,学者性的操作系统,他在偷学linux的同时,还在偷学其他的BSD,他很好的把pf从openbsd中移植了过来,而且功能语法知道freebsd9.0基本没发上变化,(freebsd是移植openbsd4.5-pf,openbsd此前经行了性能最大调整版本),当我们遇到非常大的syn小包***,导致 cpu中断崩溃时我们可以马上开启网卡的polling模式,虽然性能下降了点,不过好歹不怕syn***了,我的最后选择就是freebsd+pf作为我们的前端防火墙,把freebsd的swap关闭,所有系统加载到内存中区运行,精简内核,删除所有无用的程序,把freebsd运行等级提高到2,保护内核,及防火墙规则组件,如果你不是很熟悉pf规则编写,或者喜欢图形化,可以选择pfsense2.01-freebsd8.1+pf的防火墙系统。我给pf打80分吧,毕竟性能不算最高的,建议部署在千兆带宽以内,500台机器左右的机房。

好了,防火墙选择好了,随便谈谈diy防火墙的硬件选择及要求:

1,cpu,我们要选择多核心最少2个核心,最关键的还有频率,由于x86cpu是通用处理器,完成一个数据包的过滤需要很大的中断开销,已经非常多的指令执行(大概完整的处理一个数据包需要大约14000条指令),导致了其处理64位小包的能里低下,没办法我大概的算了一下,要使用x86处理器达到小包线速处理千兆带宽流量,需要处理器频率达到7G左右,但是除非你超频,否则我建议最少不要小于3.2G频率吧,而且最好选择intel-cpu支持能配合intel-网卡,更好的支持发送,接受列队功能,miix中断等专门的网络优化技术。

2,网卡不用多说了,唯一的选择intel网卡。而且要处理千兆的话最好是两块intrel网卡绑定聚合mode=0,这个我就不说了,linux配置大家都会吧,接口一定是pci-e接口,芯片组嘛5257系列了吧,最好支持队列,支持miix2代中断。把所有的外部网卡中断都cpuset 到第一个cpu上,可有效的防止ddos中断是的cpu切换开销,当然了你要知道那块网卡是外部的,通过vmstat -i查看中断号,你懂得。

3,不要硬盘,随便整一个dom盘,就可以了,反正只是作为启动用,一旦freebsd启动所有的东东都会加入到 内存中运行!关闭swap.

4,内存这个东东,越大越好罗。最少2G-4G吧, 如果你图稳定就选择32位的freebsd,内存嘛 有个2G就好了,一般来说一个连接占用1K左右内存,10M内存处理1万个连接吧。处理百万并发肯定要2G罗呵呵

5,其他的就没什么要求了,想耗电少点还是选择一块迷你小板吧,把所有东东塞进一个火柴盒子里面,就算是专业的千兆硬件防火墙了(开个十万八万的越高越有人买,越便宜越没人要)。

好了,大概的说了说。大家有时间多看看openbsd-pf手册,pfsense手册,研究研究,一定会有收获的。最后希望netbsd6.0赶紧出release,想用用他的新型防火墙 npf官方介绍对多核心有优化期待中。。。。。

转载于:https://blog.51cto.com/cookingbsd/960576

linux/bsd四大防火墙我们选择谁相关推荐

  1. 简要聊聊UNIX,MINIX,LINUX,BSD的区别与特质

    聊聊linux,minux,bsd,unix的历史与区别 Linux.MINIX.BSD和UNIX都是类UNIX操作系统,它们都是基于UNIX操作系统的,但也有很多不同点. UNIX操作系统最早由贝尔 ...

  2. Linux代理服务器与防火墙安装与应用

    环境介绍:两台Linux系统(一台用于防火墙[两张网卡,一张连接外网,一张连接内网],一台XP客户机测试用 在2.0内核中,网络防火墙的操作工具名称是ipfwadm 在2.2内核中,网络防火墙的操作工 ...

  3. 怎么监听linux防火墙,linux怎么查看防火墙是否开启并清除防火墙规则?

    iptables是linux下的防火墙组件服务,相对于windows防火墙而言拥有更加强大的功能,下面我们就来看看linux系统中关于iptables的一般常见操作,判断linux系统是否启用了ipt ...

  4. linux 关闭本地防火墙_如何使用Linux防火墙阻止本地欺骗地址

    linux 关闭本地防火墙 攻击者正在寻找复杂的方法来渗透受入侵检测和防御系统保护的远程网络. 没有IDS / IPS可以阻止或控制决心接管您的网络的黑客的攻击. 配置不当会使攻击者绕过所有已实施的网 ...

  5. linux红帽子怎么设置防火墙,RedHat Linux如何设置防火墙

    为它具备最好的图形界面,无论是安装.配置还是使用都十分方便,而且运行稳定,因此不论是新手还是老玩家都对它有很高的评价,但他同时也跟普通操作系统一样需要保护.下面是学习啦小编跟大家分享的是RedHat ...

  6. linux怎么清除防火墙规则,linux怎么查看防火墙是否开启并清除防火墙规则?

    iptables是linux下的防火墙组件服务,相对于windows防火墙而言拥有更加强大的功能,下面我们就来看看linux系统中关于iptables的一般常见操作,判断linux系统是否启用了ipt ...

  7. Debian (Linux)安装UFW防火墙

    Debian (Linux)安装UFW防火墙 1ufw简介 UFW,即简单防火墙,是iptables的接口,旨在简化防火墙的配置过程. 尽管iptables是可靠且灵活的工具,但对于初学者而言,可能很 ...

  8. linux的cc防火墙,LNMP下安裝CSF防火墙、CC攻击解决方法

    被DDOS攻击了以后,就一直找解决的方法.询问了很多人,最后让Kiloserve的技术人员帮我弄些方法,其中有提到过CFS 这个LINUX上的防火墙,记得上次KVM.LA的K总也提过,最终我还是选择了 ...

  9. linux查看防火墙进程,linux怎么查看防火墙是否开启并清除防火墙规则?

    iptables是linux下的防火墙组件服务,相对于windows防火墙而言拥有更加强大的功能,下面我们就来看看linux系统中关于iptables的一般常见操作,判断linux系统是否启用了ipt ...

最新文章

  1. SharedPreferences源码解析
  2. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 4 assignment4_1
  3. 用Java实现天天酷跑(附源码),只能用牛逼来形容了!
  4. 通过C#和Xamarin或JavaScript和基于VS的Cordova工具,VS平台上的开发者可以
  5. Java REST框架一览
  6. 深圳敏捷云计算机科技,敏捷云 | 关于我们 | 敏捷云
  7. python字符串的方法和列表的方法_Python 中列表和字符串的方法总结
  8. java 实验报告模板_java实验报告模板
  9. PHP 导出excel合并相同数据单元格
  10. 软件测试面试题:Jmeter怎么录制脚本,怎么过滤,线程组有哪些内容?
  11. instanceof和containsKey以及claims.getExpiration()以及expiration.before()的用法
  12. 第十一章 枚举与泛型
  13. 大规模MIP的精确算法和实现
  14. 网页链接如何做成html,html网页的超链接怎么添加?
  15. 如何对接payjs的个人微信扫码支付接口
  16. 权值衰减weight decay的理解
  17. Vcastr 2.2 flv 网络播放器
  18. JS javascript 睡眠
  19. 笔记本电脑下wifi网卡的启动
  20. C++算法——DFS(图解)

热门文章

  1. gradle 编译java配置文件_Andriod(三):配置文件build.gradle与AndroidManifest.xml
  2. wordpress插件-WP Rocket 3.10.1_去广告已授权
  3. 织梦黑色互联网建站设计模板
  4. 终于把英文版操作系统中文乱码问题解决了
  5. cuteEditor 配置
  6. 双语经典:告别单身的必杀技之情话连篇
  7. jQuery Zoom 图片聚焦或者点击放大A plugin to enlarge images on touch, click, or mouseover
  8. QQ登录JS SDK教程,调用openapi接口
  9. CSS、JavaScript和Ajax实现图片预加载的三大方法及优缺点分析
  10. iOS App的图标,启动画面及其它