游乐游手机版
首页/系统平台/文章详情

FreeBSD与IPFW结合防御小规模DDoS攻击配置方法

时间:2026-06-18 07:47
FreeBSD的优势,其实是在一次偶然的局域网测试中意外发现的。当时我们模拟了一个互联网环境,用一台Windows客户端分别向Windows Server、Linux Server以及一台FreeBSD服务器发送Syn Flood数据包——这是DDoS攻击中最常见的手段。结果如何?Windows服务

FreeBSD的优势,其实是在一次偶然的局域网测试中意外发现的。当时我们模拟了一个互联网环境,用一台Windows客户端分别向Windows Server、Linux Server以及一台FreeBSD服务器发送Syn Flood数据包——这是DDoS攻击中最常见的手段。结果如何?Windows服务器在接收10个数据包后直接瘫痪;Linux服务器在10个包时连接开始异常;而FreeBSD却硬生生扛住了超过100个攻击包。这一结果确实令人眼前一亮。很快,这个方案被全面采纳,公司内的所有Web服务器都迁移到了FreeBSD平台。

迁移到FreeBSD后,系统确实平稳运行了一段时间。然而好景不长,最近又有用户反馈网站访问异常,表现为页面加载缓慢,甚至直接提示“找不到网站”。通过 netstat -a 检查发现,来自某个IP的连接正好达到50个,状态清一色显示为 FIN_WAIT 1——这是典型的DDoS攻击特征。看来,没有防火墙的FreeBSD也并非无懈可击,于是安装防火墙这件事再次被提上日程。

查阅大量资料后发现,FreeBSD下最常见的防火墙是IP FireWall,简称IPFW。但问题在于,启用IPFW需要先编译系统内核。而且出于安全考虑,IPFW在编译完成后默认会拒绝所有网络服务——包括对系统本身的访问。这就麻烦了:对于远程服务器,总不能伸手碰到吧?这里需要特别提醒,配置时稍有不慎,就可能让服务器拒绝一切服务。本次测试是在一台安装了FreeBSD 5.0 Release的服务器上进行的。

二、配置IPFW

实际上,可以把安装IPFW理解为一次软件升级。在Windows中升级软件,通常是下载安装包然后运行;在FreeBSD中类似,只不过这次要启用的功能是系统自带的,只需打开开关即可。但在开启之前,还需做一些准备工作。

下面进入配置环节。

第一步:准备工作

在命令提示符下执行以下操作:

# cd /sys/i386/conf

如果提示没有该目录,说明系统未安装ports服务,需要先安装。

# cp GENERIC ./kernel_IPFW

第二步:内核规则

用编辑器打开 kernel_IPFW 文件,在末尾添加以下四行内容:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT

简单解释这些选项的作用:

  • options IPFIREWALL:将包过滤代码编译进内核。
  • options IPFIREWALL_VERBOSE:启用通过Syslogd记录的日志。如果不加此项,即使规则中设置了记录,也不会真正记录。
  • options IPFIREWALL_VERBOSE_LIMIT=10:限制每条规则通过Syslogd记录的条数。当服务器遭受攻击时,防火墙日志会大量生成,此选项可防止日志撑爆系统。
  • options IPFIREWALL_DEFAULT_TO_ACCEPT:这一项至关重要。它将默认规则从“拒绝”改为“允许”。也就是说,在默认状态下,IPFW相当于不存在,接受所有数据。待安装完成后再根据需要添加具体规则。

保存文件并退出。

三、编译系统内核

FreeBSD和Linux一样,都是开源操作系统,并不像Windows那样代码封闭。系统内核持续迭代升级,为了使用新功能或定制更高效的运行环境,我们经常需要编译内核。这里编译的目的,是获得一个更稳定、性能更优的系统,而非单纯追求新版本功能。

编译过程中可能会遇到一些错误提示。为了减少报错,配置文件已尽可能精简。如果仍有提示,建议仔细检查是否存在拼写错误等小问题。

接下来在命令行执行:

# /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

编译时间取决于系统性能,双P4 Xeon、1GB内存的服务器大约5分钟即可完成。

四、加载启动项

编译完成后,还需要让系统在启动时自动运行IPFW并记录日志。

第一步:编辑 /etc/rc.conf

加入以下参数:

firewall_enable="YES"               # 激活防火墙
firewall_script="/etc/rc.firewall"  # 防火墙默认脚本
firewall_type="/etc/ipfw.conf"      # 防火墙自定义脚本
firewall_quiet="NO"                 # 是否显示规则信息;规则不再改动时可设为"YES"
firewall_logging_enable="YES"       # 启用日志记录

第二步:编辑 /etc/syslog.conf

在文件末尾添加:

!ipfw
*.* /var/log/ipfw.log

这条规则的作用是将IPFW日志写入 /var/log/ipfw.log,当然也可以指定其他路径。

完成以上步骤后,重启系统。

五、使用并保存规则

重启后,你会发现已经可以通过SSH登录远程服务器了。

第一步:测试

刚登录时可能感觉不到明显变化。但试着运行以下命令:

# ipfw show

会看到类似这样的输出:

65535 322 43115 allow ip from any to any

这表明IPFW已成功启用,当前允许所有连接。

第二步:使用

在命令提示符下输入:

# ipfw add 10001 deny all from 218.249.20.135 to any

这条命令会拒绝来自IP 218.249.20.135 的所有服务。执行之后,来自该IP的所有请求都会被拦截。

第三步:保存

将上面的规则添加到 /etc/rc.firewall 文件中:

ipfw add 10001 deny all from 218.249.20.135 to any

注意,保存到 rc.firewall 时,前面不要加#。然后运行:

# sh /etc/rc.firewall

该命令会重新载入IPFW规则。或者直接重启系统,IPFW就会生效。只要不手动解除规则,来自 218.249.20.135 的所有信息都将被拒绝。

来源:https://www.jb51.net/os/Unix/84152.html
上一篇UNIX操作系统密码种类与安全设置指南 下一篇FreeBSD常用命令速查汇总
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送