


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
小规模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_IPFWStep2:内核规则用编辑器打开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 Dont forget to do a make depend#cd ./compile/kernel_IPFW在这个地方注意一下,Freebsd 4.X版本是././compile/kernel_IPFW,但Freebsd 5.0版本却是./compile/kernel_IPFW。#make#make installStep2:开始编译内核根据系统性能差异,时间也有不同,普通双P4 XEON 1GB内存的服务器大约5分钟左右即可完成。四、加载启动项编译完成了,我们要让系统自动启动IPFW并记录日志,需要进行如下操作:Step1:编辑器编辑/etc/rc.conf加入如下参数:firewall_enable=YES激活Firewall防火墙firewall_script=/etc/rc.firewallFirewall防火墙的默认脚本firewall_type=/etc/ipfw.confFirewall自定义脚本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 35 to any。拒绝来自35的任何服务,执行完成后,你就会发现来自IP35的所有服务都会被拒绝。Step3:保存把这句代码加在/etc/rc.firewall文件里:ipfw add 10001 deny all from 35 to any,运行如下这个命令:#sh /etc/rc.firew
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湛江市重点中学2025届物理高二下期末质量跟踪监视模拟试题含解析
- 实际进度与计划进度的比较方法
- 心理健康课程解码学生内心世界
- 教育智能化在商业领域的拓展
- 中职教师课件制作
- 学生自我效能感的培养与教育心理学
- 心理引导促进学生自主学习的新路径
- 学生自我激励能力的教育心理学培养
- 智慧城市基础设施的安全风险管理与应对
- 智慧城市构建氟塑料线缆的贡献与挑战
- 用柴油管理制度
- 《SketchUp草图大师教学》课件
- 排水管道检测与评估课件 项目2 排水管道检测基础知识
- 阅读疗法创新发展
- 第二十章手术减肥及体形塑造美容手术美容外科学概论讲解
- 中华人民共和国内河交通安全管理条例
- 工程施工质量检验试验计划
- 厨房小吃承包合同
- 特种设备之行车、吊装安全操作培训
- 初中道德与法治课堂中开展议题式教学
- 产品痛点及解决方案
评论
0/150
提交评论