在我们的 Linux 服务器上,我们不时会收到众所周知的 SYN 洪水消息:
possible SYN flooding on port 80
这可能不是攻击,因为网站流量很大。
然而,从某个时候开始,这些消息开始每隔约 60 秒出现一次。我的意思是:
Aug 16 01:22:44 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:23:45 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:25:05 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:26:06 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:27:13 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:28:13 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:29:14 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:30:39 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:31:41 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:32:53 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:33:57 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:35:03 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:36:27 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:37:30 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
Aug 16 01:38:44 amadeus kernel: possible SYN flooding on port 80. Sending cookies.
这只是偶然吗?由于流量,我不会担心大量“可能的 SYN 泛滥”消息,但这些消息每 60 秒一次。
这是我们在 /etc/rc.local 中的自定义设置
# 3M
echo 3145728 > /proc/sys/net/netfilter/nf_conntrack_max
# 256k
echo 262144 > /proc/sys/net/ipv4/tcp_max_orphans
echo 1048576 1572864 4194304 > /proc/sys/net/ipv4/tcp_mem
# Neighbour Table Overflow
echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 8192 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 16384 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
# Disable ip_forward
echo "0" > /proc/sys/net/ipv4/ip_forward
# Enable SYN Cookies
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo 40 > /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_syn_recv
(对不起,如果这个问题是重复的,但我没有发现任何类似的问题)。
我阅读了一个类似的问题和所有答案,我认为您应该尝试@Jeff 在他的答案中建议的内容(这不是公认的答案),这会增加在端口 80 上运行的两个应用程序的侦听积压。
当传入连接的“队列”或“积压”被填充时,似乎会出现该消息。
例如。对于 apache2,他写道:
为了解决这个问题,我将以下行添加到 /etc/apache2/ports.conf 或其他将由 apache 加载的 .conf 文件之一(/etc/apache2/apache2.conf 应该也可以):
然后将 tcp_max_syn_backlog 提高到相同