Всем привет, последнее время все сложней чувствовать себя комфортно в интернете, большинство полезных ресурсов недоступны рядовому пользователю. В эти темные времена — VPN единственное стабильно работающие решение для обхода любых ограничений в сети.
OpenVPN одна из самых популярных программ для организации VPN туннеля, а docker-compose отличный инструмент для установки и настройки программ с помощью одного docker-compose.yml файла.
В статье я расскажу как быстро и просто настроить OpenVPN сервер на собственном VPS используя docker-compose. За основу возьмем образ kylemanna/docker-openvpn
.
Заинтересовавшихся прошу под кат.
Установка OpenVPN сервера
Итак, для работы нам понадобятся: собственный VPS сервер, установленный docker и docker-compose.
Создаем новый docker-compose.yml
touch docker-compose.yml
Копируем следующие строчки в созданный docker-compose.yml
version: '2'
services:
openvpn:
cap_add:
- NET_ADMIN
image: kylemanna/openvpn
container_name: openvpn
ports:
- "1194:1194/udp"
restart: always
volumes:
- {path_to_save_openvpn_config}:/etc/openvpn
Меняем {path_to_save_openvpn_config}
на путь где OpenVPN будет хранить свои настройки, у меня это /home/administrator/openvpn/
.
Docker-compose файл готов. Запустим следующие команды для инициализации OpenVPN и создания сертификата сервера. Замените {vpn_server_address}
на адрес вашего сервера,
это может быть как IP адрес (10.10.10.8), так и доменное имя (vpn.server.com).
docker-compose run --rm openvpn ovpn_genconfig -u udp://{vpn_server_address}
docker-compose run --rm openvpn ovpn_initpki
Во время генерации сертификата введите контрольную фразу (Enter PEM pass phrase) и имя сертификата (Common Name).
Советую не забывать контрольную фразу, т.к. она понадобится на следующем шаге при создании клиентских сертификатов.
Генерирование сертификата обычно занимает некоторое время, так что откиньтесь на спинку стула и расслабьтесь.
Когда сертификат готов, можно запускать наш OpenVPN сервер.
docker-compose up -d openvpn
Создание клиентских сертификатов
Чтобы соединиться с вашим OpenVPN сервером понадобится клиентский сертификат.
Для создания клиентского сертификата используем следующую команду:
docker-compose run --rm openvpn easyrsa build-client-full {client_name} nopass
Не забываем заменить {client_name}
на имя клиента, например my_phone.
Во время создания сертификата вас попросят ввести контрольную фразу (Enter passpharse) из предыдущего шага.
Если вы хотите максимальной безопасности, рекомендую убрать опцию nopass
из предыдущей команды, чтобы назначить клиентскому сертификату контрольную фразу.
Когда клиентский сертификат сгенерирован давайте экспортируем его в .ovpn
файл и отправим клиенту
docker-compose run --rm openvpn ovpn_getclient {client_name} > certificate.ovpn
На этом все, надеюсь кому-то это статья поможет вновь ощутить свободу в интернете.
Дополнительную информацию вы можете найти на официальном сайте образа kylemanna/docker-openvpn.