Как настроить vpn на linux

Обновлено: 04.07.2024

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

Чтобы создать собственный VPN, необходимо арендовать подходящий виртуальный сервер. Для создания VPN соединения существует различное программное обеспечение, которое отличается поддерживаемыми операционными системами и используемыми алгоритмами. В статье рассматривается два независимых друг от друга способа реализации VPN сервера. Первый основан на протоколе PPTP, который на сегодняшний день считается устаревшим и небезопасным, но при этом очень прост в настройке. Второй использует современное и безопасное ПО OpenVPN, но требует установки стороннего клиентского приложения и выполнения более сложных настроек.

В тестовой среде в качестве сервера используется виртуальный сервер под управлением операционной системы Ubuntu Server 18.04. Брандмауэр на сервере отключен, так как его настройка не рассматривается в данной статье. Настройка клиентской части описана на примере Windows 10.

Подготовительные операции

Независимо от того, какой из вариантов VPN сервера вы предпочтете, доступ клиентов в Интернет будет реализован штатными средствами операционной системы. Для того, чтобы из внутренней сети открыть доступ в Интернет через внешний интерфейс сервера необходимо разрешить пересылку пакетов между интерфейсами (форвардинг пакетов), и настроить трансляцию адресов.

Для включения форвардинга пакетов откроем файл “/etc/sysctl.conf” и изменим значение параметра “net.ipv4.ip_forward” на 1.

включение форвардинга пакетов для настройки VPN сервера

Чтобы изменения применились без перезагрузки сервера, выполним команду

sudo sysctl -p /etc/sysctl.conf

Трансляция адресов настраивается средствами iptables. Предварительно уточним имя внешнего сетевого интерфейса, выполнив команду “ip link show”, оно понадобится на следующем шаге. В нашем случае имя интерфейса “ens3”.

ip link show

Включаем трансляцию адресов на внешнем интерфейсе для всех узлов локальной сети.

sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Обратите внимание, что в команде необходимо указать реальное имя сетевого интерфейса. На вашем сервере оно может отличаться.

По умолчанию все созданные правила iptables сбрасываются после перезагрузки сервера, для того, чтобы этого избежать, воспользуемся утилитой “iptables-persistent” Устанавливаем пакет.

sudo apt install iptables-persistent

В процессе установки откроется окно конфигурации, в котором система предложит сохранить текущие правила iptables. Так как правила уже настроены, соглашаемся и дважды нажимаем “Yes”. Теперь, после перезагрузки сервера правила будут восстанавливаться автоматически.

Включаем трансляцию адресов на внешнем интерфейсе для всех узлов локальной сети

1. PPTP сервер

Настройка сервера

sudo apt install pptpd

После завершения установки открываем в любом текстовом редакторе файл “/etc/pptpd.conf” и приводим его к следующему виду.

Далее редактируем файл “/etc/ppp/pptpd-options”, большинство параметров уже установлены по умолчанию.

proxyarp
nodefaultroute
lock
nobsdcomp
novj
novjccomp
nologfd

На следующем этапе необходимо создать учетную запись для подключения клиентов. Предположим, мы хотим добавить пользователя “vpnuser”, с паролем “1” и разрешить для него динамическую адресацию. Открываем файл “/etc/ppp/chap-secrets” и добавляем в конец строку с параметрами пользователя.

vpnuser pptpd 1 *

Значение “pptpd” это имя сервиса, которое мы указали в файле “pptpd-options”. Вместо символа “*” для каждого клиента можно указать фиксированный ip-адрес. В результате содержимое файла “chap-secrets” будет таким.

Настройка VPN сервера - создание учетной записи для подключения клиентов

Для применения настроек перезагружаем службу pptpd и добавляем её в автозагрузку.

sudo systemctl restart pptpd
sudo systemctl enable pptpd

Настройка сервера завершена.

Настройка клиента

Открываем “Пуск” - “Параметры” - “Сеть и интернет” - “VPN” и нажимаем “Добавить VPN-подключение”

Настройка клиента для VPN подключения

В открывшемся окне вводим параметры подключения и нажимаем “Сохранить”

  • Поставщик услуг VPN: “Windows (встроенные)”
  • Имя подключения: “vpn_connect” (можно ввести любое)
  • Имя или адрес сервера: (указываем внешний ip адрес сервера)
  • Тип VPN: “Автоматически”
  • Тип данных для входа: “Имя пользователя и пароль”
  • Имя пользователя: vpnuser (имя, которое указано в файле “chap-secrets” на сервере)
  • Пароль: 1 (так же из файла “chap-secrets”)

После сохранения параметров, в окне VPN появится новое подключение. Щелкаем по нему левой кнопкой мыши и нажимаем “Подключиться”. При успешном соединении с сервером, на значке подключения появится надпись “Подключено”.

Добавляем VPN подключение

В свойствах подключения отображаются внутренние адреса клиента и сервера. В поле “Адрес назначения” указан внешний адрес сервера.

В свойствах подключения отображаются внутренние адреса клиента и сервера. В поле “Адрес назначения” указан внешний адрес сервера.

При установленном соединении внутренний ip-адрес сервера, в нашем случае 172.16.0.1, становится шлюзом по умолчанию для всех исходящих пакетов.

Проверка внешнего адреса компьютера при настройке VPN-соединения

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

2. OpenVPN сервер

Настройка сервера

Выполним повышение прав текущего пользователя, так как для всех дальнейших действий требуется root доступ.

Устанавливаем необходимые пакеты. Пакет “Easy-RSA” нужен для управления ключами шифрования.

apt install openvpn easy-rsa

Создаем символическую ссылку на конфигурационный файл OpenSSL, в противном случае система выдаст ошибку при загрузке переменных.

ln -s /usr/share/easy-rsa/openssl-1.0.0.cnf /usr/share/easy-rsa/openssl.cnf

Переходим в рабочий каталог утилиты easy-rsa, загружаем переменные и очищаем старые конфигурации.

cd /usr/share/easy-rsa/
source ./vars
./clean-all

Приступаем к созданию ключей. Генерируем ключ Диффи-Хеллмана, процесс может занять некоторое время.

Генерируем ключи

Генерируем центр сертификации.

В процессе необходимо ответить на вопросы и ввести информацию о владельце ключа. Вы можете оставить значения по умолчанию, которые указаны в квадратных скобках. Для завершения ввода нажимаем “Enter”.

Генерируем ключи для сервера, в качестве аргумента указываем произвольное название, в нашем случае это “vpn-server”

Как и на предыдущем шаге отвечаем на вопросы или оставляем значения по умолчанию. На завершающем этапе дважды нажимаем “y”.

Генерация ключей

Генерация ключей сервера завершена, все файлы находятся в папке “/usr/share/easy-rsa/keys”.

все файлы находятся в папке “/usr/share/easy-rsa/keys”

Создадим в рабочем каталоге OpenVPN папку “keys” для хранения ключей и скопируем туда необходимые файлы.

mkdir /etc/openvpn/keys
cp ca.crt dh2048.pem vpn-server.key vpn-server.crt /etc/openvpn/keys/

Копируем и распаковываем в каталог “/etc/openvpn/” шаблон конфигурационного файла.

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz

Открываем на редактирование файл “/etc/openvpn/server.conf” и убеждаемся в наличии следующих строк, при необходимости корректируем.

Остальные параметры оставляем без изменений.
Перезапускаем службу OpenVPN для применения конфигурации.

systemctl restart openvpn

Настройка сервера завершена!

Настройка клиента

Скачиваем клиент OpenVPN с официального сайта проекта

и скачиваем инсталлятор для своей версии операционной системы. В нашем случае это Windows 10.

скачиваем инсталлятор для своей версии операционной системы

Устанавливаем приложение, оставляя все параметры по умолчанию.

На следующем этапе необходимо подготовить на сервере и передать на компьютер клиента следующие файлы:

  • публичный и приватный ключи;
  • копия ключа центра сертификации;
  • шаблон конфигурационного файла.

Подключаемся к серверу, повышаем права,переходим в рабочий каталог утилиты “easy-rsa” и загружаем переменные.

sudo -s
cd /usr/share/easy-rsa/
source ./vars

Генерируем ключевую пару для клиента, в качестве аргумента указываем произвольное имя, в нашем случае “client1”.

Отвечая на вопросы вводим свои данные или просто нажимаем “ENTER”, оставляя значения по умолчанию. После этого дважды нажимаем “y”

Установка и настройка OpenVPN

Сгенерированные ключи клиента также находятся в папке “/usr/share/easy-rsa/keys/” Для удобства создадим в домашнем каталоге папку “client1” и скопируем в нее все файлы предназначенные для переноса на клиентский компьютер.

cd /usr/share/easy-rsa/keys/
mkdir

/client1
cp client1.crt client1.key ca.crt

Скопируем в эту же папку шаблон клиентского конфигурационного файла. При копировании меняем расширение файла на “ovpn”.

Изменим владельца каталога “

/client1/” и всех файлов находящихся в нем, для того, чтобы получить возможность перенести их на клиентский компьютер. В нашем случае сделаем владельцем пользователя “mihail”

chown -R mihail:mihail

Переходим на клиентский компьютер и копируем с сервера содержимое папки “

/client1/” любым доступным способом, например с помощью утилиты “PSCP”, которая входит в состав клиента Putty.

Файлы ключей “ca.crt”, “client1.crt”, “client1.key” можно хранить в любом месте, в нашем случае это папка “c:\Program Files\OpenVPN\keys”, а конфигурационный файл “client.ovpn” переносим в директорию “c:\Program Files\OpenVPN\config”.

Приступаем к конфигурированию клиента. Открываем в блокноте файл “c:\Program Files\OpenVPN\config\client.ovpn” и отредактируем следующие строки

cipher AES-256-CBC
comp-lzo
auth-nocache
verb 3

Остальные параметры оставляем без изменений.

Сохраняем файл и запускаем клиентское приложение “OpenVPN GUI”.

VPN setup finished


Для подключения к серверу щелкаем правой кнопкой мыши на иконке в трее и выбираем “Подключиться”. При успешном соединении иконка станет зеленого цвета.

С помощью любого онлайн сервиса убеждаемся, что внешний ip адрес клиента изменился и совпадает с IP адресом сервера.

Виртуальные сети, основывающиеся на технологиях VPN, применяются для различных целей и сегодня обеспечивают не только построение корпоративных сетей или защиту при пользовании общедоступными подключениями, а и выход в интернет. Кроме того, благодаря VPN доступно посещение веб-ресурсов в обход блокировкам с сохранением приватности, что в последнее время тревожит пользователей больше всего. Процесс настройки VPN для каждой системы имеет свои особенности и может выполняться в различных вариациях. В зависимости от многих факторов, в том числе целевого назначения и типа построения сети существует несколько способов реализации технологии. Мы рассмотрим, как выполняется настройка VPN на Linux, а также проясним, для чего применимо это соединение.

Как настроить VPN подключение в Linux

Методика настройки VPN подключения в Linux.

Что такое VPN и зачем это нужно

Для начала разберём, что представляет собой Virtual Private Network (виртуальная частная сеть) и как применим данный вид технологий. Благодаря VPN можно объединить любое число устройств в частную сеть, и обеспечить защищённый канал для передачи данных. Так, применяя подключение такого типа, пользователи могут сохранить приватность в интернете и не переживать о сохранности данных, в том числе при работе в сетях с общим доступом. Подсоединение к VPN позволяет избежать перехвата информации со стороны злоумышленников, поскольку маршрут обмена пакетами надёжно защищён шифрованием и аутентификацией пользователя. Данные шифруются на стороне отправителя и следуют по каналу связи в зашифрованном виде, а расшифровываются уже на устройстве получателя, при этом у обоих подразумевается общий ключ доступа. С применением VPN возможно создание надёжной сети поверх ненадёжной (как правило, интернета). Подключение пользователя выполняется не напрямую, а посредством сервера, соединённого с внутренней или внешней сетью. Это и обеспечивает приватность в интернете, поскольку в таком случае веб-ресурсам будет виден IP сервера, к которому подсоединён клиент. Сервер потребует прохождения процедуры идентификации, а также аутентификации и после того, как пользователь авторизован, возможна работа с сетью. Наиболее часто VPN используют в следующих случаях:

  • Подключение к интернету посредством VPN нередко применимо провайдерами городских сетей, а также на предприятиях. Плюсом такого метода реализации является защищённость канала связи, поскольку возможна настройка разных ступеней безопасности. Это обеспечивается настройкой одной сети поверх другой и доступом в интернет посредством двух разных сетей.
  • Внутри корпоративной сети. Объединение в одну сеть позволяет получить безопасным доступ к сети скольким угодно компьютерам сотрудников вне зависимости от их местонахождения и удаления от сервера.
  • Объединение компонентов корпоративной сети. Применяя VPN для обеспечения взаимодействия различных частей предприятия, возможна организация доступа для них к отдельным ресурсам общей сети.

Реализация технологии доступна для различных устройств, операционкой которых поддерживается опция или имеется VPN-клиент, способный осуществлять проброс портов с применением TCP/IP в виртуальную сеть. Пользователь может самостоятельно выполнить все действия по настройке. Необходимость в этом возникает даже не ради цели обхода региональных блокировок, ведь для этого можно и не настраивать VPN в компьютере (для посещения заблокированных ресурсов достаточно инсталляции стороннего приложения, установки специального расширения для браузеров или использования встроенного функционала обозревателя). Настроить VPN на ПК или ноутбуке часто требуется в случае смены провайдера для настройки доступа в интернет. Настройка VPN под Linux имеет свои специфические особенности, учитывая многогранность ОС, но принцип остаётся тот же.

Настройка серверной части на Linux

Рассмотрим создание VPN сервера PPTP на платформе Ubuntu Server. С Linux достаточно легко развернуть сервер и сделать это можно даже на слабом устройстве. Наиболее просто реализовать VPN с PPTP, поскольку для воплощения не потребуется устанавливать сертификаты на устройства клиентов, а аутентификация выполняется благодаря вводу имени и пароля. Для начала потребуется инсталлировать пакеты:

Когда пакеты для функционирования PPTP VPN установлены, следует настроить сервер. Чтобы задать диапазон адресов и выполнить прочие главные настройки, откроем файл /etc/pptpd.conf (редактируется с правами администратора):

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

Диапазон адресов для раздачи клиентам (выделяем сразу с некоторым запасом, поскольку увеличить количество, не перезапуская pptpd не получится):

Если у вас имеется несколько внешних IP, можно конкретизировать, по какому из них прослушивать интерфейсы входящих PPTP:

Параметр speed позволяет задать скорость подключений (бит/с). Сохраняем и закрываем файл. Остальные параметры можно настроить в /etc/ppp/pptpd-options:

Опция proxyarp должна быть включена, она отвечает за включение поддержки сервером Proxy ARP. Опция lock позволяет разрешить (для этого комментируем) или запретить (для этого раскомментируем) пользователю множественные подключения. Сохраняемся и закрываем файл. Настройка сервера завершена, но для создания клиентов вносим соответствующие записи в /etc/ppp/chap-secrets:

Они выглядят примерно таким образом:

username1 *password12345*

username2 10.10.12.11 password345*

username3 * password787 10.10.11.21

Для каждого пользователя прописываем его имя, пароль, удалённый и локальный IP, разделяя сведения клавишей пробел. Удалённый адрес прописываем при наличии у клиента статического IP и при условии применения исключительно такового, в ином случае предпочтительно ставить звёздочку, чтобы соединение однозначно было выполнено. Локальный адрес же указываем при выделении пользователю одного и того же IP в VPN-сети. В примере выше для клиента в первом варианте соединения осуществляются с любого внешнего IP, локальный выделится первый доступный. Во втором случае – локальный будет выделен первый доступный, но подключения выполняются только с указанного адреса. В третьем – соединиться с сетью можно с любого адреса, локальный же выделится тот, который был нами прописан. Настройка серверной части VPN PPTP завершена, перезапускаем его:

Само устройство в перезагрузке не нуждается.

Настройка VPN клиентов

Выполнить наладку клиентской части VPN сервера можно в любой ОС, мы же будем настраивать на Убунте. По большому счёту соединение будет работать и с параметрами, выставленными по умолчанию, но лучше указать тип подключения и выполнить некоторые другие настройки. Установка VPN на Ubuntu предполагает следующие действия:

  • В меню «Система» переходим в «Параметры» и выбираем «Сетевые соединения».
  • Выбираем тип соединения «Туннельный протокол точка-точка PPTP».
  • Присваиваем подключению наименование или оставляем, как было предоставлено.
  • В поле «Шлюз» вбиваем внешний IP сервера, прописываем имя и пароль (в правой части поля для пароля присутствует опция его сохранения для этого юзера).
  • Жмём «Дополнительно» и в новом окне ставим флажок напротив пункта «Использовать шифрование MPPE» (это обязательное условие для связи с сервером).
  • Теперь позакрываем окна и подключимся к нашему серверу.

Настройка сети VPN для Linux завершена, и устройства могут быть соединены локально, но для входа в интернет через VPN потребуется выполнить ещё некоторые настройки.

Настройка доступа в интернет через VPN

Когда с локальной сетью разобрались, начинаем настраивать соединение с интернетом. Для осуществления подключения в терминале прописываем такие команды:

iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.1/24 -j MASQUERADE

iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT

iptables -A FORWARD -d 10.0.0.1/24 -j ACCEPT

Под 10.0.0.1/24 подразумевается локальный IP сервера и маска сети. Сохраняемся:

и подтверждаем новые параметры:

Теперь на Linux есть возможность соединения с сетью интернет посредством VPN, а также доступны и остальные преимущества работы с виртуальной сетью. Посещаемые ресурсы увидят внешний адрес сервера, что обусловит приватность, а соединение будет надёжно защищено от хакерских атак и обеспечит безопасность передачи данных.

Аббревиатура VPN обозначает виртуальную частную сеть. Одной из программ VPN с открытым исходным кодом является OpenVPN. OpenVPN может работать как VPN-сервер Linux. На базовом уровне VPN создаёт защищённое соединение “точка-точка”. Хороший VPN для Linux – один из лучших способов защиты в Интернете или открытой сети. В этом руководстве мы покажем вам, как настроить собственный VPN-сервер Linux с помощью OpenVPN. Сделайте свой VPS безопасным!

Прокачайте ваш проект, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.

Зачем использовать VPN-сервер Linux?

VPN имеет определённые преимущества. Некоторые из них выделены ниже:

На более высоком уровне, с помощью шифрования, VPN делает ваши транзакции безопасными.

Рассказав о преимуществах VPN, мы логически подходим к части, где покажем, как происходит установка и настройка OpenVPN в Linux. Мы расскажем о настройке VPN-сервера Linux через OpenVPN и о том, как подключить его к Windows, Android и другим устройствам. Если же на этом этапе вы хотите узнать больше о протоколе OpenVPN, мы предлагаем вам прочитать обзор OpenVPN.

Предусловия:

  1. У вас должны быть права доступа root или sudo
  2. OpenVPN не должен быть предварительно установлен
  3. Брандмауэр должен разрешать трафик TCP через порт 943 и трафик UDP через порт 1194. Мы рекомендуем использовать UFW. Ознакомьтесь с нашим руководством по UFW, чтобы узнать всё необходимое

Настройка VPN-сервера Linux с Сервером Доступа OpenVPN

Во-первых, давайте обновим систему. Для CentOS:

Для Ubuntu и Debian обновите индексы, используя:

Для установки OpenVPN вам потребуется пакет net-tools. Установите его, если он не был предварительно установлен. Пакет net-tools содержит ifcfg, необходимый для установки сервера OpenVPN.

Вы можете установить его для CentOS, используя:

Для Ubuntu и Debian используйте следующую команду:

Вы можете скачать клиент OpenVPN для вашего дистрибутива с веб-сайта OpenVPN. Получить ссылку можно здесь и использовать её вместе с командой curl. Пример команды curl для Ubuntu показан ниже:

Команда curl для CentOS:

Здесь вы можете добавить URL к вашему дистрибутиву. Убедитесь, что загружена правильная установка, напечатав контрольную сумму файла SHA256. Для этого используйте следующую команду:

Эта команда распечатает контрольную сумму:

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

Для установки в CentOS используйте:

Аналогично, для установки в Ubuntu и Debian введите следующую команду в командной строке:

Установка OpenVPN займёт некоторое время. После завершения установки вы увидите интерфейс Администратора и детали интерфейса Клиента. Пользователь openvpn будет создан по умолчанию во время установки. Вы можете задать пароль для этого пользователя, используя:

Вы увидите следующий экран:

Имя пользователя, как упоминалось ранее, openvpn, а пароль – тот, который вы только что установили для этого пользователя. Как только вы войдёте в систему, вы увидите страницу с условиями. Прочитайте их и нажмите кнопку Agree (Cогласен), чтобы продолжить. На следующей странице, вы найдёте информацию о настройках и состоянии сервера.

Настройки по умолчанию вполне адекватны и позволяют MacOS, Linux, Windows, Android и iOS подключиться к VPN-серверу Linux. Если вы хотите изменить какие-либо настройки, обязательно нажмите Apply (Применить) и Update Running Server (Обновить запущенный сервер), чтобы активировать изменения.

Это завершает установку по умолчанию. Далее мы настроим туннель OpenVPN.

Настройка VPN-сервера Linux с OpenVPN для Туннелирования

Включите переадресацию IP в вашем ядре с помощью следующей команды:

Это активирует переадресацию трафика через IPv4. Чтобы применить эти изменения, используйте следующую команду:

OpenVPN не поддерживает одновременные туннели через IPv6 и IPv4, поэтому вы можете отключить IPv6, используя:

Чтобы отключить IPv6 вручную, добавьте следующие параметры, которые будут установлены при загрузке. Эти параметры должны быть добавлены в файл 99-sysctl.conf, расположенный в /etc/sysctl.d/. Просто используйте команду cd для доступа к папке и предпочитаемый текстовый редактор для редактирования файла. Не забудьте сохранить изменения!

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

Далее, в файле hosts, расположенном в /etc/ прокомментируйте строку разрешения IPv6, как показано ниже:

Таким образом, мы отключили IPv6. Затем снова войдите в систему по URL сервера Администратора и перейдите в настройки VPN.

Снимок Вкладки Настроек VPN в OpenVPN

В разделе Маршрутизация (Routing), напротив опции “Должны ли VPN-клиенты иметь доступ к частным подсетям (непубличным сетям на стороне сервера)?” должно быть указано “Нет”.

Пример Настроек Маршрутизации в OpenVPN

Напротив опции “Должен ли интернет-трафик клиента маршрутизироваться через VPN?” должно быть указано “Да”.

Пример Настроек Трафика Веб-Клиента в OpenVPN

Чтобы избежать утечки DNS, измените настройки распознавателя DNS. Выберите “Клиенты должны использовать те же DNS-сервера, что и Access Server хост.”

Пример Настроек DNS в OpenVPN

Сохраните эти настройки и не забудьте нажать на Update Running Server (Обновить запущенный сервер). Вы можете перезапустить сервер OpenVPN, используя вкладку Status (Состояние) в консоли администратора. Отсюда вы можете остановить сервер, а затем запустить его снова.

На этом наша настройка сервера OpenVPN завершена. Далее мы можем проверить клиентские установки.

Как Подключить VPN-сервер Linux к Другим Устройствам с OpenVPN

Теперь, когда ваш сервер запущен и работает, мы можем подключить к нему несколько устройств! Мы рассмотрим наиболее популярные варианты операционной системы:

Установка и Подключение Клиента OpenVPN на Windows

Откройте URL-адрес клиента OpenVPN, вы сможете показывать ссылки на клиентские загрузки на разных операционных системах.

Выберите версию Windows и запустите установку.

После завершения установки вам будет предложено ввести имя пользователя и пароль OpenVPN. IP-адрес сервера будет заполнен автоматически.

Вы можете использовать значок OpenVPN на панели задач Windows для отключения, повторного подключения и просмотра состояния подключения.

Установка и Подключение Клиента OpenVPN на MacOS

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

Следуйте стандартной процедуре установки приложения MacOS.

Дважды щёлкните по иконке этого установщика и нажмите “Открыть”, чтобы запустить установку.

После завершения установки вы увидите иконку OpenVPN на панели задач macOS. Вы можете щёлкнуть правой клавишей мыши по иконке, чтобы увидеть доступные опции и подключиться к OpenVPN.

После того, как вы выберите опцию “Подключиться к”, вы увидите всплывающее окно с запросом имени пользователя и пароля OpenVPN. Здесь вы должны ввести учётные данные и нажать “Подключиться”, чтобы установить соединение с VPN-сервером Linux.

Установка и Подключение Клиента OpenVPN на Linux

Установка клиента на Linux немного отличается. Загрузите и установите клиентское программное обеспечение OpenVPN в CentOS, используя следующую команду:

Аналогично, вы можете установить клиентское программное обеспечение OpenVPN на Debian или Ubuntu, используя следующую команду:

Откройте клиентский интерфейс OpenVPN и загрузите соответствующий профиль для вашей ОС. Кроме того, вы можете использовать команду wget или curl и указать URL-адрес для загрузки программного обеспечения.

Скопируйте загруженный профиль в папку /etc/openvpn и переименуйте его в client.conf. Запустите сервис туннелей OpenVPN, где вам будет предложено ввести имя пользователя и пароль. Начните операцию с помощью:

Вы можете использовать ipconfig или ip addr, чтобы просмотреть сетевые подключения. Как только интерфейс VPN станет доступным, вы увидите, что интерфейс tun0 добавлен в существующий список, показанный в выводе.

Установка и Подключение Клиента OpenVPN на Android

Сначала перейдите в магазин Google Play и найдите OpenVPN Connect. Установите приложение OpenVPN Connect.

Открыв, вы увидите три параметра: Частный туннель (Private Tunnel), Сервер доступа (Access Server) и Профиль OVPN (OVPN Profile).

Выберите Access Server и заполните все данные вручную:

  • Title – укажите предпочитаемое имя подключения.
  • Access Server Hostname – IP-адрес вашего VPN-сервера Linux
  • Port – порт 934 вашего VPN-сервера Linux
  • Username – имя пользователя, установленное на вашем сервере (openvpn по умолчанию)
  • Password – пароль, который вы задали в консоли при настройке VPN-сервера Linux в терминальной среде

Или же вы можете импортировать файл .ovpn для профиля. Вы можете получить профиль подключения из клиентского интерфейса.

Установка и Подключение Клиента OpenVPN на iOS

Как и в случае с Android, вы можете установить программное обеспечение OpenVPN из App Store.

Завершите установку и откройте только что установленное приложение. Оно попросит вас заполнить данные профиля или загрузить файл профиля, как и версия Android.

Как только они будут добавлены, вы можете начать использовать OpenVPN на вашем iPhone или iPad.

Настройки Сжатия VPN-сервера Linux

Если вы подключены к VPN, а Интернет не работает, вы можете проверить журналы OpenVPN по адресу /var/log/openvpnas.log в VPS. Если вы обнаружите записи, аналогичные приведённым ниже, вы, скорее всего, столкнулись с проблемой сжатия:

Чтобы решить эту проблему, вы можете отключить сжатие. Это можно сделать из интерфейса Администратора. Откройте интерфейс Администратора и нажмите на опцию Advanced VPN.

Перейдите к настройкам сжатия по умолчанию (Default Compression Settings). Здесь отключите опцию Поддержка сжатия на клиентских VPN-соединениях (Support compression on client VPN connection).

Примените изменения и нажмите на опцию Update Running Server. Проблема должна исчезнуть.

Добавление Пользователей на VPN-сервер Linux c OpenVPN

Бесплатный клиент OpenVPN поддерживает двух пользователей. Чтобы создать больше пользователей, вам придётся выбрать любой из платных планов. Вы можете добавить дополнительных пользователей из интерфейса администратора. Перейдите во вкладку “Управление пользователями” и нажмите ссылку “Права пользователя”.

Введите новое имя пользователя, как показано ниже:

Пример Настроек Пользователя в OpenVPN

Снимок Вкладки "Дополнительные Параметры" в OpenVPN

Сохраните эти настройки и нажмите на “Обновить запущенный сервер” (Update Running Server).

С OpenVPN, вы также можете настроить профили автоматического входа. Как результат весь ваш нелокальный трафик будет маршрутизироваться через VPN автоматически. Если вы хотите вручную включить или отключить VPN, вы можете использовать закрытые профили Пользователя или Сервера.

Чтобы настроить автоматический вход в систему, откройте интерфейс Администратора и выберите ссылку “Права пользователя” (User Permissions). Здесь установите флажок напротив “Разрешить автоматический вход” (Allow Auto-login).

Как Проверить Linux VPN-сервер с Запущенным OpenVPN

Чтобы проверить, работает ли OpenVPN должным образом, подключите VPN-клиент и проверьте свой IP-адрес. Вы можете воспользоваться сайтом проверки утечки DNS в браузере. Он должен показать вам IPv4-адрес сервера OpenVPN.

Далее вы можете выбрать Расширенный тест. В результате вы должны получить IP-адреса для DNS-резольвера, который вы выбрали для своего клиентского устройства.

В Завершение

В этом руководстве вы узнали, как настроить VPN-сервер Linux с OpenVPN и как подключить его с помощью различных клиентов, таких как Windows, Linux, Android, iPhone или iPad и MacOS.

Теперь, когда вы знаете главные нюансы, вы можете безопасно пользоваться Интернетом с помощью своего нового Linux VPN-сервера. Чтобы узнать больше, прочитайте официальное руководство OpenVPN, которое можно найти в интерфейсе администратора. На этом мы завершаем вашу первую конфигурацию OpenVPN в режиме server-client. Наслаждайтесь безопасным Интернетом с помощью OpenVPN!

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Если вы выходите в интернет со своего 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-провайдеры предоставляют определённые ресурсы процессора, памяти, хранилища информации и трафика на основе помесячной оплаты.
  • Обычно облачные сервера поставляются с базовыми сборками ОС, которые пользователь может настраивать.
  • Чаще всего это — Linux-сервера.
  • VPS идеально подходят для разворачивания собственного 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 есть подробности о том, как подключаться к созданным с его помощью 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% программного стека компании.

Кроме того, в отличие от других VPN, Chameleon справляется даже с особо агрессивными провайдерами. Если подобная возможность интересует вас сильнее всего, вполне возможно, что лучшего VPN, чем VyprVPN вам не найти.

▍Итоги

По какой бы причине вы ни занимались поисками VPN-системы для Linux, надеемся, наш обзор дал вам пищу для размышлений. Если вы хотите углубиться в поиски подходящего вам VPN — вот обзор лучших VPN-сервисов 2017-го года, а вот — полезный ресурс для тех, кто занимается подбором VPN.

Настраиваем 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 символов.

l2tp-vpn-server-debian-ubuntu-001.jpg

После внесения указанных настроек перезапустим службу:

В 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-сервера:

l2tp-vpn-server-debian-ubuntu-002.jpg

Заключительным этапом настройки будет создание учетных записей для удаленных клиентов, для этого откроем файл /etc/ppp/chap-secrets и внесем следующую строку:

Первым указываем логин, затем имя службы, оно должно совпадать с тем, которое мы указали в опции name в xl2tpd.conf, после него идет пароль и IP-адрес клиента, символ * обозначает что можно присвоить любой адрес из выбранного диапазона. Если же требуется выдать клиенту постоянный адрес, то его следует указать явно, и он не должен входить в динамический диапазон указанный в ip range, например:

Для доступа к L2TP-серверу следует разрешить в брандмауэре входящие подключения к портам 500 UDP и 4500 UDP, подключение к 1701 UDP, вопреки распространенному заблуждению, разрешать не следует.

Читайте также: