1

我正在给定端口(比如说 1234)运行服务。有时它无法到达。当我检查 dmesg 时,我看到:

TCP:端口 1234 上可能出现 SYN 泛洪。正在发送 cookie。检查 SNMP 计数器

net.ipv4.tcp_max_syn_backlog 设置为 1024

当我检查 netstat 时,我看到:

tcp 0 0 示例域名.com:5008 ip190-5-138-234.i:56772 SYN_RECV
tcp 0 0 示例域名.com:5008 ip190-5-138-234.i:56771 SYN_RECV tcp 0 0 示例域名.com:1234
216.218。 222.14:18687 SYN_RECV
tcp 0 0 exampledomainname.com:1234 185.234.218.50:59848 SYN_RECV
tcp 0 0 exampledomainname.com:1234 tor-exit.r2.apx.p:45992 SYN_RECV
tcp 0 0 exampledomainname.com:1234 tor-exit signal.:42747 SYN_RECV
tcp 0 0 exampledomainname.com:1234 chulak.enn.lu:29545 SYN_RECV
tcp 0 0 exampledomainname.com:1234 chulak.enn.lu:19883 SYN_RECV
tcp 0 0 exampledomainname.com:1234 5.188.86.30:53106 SYN_RECV
tcp 0 0 exampledomainname.com:1234 lh28409.voxility.:59899 SYN_RECV
tcp 0 0 exampledomainname.com:1234 tor-exit1.signal.:40048 SYN_RECV
tcp 0 0 exampledomainname.com:1234 62.176.4.10:48546 SYN_RECV
tcp 0 .com:1234 chulak.enn.lu:52326 SYN_RECV
tcp 0 0 exampledomainname.com:1234 sunfire-cape.gate:44592 SYN_RECV
tcp 0 0 exampledomainname.com:1234 sunfire-cape.gate:44590 SYN_RECV
tcp 0 0 exampledomainname.com :1234 chomsky.torserver:45374 SYN_RECV
tcp 0 0 exampledomainname.com:1234 chulak.enn.lu:60156 SYN_RECV
tcp 0 0 exampledomainname.com:1234 chulak.enn.lu:47522 SYN_RECV
tcp 0 0 exampledomainname.com:1234 tor-exit.r2.apx.p:38568 SYN_RECV
tcp 0 0 exampledomainname.com:1234 chulak.enn.lu:34309 SYN_RECV
tcp 0 0 exampledomainname.com:1234 185.100.86.128:35623 SYN_RECV
tcp 0 0 exampledomainname.com:1234 tor-exit1.signal.:42921 ...

这些 SYN_RECV 连接中的大约 30 个。如果我的假设是正确的,它似乎是一个非常复杂的僵尸网络,它通过 Tor 网络。

我能做些什么来对抗这种攻击?任何帮助将不胜感激。

4

2 回答 2

0

您可能想要实现 SYNPROXY iptables 规则,该规则将在添加 conntrack 条目之前执行 3WHS,当您受到 synflood 攻击时它会饱和。

我亲自测试过,可以确认它确实有效。这是在 linux 内核中推送 SYNPROXY 的 Red Hat 开发人员的解释:https ://rhelblog.redhat.com/2014/04/11/mitigate-tcp-syn-flood-attacks-with-red-hat-enterprise -linux-7-beta/#more-273

从文章:

sysctl -w net/netfilter/nf_conntrack_tcp_loose=0
iptables -t raw -I PREROUTING -i $DEV -p tcp -m tcp --syn --dport $PORT -j CT --notrack
iptables -A INPUT -i $DEV -p tcp -m tcp –dport $PORT -m state --state INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
iptables -A INPUT -m state --state INVALID -j DROP
sysctl -w net/ipv4/tcp_timestamps=1

请注意,如果您需要使用 NAT,则需要进行一些更改,因为 NAT 使用 conntrack 和 SYNPROXY 在第一个数据包上阻止 conntrack。

如果您需要它,我有一些脚本可以解决问题(只是需要一些时间才能找到它们)。

编辑:基本上,您需要将 tcp 流的 nat 从移动-t nat -A PREROUTING-t nat -A OUTPUT

于 2018-01-23T13:15:27.360 回答
0

有许多可能的方法可以有效地防御 DDOS 攻击。大多数涉及网络流量分析,但在防御软件能够匹配的“已知”攻击/技术的配置文件、导致不规则活动的新攻击以及健康活动的配置文件之间进行区分。

不用说,有效的防御将取决于您可用的工具和您正在使用的系统。也许这个视频可以给你一些想法。

https://www.youtube.com/watch?v=AqY3UxXyQTY

于 2018-01-22T20:35:50.183 回答