限制Linux服务器中的TCP连接数,以避免攻击

限制Linux服务器中的TCP连接数,以避免攻击

我想限制 Linux 服务器中的 TCP 连接数,我使用了以下命令。

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 25 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

似乎出了点问题,没有得到预期的结果。我使用以下命令获取活动连接数

netstat -n | grep ':80' | awk -F' ' ' {print $5}' | awk -F':' ' {print$1}' | sort | uniq -c | sort -n

现在,当我输入上述命令时,我得到以下结果。

44 122.179.103.8
45 107.167.107.123
46 120.60.76.201
48 122.162.172.182
49 183.87.48.105
51 122.161.241.33
71 198.72.112.97
98 122.168.167.114
103 122.177.169.21
134 106.51.130.193
137 122.165.226.196

如您所见,活动的 TCP 连接数超过了允许的限制 25。有人可以帮助我提供正确的命令吗,或者这其中出了什么问题?

答案1

TCP 连接有 11 种不同的状态,而您的 iptables 规则将限制“SYN”状态,这是限制 TCP 连接的正确状态;但是当您使用“netstat”命令时,它将向您显示连接经历的所有状态。我的意思是您做对了,但检查错了。将 netstat 命令与您想要的状态“ESTABLISHED”连接起来:

netstat -n | grep ESTABLISHED | grep ':80' | awk -F' ' '{print $5}' | awk -F':' '{print$1}' | sort | uniq -c | sort -n

温馨提示:您可以使用“netstat -ntp”来获取 TCP 连接。

另请检查,我认为很有用。

仅供参考;TCP 连接状态:

:接受连接

已确立的:建立连接并传递数据

SYN_SENT:我们已经请求会话;正在等待远程端点的回复

同步接收:远程端点已请求会话用于我们正在监听的套接字

最后确认:我们的套接字已关闭;远程端点也已关闭;我们正在等待最终确认

关闭等待:远程端点已关闭;内核正在等待应用程序关闭套接字

时间的等待:套接字关闭后正在等待网络上剩余的任何数据包

关闭:套接字未被使用

结束语:我们的套接字已关闭;远程端点已关闭;并非所有数据都已发送

FIN_WAIT1:我们的套接字已关闭;我们正在拆除连接

FIN_WAIT2:连接已关闭;我们的套接字正在等待远程端点关闭

答案2

答案3

下面是一个建议,直接从 Linux 内核参数(sysctl)限制“每个套接字”允许的 TCP 连接数量(理解:每个软件监听的多或少)。

注 1这会减少套接字方面的“服务器带宽”:

  • 一方面,这将保护您的服务器,因为它将使用“更少的系统资源”来处理同时的网络请求。
  • 另一方面,您的应用程序(即 Web 服务器)将更容易受到 DOS 攻击,因为“数据包”将更“容易”被丢弃。

所以请明智选择:如果你想节省 CPU,那么就把参数调低。如果你想要更能抵御 DDOS,那么就把参数调高。

笔记2。为了防止攻击。你最好考虑安装入侵防御软件框架,例如失败2ban(根据给定条件自动禁止某些 IP 地址)。

  1. 打开终端并以 root 身份登录。输入以下命令来备份当前的 sysctl.conf 配置文件:

    cp /etc/sysctl.conf /etc/sysctl.conf.bak

  2. 使用文本编辑器(如 nano 或 vi)编辑 sysctl.conf 配置文件:

    nano /etc/sysctl.conf

  3. 将以下行添加到文件末尾:(这些参数设置可以排队的最大 SYN 请求数,以及可以为任何给定套接字建立的最大同时连接数。)

    # Limit the number of TCP connections

    net.ipv4.tcp_max_syn_backlog = 128

    net.core.somaxconn = 128

  4. 保存并关闭文件。然后,通过运行以下命令应用更改:

    sysctl -p

注 3。以上设置仅供参考,请根据系统硬件资源和应用需求进行调整,避免出现丢包、响应时间过长等网络问题。

希望能帮助到你。

相关内容