# 2FA і захист веб-панелі Proxmox VE від злому

> Як увімкнути двофакторну автентифікацію в Proxmox VE: TOTP, ключі WebAuthn, резервні коди і захист порту 8006.

## Навіщо потрібен двофакторний захист панелі Proxmox VE

Веб-інтерфейс Proxmox VE на порту 8006 відкриває повний контроль над віртуальними машинами: старт, стоп, консоль, диски і резервні копії. Один скомпрометований пароль адміністратора без другого фактора — це доступ до всієї інфраструктури, а не до одного сервісу.

Двофакторна автентифікація (2FA) вимагає після пароля ввести одноразовий код або підтвердити вхід апаратним ключем. Навіть якщо пароль витік через фішинг або базу іншого сайту, увійти в панель без другого фактора не вийде.

## Які способи 2FA підтримує Proxmox VE

Proxmox VE підтримує кілька варіантів другого фактора: одноразові коди TOTP із застосунку-автентифікатора, апаратні і програмні ключі WebAuthn, а також одноразові паролі із заздалегідь згенерованого списку (recovery keys).

| Спосіб | Що потрібно | Коли зручний |
| --- | --- | --- |
| TOTP | застосунок-автентифікатор на телефоні | базовий захист для всіх користувачів |
| WebAuthn | USB-ключ або біометрія пристрою | адміністратори з повним доступом |
| Recovery keys | роздрукований список одноразових кодів | резерв на випадок втрати телефону |

## Як увімкнути TOTP для користувача

Налаштування виконується від імені самого користувача в розділі Datacenter → Permissions → Two Factor або через особистий профіль у правому верхньому куті панелі.

```
# додати TOTP-фактор користувачу через консоль
pveum user tfa add ivan@pve --type totp
```

Після виконання команди або підтвердження у веб-інтерфейсі Proxmox VE покаже QR-код: його скановують застосунком на кшталт Google Authenticator або Aegis, після чого вводять перший згенерований код для перевірки прив'язки. З цього моменту при кожному вході після пароля з'явиться додаткове поле для коду.

## Резервні коди і що робити при втраті телефону

Під час налаштування TOTP Proxmox VE пропонує зберегти набір одноразових резервних кодів. Кожен код діє один раз і підходить замість TOTP, якщо телефон із застосунком-автентифікатором недоступний.

- Роздрукуйте або збережіть резервні коди окремо від телефону, на якому стоїть застосунок.
- Якщо коди закінчилися, а телефон втрачено, відновити доступ може лише адміністратор із роллю PVEAdmin через розділ Permissions → Two Factor, видаливши фактор у заблокованого користувача.
- Після відновлення одразу налаштуйте TOTP знову на новому пристрої.

Саме тому у другого адміністратора завжди повинен бути окремий обліковий запис із налаштованим 2FA — правильний розподіл таких ролей описано у статті про [користувачів і ACL](https://www.zevshost.net/uk/kb/proxmox-polzovateli-roli-acl/).

## Ключі WebAuthn для адміністраторів

Для облікових записів із роллю PVEAdmin розумно використовувати WebAuthn замість або на додаток до TOTP: фізичний ключ неможливо перехопити фішингом, а прив'язка йде до конкретного домену панелі. Ключ реєструється в тому ж розділі Two Factor кнопкою Add → WebAuthn, далі браузер запитує дотик ключа або підтвердження відбитком пальця.

WebAuthn не замінює пароль, а додається до нього як другий фактор — комбінація «пароль + апаратний ключ» на практиці майже виключає віддалений злом облікового запису адміністратора.

## Додатковий захист: порт, ліміт спроб і fail2ban

2FA знижує шкоду від витоку пароля, але не зупиняє перебір паролів на самому порту 8006. Додатково варто обмежити доступ до порту через [файрвол Proxmox VE](https://www.zevshost.net/uk/kb/proxmox-firewall/), дозволивши вхід лише з довірених адрес або через VPN.

```
# fail2ban для веб-інтерфейсу Proxmox
apt install fail2ban
systemctl enable --now fail2ban
fail2ban-client status proxmox
```

Починаючи з сучасних версій Proxmox VE в комплекті вже є готовий jail для fail2ban, який блокує IP-адресу після кількох невдалих спроб входу в панель. Увімкнути його можна однією командою, наведеною вище, без ручного налаштування фільтрів.

## Чек-лист захисту веб-інтерфейсу Proxmox VE

- У кожного адміністратора увімкнено TOTP або WebAuthn.
- Резервні коди збережені в безпечному місці окремо від телефону.
- Доступ до порту 8006 обмежений файрволом або VPN.
- Увімкнено fail2ban для блокування перебору паролів.
- API-токени для автоматизації видані окремо від пароля користувача.

Такий набір заходів захищає панель керування від типових атак і робить компрометацію одного пароля недостатньою для доступу до інфраструктури.

---

Джерело: https://www.zevshost.net/uk/kb/proxmox-2fa-zashchita-paneli/
