加拿大华人论坛 加拿大百科小DDoS用Freebsd+IPFW搞定



在加拿大


编者按:本文讨论的方法只是针对小规模的恶意攻击比较有效。  笔者公司共有10台Web服务器,使用Redhat Linux 9作为操作系统,分布在全国各大城市,主要为用户提供HTTP服务。曾经有一段时间不少用户反映有的服务器访问速度缓慢,甚至不能访问,检查后发现是受到了DDoS攻击(分布式拒绝服务攻击)。由于服务器分布太散,不能采用硬件防火墙的方案,虽然IPtables功能很强大,足以应付大部分的攻击,但Linux系统自身对DDoS攻击的防御力本来就弱,只好另想办法了。  一、Freebsd的魅力  发现Freebsd的好处是在一次偶然的测试中,在LAN里虚拟了一个Internet,用一台Windows客户端分别向一台Windows Server、Linux Server和一台Freebsd在无任何防范措施的情况下发送Syn Flood数据包(常见的DDoS攻击主要靠向服务器发送Syn Flood数据完成)。Windows在达到10个包的时候就完全停止响应了,Linux在达到10个数据包的时候开始连接不正常,而Freebsd却能承受达100个以上的Syn Flood数据包。笔者决定将公司所有的Web服务器全换为Freebsd平台。  在使用Freebsd后,的确过了一段时间的安稳日子。不过近日又有用户再次反映网站不能正常访问,表现症状为用户打开网页速度缓慢,或者直接显示为找不到网站。用netstat ?a查看到来自某IP的连接刚好50个,状态均为FIN_WAIT 1,这是属于明显的DDoS攻击,看来Freebsd没有防火墙也不是万能的啊,于是就想到了装防火墙。  看了N多资料,了解到Freebsd下最常见的防火墙叫IP FireWall,中文字面意思叫IP防火墙,简称IPFW。但如果要使用IPFW则需要编译Freebsd系统内核。出于安全考虑,在编译结束后,IPFW是默认拒绝所有网络服务,包括对系统本身都会拒绝,这下我就彻底“寒”了,我放在外地的服务器可怎么弄啊?  大家这里一定要小心,配置稍不注意就可能让你的服务器拒绝所有的服务。笔者在一台装了Freebsd 5.0 Release的服务器上进行了测试。  二、配置IPFW  其实我们完全可以把安装IPFW看作一次软件升级的过程,在Windows里面,如果要升级一款软件,则需要去下载升级包,然后安装;在Freebsd中升级软件过程也是如此,但我们今天升级的这个功能是系统本身已经内置了的,我们只需要利用这个功能即可。打开这个功能之前,我们还要做一些准备工作。  下面开始配置IPFW的基本参数。  Step1:准备工作  在命令提示符下进行如下操作:  #cd /sys/i386/conf  如果提示没有这个目录,那说明你的系统没有安装ports服务,要记住装上。  #cp GENERIC ./kernel_IPFW  Step2:内核规则  用编辑器打开kernel_IPFW这个文件,在该文件的末尾加入以下四行内容:  options IPFIREWALL  将包过滤部分的代码编译进内核。  options IPFIREWALL_VERBOSE  启用通过Syslogd记录的日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。  options IPFIREWALL_VERBOSE_LIMIT=10  限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录而导致你的日记写入失败,那么这个选项将会很有用。有了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录。  options IPFIREWALL_DEFAULT_TO_ACCEPT  这句是最关键的。将把默认的规则动作从 “deny” 改为 “allow”。这句命令的作用是,在默认状态下,IPFW会接受任何的数据,也就是说服务器看起来像没有防火墙一样,如果你需要什么规则,在安装完成后直接添加就可以了。  输入完成后保存kernel_IPFW文件并退出。   三、编译系统内核   由于Freebsd和Linux一样,都是公开源代码的操作系统,不像Windows那样代码是封装了的,出了问题我们只能猜测,或者咨询微软公司;由于Freebsd系统内核在不断升级,我们为了使用新版本中的功能,或者定制一个更高效、更稳定的系统,通常需要编译系统内核。  当然,我们在这里编译内核,是为了能得到一个更高效的系统,而不是使用新版本的功能;  在编译的过程中,可能会提示一些错误,为了尽可能减少错误提示,我们已将配置文件缩减到了最少,如果再出现什么错误提示,请仔细检查是否有输入错误等细小问题。  Step1:编译所需的命令  在命令行上执行如下命令:  #/usr/sbin/config kernel_IPFW  执行结束后会出现如下提示:Kernel build directory is ../compile/kernel_IPFW Don't forget to do a make depend'  #cd ../compile/kernel_IPFW  在这个地方注意一下,Freebsd 4.X版本是../../compile/kernel_IPFW,但Freebsd 5.0版本却是../compile/kernel_IPFW。  #make  #make install  Step2:开始编译内核  根据系统性能差异,时间也有不同,普通双P4 XEON 1GB内存的服务器大约5分钟左右即可完成。  四、加载启动项  编译完成了,我们要让系统自动启动IPFW并记录日志,需要进行如下操作:  Step1:编辑器编辑/etc/rc.conf  加入如下参数:  firewall_enable="YES"  激活Firewall防火墙  firewall_script="/etc/rc.firewall"  Firewall防火墙的默认脚本  firewall_type="/etc/ipfw.conf"  Firewall自定义脚本  firewall_quiet="NO"  启用脚本时,是否显示规则信息;假如你的防火墙脚本已经不会再有修改,那么就可以把这里设置成“YES”了。  firewall_logging_enable="YES"  启用Firewall的Log记录  Step2:编辑/etc/syslog.conf文件  在文件最后加入如下内容:  !ipfw  *.* /var/log/ipfw.log  这行的作用是将IPFW的日志写到/var/log/ipfw.log文件里,当然,你也可以为日志文件指定其他目录。  以上步骤完成后重启电脑。  五、使用并保存规则  完成后,你就会发现你能用SSH登录你的远程服务器了。  Step1:测试  刚登录的时候你不会发现你的系统发生了什么变化,但你可以试试以下这个命令:#ipfw show,将输出以下结果:65535 322 43115 allow ip from any to any。它告诉我们,IPFW已经成功启用,而且允许任何的连接。  Step2:使用  在命令提示符下输入如下命令:#ipfw add 10001 deny all from 218.249.20.135 to any。  拒绝来自218.249.20.135的任何服务,执行完成后,你就会发现来自IP218.249.20.135的所有服务都会被拒绝。  Step3:保存  把这句代码加在/etc/rc.firewall文件里:ipfw add 10001 deny all from 218.249.20.135 to any,运行如下这个命令:#sh /etc/rc.firew  all  表示保存到rc.firewall里面时,不需要前面的#号,然后重新载入IPFW规则。  或者重启一次你的系统,你的IPFW就生效了,只要你不手动解除,来自218.249.20.135的所有信息全部都会被拒绝。

  ·生活百科 笔记本电脑电源线上的USB有什么用?
·生活百科 交换方式讨论

加拿大百科-加拿大

不打游戏,我买了个游戏键盘

华人网原因无他,好键盘都是游戏键盘 我最基本的诉求是键帽字体清晰可见。我打字时虽然会盲打,但有些键还是要看的,例如数字/符号键、F功能键等。当把眼睛从屏幕转到键盘时,由于屏 ...

加拿大百科-加拿大

视频编辑器

华人网最近去百幕大,波士顿旅行,拍了不少视频。有的是用相机拍的,有的是用GoPro 拍的。想把这些视频根据日期,地点等加在一起。谷歌后发现微软Windows 11 带有 Clipchamp 这个视频编辑器, ...

加拿大百科-加拿大

开车的成本,我的10年Ford Edge

华人网我的福特开了10年,里程是85000公里,去养护时,问了一下这些年花费了多少维修费用?工作人员告诉我一共$4700,加上我前两年换了轮胎$1000,电池几百刀,合计6千多加元。在国内时我 ...

加拿大百科-加拿大

temu霸屏,怎么驱除?

华人网随便打开一个网页,发现temu的广告到处都是,上下左右,霸占了一大半面积,简直是强行抢占了别人的页面,非常离谱。我试图使用Google Report an ad/listing功能,填写Complaint on multiple ad ...

加拿大百科-加拿大

大家在拼多多上买东西了吗

华人网拼多多最近在加拿大开店了。 评论 拼多多app被Goolge下架了。Google suspends Chinas Pinduoduo app on security concernsAlphabet Incs Google suspended the Play version of PDD Holdings Incs Pinduoduo app for security concerns ...

加拿大百科-加拿大

请问抗焦虑症的替代药物

华人网家人在国内一直每天服用下面两种抗焦虑症的药,试过其他药都没有效果。准备回加拿大了,但是在加拿大的医保卡已经过期,另外不知道来加拿大有没有同样的替代药物?请问有没有 ...

加拿大百科-加拿大

亚马逊账号被黑记

华人网上来报个到,亚马逊账号被黑了,都不知道对方是怎么操作的...故事有点长,等有时间了再来更新。 评论 现在都有two step authentication,还能被黑,难道魔高一丈?最有效的解决途径是打 ...

加拿大百科-加拿大

大统华升职!!

华人网在大统华做supervisor要什么条件才可以升副主管,主管?薪水大约多少? 评论 大统华labor太卷了 评论 zxzwan2010 说:大统华labor太卷了点击展开...我问卷不卷了吗? 评论 赞!!! 太棒啦! ...

加拿大百科-加拿大

关于立遗书

华人网大家觉得有必要立遗嘱吗在安省 现在自住房想以后留给孩子独生子 评论 有比没有好, 没有的话万一有事真的很麻烦 评论 平安书有钱有业有孩子的必须做,如果大吉利是忽然走了,所 ...

加拿大百科-加拿大

世界十大最丑建筑。转帖

华人网互联网 榜首反而最具设计感? 评论 美学向来没有一定的準则,每个人的审美观各有不同,话虽如此,但当大多数人都认为一件事物是美或醜,总会有一定的参考价值。 评论 早前国外一 ...