Как настроить сервер OpenVPN в Debian 8
OpenVPN - это VPN-приложение с открытым исходным кодом, которое позволяет вам безопасно создавать частную сеть и подключаться к ней через общедоступный Интернет. Короче говоря, это позволяет конечному пользователю маскировать соединения и более безопасно перемещаться по ненадежной сети.
Шаг 1 - Установите OpenVPN
Шаг 2 - Настройка OpenVPN
Пример файла конфигурации VPN-сервера необходимо извлечь, /etc/openvpn
чтобы мы могли включить его в нашу настройку. Это можно сделать одной командой:
После распаковки откройте файл конфигурации сервера, используя текстовый редактор.
В этом файле нам нужно будет сделать четыре изменения (каждое будет объяснено подробно):
- Безопасный сервер с более высоким уровнем шифрования
- Переадресация интернет-трафика на место назначения
- Запрет утечки DNS-запросов за пределы VPN-соединения
- Настройка разрешений
Во-первых, мы удвоим длину ключа RSA, используемую при генерации ключей сервера и клиента. После основного блока комментариев и нескольких фрагментов найдите строку, которая гласит:
По умолчанию OpenVPN запускается от имени пользователя root и, таким образом, имеет полный root-доступ к системе. Вместо этого мы ограничим OpenVPN для пользователя nobody и группы nogroup . Это непривилегированный пользователь без возможности входа в систему по умолчанию, часто зарезервированный для запуска ненадежных приложений, таких как веб-серверы.
Шаг 3 - Включить пересылку пакетов
В этом разделе мы расскажем ядру сервера о направлении трафика от клиентских сервисов в Интернет. В противном случае трафик остановится на сервере.
Сохраните изменения и выйдите.
Шаг 4 - Установите и настройте ufw
UFW - это интерфейс для IPTables. Нам нужно только сделать несколько правил и изменений в конфигурации.
Далее мы добавим дополнительные правила UFW для трансляции сетевых адресов и маскирования IP-адресов подключенных клиентов.
Затем добавьте область красного цвета для ПРАВИЛ ОТКРЫТИЯ :
Шаг 5 - Настройте и создайте центр сертификации
OpenVPN использует сертификаты для шифрования трафика.
В этом разделе мы настроим наш собственный центр сертификации (ЦС) в два этапа: (1) установочные переменные и (2) создание ЦС.
OpenVPN поддерживает двунаправленную аутентификацию на основе сертификатов, что означает, что клиент должен аутентифицировать сертификат сервера, а сервер должен аутентифицировать сертификат клиента до установления взаимного доверия. Мы будем использовать скрипты Easy RSA для этого.
Шаг 6 - Генерация сертификата и ключа для сервера
В этом разделе мы настроим и запустим наш сервер OpenVPN.
Во-первых, все еще работая с /etc/openvpn/easy-rsa
, создайте свой ключ с именем сервера. Это было указано ранее, как KEY_NAME
в вашем файле конфигурации. По умолчанию для этого урока server
.
Шаг 7 - Переместите сертификаты и ключи сервера
Теперь мы скопируем сертификат и ключ /etc/openvpn
, так как OpenVPN будет искать в этом каталоге CA, сертификат и ключ сервера.
Шаг 8 - Генерация сертификатов и ключей для клиентов
До сих пор мы установили и настроили сервер OpenVPN, создали Центр сертификации и создали собственный сертификат и ключ сервера. На этом этапе мы используем CA сервера для генерации сертификатов и ключей для каждого клиентского устройства, которое будет подключаться к VPN.
Ключ и Сертификат
Для каждого клиента, подключающегося к VPN, идеально иметь собственный уникальный сертификат и ключ. Это предпочтительно для генерации одного общего сертификата и ключа для использования среди всех клиентских устройств.
Чтобы создать отдельные учетные данные для аутентификации для каждого устройства, которое вы намереваетесь подключить к VPN,
вы должны выполнить этот шаг для каждого устройства, но измените приведенное client1
ниже имя на другое,
например, client2
или iphone2
. При наличии отдельных учетных данных для каждого устройства их можно впоследствии
деактивировать на сервере индивидуально, если это необходимо. Остальные примеры в этом руководстве будут использоваться
в client1
качестве имени нашего примера клиентского устройства.
Как и в случае с ключом сервера, теперь мы создаем его для нашего client1
примера. Вы все еще должны работать вне /etc/openvpn/easy-rsa
.
Передача сертификатов и ключей на клиентские устройства
Вспомните из вышеприведенных шагов, что мы создали клиентские сертификаты и ключи и что они хранятся на сервере OpenVPN в /etc/openvpn/easy-rsa/keys
каталоге.
Для каждого клиента нам нужно перенести файлы сертификата, ключа и шаблона клиента в папку на локальном компьютере или другом клиентском устройстве.
В этом примере нашему client1
устройству требуются его сертификат и ключ, расположенный на сервере в:
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
ca.crt
И client.ovpn
файлы одинаковы для всех клиентов. Скачайте также эти два файла; обратите внимание, что ca.crt файл находится в другом каталоге, чем другие.
/etc/openvpn/easy-rsa/keys/client.ovpn
/etc/openvpn/ca.crt
Хотя точные приложения, используемые для выполнения этой передачи, будут зависеть от вашего выбора и операционной системы устройства, вы хотите, чтобы приложение использовало SFTP (протокол передачи файлов SSH) или SCP (Secure Copy) на серверной части. При этом файлы аутентификации VPN вашего клиента будут передаваться через зашифрованное соединение.
Вот пример команды SCP, использующей наш client1
пример. Он помещает файл client1.key
в каталог загрузок на локальном компьютере.
В конце этого раздела убедитесь, что у вас есть эти четыре файла на вашем клиентском устройстве:
- client1.crt
- client1.key
- client.ovpn
- ca.crt
Шаг 9 - Создание унифицированного профиля OpenVPN для клиентских устройств
Существует несколько способов управления клиентскими файлами, но самый простой - использовать унифицированный профиль.
Это создается путем изменения client.ovpn
файла шаблона, чтобы включить центр сертификации сервера, а также сертификат клиента и его ключ.
После объединения client.ovpn
в клиентское приложение OpenVPN необходимо импортировать только один профиль.
В приведенной ниже области необходимо закомментировать три строки, чтобы мы могли
вместо этого включить сертификат и ключ непосредственно в client.ovpn
файл. Это должно выглядеть следующим образом:
Теперь у нас есть унифицированный профиль клиента. Используя scp, вы можете скопировать client.ovpn
файл в вашу вторую систему.
Шаг 10 - Установка клиентского профиля
Различные платформы имеют более удобные приложения для подключения к этому серверу OpenVPN.
Заключение
Теперь у вас есть работающий сервер OpenVPN и файл клиента.