Связаться по:
[email protected]

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

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

Rate this post

Начальная подготовка

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

Услуги по настройке vpn сервера, [email protected]

В первую очередь нужно установить необходимые нам пакеты:

Далее необходимо скопировать шаблонную директорию easy-rsa в домашнюю директорию:

Для настройки переменных центра сертификации нам с вами необходимо отредактировать файл ~/openvpn-ca/vars:

Данным переменным можно задать желаемые значения или же просто оставить их как есть, главное – не оставлять пустыми.
Также нужно отредактировать значение KEY_NAME, которое заполняет поле субъекта сертификатов:
export KEY_NAME=»server» Теперь можно использовать заданные в файле vars переменные и утилиты easy-rsa для создания центра сертификации. Далее, находясь в директории центра сертификации,
нужно использовать команду source к файлу vars:

Должен появиться следующий вывод:

Удалить все предыдущие созданные ключи можно следующей командой:

Теперь мы можем создать корневой центр сертификации командой:

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

Вывод опять будет содержать значения по умолчанию, переданные этой команде (server), а также значения из файла vars.
Генерация ключа для клиента:

Генерация ключа протокола Диффи-Хеллмана, используемого при обмене ключами:

Далее нужно сгенерировать подпись HMAC для усиления способности сервера проверять целостность TSL:

После этого можно приступать к настройке непосредственно сервера OpenVPN.

Объединение серверов OpenVPN, слушающих разные порты

Для реализации повышенной доступности нашего VPN-сервера было решено объединить в одной виртуальной подсети несколько серверов, каждый из которых прослушивал бы свой порт. На данный момент из-за отсутствия многопоточности у OpenVPN действует правило «один демон – один порт», поэтому это единственная возможность связать клиентов, если им приходится использовать для подключения к серверу различные порты. В качестве используемых портов были выбраны 53 UDP, 53 TCP и 443 TCP. Соответственно, для каждого из запущенных демонов OpenVPN необходим отдельный виртуальный TUN/TAP-адаптер. Использование VPN второго уровня позволяет объединить их в мост, таким образом объединив клиентов различных серверов OpenVPN в одну подсеть. Ниже приведены опции из конфигурационного файла одного из трех серверов:

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

Также необходимо обратить внимание на процесс создания конфигурационных файлов для клиентов нашей VPN. Все настройки OpenVPN могут быть переданы как ключи запуска демона, однако для удобства пользователя OpenVPN поддерживает использование файлов с расширением ovpn
и conf, в которые могут быть записаны списком желаемые настройки. Также в такой файл можно записать данные пользовательского сертификата. Особенным для используемой в данной конфигурации
является способ записи в конфигурационный файл данных об адресе VPN-сервера:

Данная группа параметров позволяет клиенту автоматически предпринимать попытки подключения к любому из перечисленных серверов. В нашем случае это один и тот же адрес (с доменным именем my.own.vpn), но различные номера портов на нем, соответствующие различным демонам OpenVPN. В зависимости от настроек следующий в очереди попыток подключения сервер может быть выбран из списка последовательно или случайно. После формирования конфигурационные файлы, содержащие данные сертификата, следует доставлять клиентам по защищенным каналам – например, посредством sftp:

Настройка сетевых интерфейсов

Для конфигурации сетевых интерфейсов, используемых серверами OpenVPN, и объединения их в мост необходимо добавить в файл /etc/network/interfaces следующие строки:

Такие настройки автоматически будут поднимать соответствующие виртуальные сетевые интерфейсы при включении машины, при этом они сразу же будут объединены в мост.

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

У OpenVPN есть встроенный механизм распределения IP-адресов внутри VPN, однако работает он только с клиентами, подключившимися к серверу посредством клиентского ПО. Следовательно, для корректной работы устройств, подключившихся через шлюз, необходимо использовать внутри
VPN отдельный DHCP-сервер. Для настройки ISC DHCP-сервера на мостовом сетевом
интерфейсе следует в файле /etc/default/isc-dhcp-server записать имя такового интерфейса, которое было задано в предыдущем пункте:

При задании опций в конфигурационном файле нас особенно интересуют следующие опции:

Данные опции, по сути, являются объявлениями переменных, предназначен

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

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

Проброс трафика из VPN в интернет будет производиться посредством iptables. В файл /etc/ufw/before.rules необходимо добавить следующие правила для активации NAT:

Настройка аппаратного шлюза

В данной статье не рассматривается алгоритм установки OpenWRT на роутер и настройки доступа к нему посредством WEB GUI и SSH извне. Освещаются основные настройки, касающиеся именно использования в качестве шлюза для доступа в VPN. Так как локальный DHCP-сервер роутера необходимо будет отключить, администрирование производится из подсети, к которой роутер подключен WAN-портом. После каждого изменения настроек, произведенного посредством веб-интерфейса роутера, необходимо сохранить их нажатием кнопки Save&Apply в нижнем правом углу страницы.
В первую очередь установим соответствующий пакет:

Теперь нужно настроить роутер таким образом, чтобы интерфейсы его LAN были объединены с виртуальным сетевым интерфейсом, образуя коммутатор LAN-VPN. Однако для этого необходимо отключить межсетевой экран и DHCP-сервер роутера. Для отключения DHCP-сервера роутера и его межсетевого экрана нужно перейти в меню Network → Interfaces и выб рать вкладку LAN (см. рис. 1).

установка vpn сервера
Внизу страницы нужно поставить галку в чекбоксе Ignore interface (см. рис. 2).

настройка vpn
В верхнем меню выберите пункт System → Startup и переведите состояние службы firewall в Disabled (см .рис. 3).

установка и настройка впн
После этого необходимо зайти в консоль роутера – например, посредством SSH. В файле /etc/config/network нужно проверить, что в декларации сетевого интерфейса присутствует следующая строчка:

Также в этом файле необходимо добавить декларацию виртуального сетевого интерфейса, используемого OpenVPN, для корректной его работы с DHCP:

В файле /etc/config/openvpn в секции custom_config установите значение параметра enabled, равное 1, опции config – равное полному пути к конфигурационному файлу:

Установите скрипт запуска OpenVPN в автозапуск следующей командой:

После настройки используемого ПО согласно приведенной конфигурации все поставленные требования удовлетворены. При подключении удаленных клиентов к созданному «тройному» VPN-серверу они попадают в одну подсеть с видеооборудованием, позволяя беспрепятственно обмениваться с ним данными.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.