# 🔒 Настройка OPNsense

> Этот гайд описывает установку и настройку OPNsense в качестве роутера и файрвола для домашней сети.

---

## 1️⃣ Установка OPNsense

Ничего не трогаем в момент загрузки. Авторизуемся как `installer`, пароль по умолчанию — `opnsense`.

- Добавляем английскую локаль
- Выбираем ФС — **ZFS RAID0**
- Предупреждение о недостатке ОЗУ можно пропустить
- Устанавливаем систему

---

## 2️⃣ Создание второго сетевого моста

Создаём второй сетевой мост в Proxmox для второго порта, подключаем сетевое устройство в ВМ OPNsense. Перезагружаем ВМ OPNsense.

---

## 3️⃣ Настройка OPNsense

В меню терминала:

### 1. Назначение интерфейсов

Выбираем **1 - assign interfaces**:

- Назначаем одному порту **WAN** (порт для провайдера, во внешний интернет)
- Второму порту **LAN** (порт для локальной сети)

### 2. Настройка IP адресов

Выбираем **2 - set interface ip address**:

- Для LAN указываем статический IPv4 (это будет наш Gateway)
- DHCP можно пока не включать, настроим позже

---

## 4️⃣ Обновление OPNsense

1. Открываем web интерфейс по адресу, установленному для LAN
2. Заходим **Система > Программное обеспечение > Статус > Проверить наличие обновлений**
3. Потом раздел обновления, снизу кнопка **обновить**
4. Ждём обновления всех пакетов

---

## 5️⃣ Установка плагина Qemu Agent

Нужен для управления OPNsense из Proxmox.

1. Заходим **Система > Программное обеспечение > Плагины**
2. Включаем галочку **показать плагины сообщества**
3. Ставим плагин `os-qemu-guest-agent`

---

## 6️⃣ Настройка доступа в интернет

Можно воспользоваться стандартным мастером настройки:

1. Открываем его в разделе **Система > Конфигурация > Мастер**
2. Для доступа в WAN выбираем пункт **PPPoE**
3. Устанавливаем логин и пароль провайдера
4. Остальное уже должно быть настроено, но можно что-то изменить

---

## 7️⃣ Настройка DHCP

В разделе **Службы**:

- Выключаем **Dnsmasq DNS & DHCP**
- Включаем **ISC DHCPv4**
  - В настройках DNS первым сервером указываем IP адрес OPNsense. Сам DNS сервер настроим в следующем шаге

---

## 8️⃣ Настройка DNS

> Для безопасности домашней сети от чрезмерной рекламы и сбора статистики добавим фильтр [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome)
>
> Если для вашей сети достаточно обычного DNS, просто включите в настройках **Unbound DNS**

В консоли OPNsense добавим новый репозиторий:

```bash
fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf
pkg update
```

После чего в разделе **Система > ПО > Плагины** появится пакет `os-adguardhome-maxit` (ставим галочку показать пользовательские пакеты). Устанавливаем его и включаем в разделе **Службы**. Мастер настройки запустится на IP OPNsense на 3000 порту.

В настройках:

- **Указываем внутренний интерфейс LAN** и ставим WebUI AdGuardHome на 3000 порт
- В разделе DNS-сервер также **выбираем только внутренний интерфейс LAN**, порт по умолчанию 53

> ⚠️ По какой-то причине AdGuard думает, что у нас динамический IP, хотя это не так — игнорируем предупреждение.

В настройках добавляем блоклисты по выбору:

- [Hagezi Multi Pro++](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.txt) — Идеальный баланс. Блокирует почти всё, при этом редко «ломает» сайты
- [Hagezi Multi Ultimate](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt) — Самый жесткий вариант. Блокирует агрессивно, включая глубокую телеметрию. Может потребоваться ручная разблокировка некоторых сервисов (белый список)
- И любые другие на своё усмотрение

---

## 9️⃣ Проброс портов

> Для начала нужно освободить 80 порт, потому что на нём по умолчанию доступен сам OPNsense. В разделе **Система > Настройки > Администрирование** заменим 80 порт на 8000

В разделе **Межсетевой экран > NAT > Переадресация портов** добавим правило:

- **Interface:** WAN
- **TCP/IP Version:** IPv4
- **Protocol:** TCP
- **Destination:** WAN address
- **Destination port range:** Внешний порт
- **Redirect target IP:** Введите локальный IP вашего сервера
- **Redirect target port:** Порт назначения
- **Pool Options:** Default
- **Filter rule association:** Add associated filter rule
   - OPNsense автоматически создаст разрешающее правило в брандмауэре

Для HTTP нужно добавить перенаправления на 8080 порт сервера, для HTTPS на 8443. Базовые порты 80 и 443 недоступны в rootless контейнере. Сохраняем изменения и проверяем в разделе **Межсетевой экран > Правила > WAN**.

Для доступа из домашней сети нужно добавить зеркальный NAT в разделе **Межсетевой экран > Настройки > Дополнительно** ставим галочки:

- **Отображение для перенаправлений портов**
- **Автоматический исходящий NAT для отображения**
