Найти в Дзене
Алексей Шишкин

Поднимаем свой VPN-server с протоколом IKEv2 с помощью docker

Оглавление

Это пошаговая инструкция, которая требует минимального понимания, что происходит, просто по шагам выполняйте команды в консоли и скорее всего у вас все получится.

Мы пытаемся обойти блокировки в России или другой стране, или пытаемся защитить личную информацию в общественных сетях.

С помощью докера установим VPN-server, а также установим aapanel для просмотра загруженности сервера.

Я арендовал сервер в Германии, вы можете где считаете нужным, здесь вам придется разобраться самостоятельно. Операционная система Ubuntu 20.04

Подключаемся по SSH, тут, я думаю, вы сами разберетесь.

Приведу установку от сюда

Устанавливаем докер

sudo apt update

sudo apt install apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

sudo apt update

apt-cache policy docker-ce

sudo apt install docker-ce

Проверяем статус докера

sudo systemctl status docker

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

Output
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Установка ВПН-сервера

Нужно создать файл /root/vpn.env

Информация от сюда и от сюда

cd /root

touch vpn.env

nano vpn.env

вставляем следующий текст

VPN_IPSEC_PSK=sjf3hjhsdfshbgtYTg4VdsdshGytrDffffshbgtYTg4Vdsdsh
VPN_USER=user1
VPN_PASSWORD=password45word65

ctrl+x и сохранить файл

где

VPN_IPSEC_PSK -секретная фраза IPsec, должна состоять из 20 или более символов.
VPN_USER и VPN_PASSWORD - логин и пароль от VPN сервера.

Запускаем наш докер контенер с нашим окружением:

docker run \
--name ipsec-vpn-server \
--env-file ./vpn.env \
--restart=always \
-v ikev2-vpn-data:/etc/ipsec.d \
-v /lib/modules:/lib/modules:ro \
-p 500:500/udp \
-p 4500:4500/udp \
-d --privileged \
hwdsl2/ipsec-vpn-server

Проверяем

docker ps -a

Должен быть вывод что-то вроде

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f32ea96490f hwdsl2/ipsec-vpn-server "/opt/src/run.sh" 8 seconds ago Up 7 seconds 0.0.0.0:500->500/udp, 0.0.0.0:4500->4500/udp ipsec-vpn-server

Теперь по адресу

/var/lib/docker/volumes/ikev2-vpn-data/_data

лежат файлы, среди которых

vpnclient.p12 (for Windows & Linux)

vpnclient.sswan (for Android)

vpnclient.mobileconfig (for iOS & macOS)

необходимые для vpn-клиента. Ваша задача их скачать, можете использовать ftp-клиент (я использовал filezilla), можете через админка провайдера, как вам угодно. Инструкция для filezilla

Добавляем и удаляем пользователей

Вы можете управлять клиентами IKEv2 с помощью вспомогательного скрипта.

# Добавить нового клиента (используя параметры по умолчанию)
docker exec -it ipsec-vpn-server ikev2.sh --addclient [client name]
# Экспорт конфигурации для существующего клиента
docker exec -it ipsec-vpn-server ikev2.sh --exportclient [client name]
# Список существующих клиентов
docker exec -it ipsec-vpn-server ikev2.sh --listclients
# Посмотреть инструкцию
docker exec -it ipsec-vpn-server ikev2.sh -h

Я вас поздравляю!

Мы подняли впн-сервер и скачали файлы необходимые для впн-клиента вашего устройства.Теперь сами погуглите, как подружить ваше устройство и эти файлыПредложу варианты как подружитьMacOS
Запускаете файл .mobileconfig, затем заходите системные настройки -> профили, там устанавливаете появившийся профиль. Затем системные настройки -> сеть, там находите появившееся vpn-подключение и нажимаете кнопку подключить.Пример на видео


IOS


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

Android

Инструкция здесь

Windows

Здесь

Linux


Если вы сидите на линукс, я вообще не понимаю, почему вы читаете такую профанскую статью

ВСЁ!!!

Установка aapanel (необязательно)

Зачем это нужно? Aapanel — это оболочка для управления веб-сервером, нам она нужна для файлового менеджера и для оценки нагруженности сервера.

Инстукция отсюда

docker run -d -p 8886:8888 -p 443:443 -p 80:80 -p 889:888 --restart=always -v ~/website_data:/www/wwwroot -v ~/mysql_data:/www/server/data -v ~/vhost:/www/server/panel/vhost -v /var/lib/docker/volumes/ikev2-vpn-data/_data:/ikev2-vpn-data aapanel/aapanel:lib

Ваша панель будет доступна по адресу

http://youripaddress:8886/aapanel

username:aapanel
password:aapanel123

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

Все настройки стандартные, хотя бы смените пароль settings->Panel password

Можете посмотреть видео-инстукцию по настройке, вам там интересно только про безопасность.

Что в этой панели нам надо?

В меню Monitor смотрим мониторинг сервера

В меню Files в каталоге /ikev2-vpn-data лежат наши файлы конфигурации vpn

Оригинал статьи https://ashishkin.ru/podnimaem-svoj-vpn-server-s-pomoshhyu-docker.html

Читать там удобнее

Успехов!