每个TCP连接上的误报SYN泛洪检测

问题描述 投票:0回答:1

[我正在(Raspbian)Debian Linux系统(4.19.75)上使用多个PHP脚本(主要是通过CLI,有些是通过nginx / php-fpm)。

我的脚本使用简单的TCP套接字以及WebSocket相互通信。由于某种原因,Linux内核认为我正在尝试对自己的计算机进行洪泛/拒绝服务。

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也不起作用。

两年前我遇到了同样的问题,但是不记得我是如何解决的。

是否有一种方法可以将至少所有由本地主机建立的连接列入白名单?还是要停用整个系统? (我知道这使它容易受到SYN-Flood-Attacks的攻击,但是在这一点上,我希望拥有一个不安全但可以正常运行的系统...)

php linux tcp raspbian syn
1个回答
0
投票

(问题可能是PHP的TCP /监听积压的新默认值。不知何故似乎新的默认值为零。

$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);
© www.soinside.com 2019 - 2024. All rights reserved.