# Файрвол 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/uk/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/uk/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/uk/kb/proxmox-network-bridge/).

---

Джерело: https://www.zevshost.net/uk/kb/proxmox-firewall/
