VPN для Linux: настройка безопасного туннеля в корпоративную сеть

881
VPN для Linux: настройка безопасного туннеля в корпоративную сеть

Linux в компании чаще используют как рабочую машину разработчика, администратора, инженера или аналитика. Через VPN с такого ноутбука открывают Git, SSH, внутренние панели, тестовые стенды, базы данных и служебные веб-приложения.

У Linux нет одного одинакового экрана для всех. Настройка зависит от дистрибутива, рабочего окружения, установленных пакетов и того, какой VPN-шлюз уже стоит в компании.

С чего начать на рабочей станции Linux

На ноутбуках с Ubuntu, Fedora, Linux Mint, Debian или openSUSE чаще всего используют NetworkManager. В GNOME путь обычно выглядит так: «Параметры», «Сеть», «VPN», кнопка «+». В KDE Plasma похожий раздел находится в «Параметры системы», «Сеть», «Подключения». Если меню отличается, проще открыть поиск в настройках и ввести VPN.

NetworkManager не всегда поддерживает все типы VPN сразу после установки. Для OpenVPN обычно ставят network-manager-openvpn, для IKEv2/IPsec - network-manager-strongswan или связку со strongSwan, для L2TP/IPsec - network-manager-l2tp. WireGuard поддерживается современными версиями NetworkManager, но пакет wireguard-tools всё равно часто пригождается.

Администратор должен выдать полный набор параметров: тип подключения, имя шлюза, способ входа, сертификат центра сертификации, имя пользователя, требования к многофакторной проверке, список внутренних доменов и правила маршрутизации. Без этого пользователь начинает угадывать, а VPN не любит угадайку.

Готовый файл лучше импортировать, а не переносить параметры вручную. OpenVPN обычно приходит в виде файла .ovpn, WireGuard – в виде файла .conf, а IKEv2/IPsec чаще требует ручной проверки имени сервера, идентификаторов, сертификатов и способа входа.

VPN для Linux: настройка безопасного туннеля в корпоративную сеть

Какие варианты VPN чаще встречаются на Linux

IKEv2/IPsec подходит компаниям, где уже настроены сертификаты и строгая проверка устройств. На Linux такой вариант часто строят на strongSwan. Протокол чувствителен к имени сервера в сертификате, идентификатору удаленной стороны, корневому сертификату и способу входа.

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

WireGuard встроили в ядро Linux начиная с версии 5.6, поэтому на современных системах он обычно работает быстро и без тяжелой обвязки. Настройка короткая: закрытый ключ, публичный ключ сервера, адрес узла, разрешенные сети и DNS. Для компании сложность в другом: нужны выдача ключей, отзыв доступа и журналы подключений.

Фирменные клиенты нужны, если корпоративный шлюз уже выбран. Cisco Secure Client используют в инфраструктуре Cisco. GlobalProtect подходит для Palo Alto Networks и работает через графическое приложение или командную строку. FortiClient выбирают в среде Fortinet, но поддержку IPsec и доступные функции надо сверять по версии FortiClient, FortiOS и EMS.

Вариант Когда уместен Что проверить Риск
NetworkManager Обычный рабочий ноутбук Нужный VPN-плагин Без пакета профиль не импортируется
strongSwan IKEv2/IPsec и сертификаты Имена, сертификаты, способ входа Ошибки в мелких параметрах
OpenVPN Готовый .ovpn-профиль Маршруты, DNS, сертификаты Разные клиенты читают профиль по-разному
WireGuard Быстрый туннель для техничной команды AllowedIPs, ключи, DNS Нужно самому управлять доступом
Cisco, GlobalProtect, FortiClient Готовая корпоративная инфраструктура Версии клиента, шлюза и лицензии Функции Linux могут отличаться от Windows

Настройка через NetworkManager и терминал

Для пользователя с графическим окружением самый понятный путь - импортировать профиль через «VPN». После добавления подключения стоит открыть его параметры и проверить вкладки «IPv4», «IPv6», «DNS» и «Маршруты». Если система предлагает сохранить пароль для всех пользователей, лучше уточнить корпоративную политику: на общей машине это плохая идея.

Через терминал WireGuard-профиль можно импортировать так:

sudo nmcli connection import type wireguard file corp-wg.conf
 sudo nmcli connection up corp-wg

OpenVPN-профиль добавляют похожим способом:

sudo nmcli connection import type openvpn file corp.ovpn
 sudo nmcli connection up corp

Для проверки полезны простые команды. Они показывают, поднялся ли интерфейс, куда ушел маршрут и какие DNS-серверы использует система:

ip addr
 ip route
 resolvectl status
 nmcli connection show --active

Автоподключение лучше включать только после тестов. Если профиль ошибся с маршрутами или DNS, Linux будет ломать сеть при каждом входе в систему. На ноутбуке, который часто меняет Wi-Fi, такая мелочь быстро раздражает.

Маршруты, DNS и защита от обхода туннеля

На Linux маршруты нужно проверять руками, а не верить одному значку подключения. В WireGuard важен параметр AllowedIPs: значение 0.0.0.0/0 отправит через туннель весь IPv4-трафик, а конкретные подсети вроде 10.20.0.0/16 пропустят только часть корпоративной сети. В OpenVPN маршруты может передавать сервер, а в IKEv2/IPsec правила зависят от политики strongSwan и шлюза.

DNS часто создает больше проблем, чем само подключение. Если внутренний сервис открывается по IP, но не открывается по имени, проверьте DNS-серверы, DNS-суффикс и работу systemd-resolved. На рабочей станции с NetworkManager важно понять, какие домены должны уходить к корпоративному DNS, а какие остаются у обычного провайдера.

Блокировку трафика при падении туннеля обычно делают правилами межсетевого экрана. В Linux для этого используют nftables, firewalld или правила iptables в старых системах. Смысл простой: разрешить доступ к VPN-шлюзу, разрешить трафик через VPN-интерфейс и запретить рабочим приложениям уходить напрямую в сеть.

После настройки надо проверить не только браузер. Откройте внутренний Git, SSH, веб-панель, пакетный репозиторий, контейнерный реестр, базу данных и инструменты разработки. Docker и другие контейнеры могут иметь свои сетевые правила, поэтому доступ из браузера и доступ из контейнера иногда ведут себя по-разному.

  • Проверяйте доменные имена, а не только IP-адреса.
  • Сравнивайте маршруты до и после подключения.
  • Не включайте автозапуск до проверки DNS.
  • Для защиты от обхода туннеля используйте правила межсетевого экрана.

Итог

Для Linux нет одного правильного VPN-клиента на все случаи. На рабочей станции чаще всего хватает NetworkManager и нужного плагина. Для IKEv2/IPsec обычно смотрят на strongSwan, для OpenVPN – на официальный клиент или пакет из репозитория, для WireGuard – на wireguard-tools и настройки NetworkManager.

Если компания уже использует Cisco, Fortinet или Palo Alto Networks, лучше начинать с фирменного клиента. В корпоративной сети важны не только шифрование и скорость, но и совместимость со шлюзом, многофакторная проверка, журналы, сертификаты и отзыв доступа.

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

VPN Linux гайд
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
21
мая
11:00
Вебинар · Инфосистемы Джет
Каждая пятая компания режет ИБ-бюджет
21 мая разберем исследование «Инфосистемы Джет»: киберриски, бюджеты, кадры и готовность бизнеса к атакам.
Участвовать в вебинаре
Реклама. АО «Инфосистемы Джет», ИНН 771501001, 18+

Техно Леди

Технологии и наука для гуманитариев