在我们的Linux服务器上不时得到我们熟知的SYN洪水消息:
possible SYN flooding on port 80
这可能不是一个攻击,因为网站stream量很大。
但是从一段时间以后,这些信息开始每隔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在他的回答(这不是被接受的答案)中提出的build议,这是提高在端口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