syncookies 参数主要有以下三个值:
-
0 值,表示关闭该功能;
-
1 值,表示仅当 SYN 半连接队列放不下时,再启用它;
-
2 值,表示无条件开启功能;
如果为了防止SYN攻击,只需要将值赋值为1 即可
另外还有两点可以防止SYN攻击
- 增大半连接队列
不能只单纯增大 tcp_max_syn_backlog 的值,还需一同增大 somaxconn 和 backlog,也就是增大全连接队列。 否则,只单纯增大 tcp_max_syn_backlog 是无效的
- 减少SYN + ACK重传次数 /proc/sys/net/ipv4/tcp_synack_retries
- cat 1 > /proc/sys/net/ipv4/tcp_syncookies