Сообщение possible SYN flooding on port 22 в журнале ядра Linux означает, что очередь полуоткрытых TCP-соединений к SSH-службе переполнена: сервер получает SYN-пакеты быстрее, чем успевает их обрабатывать. Проверить наличие предупреждения можно командой dmesg | grep -i "syn flooding" или через journalctl -k. Сама запись — не подтверждение атаки, а сигнал о том, что механизм SYN cookies был задействован либо очередь достигла лимита.
Причин может быть две: реальная SYN-flood-атака на SSH-порт или легитимный всплеск подключений — например, работа систем мониторинга, скриптов автоматизации, сканеров безопасности внутри сети. Различить их — первая задача диагностики, потому что действия в этих сценариях принципиально разные.
Что скрывается за предупреждением ядра
При установке TCP-соединения клиент отправляет SYN-пакет, сервер отвечает SYN-ACK и резервирует место в очереди полуоткрытых соединений (backlog), ожидая финальный ACK. Если клиент ACK не присылает — намеренно или из-за сетевых проблем — запись висит в очереди до таймаута. Когда очередь переполняется, ядро фиксирует событие в логе и, если включены SYN cookies, перестаёт хранить состояние соединения в памяти, кодируя его в самом ответном пакете.
Размер очереди определяется параметром net.ipv4.tcp_max_syn_backlog, а включение SYN cookies — параметром net.ipv4.tcp_syncookies. Посмотреть текущие значения можно так:
sysctl net.ipv4.tcp_max_syn_backlogsysctl net.ipv4.tcp_syncookies
Значения по умолчанию зависят от дистрибутива и версии ядра, поэтому сверяйтесь с документацией вашей системы, прежде чем что-то менять.
💡Предупреждение о SYN flooding — это срабатывание защитного механизма ядра, а не доказательство атаки. Сначала диагностика, потом настройка.