# Файрвол Proxmox VE: датацентр, узел и виртуальная машина

> Как настроить файрвол Proxmox VE на трёх уровнях: правила датацентра, узла и VM, группы безопасности и IP-сеты.

## Три уровня файрвола в Proxmox VE

Файрвол Proxmox VE работает поверх iptables/nftables и настраивается сразу на трёх уровнях: датацентр, узел и отдельная виртуальная машина или контейнер. Правила датацентра применяются ко всем узлам кластера, правила узла — к трафику конкретного сервера, а правила VM — только к сетевым интерфейсам этой машины.

Такая иерархия удобна: общие правила безопасности задаются один раз на датацентре, а точечные ограничения — на уровне VM. Итоговое поведение пакета определяется суммой правил всех трёх уровней, поэтому перед включением файрвола стоит понимать, где и что уже настроено.

## Как включить файрвол на датацентре и узле

Включение выполняется в разделе Datacenter → Firewall → Options: параметр `enable` переводится в значение `Yes`. То же самое нужно сделать в разделе Firewall на уровне каждого узла — иначе правила датацентра не применятся к трафику сервера.

Перед включением обязательно добавьте правило, разрешающее доступ к веб-интерфейсу на порту 8006 и SSH на порту 22 с ваших рабочих адресов. Иначе после активации политики DROP по умолчанию панель управления станет недоступна. Дополнительно панель стоит защитить через [двухфакторную аутентификацию](https://www.zevshost.net/ru/kb/proxmox-2fa-zashchita-paneli/).

## Правила Security Group: создание и применение

Security Group — это именованный набор правил, который можно применить сразу к нескольким узлам или VM. Группа создаётся в разделе Datacenter → Firewall → Security Groups и затем подключается к нужному объекту одной строкой.

| Поле | Пример значения | Смысл |
| --- | --- | --- |
| Direction | in | входящий трафик к объекту |
| Action | ACCEPT | разрешить пакет |
| Protocol | tcp | ограничение по протоколу |
| Dest. port | 443 | порт назначения |

- Создать группу с понятным именем, например `web-servers`.
- Добавить в неё правила ACCEPT для нужных портов и DROP для остального.
- Подключить группу к VM или узлу через кнопку Insert в разделе Firewall объекта.

## Файрвол для конкретной VM или контейнера

Индивидуальные правила задаются на вкладке Firewall самой VM или LXC-контейнера. Включите файрвол для машины и добавьте только те порты, которые реально нужны — например 80 и 443 для веб-сервера, остальное закройте политикой DROP по умолчанию.

```
cat /etc/pve/firewall/100.fw
[OPTIONS]
enable: 1

[RULES]
IN ACCEPT -p tcp -dport 80
IN ACCEPT -p tcp -dport 443
```

На той же вкладке доступны опции защиты от спуфинга: MAC Filter проверяет, что VM отправляет пакеты только со своего MAC-адреса, а IP Filter — со своих IP. Доступ к настройке файрвола стоит ограничить через [роли и ACL](https://www.zevshost.net/ru/kb/proxmox-polzovateli-roli-acl/), чтобы менять правила могли только администраторы.

## IP-сеты для групп адресов

IPSet объединяет список IP-адресов или подсетей под одним именем и позволяет ссылаться на них в правилах вместо перечисления каждого адреса. Это удобно для списка офисных IP или адресов мониторинга.

```
cat /etc/pve/firewall/cluster.fw
[IPSET management]
203.0.113.10
203.0.113.0/28

[RULES]
IN ACCEPT -p tcp -dport 22 -source +management
```

Запись `+management` в правиле означает ссылку на IPSet с этим именем. При изменении списка адресов достаточно отредактировать один IPSet — все правила, которые на него ссылаются, обновятся автоматически.

## Как проверить правила и не заблокировать себя

Перед включением строгой политики DROP протестируйте доступ с резервного канала: через IPMI, консоль в веб-интерфейсе гипервизора или физический доступ к серверу. Если самостоятельно закрыли себе SSH и веб-интерфейс, вернуть доступ можно через консоль узла командой `pve-firewall stop`, которая временно останавливает применение правил.

После каждого изменения проверяйте статус модуля командой `pve-firewall status` и просматривайте журнал в разделе Firewall → Log — там видно, какие пакеты были отброшены и по какому правилу.

## Чек-лист безопасной настройки файрвола

- Правило доступа к портам 8006 и 22 добавлено до включения DROP по умолчанию.
- Файрвол включён и на датацентре, и на каждом узле.
- Для групп серверов созданы Security Group вместо дублирования правил.
- На VM с публичными сервисами открыты только реально нужные порты.
- Есть резервный канал доступа на случай ошибки в правилах.

Файрвол дополняет сетевую изоляцию на уровне мостов: базовые принципы разделения сетей описаны в статье про [сетевые мосты и VLAN](https://www.zevshost.net/ru/kb/proxmox-network-bridge/).

---

Источник: https://www.zevshost.net/ru/kb/proxmox-firewall/
