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

Здравствуйте! У меня есть Proxmox с виртуальными машинами, и в качестве шлюза используется "Шлюз безопасности Ideco UTM". Мне нужно открыть порт 3306 для связи между виртуальными машинами SRV2 и SRV1, при этом ограничив доступ для других виртуальных машин. Поскольку все они находятся на одном гипервизоре и в одной подсети, у них есть возможность прямого общения, минуя шлюз. Как можно решить эту задачу, чтобы трафик проходил через шлюз? Как осуществить такую маршрутизацию?
  • 5 февраля 2025 г. 6:04
Ответы на вопрос 3
Для блокировки портов и организации маршрутизации трафика между виртуальными машинами (ВМ) в Proxmox, когда вы хотите разрешить доступ только для определённых машин, вы можете воспользоваться несколькими подходами. А именно, можно использовать фильтрацию на уровне сетевого оборудования или программного обеспечения. Рассмотрим несколько методов:

### 1. Изменение сетевой конфигурации виртуальных машин

Для того чтобы трафик между ВМ проходил через шлюз, вам нужно изменить сетевую конфигурацию ваших виртуальных машин так, чтобы они использовали сеть с NAT или прокси-сервер. Вот несколько полезных шагов:

- **Переключить сетевой интерфейс на ВМ на режим "NAT"**. Это заставит трафик проходить через шлюз.
- Используйте virtual bridge в Proxmox, чтобы соединить ваши ВМ с внешним интернетом, и ограничьте сетевой трафик через ваш шлюз.

### 2. Настройка правил на уровне шлюза безопасности Ideco UTM

Ideco UTM позволяет настраивать правила для контроля доступа. Вам нужно создать правила, которые разрешают доступ только с определённых IP-адресов:

1. Зайти в интерфейс вашего Ideco UTM.
2. Перейти в раздел управления правилами брандмауэра.
3. Создать правило, которое разрешает доступ с SRV2 на SRV1 по порту 3306 (MySQL).
4. Создать правило, которое блокирует доступ ко всем остальным ВМ на тот же порт (3306).
5. Убедиться, что вы используете правильные источники и назначения в правилах.

### 3. Использование групп и правил в Proxmox

Если вышеуказанные методы не подходят, можно сделать следующее:

1. **Создание отдельного VLAN** для тех машин, которые должны иметь доступ друг к другу.
2. Используйте настройки программного обеспечения, например, iptables, на уровне каждой ВМ, чтобы ограничить доступ.

### 4. Iptables (если используется Linux)

Если у вас есть доступ к оболочке ваших ВМ, можно настроить iptables для ограничения доступа. Это позволит вам настроить правила на уровне операционной системы:

```bash
# Разрешить трафик с SRV2 на SRV1
iptables -A INPUT -p tcp -s <IP_SRV2> --dport 3306 -j ACCEPT

# Блокировать все остальные попытки доступа к порту 3306
iptables -A INPUT -p tcp --dport 3306 -j DROP
```

Эти команды нужно запускать на машине SRV1.

### Заключение

Наиболее безопасным и гибким решением будет использование брандмауэра на уровне шлюза, так как он позволяет централизованно управлять трафиком между всеми ВМ. Однако изменение сетевой архитектуры может также помочь в вашей задаче. Выбор метода зависит от вашей конкретной ситуации, так что выберите тот, который лучше всего соответствует вашим потребностям.
Внутри L2 идет общение по мак адресам напрямую. 
Вам либо дробить сеть на Vlan, либо делать firewall на самих VM.
Так разнести надо по разным подсетям
Похожие вопросы