Как заблокировать с помощью iptables все исходящие запросы на сервые подсети?
Доброго дня. Как заблокировать все исходящие с eth0 на сервые подсети? провайдер ругается на zerotier, он шлет кучу запросов...
Проблема в том, что если блокировать любые интерфейсы, то падают lxc контейнреы и докер, что логично, т.к. они тоже относятся к сервым подсетям.
Поэтому хочется заблокировать исключительно для инет интерфейса
Почему вы решили, что Zerotier отправляет запросы именно на серые адреса, которые и нужно заблокировать?
Полагаю, речь про Hetzner? Проблема, скорее всего, в мультикасте.
ValdikSS, ну и судя по письму провайдера..
Системами мониторинга дата-центра была зафиксирована сетевая аномалия типа "сетевое сканирование", исходящая с Вашего выделенного сервера:
" Netscan detected from host ip
TIME (UTC) SRC SRC-PORT -> DST DST-PORT SIZE PROT
2024-04-08 18:32:22 ip 36971 -> 10.50.2.9 9993 183 UDP
2024-04-08 18:32:22 ip 9993 -> 10.50.2.9 9993 183 UDP
2024-04-08 18:32:22 ip 24353 -> 10.50.2.9 9993 183 UDP
ip rule add to 10.0.0.0/8 oif enp0s31f6 prohibit
ip rule add to 192.168.0.0/16 oif enp0s31f6 prohibit
ip rule add to 172.16.0.0/12 oif enp0s31f6 prohibit
Использовать -I OUTPUT и ключи -o для указания исходящего интерфейса, -d для указания подсетей и действие -j DROP
Дополнительно можно добавлять нужные исключения.
вот что советует хостер, правда интерфейс я уже сам указал. они предлагают без него делать, но тогда контейнеры ломаются..
и это не помогает, судя по tcpdump
iptables -A FORWARD -o enp0s31f6 -d 192.168.0.0/16 -j REJECT;
iptables -A FORWARD -o enp0s31f6 -d 172.16.0.0/12 -j REJECT;
iptables -A FORWARD -o enp0s31f6 -d 10.0.0.0/8 -j REJECT;
iptables -A INPUT -i enp0s31f6 -d 192.168.0.0/16 -j REJECT;
iptables -A INPUT -i enp0s31f6 -d 172.16.0.0/12 -j REJECT;
iptables -A INPUT -i enp0s31f6 -d 10.0.0.0/8 -j REJECT;
iptables -A OUTPUT -o enp0s31f6 -d 192.168.0.0/16 -j REJECT;
iptables -A OUTPUT -o enp0s31f6 -d 172.16.0.0/12 -j REJECT;
iptables -A OUTPUT -o enp0s31f6 -d 10.0.0.0/8 -j REJECT;
Drno, tcpdump может работать раньше применения соответствующих правил. Нужно перенаправить перед -j DROP в -j LOG и тогда можно будет посмотреть пакеты, которые попадают в действие правил.