调整 Linux 内核以抵御 SYN 洪水攻击

调整 Linux 内核以抵御 SYN 洪水攻击

我读过一篇文章(非英语),介绍如何通过修改 中的某些指令来保护服务器免受 SYN 洪水攻击sysctl.conf。那篇文章中有这样一句话:“可以使用一些选项重新编译内核,以提高对 SYN 洪水的防护”。如果我的问题太笼统,我很抱歉,但你能指出它可能指的是哪些内核选项吗?我下载了内核并查看了所有网络选项,make menuconfig但没有找到或遗漏了这些选项。谷歌搜索也没有帮助。

谢谢。

答案1

是的,可以重新编译内核以防御 Syn Flood 攻击,但我不明白这样做的理由。

对于那些不具备通过命令更改内核参数功能的系统,您需要重新编译内核。但是如果您仍想这样做,则需要更改内核中的 C 代码。

例如,在 Digital Unix 中,您可以更改头文件中的两个参数,然后重建操作系统。在 中/usr/sys/include/sys/socket.h,更改SOMAXCONN定义,使 8 变成 1024。

将定义从/usr/sys/include/netinet/tcp_timer.h更改为。TCPTV_KEEP_INIT75*PR_SLOWHZ25*PR_SLOWHZ

然后使用此 Unix 版本独有的 Digital Unix 程序重建内核。

您还可以使用 Berkeley 衍生的 Unix 系统通过更改这两个参数来重建内核。

不过,它们位于不同的位置,分别是/usr/src/sys/netinet/tcp_timer.h/usr/src/sys/sys/socket.h

阅读本文后,如果您觉得不需要重新编译内核,那么请使用以下选项来减轻 syn flood 攻击。

# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog
# echo 3 > /proc/sys/net/ipv4/tcp_synack_retries

为了使更改在重新启动后保持不变,请将这些条目放入/etc/sysctl.conf文件中

# TCP SYN Flood Protection
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3

您可以在以下 URL 上阅读有关这些内容的更多详细信息:

希望这能回答你的问题。如果你需要更多说明,请随时发表评论。

答案2

不确定你的文章,但 syn flood 保护的常用方法是设置/proc/sys/net/ipv4/tcp_syncookies

相关内容