FreeBSD+IPFW结合小规模的DDoS攻击使用的配置方法
点评:使用FreeBSD + IPFW防止小规模的DDoS攻击,并有10的Web服务器,并使用RedHat Linux 9作为操作系统,这是分布在各个国家的主要城市,主要为用户提供HTTP服务。有一段时间,很多用户反映,有些服务器缓慢甚至无法访问。检查之后,他们发现他们遭到了DDoS(分布式拒绝服务攻击)的攻击。由于服务器分布过于分散,我们不能使用硬件防火墙方案。虽然iptables功能足以应付大多数的攻击,Linux系统本身具有抗DDoS攻击防御薄弱,所以我们要再想想。
一、FreeBSD的魅力
FreeBSD的好处是在局域网中的虚拟测试,有机会找到一个互联网,Windows客户端Windows服务器,Linux服务器在发送数据包的情况下Syn Flood没有任何预防措施,FreeBSD(常见的DDoS攻击在主服务器发送SYN洪水数据)。当Windows达到10包,完全停止响应。当Linux达到10包,它开始连接不好,而FreeBSD可以承受超过100的SYN Flood数据包。我决定改变所有公司的Web服务器到FreeBSD平台。
FreeBSD使用后,还需要一段时间才能获得稳定的一天。最近,然而,一些用户又反映网站无法访问规则。用户的症状是缓慢打开的网页,或者他们不能直接找到。使用netstat一看到有IP 50连接,美国都fin_wait 1,这是一个显着的DDoS攻击。看来,FreeBSD没有防火墙并不是万能的,所以它认为安装防火墙。
看看数据,了解FreeBSD下最常见的防火墙被称为IP防火墙,中文字面意义的IP防火墙,短的IPFW。但如果你想使用的格式,你需要编译FreeBSD系统内核。出于安全原因,ipfw将拒绝所有的网络服务,默认情况下,包括系统本身。然后我会彻底的,我怎样才能得到我放在外地的服务器
你在这里一定要小心。如果你不注意的配置,你可以让你的服务器拒绝服务。我是一个FreeBSD 5发布服务器的测试。
二,事实上我们可以配置IPFW安装IPFW作为一个软件升级,在Windows中,如果你想升级软件,你需要下载升级包,然后安装FreeBSD的升级;软件过程也是如此,但这个功能我们今天升级是系统本身已建成。我们只需要使用这个特性。在打开这个特性之前,我们必须做一些准备工作。
IPFW的基本参数的配置如下。
第一步:准备工作
以下操作是在命令提示符下执行的:
#光盘 / / / conf i386系统
如果提示并不意味着系统不安装端口服务,请记住安装它。
# CP / kernel_ipfw通用。
STEP2:核心规则
在编辑器中打开kernel_ipfw文件并添加以下四行在文件的末尾:
选择ipfirewall
包过滤部分的代码被编译到内核中。
选择ipfirewall_verbose
启用日志记录通过syslogd;如果不指定此选项,即使你指定记录数据包过滤规则,你不会真的记录。
选择ipfirewall_verbose_limit = 10
限制每个包规则记录,记录由syslogd的数量。如果你已经被攻击了很多,想记录防火墙的活动,但不想由于syslog洪水一般记录失败,此选项将非常有用。这条规则,在规则中链规则达到极限值,其对应的记录将不再被记录。
选择ipfirewall_default_to_accept
这句话是最关键的。默认规则将从deny以allow。该命令的功能是IPFW会接受任何数据在默认状态,也就是说,服务器就像没有防火墙。如果您需要任何规则,可以在安装后直接添加。
在输入完成后,保存文件并退出kernel_ipfw。
三、由于FreeBSD编译系统内核和Linux操作系统的开放源代码的,不像Windows代码包是不可能的,我们只能猜测,或咨询微软公司;因为FreeBSD内核的不断升级,我们要使用的功能的新版本,更有效,或定制一个更稳定的系统,通常需要编译内核。
当然,我们在这里编译内核是为了得到一个更高效的系统,而不是一个新的函数版本;
在编译过程中,可能会出现一些错误。为了最小化错误提示,我们将配置文件减到最低。如果有更多错误提示,请仔细检查输入错误等小问题。
在命令行执行以下命令:
# / / / sbin目录配置kernel_ipfw
下面的提示将执行后出现:内核构建目录.. /编译/ kernel_ipfw不`别忘了做一个让`依赖
# cd .. / / kernel_ipfw编译
在这个地方,FreeBSD 4。x版本.. / / / kernel_ipfw ..编译,但FreeBSD 5版本.. / / kernel_ipfw编译。
#使
#使installstep2:开始编译内核
根据系统的性能差异,时间是不同的,普通的双P4 Xeon处理器1GB内存的服务器可以完成约5分钟左右。
四。加载启动项
编译完成了。我们想让系统自动启动IPFW和日志记录,我们需要做到以下几点:
第一步:编辑 / / rc.conf等
添加以下参数:
firewall_enable = `是`
激活防火墙防火墙
firewall_script = ` / / RC `防火墙等。
防火墙防火墙的默认脚本
firewall_type = ` / / IPFW conf `等。
防火墙自定义脚本
firewall_quiet = `没有`
启动脚本时,是否显示规则信息如果你的防火墙脚本不再修改,你可以设置它在这里是YES。
firewall_logging_enable = `是`
启用防火墙的日志记录
STEP2:编辑 / / syslog.conf文件等
在文档的结尾,添加了以下内容:
IPFW!
* / / / ipfw.log VaR日志*。
这条线的作用是在/ var /日志/ ipfw.log文件,当然写日志的格式,你也可以指定其他目录的日志文件。
完成上述步骤后重新启动计算机。
五。使用和保存规则
当您完成此操作时,您会发现您可以用ssh登录到远程服务器。
第一步:测试
当你登录,你会发现在你的系统中的任何变化,但是你可以试试下面的命令:# IPFW秀,将输出下面的结果:6553532243115允许从任何IP。它告诉我们,IPFW已成功启用并允许任何连接。
STEP2:使用
在命令提示符下输入下列命令:# IPFW加10001拒绝所有来自218.249.20.135任何。
从218.249.20.135拒绝任何服务,并执行完毕后,你会发现,从ip218.249.20.135所有服务将被拒绝。
STEP3:保存
添加此代码 / / rc.firewall等文件:IPFW加10001拒绝所有从218.249.20.135任何,运行下面的命令:# SH / / rc.firew等
所有
rc.firewall,保存,不需要的#前面,然后重新加载IPFW规则。
或重新启动你的系统,你的IPFW生效。只要你不手动释放,所有信息将被218.249.20.135。