- Записки IT специалиста
- Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu)
- Настраиваем IPsec
- Настраиваем L2TP
- Дополнительные материалы:
- Лучшие VPN-решения для пользователей Linux
- Зачем нужны виртуальные частные сети?
- Защита данных
- Где расположен VPN?
- VPN и VPS
- Лучшие VPN-решения для Linux
- ▍Streisand
- ▍WireGuard
- ▍VyprVPN
- ▍Итоги
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
- Главная
- Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu)
Настраиваем L2TP VPN-сервер на платформе Linux (Debian / Ubuntu)
L2TP — один из наиболее популярных VPN-протоколов, обладающий, благодаря IPsec, отличной безопасностью, достаточной простотой и широкой поддержкой со стороны всех современных ОС. Для работы с ним не требуется установка дополнительного ПО и какие-либо сложные настройки. Мы уже рассматривали настройку L2TP VPN-сервера на платформах Windows и Mikrotik, а теперь расскажем, как настроить аналогичный сервер в Linux, дистрибутивах основанных на Debian или Ubuntu.
Перед тем, как приступать к работе над данной статьей мы внимательно изучили русскоязычный сегмент сети на предмет освещения данной темы и были весьма сильно удивлены. Большинство находящихся на первых страницах поиска ресурсов перепечатывает одну и ту же устаревшую инструкцию, даже в достаточно свежих публикациях. Но наш сайт с самого своего основания принципиально не занимается перепечатками (кроме переводов) и мы всегда проверяем на практике то, что рекомендуем нашим читателям. В этот раз нам пришлось потратить некоторое лишнее время на чтение документации, зато теперь мы можем предложить вам актуальный материал по настройке L2TP в Linux.
В качестве систем на тестовом стенде мы использовали Debian 10 и Ubuntu 20.04, но с некоторыми изменениями данная инструкция применима к любым версиям Linux со strongSwan версии 5.0 и выше.
Настраиваем IPsec
Именно с устаревшими настройками IPsec вам придется столкнуться в большинстве опубликованных инструкций. Нет, все даже будет работать, но вот безопасность такого решения окажется довольно низкой, не соответствующей современным требованиям. Поэтому, если у вас уже имеется настроенный экземпляр L2TP-сервера мы настоятельно советуем обновить его настройки.
Для работы с IPsec мы будем использовать пакет strongSwan, установим его:
Затем откроем файл настроек /etc/ipsec.conf и добавим в его конец следующие две секции:
Первая секция задает общие параметры: включает фрагментацию IKE и настраивает протокол обнаружения мертвых узлов (Dead Peer Detection, DPD), отвечающий за обнаружение неактивных клиентов. Вторая относится уже к L2TP-соединениям, указывая использовать транспортный режим IPsec, аутентификацию по общему ключу и задает используемые шифры. Приведенные значения являются рекомендуемыми и взяты из официальной документации strongSwan.
Общий ключ следует указать в файле /etc/ipsec.secrets, добавив в него следующую строку:
Где mySharedKey — общий ключ, так как от него зависит безопасность вашей VPN-сети мы рекомендуем использовать в качестве ключа случайно сгенерированную строку из букв, цифр и спецсимволов. Для этого можно воспользоваться командой:
Результатом ее выполнения станет случайная строка длинной в 18 символов.
После внесения указанных настроек перезапустим службу:
В Ubuntu имя службы несколько иное — strongswan-starter, поэтому команда будет иметь вид:
Настраиваем L2TP
Для реализации функций L2TP-сервера предназначен пакет xl2tpd, для его установки выполните:
Затем откройте файл настроек /etc/xl2tpd/xl2tpd.conf, раскомментируйте и приведите к следующему виду опции:
Большая часть опций относится к настройке протокола L2TP и требует понимания его работы, поэтому мы на них останавливаться не будем. Разберем те опции, которые имеют существенное значение. Параметр auth file указывает на файл с данными для аутентификации, а pppoptfile — набор опций для PPP-соединения, которое используется внутри L2TP-туннеля, name — имя сервера, которое будет использоваться для поиска аутентификационных данных в файле chap-secrets.
Опции local ip и ip range отвечают за локальный адрес сервера в VPN-сети и диапазон адресов для выдачи удаленным клиентам. Здесь можно использовать два подхода: выдавать клиентам адреса из диапазона локальной сети офиса и включить ProxyARP, в этом случае настраивать маршрутизацию на клиентах не требуется, они будут как-бы включены в общую сеть офиса на канальном уровне (L2), либо выдавать адреса из непересекающегося диапазона и использовать маршрутизацию. Автоматизировать создание маршрутов для Windows-клиентов можно с использованием PowerShell.
Для настройки PPP перейдем в /etc/ppp и скопируем стандартный файл настроек:
Затем открываем файл /etc/ppp/options.xl2tpd на редактирование и приводим к следующему виду. Опции перечислены в порядке их следования, нужно раскомментировать их и указать нужное значение, если опция отсутствует, то ее следует добавить в конце файла.
Если вы будете использовать ProxyARP то дополнительно раскомментируйте опцию:
Также для Windows-клиентов можно передать настройку DNS-серверов, для этого добавьте опции:
Это позволит настроить первичный и альтернативный DNS-сервера в системе.
Сохраним все внесенные изменения и перезапустим службу L2TP-сервера:
Строку со следующим сообщением можно проигнорировать, на работу VPN-сервера она не влияет:
Заключительным этапом настройки будет создание учетных записей для удаленных клиентов, для этого откроем файл /etc/ppp/chap-secrets и внесем следующую строку:
Первым указываем логин, затем имя службы, оно должно совпадать с тем, которое мы указали в опции name в xl2tpd.conf, после него идет пароль и IP-адрес клиента, символ * обозначает что можно присвоить любой адрес из выбранного диапазона. Если же требуется выдать клиенту постоянный адрес, то его следует указать явно, и он не должен входить в динамический диапазон указанный в ip range, например:
Для доступа к L2TP-серверу следует разрешить в брандмауэре входящие подключения к портам 500 UDP и 4500 UDP, подключение к 1701 UDP, вопреки распространенному заблуждению, разрешать не следует.
Дополнительные материалы:
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Источник
Лучшие VPN-решения для пользователей Linux
Если вы выходите в интернет со своего Linux-ноутбука, вам стоит знать об особенностях виртуальных частных сетей (Virtual Private Network, VPN). Эта технология особенно актуальна для тех, кто подключается к Сети через точки доступа, расположенные в общественных местах, однако, во многих ситуациях VPN не повредит и компьютеру, которым пользуются дома.
VPN позволяет защищать данные, передаваемые из точки «А» в точку «Б». Точка «А» — это ваш компьютер. Точка «Б» — это VPN-провайдер, или VPN-система, которую развернули вы сами, либо в облаке, либо где-то ещё, например — в офисе. С VPN-сервисами можно взаимодействовать, используя множество протоколов, но их суть остаётся одной и той же: трафик, который путешествует между компьютером и VPN-сервисом, шифруется. Благодаря этому обеспечивается защита данных от перехвата на пути от пункта отправления к пункту назначения.
В ходе работы с VPN применимо множество сценариев, касающихся маршрутизации. Типичный сценарий заключается в перенаправлении всего трафика по VPN-соединению, но, кроме того, можно применить концепцию «раздельного туннелирования». При таком подходе некоторые данные идут через VPN, а другие — по обычному интернет-соединению в соответствии с правилами маршрутизации.
О VPN часто говорят как об инструменте, позволяющем безопасно работать в интернете тем, кто не хочет раскрываться, например, опасаясь преследования за свои действия. Однако, возможности и сценарии использования VPN гораздо шире. Например, пользуясь VPN можно не опасаться неприятностей, подключаясь к интернету через общедоступные сети.
Зачем нужны виртуальные частные сети?
Для начала поговорим о причинах использования VPN. Чаще всего в их число включают соображения конфиденциальности данных и безопасности, но это — далеко не всё.
Например, пользуетесь ли вы домашним широкополосным соединением, или мобильным интернетом в международном роуминге, есть шансы того, что вы можете попасть под выравнивание трафика. Эта операция выполняется сервис-провайдерами для ограничения скорости передачи некоторых данных для целей приоритизации определённых видов трафика.
Например, многие провайдеры в Великобритании используют выравнивание трафика при трансграничной передаче данных для замедления сервисов, занимающихся стримингом видео и музыки. Делается это для того, чтобы сэкономить трафик, создав для пользователей неудобства в использовании этих сервисов. Тем же самым занимаются некоторые провайдеры широкополосного интернета, ограничивая скорость загрузки файлов в часы пик.
VPN может помочь этого избежать, так как при использовании VPN-технологий шифруется весь трафик, идущий через ваше интернет-соединение. Это означает, что провайдер не сможет понять, что именно проходит по вашему каналу связи. Один небольшой недостаток такого подхода заключается в том, что некоторые провайдеры могут обнаруживать и замедлять сам VPN-трафик. Хотя, учитывая разнообразие различных доступных виртуальных частных сетей и протоколов, этого можно избежать, используя сервисы, не пользующиеся широкой известностью (обычно — не OpenVPN).
Защита данных
Классический сценарий использования VPN заключается в применении этой технологии при работе в общедоступных Wi-Fi-сетях. Если вы повсюду носите с собой ноутбук (или телефон, или что угодно другое, выходящее в интернет), значит не будет ничего удивительного в том, чтобы бесплатно подключиться к интернету в каком-нибудь кафе.
Проблема тут заключается в том, что вы не можете точно знать, что происходит с данными, пока они идут от вашего компьютера к службе в интернете, которой вы хотите воспользоваться. Данные могут быть перехвачены кем-то в интернете, или, если Wi-Fi-сеть кафе взломали, прямо в этой сети. Если вы собираетесь работать с данными, которые не должны попадать в чужие руки, будь это посты в социальной сети или банковская информация, вам стоит серьёзно подумать о безопасности. Использование VPN обеспечит надёжную защиту трафика, идущего по общедоступным сетям.
Ещё один весьма распространённый сценарий использования VPN заключается в обеспечении подключения к корпоративным сетям извне. Применение такого подхода означает, что компьютеры таких сетей извне напрямую недоступны. Вместо этого в интернете виден лишь VPN-сервер. Когда пользователи подключаются к VPN, они могут работать с внутренними ресурсами корпоративной сети так, будто они подключаются к ней из офиса. Использование раздельного туннелирования при удалённом подключении к сети организации позволяет, с одной стороны, работать в интернете или в некоей локальной сети обычным образом, но при этом обмениваться данными с корпоративными IP-адресами по VPN.
Тот же подход можно использовать и в домашней сети. Установив VPN-сервер дома, или используя VPN-возможности множества популярных маршрутизаторов, можно подключиться к домашней сети откуда угодно и работать в ней так, будто вы находитесь дома. Это особенно полезно, если у вас есть данные, хранящиеся в NAS, или, возможно, вы хотите удалённо посмотреть картинку с охранной IP-камеры, не открывая доступ к ней из интернета.
Многие организации в наши дни разворачивают инфраструктуры в облаке, используя провайдеров вроде Amazon Web Services. Обычная концепция облачного хостинга — это виртуальное частное облако (Virtual Private Cloud, VPC). Такой подход позволяет компаниям иметь множество серверов, размещённых в облаке и взаимодействующих друг с другом, но недоступных любому, кто подключён к интернету. VPN можно развернуть и внутри VPC, в результате, опять же, внешнему миру оказывается видимо минимальное количество портов, что помогает повысить общий уровень безопасности.
Где расположен VPN?
Одно из соображений, касающихся использования VPN-сервисов, заключается в их географическом расположении. Если вы, скажем, находитесь в Великобритании, но подключены к VPN, который находится в другой стране, скажем, в США, это повлияет на такие виды деятельности, как, например, просмотр веб-страниц, так как целевой сервер будет видеть лишь ваш «выходной» IP, который является IP-адресом сервера, на который вы, в конечном итоге, перенаправляете трафик.
Подобное вас вполне может не устроить. Например, если вы пользуетесь Google, всё может быть на непонятном для вас языке, или нужные вам данные могут быть заблокированы по географическому принципу. Но тут есть и плюсы — например, если вы находитесь за границей и пользуетесь VPN, расположенным в Великобритании, для того, чтобы работать с данными, доступ к которым из других мест может быть ограничен (отличный пример — BBC iPlayer).
VPN и VPS
Возможно, если вы интересуетесь темой VPN, вы слышали о VPS и хотите узнать о том, что это такое, и в чём разница между VPN и VPS. VPS — это виртуальный частный сервер (Virtual Private server) — виртуальный компьютер, размещённый в облаке. Вот основные характеристики VPN и VPS, раскрывающие особенности этих технологий.
- Эту услугу обычно предоставляют специализированные компании.
- VPN могут разворачивать технически грамотные пользователи.
- VPN-услуги широко варьируются в цене — от бесплатных, до очень дорогих.
- Обычно качество VPN зависит от его стоимости.
- Если ключ шифрования совместно используется разными пользователями, данные, в теории, могут быть перехвачены.
- Популярные VPN-провайдеры часто имеют точки присутствия (PoP, Point of Presence) в разных странах.
- Скорость доступа обычно варьируется в зависимости от расположения пользователя.
Особенности VPS
- VPS-провайдеры предоставляют определённые ресурсы процессора, памяти, хранилища информации и трафика на основе помесячной оплаты.
- Обычно облачные сервера поставляются с базовыми сборками ОС, которые пользователь может настраивать.
- Чаще всего это — Linux-сервера.
- VPS идеально подходят для разворачивания собственного VPN-решения.
Теперь поговорим о лучших VPN-сервисах.
Лучшие VPN-решения для Linux
Вот четыре лучших VPN-решения для Linux, которые можно использовать для защиты интернет-соединений. Первые три — это инструменты из разряда «сделай сам», а четвёртое — традиционный VPN-провайдер.
▍Streisand
Когда дело доходит до развёртывания собственного VPN-сервера, имеется множество вариантов. Можно взять чистую Linux, после чего установить и настроить необходимые пакеты. Такой подход даст максимальный уровень контроля, но потребует немалых затрат времени. Ещё один вариант заключается в использовании инструментов для автоматического развёртывания VPN-сервисов. Существует довольно много опенсорсных проектов, предлагающих такую возможность, наиболее значительным из которых можно признать Streisand.
Скрипт Streisand создаёт новый сервер, использующий L2TP/IPsec, OpenConnect, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, мост Tor, и WireGuard. Это даёт пользователю множество методов подключения, что способно удовлетворить практически любым нуждам, позволяя подключиться к VPN с любой платформы.
Особенно приятно то, что Streisand генерирует инструкции для всех этих служб. После установки пользователь получает HTML-файл руководства, который можно дать друзьям или домочадцам, инструкции по подключению есть и на самом сервере.
Скрипт рассчитан на работу в Ubuntu 16.04 (текущий LTS-релиз), его можно использовать как для подготовки существующего сервера, через интернет, так и для автоматического развёртывания нового на одном из многих облачных VPS-провайдеров, среди которых — Amazon EC2, DigitalOcean, Google Compute Engine, Linode, Rackspace. Разработчики Streisand планируют, в ближайшем будущем, добавить поддержку Amazon Lightsail.
Процесс установки сервера полностью автоматизирован и занимает всего около 10 минут. При необходимости VPS можно полностью переустановить. Это очень удобно и позволяет снизить риск взлома VPS. Streisand — опенсорсный проект, его проверкой занимается множество независимых разработчиков, это позволяет говорить о высоком уровне его безопасности.
В то время, как Streisand — весьма популярная VPN-платформа, это — далеко не единственное решение такого типа. Часто используемая альтернатива — Algo — набор Ansible-скриптов (как и Streisand), который упрощает установку собственного IPSEC VPN. Algo включает, по умолчанию, наиболее безопасные настройки. Он, опять же, работает с популярными облачными провайдерами, и самое главное, не требует клиентского ПО на большинстве устройств, с которых к нему можно подключаться.
Итак, зачем пользоваться Algo а не Streisand? Algo гораздо ограниченнее, чем Streisand, и об этом часто говорят как о его главном преимуществе. Кроме того, Algo поддерживает только IKEv2 с единственной подсистемой шифрования — AES-GCM, HMAC-SHA2, и P-256 DH. Он не устанавливает Tor, OpenVPN или другие сервера, в безопасности использования которых некоторые сомневаются. Algo поддерживает лишь один широко распространённый протокол, он, на большинстве устройств, не требует клиентского ПО. Кроме того, Algo гораздо лучше чем Streisand показывает себя в поддержке большого количества пользователей, предоставляя скрипт, который можно применять после установки сервера для обновления списка пользователей по усмотрению администратора.
Помимо этого основного отличия, многие другие аспекты Algo похожи на Streisand. Он разёртывается на Ubuntu, его можно установить на DigitalOcean, Amazon EC2, Microsoft Azure или на ваш собственный сервер. После завершения установки Algo генерирует требуемые для подключения конфигурационные файлы. Algo, кроме того, имеет собственные необязательные для установки функции, такие, как блокировка рекламы через локальный DNS-преобразователь и HTTP-прокси, и ограниченные SSH-пользователи для туннелирования трафика.
На сайте Algo есть подробности о том, как подключаться к созданным с его помощью VPN-сервисам с устройств, работающих на ОС разработки Apple, с Android и Windows-устройств, и, конечно, с компьютеров, работающих под Linux.
Подключение Linux-устройств обеспечивается с использованием клиента strongSwan, который позволяет организовать подключение очень быстро и надёжно. Если вы хотите подключиться с клиентов других типов или настроить соединение самостоятельно, предоставляются файлы сертификатов/ключей.
Как и в случае со Streisand, проект это опенсорсный, его постоянно обновляют и вносят в него исправления.
▍WireGuard
Множество протоколов и решений VPN, используемых сегодня, существуют уже очень долго, многие считают их неэффективными. Если взглянуть на дискуссии о Streisand и Algo, можно обнаружить массу рассуждений о том, какие сервисы и протоколы нужно включить в эти продукты. Накала страстям добавляют и очень разные подходы, используемые в этих решениях. Как результат, вопрос о том, какими должны быть средства для организации VPN, остаётся открытым. Хотя, ответить на него, возможно, позволит WireGuard.
WireGuard — это очень простой, но быстрый и современный VPN-сервис, который использует актуальные методы шифрования данных. Разработчики говорят о том, что его цель заключается в том, чтобы оказаться быстрее, проще, меньше, удобнее, чем IPSec-сервисы, как в плане работы, так и в плане установки. Говорят, что он создан для того, чтобы быть значительно лучше, чем вездесущий стандарт OpenVPN.
WIreGuard спроектирован как многоцелевой VPN, который может работать на множестве платформ и подходит для всех типов использования. Изначально WireGuard был создан для ядра Linux, но планируется его кроссплатформенность и возможность развёртывания во множестве сред.
Насколько он хорош? Хотя сейчас он находится в стадии активной разработки, он уже назван многими самым безопасным, лёгким в использовании и простым VPN-решением в индустрии.
На сайте WireGuard есть руководство по установке, и, конечно, тут имеется два варианта — скомпилировать его из исходного кода или установить в виде готового пакета. PPA предоставляется для Ubuntu, установить его можно и на таких системах, как Debian, Arch, Fedora, CentOS, OpenSUSE, и на многих других дистрибутивах. Существует его версия и для тех, кто предпочитает macOS.
WireGuard — это кое-что большее, нежели нечто симпатичное, но бесполезное, несмотря на то, что проект находится в стадии активной разработки. Его, по меньшей мере, стоит попробовать. Благодаря его грамотной реализации в виде простого сетевого интерфейса, потрясающей производительности и минимальной поверхности атаки, он вполне может стать популярнейшим VPN-решением будущего.
▍VyprVPN
Что если вместо того, чтобы разворачивать собственное VPN-решение, вы предпочитаете подписаться на использование готовой службы? В этой сфере есть много всего, например, сервис VyprVPN от GoldenFrog, который называют «самым мощным в мире VPN».
Что даёт VyprVPN? Среди его особенностей — высокие скорости, размещение серверов, которых более семисот, в примерно 70-ти местах по всему миру. В распоряжении VyprVPN около 200000 IP-адресов, сервис предлагает простые приложения для широкого диапазона устройств и интеллектуальную технология маскирования OpenVPN-туннелей, называемую Chameleon.
Пожалуй, основной минус VyprVPN — это закрытый исходный код. Из преимуществ же можно отметить то, что GoldenFrog заявляет, что не использует услуги сторонних компаний, и что самостоятельно владеет всем своим программным и аппаратным обеспечением, включая сетевую инфраструктуру, и самостоятельно же всё это обслуживает. Если верить заявлениям компании, такой подход обеспечивает очень высокий уровень защиты конфиденциальности.
Сервис VyprVPN основан на Ubuntu-серверах и на огромное опенсорсном стеке, в который входят OpenVPN, strongSwan, Nginx, OpenSSL, Python и многие другие технологии. Части системы с закрытым кодом — это, в основном, то, что объединяет всё остальное — веб-интерфейсы, клиенты, API и прочее. По оценкам GoldenFrog, код закрыт у примерно 0.7% программного стека компании.
Функция VyprVPN Chameleon тоже имеет закрытый исходный код, но это — один из убедительных аргументов за использование службы. Chameleon основан на OpenVPN. Он берёт пакеты, которые нужно отправить по сети и добавляет слой обфускации, который разработан для противодействия системам глубокой проверки пакетов (DPI, Deep Packet Inspection), тому самому неприятному инструменту, с помощью которого провайдеры выполняют выравнивание трафика.
Кроме того, в отличие от других VPN, Chameleon справляется даже с особо агрессивными провайдерами. Если подобная возможность интересует вас сильнее всего, вполне возможно, что лучшего VPN, чем VyprVPN вам не найти.
▍Итоги
По какой бы причине вы ни занимались поисками VPN-системы для Linux, надеемся, наш обзор дал вам пищу для размышлений. Если вы хотите углубиться в поиски подходящего вам VPN — вот обзор лучших VPN-сервисов 2017-го года, а вот — полезный ресурс для тех, кто занимается подбором VPN.
Источник