Ложное положительное SYN-обнаружение потока на каждом TCP-соединении - PullRequest
0 голосов
/ 17 января 2020

Я использую несколько сценариев PHP (в основном через CLI, некоторые через nginx / php -fpm) в системе (Raspbian) Debian Linux (4.19.75).

Мои сценарии используют простые TCP-сокеты, а также WebSockets для связи друг с другом. По какой-то причине ядро ​​Linux считает, что я пытаюсь залить / DoS на моей собственной машине.

Jan 17 02:07:26 luna kernel: [10617.487372] TCP: request_sock_TCP: Possible SYN flooding on port 1337. Sending cookies.  Check SNMP counters.
Jan 17 14:31:22 luna kernel: [55253.978408] TCP: request_sock_TCP: Possible SYN flooding on port 1337. Sending cookies.  Check SNMP counters.
Jan 17 14:31:23 luna kernel: [55254.164176] TCP: request_sock_TCP: Possible SYN flooding on port 2346. Sending cookies.  Check SNMP counters.
Jan 17 17:24:09 luna kernel: [65620.070514] TCP: request_sock_TCP: Possible SYN flooding on port 1337. Dropping request.  Check SNMP counters.

Это происходит независимо от sysctl-Config, деактивация SYN-Cookies приводит к немедленному отбрасыванию всех запросов. .

Изменение net .ipv4.tcp_max_syn_backlog = 65535 также не работает.

У меня была такая же проблема 2 года go, но я могу не помню, как я работал с ним.

Есть ли способ внести в белый список хотя бы все соединения, сделанные с localhost? Или деактивировать всю систему? (Я знаю, что это делает его уязвимым для SYN-Flood-Attacks, но на этом этапе мне бы хотелось иметь небезопасную, но работающую систему ...)

1 Ответ

0 голосов
/ 18 января 2020

Проблема (вероятно) заключалась в новом значении по умолчанию для журнала ожидания TCP / listen PHP. Каким-то образом кажется, что новое значение по умолчанию равно нулю.

$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($this->socket, SOL_SOCKET, SO_REUSEADDR, 1);

socket_bind($this->socket, TCP_HOST, TCP_PORT);
socket_listen($this->socket, 128);    // SETTING BACKLOG = 128
socket_set_nonblock($this->socket);
...