DDOS атака на VPS с VLESS+REALITY

Так странно…
Добавил правила:

sudo iptables -t raw -A PREROUTING -i ens3 -p icmp -j DROP
sudo iptables -t raw -A OUTPUT -o ens3 -p icmp -j DROP
sudo iptables -A INPUT -p icmp -j DROP
sudo iptables -A OUTPUT -p icmp -j DROP
sudo iptables -A FORWARD -p icmp -j DROP

Но сервер все равно пингуется (сервер от Aeza), решил переустановить все, запустил переустановку и во время переустановки пинги не прекращались… что за система такая.

Тоже бразильские мучачосы решили постучаться на открытый 443 порт

3     8968  466K DROP       0    --  *      *       177.72.0.0/16        0.0.0.0/0
4     8794  457K DROP       0    --  *      *       177.128.0.0/16       0.0.0.0/0
5      277 14404 DROP       0    --  *      *       45.190.148.0/24      0.0.0.0/0
6      252 13104 DROP       0    --  *      *       45.190.151.0/24      0.0.0.0/0
7      207 10764 DROP       0    --  *      *       45.190.150.0/24      0.0.0.0/0
8        0     0 DROP       0    --  *      *       45.190.148.0/24      0.0.0.0/0
9      186  9672 DROP       0    --  *      *       45.190.149.0/24      0.0.0.0/0

Началось это оказывается еще в октябре, но как-то не обращал внимания на это

на аезе входящие icmp до сервера не доходят, ответы посылает их anti-ddos, т.е. отключить невозможно, да и не нужно по моему мнению (a полная блокировка icmp это вредно, особенно на аезе с их заниженным mtu)

По IPv6 у меня до клиентов VPN доходят ICMPv6.

значит на ipv6 нету anti-ddos (называю так т.к. хз что у них там за туннель стоит), такое и у другого провайдера видел. по ipv4 все их ip отвечают на icmp, даже где впс выключены

Как вы получили данный график TCP?

grafana их строит, telegraf собирает, influxdb хранит.

В sudo nano /etc/sysctl.conf добавил эти строки:

net.ipv4.icmp_echo_ignore_all=1
net.ipv4.tcp_syncookies=1
net.ipv4.icmp_echo_ignore_broadcasts=1

После чего два раза за два дня собирал дамп командой:

tcpdump -n -f "port 443 and inbound and tcp[tcpflags] & (tcp-syn) != 0" -w /tmp/tcpdump_output.log && echo "Процесс завершен, лог готов: /tmp/tcpdump_output.log"

И после смотрел результаты командами:

sudo chown root:root /tmp/tcpdump_output.log

sudo tcpdump -n -r /tmp/tcpdump_output.log | awk '{split($3, ip, "."); subnet=ip[1]"."ip[2]; count[subnet]++; if (!first_time[subnet]) first_time[subnet]=$1; last_time[subnet]=$1} END {for (s in count) print count[s], s, substr(first_time[s],1,8), substr(last_time[s],1,8)}' | sort -k1,1nr

SYN атаки продолжаются, как с ними бороться не знаю. Влияние на сервер вроде бы не оказывают.

Тоже самое:

187.33.128.179
187.33.128.199
187.33.128.66
187.33.129.160
187.33.129.198
187.33.129.240
187.33.129.38
187.33.129.40
187.33.130.47
187.33.130.52
187.33.131.205
187.33.131.62

Подскажите, плз, как эту подсеть заблокировать? У меня в докере 3x-ui

я так понимаю iptables -t raw -A PREROUTING -s 187.33.0.0/8 -j DROP

Неверно, за место /8, нужно использовать /16.

Если использовать /8, то это будет охватывать диапазон от 187.0.0.0 до 187.255.255.255, если же /16, то это охватит диапазон от 187.33.0.0 до 187.33.255.255.

Можно не блокировать а забить, вреда нет (и даже с флудом в 100 pps не будет). С блокировкой /8 подсети случайно себя или нужные сайты можете заблокировать

Тоже верно, мне например лично помог совет с включением параметра:

net.ipv4.tcp_syncookies = 1

До этого сервер заметно лагал, особенно при подключении через ssh.

Как минимум на ubuntu/debian этот параметр уже такой по дефолту. И срабатывает он только если в dmesg появляются сообщения “sending cookies”, если сообщений нет то значит он не срабатывает, а если сообщения появляются то не факт что это из-за внешнего флуда, если качать торренты через vless то они могут начать появляться

Дыа? Ну я себя ещё не заблокировал, так что ничего страшного)

Спасибо, сработало

Судя по количеству пакетов, это обычный флуд, а не ддос.
Если у вас на столько слабый впс, что не справляется с таким количеством пакетов, то можно в iptables настроить защиту от syn flood, а не добавлять целые сети.

iptables -N syn_flood
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP

себя сколько раз заблокировали?

1 Like

У меня белый список. Это пример из интернета. Понятное дело, что лимиты нужно подбирать.

Пробовал это делать ранее, но vless сразу отваливался (вполне допускаю, что что-то сделал не так)