Настройка VPN-сервера с SELinux/AppArmor: пошаговое руководство

VPN-сервер на VPS — это мощный инструмент, но его безопасность напрямую зависит от того, насколько хорошо вы защитили саму операционную систему. SELinux (Security-Enhanced Linux) и AppArmor — это системы мандатного управления доступом (MAC), которые позволяют ограничить программы даже в случае их компрометации. В этой статье мы разберём, как правильно настроить SELinux и AppArmor для VPN-сервера, сравним их подходы и покажем, как эти механизмы помогают защитить ваш личный VPS от взлома.

📑 Содержание:

Что такое SELinux и AppArmor

SELinux (разработан NSA) и AppArmor (изначально от Novell) — это реализации мандатного контроля доступа (MAC) для Linux. В отличие от стандартного дискреционного контроля (DAC), где права определяются владельцем файла, MAC задаёт жёсткие политики, которые нельзя обойти даже с root-правами.

Обе системы решают одну задачу: минимизировать ущерб от возможной эксплуатации уязвимости в VPN-сервере. Даже если злоумышленник получит контроль над OpenVPN или WireGuard, он не сможет выйти за рамки разрешённых политикой действий.

Сравнение подходов SELinux и AppArmor

Параметр SELinux AppArmor
Сложность настройки Высокая (требует изучения) Низкая (профили на основе путей)
Гибкость Очень высокая Средняя
Поддержка в дистрибутивах RHEL, CentOS, Fedora, AlmaLinux Ubuntu, Debian, SUSE, OpenSUSE
Обучение Крутая кривая Относительно простая
Производительность Небольшой оверхед Небольшой оверхед
Рекомендация для VPN Для корпоративных сред, где важна детализация Для большинства частных VPS
«Выбор между SELinux и AppArmor часто определяется дистрибутивом, но для VPN-сервера на VPS оба подхода дадут отличный уровень защиты. Главное — не отключать их полностью.»

Настройка SELinux для WireGuard

WireGuard — это современный протокол, который часто работает в ядре Linux. В большинстве дистрибутивов (RHEL 9, CentOS Stream, Fedora) SELinux уже имеет встроенные политики для WireGuard. Однако если вы используете нестандартные порты или кастомные конфигурации, потребуется дополнительная настройка.

🔧 Пример настройки SELinux для WireGuard (RHEL/CentOS)

  1. Проверьте статус SELinux: getenforce (должен быть Enforcing).
  2. Установите пакеты управления политиками: dnf install policycoreutils-python-utils.
  3. Разрешите WireGuard использовать нестандартный порт (например, 51820): semanage port -a -t wireguard_port_t -p udp 51820.
  4. Разрешите доступ к файлам конфигурации: semanage fcontext -a -t wireguard_conf_t "/etc/wireguard(/.*)?" и restorecon -Rv /etc/wireguard.
  5. Разрешите маршрутизацию (если используется NAT): setsebool -P nis_enabled 1 (или настройте отдельные булевы для маршрутизации).

После этих шагов SELinux будет разрешать WireGuard работать в штатном режиме, но при этом блокировать любые несанкционированные действия (например, попытку открыть дополнительный порт или запись в системные каталоги).

Настройка SELinux для OpenVPN

OpenVPN — классический протокол, для которого в RHEL-подобных системах уже есть готовые политики. Но если вы используете нестандартные порты, кастомные скрипты или аутентификацию через LDAP, SELinux может блокировать работу.

🔧 Настройка SELinux для OpenVPN

  • Разрешить OpenVPN использовать порт 1194 (UDP/TCP): semanage port -a -t openvpn_port_t -p udp 1194.
  • Разрешить выполнение скриптов (например, для аутентификации): setsebool -P openvpn_enable_script_access 1.
  • Разрешить доступ к сертификатам и ключам: semanage fcontext -a -t openvpn_conf_t "/etc/openvpn(/.*)?" и restorecon -Rv /etc/openvpn.
  • Если используется плагин для LDAP: setsebool -P openvpn_run_unconfined 1 (будьте осторожны с этим булевым, лучше создать отдельный тип для плагина).

После применения этих правил вы можете проверить работу OpenVPN и при необходимости посмотреть логи SELinux: ausearch -m avc -ts recent.

Настройка AppArmor для WireGuard

В Ubuntu и Debian AppArmor включён по умолчанию, но для WireGuard часто не требуется отдельных профилей, так как он работает на уровне ядра. Однако вы можете создать профиль для утилиты wg-quick, чтобы ограничить её возможности.

🔧 Пример профиля AppArmor для wg-quick (Ubuntu)

Создайте файл /etc/apparmor.d/usr.bin.wg-quick:

#include <tunables/global>
/usr/bin/wg-quick {
    #include <abstractions/base>
    #include <abstractions/bash>
    #include <abstractions/nameservice>

    /usr/bin/wg-quick r,
    /usr/bin/wg r,
    /etc/wireguard/* r,
    /sys/class/net/* r,
    /proc/sys/net/ipv4/ip_forward rw,
    /proc/sys/net/ipv6/conf/*/forwarding rw,
    /run/wireguard/* rw,

    # разрешить выполнение wg
    /usr/bin/wg ix,
    # разрешить доступ к iptables/nftables (если используется NAT)
    /usr/sbin/iptables ix,
    /usr/sbin/nft ix,
    /usr/sbin/ip ix,
}
            

Затем загрузите профиль: apparmor_parser -r /etc/apparmor.d/usr.bin.wg-quick.

После этого wg-quick сможет работать только с разрешёнными файлами и командами, что снижает риск при компрометации.

Настройка AppArmor для OpenVPN

Для OpenVPN в Ubuntu уже есть предустановленный профиль /etc/apparmor.d/usr.sbin.openvpn. Однако если вы используете кастомные скрипты или нестандартные пути, профиль нужно дополнить.

🔧 Дополнение профиля AppArmor для OpenVPN

  • Разрешить доступ к кастомным скриптам: добавьте строки вида /etc/openvpn/scripts/* r и /etc/openvpn/scripts/* ix.
  • Разрешить доступ к дополнительным конфигам: /etc/openvpn/custom/* r.
  • Разрешить использование плагинов (например, для аутентификации): /usr/lib/openvpn/plugins/* mr.
  • Если OpenVPN работает на нестандартном порту, это не требует изменений в AppArmor — это ограничение на уровне сети, а не файловой системы.

После изменений перезагрузите профиль: apparmor_parser -r /etc/apparmor.d/usr.sbin.openvpn.

Безопасность VPS‑VPN: личный сервер + мандатный контроль

🚀 Почему личный VPS + SELinux/AppArmor — это идеальное сочетание?

В отличие от обычных VPN-сервисов, где 1000+ человек сидят на одном IP, вы получаете персональный VPS с полным контролем над безопасностью.

  • Никаких «шумных соседей»: ваш IP-адрес используете только вы. Никто не сможет «подставить» вас своей активностью.
  • Стабильная скорость: пропускная способность не делится между сотнями пользователей.
  • Минимальный риск блокировок: массовые IP-адреса часто попадают в бан-листы из-за действий других пользователей. Ваш личный IP — чистый.
  • Полный контроль: вы сами управляете сервером, выбираете протоколы, настраиваете SELinux/AppArmor под свои нужды.
  • Технология XHTTP + Reality: ваш трафик маскируется под обычный HTTPS, DPI не может его отличить от обычного браузера Chrome.

🎯 Нас в 1000 раз сложнее заблокировать и отследить.

Потому что каждый клиент VPS‑VPN — это отдельный выделенный сервер с уникальным IP-адресом, индивидуальными настройками маскировки и возможностью включить SELinux/AppArmor для дополнительной защиты.

Настроив SELinux или AppArmor на своём VPS, вы получаете двухуровневую защиту:

🔥 Получите свой личный VPN-сервер с максимальной безопасностью

Мы в VPS‑VPN предоставляем полностью выделенный VPN-сервер на вашем собственном VPS. Вы сами решаете, включать ли SELinux/AppArmor, какие порты открывать и как настраивать маршрутизацию.

Ваш трафик будет неотличим от обычного HTTPS — DPI-системы увидят обычный браузер Chrome. А мандатный контроль доступа сделает ваш сервер устойчивым даже к нулевым уязвимостям.

🚀 Заказать личный VPN-сервер

Итог: комплексная защита — залог спокойствия

Настройка SELinux или AppArmor для VPN-сервера — это не просто «хороший тон», а необходимый шаг для любого серьёзного администратора. В 2026 году, когда атаки на VPN-серверы становятся всё более изощрёнными, полагаться только на парольную защиту и фаервол — недостаточно.

Что вы получаете, используя VPS‑VPN с SELinux/AppArmor:

✅ Будущее VPN — за персонализацией и многослойной защитой.

Массовые VPN с общими IP-адресами уходят в прошлое. В VPS‑VPN мы предлагаем именно то, что нужно для современного интернета: выделенный сервер, передовую технологию XHTTP + Reality и полную конфиденциальность. А включив SELinux или AppArmor, вы сделаете свой сервер практически неуязвимым.

Интернет должен быть свободным, безопасным и быстрым. Выбирайте решение, которое работает по-настоящему. Выбирайте VPS‑VPN.