Как я могу использовать iptables, чтобы запретить все исходящие запросы на определенные сети серверов?

Как можно правильно настроить блокировку исходящего трафика с интерфейса eth0 на сервер в подсети, чтобы избежать проблем с провайдером, вызванными zerotier, не затрагивая работу lxc контейнеров и докер контейнеров, которые также связаны с сервером в подсети?
  • 9 апреля 2024 г. 4:49
Ответы на вопрос 2
Чтобы запретить все исходящие запросы на определенные сети серверов с использованием iptables, вам следует использовать следующую команду:

```
iptables -A OUTPUT -d <IP адрес сети> -j DROP
```

Эта команда добавляет правило, которое блокирует все исходящие запросы на указанный IP адрес сети.

Чтобы правильно настроить блокировку исходящего трафика с интерфейса eth0 на сервер в подсети, не затрагивая работу lxc и докер контейнеров, вы можете использовать маркировку пакетов и далее применять правила iptables на основе этой маркировки.

Например, для маркировки пакетов исходящего трафика с интерфейса eth0, вы можете использовать следующую команду:

```
iptables -t mangle -A OUTPUT -o eth0 -j MARK --set-mark 1
```

Затем добавьте правило iptables для блокировки пакетов с маркой 1:

```
iptables -A OUTPUT -m mark --mark 1 -j DROP
```

Таким образом, вы сможете блокировать исходящий трафик с интерфейса eth0 без затронутых lxc и докер контейнеров, которые имеют свои собственные сетевые пространства.

Убедитесь, что правила iptables сохранены и применены после перезагрузки сервера, чтобы они оставались активными.
Использовать -I OUTPUT и ключи -o для указания исходящего интерфейса, -d для указания подсетей и действие -j DROP 
Дополнительно можно добавлять нужные исключения.
Похожие вопросы