题 每分钟 - 端口80上可能的SYN泛洪


在我们的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

(对不起,如果这个问题是重复的,但我没有发现任何类似的问题)。


5
2017-08-20 07:23






答案:


我读了一个 类似的问题 和所有的答案,我认为你应该尝试@Jeff在他的答案中提出的建议(这不是公认的答案),这会提高在端口80上运行的应用程序的监听积压。

当填充传入连接的“队列”或“积压”时,似乎会出现该消息。

例如。对于apache2,他写道:

为了解决这个问题,我将以下行添加到/etc/apache2/ports.conf或其他一个.conf文件中,这些文件将由apache加载(/etc/apache2/apache2.conf也应该没问题):

ListenBackLog 5000

然后将tcp_max_syn_backlog提升到相同的位置

sudo sysctl -w net.ipv4.tcp_max_syn_backlog=5000

4
2017-08-20 08:25



我们做了ListenBackLog 8192和net.ipv4.tcp_max_syn_backlog = 8192,目前syn cookie消息消失了。我们将看看这是否会对我们的流量产生积极影响。 - Nick