![有哪些关于 sysctl.conf 设置的建议可以增强 Linux 抵御 DDoS 攻击的能力?](https://linux22.com/image/530763/%E6%9C%89%E5%93%AA%E4%BA%9B%E5%85%B3%E4%BA%8E%20sysctl.conf%20%E8%AE%BE%E7%BD%AE%E7%9A%84%E5%BB%BA%E8%AE%AE%E5%8F%AF%E4%BB%A5%E5%A2%9E%E5%BC%BA%20Linux%20%E6%8A%B5%E5%BE%A1%20DDoS%20%E6%94%BB%E5%87%BB%E7%9A%84%E8%83%BD%E5%8A%9B%EF%BC%9F.png)
UNIXy 最近发表的一篇文章http://blog.unixy.net/2010/08/the-penultimate-guide-to-stopping-a-ddos-attack-a-new-approach/提出了一些建议来增强 Linux 系统抵御 DDoS 攻击的能力。
示例sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
kernel.pid_max = 65536
net.ipv4.ip_local_port_range = 9000 65000
还有其他增强 Linux 抵御 DDoS 攻击的建议吗?
答案1
您还可以关闭读/写套接字缓冲区,这将减少每个入站连接所需的内存量。
http://wwwx.cs.unc.edu/~sparkst/howto/network_tuning.php
您必须对您的应用程序和硬件进行实际测试(是的,这些设置可能会根据您的 NIC 导致奇怪的副作用),因为根据您的流量,您可能会破坏比您节省的更多的东西。
答案2
您也可以设置以下内容。
# Turn on SYN-flood protections. Starting with 2.6.26, there is no loss
# of TCP functionality/features under normal conditions. When flood
# protections kick in under high unanswered-SYN load, the system
# should remain more stable, with a trade off of some loss of TCP
# functionality/features (e.g. TCP Window scaling).
net.ipv4.tcp_syncookies=1
# Ignore source-routed packets
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
# Ignore ICMP redirects from non-GW hosts
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.all.secure_redirects=1
net.ipv4.conf.default.secure_redirects=1
# Don't pass traffic between networks or act as a router
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
# Turn on Source Address Verification in all interfaces to
# prevent some spoofing attacks.
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.default.rp_filter=1
# Ignore ICMP broadcasts to avoid participating in Smurf attacks
net.ipv4.icmp_echo_ignore_broadcasts=1
# Ignore bad ICMP errors
net.ipv4.icmp_ignore_bogus_error_responses=1
# Log spoofed, source-routed, and redirect packets
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.default.log_martians=1
# RFC 1337 fix
net.ipv4.tcp_rfc1337=1
# Addresses of mmap base, heap, stack and VDSO page are randomized
kernel.randomize_va_space=2
# Reboot the machine soon after a kernel panic.
kernel.panic=10