На нашем Linux-сервере время от времени мы получаем хорошо известное сообщение SYN flood:
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 или в один из других файлов .conf, которые будут загружены apache (/etc/apache2/apache2.conf также подойдет):
ListenBackLog 5000
Затем поднимите tcp_max_syn_backlog до того же
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=5000