Вот ещё бразильские братушки:
45.166.196.244
45.166.196.95
45.166.197.159
45.166.197.220
45.166.197.35
45.166.197.44
45.166.197.7
45.166.198.132
45.166.198.6
45.166.199.172
45.166.199.193
45.166.199.246
45.166.199.247
45.166.199.73
Вот ещё бразильские братушки:
45.166.196.244
45.166.196.95
45.166.197.159
45.166.197.220
45.166.197.35
45.166.197.44
45.166.197.7
45.166.198.132
45.166.198.6
45.166.199.172
45.166.199.193
45.166.199.246
45.166.199.247
45.166.199.73
И все-таки совсем не блочится. У меня Debian с 3x-ui в Docker. Подскажите, плз, таблицы raw там, я так понимаю нет, и находил инфу, что используется nftables вместо iptables. Есть знатоки? =)
Так ведь правила iptables работают на всю систему, в том числе и на Docker, разве нет? По крайней мере у меня тоже Debian 12 с 3X-UI (правда без докера, не вижу особого смысла в его применении в моём случае) и правила iptables отрабатывают как надо. Да, в выводе всё равно будут видны запросы от заблоченных айпишников, но дальше iptables они не идут, соответственно лишний раз не нагружают ресурсы сервера (хоть и нагрузка там мизерная).
root@localhost:~# iptables -t raw -A PREROUTING -s 181.191.0.0/16 -j DROP
root@localhost:~# iptables -t raw -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DROP all -- 181-191-0-0.uplinkx.com.br/16 anywhere
root@localhost:~# sudo timeout 15s tcpdump -nq -f "port 443 and inbound and tcp[tcpflags] & (tcp-syn) != 0" | awk '{print $3}' | cut -d'.' -f1-4 | sort | uniq
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on ens1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
20 packets captured
25 packets received by filter
0 packets dropped by kernel
181.191.40.10
181.191.40.138
181.191.40.158
181.191.41.70
181.191.43.166
181.191.43.238
181.191.43.76
Выглядит так, что не блочится, и жрет ресурсы CPU
Хм, а какой вывод даст эта комманда?
iptables -t raw -L -n -v
root@localhost:~# iptables -t raw -L -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2761 144K DROP 0 -- * * 181.191.0.0/16 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Я далеко не эксперт в таких делах, но вроде бы правило работает как надо:
2761 144K DROP 0 -- * * 181.191.0.0/16 0.0.0.0/0
Расшифровка - ВХОДЯЩИЙ АДРЕС 181.191.0.0/16; ОТКЛОНЕНО: 2761 пакет, общим размером 144 килобайт
А следующее:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
Говорит о том, что никакой трафик из этой цепочки не прошёл дальше iptables.
Используйте input в таблице фильтров
iptables -A INPUT -s 181.191.0.0/16 -j DROP
Разве таблица FILTER не идёт после RAW? Просто кмк в случае RAW трафик будет блокироваться ещё раньше, тем самым минимально соприкасаясь с адресами в статусе DROP
Пробуй:
iptables -D INPUT -p tcp --syn -j syn_flood 2>/dev/null
iptables -F syn_flood 2>/dev/null
iptables -X syn_flood 2>/dev/null
iptables -N syn_flood
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 100/s --limit-burst 170 -j RETURN
iptables -A syn_flood -j DROP
Сделал максимум запросов 100 за 170 прыжков, и нагрузка на сервер заметно снизилась. Поправьте, если где-то накосячил
вы уверены что ваше правило вообще срабатывает? я не вижу в нём никакого смысла и только потенциальный вред. iptables -vnL
Вообще, да. Но похоже что у него действительно адреса блокируются. Просто в tcpdump поступают пакеты с интерфейса, а не с iptables, поэтому он их видит.
Если так, то печаль. Нагрузка на CPU не снизилась Но спасибо за разъяснения
какая у вас нагрузка от флуда 10 пакетов/сек? у меня почти нулевая
100% на CPU. Одно ядро с 2.0 MHz
что в top? в iptables сколько правил?
iptables -S
iptables -S -t nat
iptables -S -t raw
iptables -S -t mangle
может их там у вас слишком много, поэтому даже малейший флуд долбит цп в 100%
У него там докер, который создает простыню из цепочек iptables. А в докере 3x-ui
я не про докер, тут на форуме кто-то выкладывал скрипт который банит все ip из AS, с ним можно получить несколько тысяч правил с которыми нагрузка на цп очень сильно возрастает, может у него что-то подобное
симулировал syn flood на ноут 2008г (sysbench cpu run
выдаёт 350 events per second).
на атакующем компе hping3 -i u100 -S -p 80 192.168.1.1
выдаёт около 5000 пакетов/сек, нагрузка на ЦП ноута не превышает 15%.
hping3 -i u10 -S -p 80 192.168.1.1
выдаёт 10000 пакетов/сек, нагрузка на цп ноута ровно 50%.
5000 пакетов/сек это далеко от рекордных 120 пакетов/сек которые тут выкладывали DDOS атака на VPS с VLESS+REALITY - #44 by 0x99
на самой днищенской впс которая у меня есть sysbench cpu run
выдаёт 600 events per second
Краткосрочные пики до 100%, потом падение до 0%
1157 root 20 0 1257540 57696 22656 S 27.0 6.3 143:31.92 xray-li+
root@localhost:~# iptables -S
iptables -S -t nat
iptables -S -t raw
iptables -S -t mangle
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-N DOCKER
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N DOCKER-USER
-A INPUT -i lo -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N DOCKER
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-P PREROUTING ACCEPT
-P OUTPUT ACCEPT
-A PREROUTING -s 181.191.0.0/16 -j DROP
-A PREROUTING -s 177.93.0.0/16 -j DROP
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
root@localhost:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (1 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target prot opt source destination
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere