OpenVPN сервер через Docker
UPD 2023.12.15
Статья морально устарела. Сейчас модно использовать Tailscale (база – wireguard), либо хотя бы сам WireGuard. Еще можете погуглить Outline.
Кстати, напишите в ЛС, если каким-то образом попали сюда. Не знаю, кто в 2023 мог сюда попасть и очень интересно как именно.
Здесь написано о запуске через docker compose
. Я пишу об установке в качестве сервиса systemd
Если сервис "упадет" (Будь то убийство процесса или краш), он перезапустится через 10 секунд
Создаем и запускаем сервис OpenVPN
Создаем volume с названием ovpn-data-NAME, где NAME - название контейнера, которое во всех последующих действиях должно быть одинаковым
OVPN_DATA="ovpn-data-example" docker volume create --name $OVPN_DATA
Здесь название это example
. Дальше оно и будет использоваться
Генерируем данные (Замените HOST_OR_IP на адрес сервера)
При вводе 2 команды нужно будет дважды ввести пароль, который стоит запомнить. Он еще потребуется при завершении выполнения команды. Название се ртификата можно ввести любое или просто .
docker run --rm -v $OVPN_DATA:/etc/openvpn kylemanna/openvpn ovpn_genconfig -u udp://HOST_OR_IP docker run --rm -v $OVPN_DATA:/etc/openvpn -it kylemanna/openvpn ovpn_initpki
Скачиваем docker-openvpn@.service в /etc/systemd/system
curl -L https://raw.githubusercontent.com/kylemanna/docker-openvpn/master/init/docker-openvpn%40.service | sudo tee /etc/systemd/system/docker-openvpn@.service
Запускаем:
systemctl enable --now docker-openvpn@example.service
Статус сервиса : systemctl status docker-openvpn@example.service
Лог сервиса : journalctl --unit docker-openvpn@example.service
Остановка : systemctl stop docker-openvpn@example.service
Создаем клиентские конфиги
Чтобы подключиться к VPN потребуется конфигурация. Заменяем CLIENTNAME в первой строчке
CLIENTNAME=home_pc docker run --rm -v $OVPN_DATA:/etc/openvpn -it kylemanna/openvpn easyrsa build-client-full $CLIENTNAME nopass docker run --rm -v $OVPN_DATA:/etc/openvpn kylemanna/openvpn ovpn_getclient $CLIENTNAME > $CLIENTNAME.ovpn
На Windows ее нужно поместить в C:\Program Files\OpenVPN\config