Страница 4: Возможности OPNsense

Поскольку OPNsense как операционная система маршрутизатора и брандмауэра предлагает практически безграничные возможности настройки, мы не можем рассказать обо всем. Поэтому ограничимся самыми важными функциями. Но мы постарались рассмотреть большое количество пунктов - от важных настроек и мер предосторожности до советов.

Пользователи и группы

После установки OPNsense существует только один пользователь и одна группа пользователей. А именно пользователь root в качестве суперпользователя и группа администраторов. Однако можно создавать дополнительные группы с различными полномочиями и назначать новых пользователей в различные группы. Для базовой настройки достаточно суперпользователя root, который, разумеется, имеет доступ ко всем опциям и полномочиям в OPNsense.

Резервное копирование и восстановление конфигураций

Рано или поздно настройка OPNsense будет завершена, тогда имеет смысл создать резервную копию всей конфигурации. Это можно сделать либо вручную (по желанию также в зашифрованном виде), либо автоматически через Google Drive. В том же окне можно восстановить конфигурацию, например, после новой установки системы. По умолчанию восстанавливаются все настройки, но можно восстанавливать и отдельные области.

В целом, резервным копированием конфигурации пренебрегать не стоит.

Обновление прошивки и расширения

Deciso B.V. периодически выпускает новые обновления прошивки для OPNsense. Причем OPNsense не проверяет и не устанавливает обновления прошивки автоматически. Процесс должен запустить администратор. Можно выбрать зеркало сервера, а также тип установки OPNsense. Подобно виджетам на дашборде, вся операционная система OPNsense имеет модульную структуру и при необходимости может быть дополнена многочисленными плагинами. К ним относится, например, темный режим с именем "os-theme-rebellion".

При добавлении дополнительных репозиториев количество плагинов увеличивается. Чтобы установить плагин, нажмите на кнопку с плюсом в правой части. Установленный плагин, разумеется, можно снова удалить в том же месте с помощью иконки мусорной корзины.

Администрирование в целом

Общие настройки администрирования OPNsense находятся в разделе Система -> Настройки -> Администрирование. Там можно задать различные настройки, в том числе TCP-порт, через который можно подключиться к OPNsense. По умолчанию используется HTTPS-порт 443, но его можно изменить. Однако при этом следует учитывать, что OPNsense будет доступен только через выставленный порт. Если LAN-интерфейсу присвоен IP-адрес 192.168.10.1, в адресной строке браузера необходимо ввести следующее: https://192.168.10.1:номер порта. Вместо "номер порта", разумеется, введите выставленный номер порта.

То же самое относится и к SSH-доступу, который следует настроить для экстренных случаев. По умолчанию используется порт 22, но его также можно изменить на другой номер. Чтобы получить возможность входить в систему под пользователем root, необходимо активировать три галочки. К защите пользователя root мы перейдем позже. Каждый раз, когда вы вносите изменения, следует нажимать кнопку «Сохранить» внизу. Конечно, если вы хотите, чтобы эти изменения были сохранены.

Глобальные настройки DNS

В соответствующем поле можно задать имя хоста OPNsense, имя домена, часовой пояс, язык и дизайн. Далее задаются глобальные настройки DNS: к каким DNS-серверам обращается сам OPNsense и клиенты через шлюз для разрешения имен хостов. Насчет выбора DNS-серверов можно долго спорить. В нашем случае мы использовали DNS-серверы Google. Мы указали IPv4- и IPv6-адреса DNS-серверов. Затем OPNsense будет работать в качестве шлюза DNS.

Следует отметить, что шлюз IPv4 не используется для разрешения адресов IPv6. Поэтому настройки должны быть правильными. В настройках DNS-сервера следует снять галочку с пункта, который выставляет DNS по настройкам провайдера DHCP/PPP подключения WAN.

Интерфейсы, PPPoE и VLAN

Одной из основ OPNsense являются интерфейсы. Различают физические и виртуальные интерфейсы. В то время как физические интерфейсы работают непосредственно с соответствующим LAN-портом, виртуальные интерфейсы можно привязывать к LAN-портам. В разделе "Интерфейсы -> Назначения" наглядно показано, какие интерфейсы в данный момент активны в той или иной сети.

Чтобы включить IPv6-соединения через DHCPv6, необходимо установить три флажка в настройках WAN-порта (по крайней мере, для нашего провайдера). Размер делегации префиксов установлен на 56. Далее необходимо ввести данные доступа PPPoE. Как это сделать, описано ниже.

Для соответствующего интерфейса, который должен поддерживать IPv6, в разделе Тип конфигурации IPv6 следует выбрать порт WAN в качестве интерфейса IPv6. Ниже указывается идентификатор префикса IPv6. Каждый интерфейс с доступом к IPv6 должен иметь свое собственное значение, например: LAN -> 0x0, WLAN -> 0x1 и т. д.

Поскольку для выхода в Интернет обычно используется PPPoE, мы добавили соответствующую часть. Необходимо настроить новое устройство «точка-точка». Его можно найти в разделе Интерфейсы -> Точка-точка -> Устройства. Чтобы создать устройство PPPoe, достаточно нажать на кнопку с плюсом. В разделе Тип подключения должен быть выбран PPPoE, а затем выбран интерфейс WAN. В нашем случае это igc0.

Для входа в систему в поле «Имя пользователя» необходимо ввести логин для провайдера. Затем введите свой пароль. Наконец, сохраните настройки. После этого интерфейс будет обозначен как pppoe0.

Интерфейс pppoe0 должен быть выбран в настройках интерфейса в разделе WAN. Если ваш модем уже выполняет тегирование VLAN 7, OPNsense должен подключиться к Интернету. Тег VLAN может отличаться в зависимости от провайдера. У нашего провайдера это VLAN 7.

Если модем не выполняет тегирование VLAN 7, необходимо либо настроить модем с данной функцией, либо задать в OPNsense VLAN 7. Для этого перейдите в меню VLAN в разделе Интерфейсы -> Другие типы -> VLAN. VLAN можно создать, нажав на кнопку с плюсом. Сверху автоматически создается имя устройства vlan01, но вы можете присвоить и другое имя. В разделе Parent вы указываете OPNsense, с каким физическим интерфейсом должна работать создаваемая VLAN. В нашем случае это будет igc0. Для интерфейса PPPoE необходимо изменить интерфейс подключения на устройство VLAN.

Важное замечание: для тегирования VLAN 7 действует принцип «или-или»! Либо OPNsense берет на себя тегирование VLAN для выхода в Интернет, либо модем. Но не оба сразу! Если тегирование VLAN активировано в обоих случаях, выход в Интернет невозможен.

Конечно, VLAN можно настроить и для других физических интерфейсов, например, если порт LAN будет использоваться как для частной, так и для гостевой WLAN. В этом случае порт LAN, который планируется использовать для сетей WLAN, должен быть выбран в качестве родительского интерфейса в дополнение к тегу VLAN. В нашем случае это igc2.

Алиасы, NAT и правила брандмауэра

Вторая важная составляющая OPNsense - это, конечно же, правила брандмауэра. Они включают в себя очень полезные алиасы и настройки NAT (Network Address Translation) для исходящих IPv4-соединений. Алиасы служат для того, чтобы администратору не приходилось вводить в правилах брандмауэра отдельные порты для определенных клиентов (или хостов) для каждого правила брандмауэра. В таком случае коллекция правил брандмауэра разрослась бы до бесконечности, управлять ею было бы проблематично.

Вместо этого можно объединить несколько хостов или портов и диапазонов портов. Также можно хранить списки блокировок и использовать их в качестве алиасов в правилах брандмауэра. После создания алиаса необходимо нажать кнопку «Применить» внизу, чтобы изменения вступили в силу.

В некоторых случаях удобно создать дополнительные правила Source NAT с PAT (Port Address Translation), которые переводят порты с внутреннего IPv4-адреса на внешний, публичный IPv4-адрес, помимо обычных правил брандмауэра. Такие правила часто необходимы для многопользовательских онлайн-игр. Однако базы DECT с VoIP-соединениями также могут потребовать ручной настройки Source NAT для корректной работы и установления соединений для телефонных звонков.

Все правила можно отключать или активировать снова с помощью соответствующих значков. Также можно настроить и переадресацию портов (Destination NAT).

Теперь перейдем к сути вопроса - к самим правилам брандмауэра. Обычно здесь применяется следующее: побеждает первое совпадение. То есть сохраненные правила брандмауэра обрабатываются сверху вниз для каждого запроса. Если одно из правил применилось, то остальные правила в данном запросе игнорируются.

Сразу после установки OPNsense интерфейс локальной сети обзаводится двумя правилами брандмауэра в дополнение к многочисленным автоматически созданным правилам. Эти правила разрешают все соединения и запросы IPv4 и IPv6 из внутренней сети (LAN) в Интернет. Два правила можете деактивировать, либо удалить, если требуется ограничить соединения. Однако новичкам в мире сетей не следует удалять эти два правила. По крайней мере, пока.

Еще один совет по поводу правил брандмауэра: их должно быть столько, сколько нужно, но как можно меньше. Для лучшего обзора (особенно для новичков) следует создавать только необходимые правила. Желательно использовать алиасы. Они позволяют охватывать несколько хостов и/или несколько портов или даже диапазонов портов в одном правиле брандмауэра.

Кроме того, для блокирующего правила брандмауэра следует выбирать только действие Block, а не Reject. Особенно для правил брандмауэра на стороне WAN. Действие Reject информирует запрашивающий узел о том, что запрос был отклонен. То есть запрашивающий узел, который может быть и злоумышленником, будет знать, что за внешним IP-адресом действительно находится узел, который может быть атакован.

По умолчанию для интерфейса WAN не существует правил брандмауэра (кроме автоматически созданных). Все, что не было запрошено из внутренней сети, всегда блокируется OPNsense. Как и в нашем случае, можно интегрировать GeoIP. С помощью GeoIP можно указать страны мира, запросы из которых будут автоматические фильтроваться. Также можно включить списки блокировки с сайта spamhaus.org, чтобы подобные запросы не проходили.

Однако запросы ICMP Echo для соединений IPv6 можно и нужно пропускать, поскольку эти эхо-запросы являются частью спецификации IPv6. Любые правила брандмауэра следует использовать с осторожностью, особенно для интерфейса WAN. С помощью значка i можно посмотреть срабатывание правил в журнале.

Если планируется управлять соединениями IPv6, то в расширенных настройках брандмауэра следует проверить, активна ли поддержка IPv6. Если нет, установите флажок и нажмите кнопку «Сохранить». Остальные настройки можно оставить без изменений.

В разделе брандмауэра также можно посмотреть действия брандмауэра в реальном времени. Выводятся только пропуск (зеленый) и отказ (красный). Конечно, можно добавить шаблоны для фильтрации. Например, чтобы для WAN-интерфейса отображались только блокирующие действия. Шаблоны можно сохранять и активировать в любое время.

DHCP для IPv4

Использование протокола DHCP (Dynamic Host Configuration Protocol) не является обязательным, но значительно облегчает жизнь в локальной сети. Суть в том, что DHCP автоматически назначает IP-адрес клиенту во внутренней сети, его не придется прописывать вручную для каждого клиента. Серверу DHCP должен быть предоставлен пул IP-адресов, которые он может предоставлять. Например, IP-адрес интерфейса LAN - 192.168.10.1. DHCP-серверу требуется начальный и конечный адрес диапазона:

Начальный адрес диапазона: 192.168.10.50
Конечный адрес диапазона: 192.168.10.100

Разумеется, важно, чтобы начальный и конечный диапазоны находились в одной подсети. В противном случае OPNsense все равно выдаст предупреждение. Также можно привязать IP-адреса к MAC-адресам и даже игнорировать или отклонять запросы DHCP от новых и, следовательно, чужих устройств. Различают динамическое и статическое назначение. Назначение IP-адреса без привязки к MAC-адресу является динамическим и ограниченным по времени (время аренды), в то время как привязка к MAC-адресу с помощью протокола ARP (Address Resolution Protocol) является статической и, следовательно, фиксированной.

Обнаружение вторжений: IDS и IPS

Встроенные инструменты OPNsense также включают в себя систему обнаружения вторжений (IDS) и систему предотвращения вторжений (IPS). IDS – просто система обнаружения вторжений во внутреннюю сеть, и OPNsense не предпринимает никаких действий. О вторжениях только сообщается. С системой предотвращения вторжений, напротив, OPNsense будет не только сообщать о попытках вторжения, но и предотвращать их, если получится.

Конфигурация IDS и IPS сама по себе довольно сложна. В общем случае необходимо загрузить и активировать списки. Затем следует настройка правил. Можно выбрать и активировать отдельные типы атак. Для начала настоятельно рекомендуется включить только IDS и понаблюдать за поведением системы. Если в дальнейшем система будет работать без сбоев, можно активировать режим IPS.

Но IDS и IPS – дополнительные функции. В зависимости от объема правил они требуют чуть больше производительности процессора.

NTP: сетевой сервер времени

Благодаря протоколу NTP (Network Time Protocol) OPNsense может также выступать в качестве сервера времени для внутренней сети. Можно произвольно выбрать внешние серверы NTP, которые будут использоваться для получения точного времени. Затем шлюз OPNsense будет работать в качестве сервера NTP для каждой внутренней сети служит, его можно указывать на клиентах для синхронизации времени.

Unbound DNS

Unbound DNS используется по умолчанию в OPNsense, он незаменим для разрешения имен в IP-адреса. DNS (Domain Name System) можно представить как своего рода телефонный справочник. Пользователи указывают интернет-адрес в строке браузера вместо IP, поскольку его гораздо легче запомнить. Однако сам по себе интернет всегда работает с IP-адресами в фоновом режиме. Если, например, в браузере вводится www.hardwareluxx.ru, DNS-сервер смотрит в своей «телефонной книге», по какому IP-адресу располагается сайт www.hardwareluxx.ru, и сообщает об этом запрашивающему браузеру, который затем соединяется по IP-адресу с сервером, где размещен сайт.

При использовании Unbound DNS нет необходимости выполнять какие-либо специальные настройки, все уже правильно сконфигурировано. Единственное исключение - активация поддержки DNSSEC. Подобно PiHole и Adguard Home, Unbound DNS можно настроить более глубоко и отфильтровать рекламу непосредственно с помощью списков блокировки. Списки, которые можно активировать, очень обширны, и их выбор можно настраивать. Разумеется, можно также внести URL в белый список. Приоритет в белом списке выше. Чтобы добавить URL-адрес в белый список, введите следующее: .*hardwareluxx.ru

Мы рекомендуем добавить в белый список следующие URL-адреса, чтобы вся реклама на Hardwareluxx правильно отображалась:

  • googleadservices.com
  • googlesyndication.com
  • googletagservices.com
  • 2mdn.net
  • safeframe.googlesyndication.com
  • pagead2.googlesyndication.com
  • google.com
  • vgwort.de
  • facebook.com
  • business.facebook.com
  • gstatic.com
  • fbcdn.net

Наконец, поставьте галочку в поле «Включить» вверху, нажмите «Применить» внизу и перезапустите службу Unbound DNS. Это можно сделать в правом верхнем углу.

Еще один важный момент - DNS over TLS для шифрования DNS-запросов. На примере DNS-серверов Google необходимо ввести следующее:

  • Адрес: 8.8.8.8, Port 853: Hostname: dns.google.com
  • Адрес: 8.8.4.4, Port 853: Hostname: dns.google.com
  • Адрес: 2001:4860:4860::8888, Port 853: Hostname: dns.google.com
  • Адрес: 2001:4860:4860::8844, Port 853: Hostname: dns.google.com

С помощью небольшого дополнительного плагина "Custom Options", например, можно блокировать целые домены верхнего уровня. Например, можно заблокировать все домены .zip, в результате ни один клиент не сможет обратиться к интернет-адресу с .zip в конце.

Чтобы воспользоваться плагином "Custom Options", сначала необходимо добавить в OPNsense репозиторий Mimugmail, используя SSH. В SSH войдите под своим логином и выберите цифру 8 для Shell. Теперь введите следующее:

Затем введите pkg update, подтвердите и все готово. Теперь репозиторий Mimugmail добавлен. Используя веб-интерфейс, загляните в раздел расширений и найдите unboundcustom, сам пакет называется "os-unboundcustom-maxit".

Двухфакторная аутентификация

OPNsense также поставляется с возможностью защиты пользователей с помощью двухфакторной аутентификации (сокращенно 2FA). Для этого необходимо создать новый сервер в разделе Система -> Доступ -> Сервер. В качестве типа выберите Local + Time-based one-time password. Разумеется, вверху следует присвоить этому серверу имя. Длина токена может оставаться равной 6. Введите 30 (секунд) для окна Time и наименьшее возможное число в секундах для Grace period. Важно поставить галочку внизу (Обратная сортировка токенов). Если галочка не установлена, то при вводе пароля код 2FA должен вводиться перед паролем. Если галочка установлена, то все будет наоборот: сначала обычный пароль, а затем код 2FA.

Следующим шагом будет переход в настройки пользователя и создание секретного 160-битного кода в разделе OTP seed. После нажатия кнопки «Сохранить и вернуться» секретный код будет виден и может быть сохранен в доверенном приложении 2FA на смартфоне.

Прежде чем активировать новый сервер доступа, необходимо сначала опробовать доступ с помощью тестера. Если с его помощью удалось войти в систему, только что созданный сервер доступа 2FA следует выбрать в разделе Система -> Настройки -> Администрирование в самом низу под пунктом Аутентификация. После нажатия на кнопку «Сохранить» код 2FA будет требоваться для входа в OPNsense в дополнение к паролю. Это также относится к доступу через SSH.

VPN: IPSec, OpenVPN и Wireguard

Конечно, OPNsense также поддерживает VPN (Virtual Private Network), которая используется для передачи всего трафика в зашифрованном туннеле. Нативно поддерживаются IPSec и OpenVPN, но после установки расширения можно использовать и Wireguard. Возможности настройки очень обширны и требуют соответствующих знаний. Из-за нехватки времени мы не стали их пробовать. Но для полноты картины стоит упомянуть, что OPNsense поддерживает VPN-соединения.

Наконец, стоит затронуть тему DynDNS. С помощью DynDNS можно присвоить имя хоста к собственному публичному IPv4-адресу. Поскольку публичный IPv4-адрес может присваиваться динамически, служба DynDNS будет его оперативно отслеживать и менять. В результате вы всегда сможете подключиться к своему серверу VPN по имени хоста DynDNS с измененным IPv4-адресом.