Main > Abyss | Linux | Servers > Запуск сервера L2TP IPSec VPN в Docker контейнере

Запуск сервера L2TP IPSec VPN в Docker контейнере

27.11.2019 0 comments » Views: 5,075

VPN в Docker

Иногда нужно получить доступ к ресурсам, доступ к которым ограничен провайдером или системным администратором. Например, если владелец сайта в качестве безопасности закрыл его для всех посетителей не из его страны, а вам нужно туда попасть. На помощь приходят VPN сервера. Сегодня речь пойдет о том, как быстро поднять VPN сервер на своем VPS при помощи Docker.

Исходные данные: самый простой VPS сервер в клауде Hetznera с установленной Ubuntu 19.04.

Шаг 1. Установка Docker и Docker Compose

Добавляем ключ репозитория

Добавляем репозиторий

Обновляем списки пакетов

Устанавливаем docker и docker-compose

Проверяем что докер установился и запущен

Опционально, если работаете не от пользователя root, и не хотите каждый раз при использовании докера запускать его через sudo, добавьте своего пользователя в группу docker

докер, докер, докер

докер, докер, докер

Шаг 2. Подготовка docker-compose.json

На этом этапе вам нужно или самому собрать образ или воспользоваться готовым, я выбрал уже проверенный fcojean/l2tp-ipsec-vpn-server , имеющий более 100.000 загрузок.

  • https://hub.docker.com/r/fcojean/l2tp-ipsec-vpn-server
  • https://github.com/fcojean/l2tp-ipsec-vpn-server

Создаем папку для будущих файлов

К сожалению, готового docker-compose.yml для выбранного образа я не отыскал, поэтому составил свой:

теперь в этой же папке создаем файл конфигурации

тут вам надо поменять

  • MY-IPSEС-KEY = на случайный набор символов, например: fJdd35YnZ5bdmndRbn
  • MY-USERNAME = на ваш логин
  • MY-PASSWORD = на ваш пароль
  • eth0 = это имя сетевого интерфейса, у меня такой же, но проверить свой можете выполнив команду: ifconfig или ip -a

Шаг 3. Включаем модуль ядра af_key

Как написано, в инструкции к образу fcojean/l2tp-ipsec-vpn-server, необходимо включить модуль af_key

Проверить что он не загружен, можно вот так

проверить что он доступен

включить можно вот так

для постоянной автозагрузки, добавляем его в файл

Шаг 4. Запускаем VPN сервер

проверяем что контейнер запущен и работает

Если что-то пошло не так, вам помогут команды

  • Просмот логов докера: docker logs l2tp-ipsec-vpn-server
  • Просмотр статуса ipsec: docker exec -it l2tp-ipsec-vpn-server ipsec status
  • Подключение в контейнер: docker exec -ti l2tp-ipsec-vpn-server bash
    • ppp: /etc/ppp/*
    • xl2tp: /etc/xl2tpd/*
  • Проверка загрузки модуля af_key: lsmod | grep af_key
  • Проверка занятости портов: netstat -tulpn
Если докер не работает

Если докер не работает

Шаг 5.Настройка клиента

Каких-то особенных инструкций по настройке нет. Настраивайте согласно инструкции к вашему клиенту и используйте данные указанные в файле vpn.env. В моем случае клиентом является маршрутизатор Mikrotik, где я просто ввел: ip, ipseс хеш, логин и пароль - все заработало "из коробки".

Заключение

Текста получилось много, но фактически, все сводится к:

  • установке докера
  • созданию файлов docker-compose.yml и vpn.env
  • запуску контейнера через docker-compose up

так гораздо проще 😉

 

Author: | Rating: 4/5 | Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Allowed HTML-tags: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>