Поднимаем свой VPN - L2TP/IPsec на UbuntuДобрый день, уважаемые гости и читатели. Как и обещал в статье про PPTP, теперь расскажу как поднять на Ubuntu еще один тип VPN - L2TP/IPsec, где сам канал будет организован средствами L2TP, а поверх него для защиты передаваемых данных будет использоваться IPsec. Все описанные действия производились на Ubuntu 14.04.5 LTS. Напоминаю, что дешевые VPS во Франции для запуска своего VPN вы можете посмотреть здесь.

Для установки L2TP/IPsec нам понадобятся права root пользователя или sudo.

1. Установим необходимые пакеты:

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

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

Теперь вам необходимо определиться с локальной подсетью для клиентов VPN. Вы можете сделать себе подсеть из любой сети/подсети, которая не маршутизируется в интернете:

2. Открываем файл /etc/ipsec.conf, стираем его содержимое и добавляем следующую конфигурацию:

Не забудьте изменить 0.0.0.0 в параметре left на внешний IP вашего сервера.

Для обеспечения безопасности, IPSec будет использовать shared-key - совместно используемый ключ. Он один для всех пользователей, периодически его можно изменять в целях безопасности.

3. Открываем /etc/ipsec.secrets и добавляем строку в представленном ниже формате:

Здесь необходимо заменить 0.0.0.0 на внешний IP вашего сервера, а строку в кавычках на ваш собственный общий ключ. Быстро сгенерировать рандомную строку вы можете например такой командой:

4. Теперь убедимся, что нужные нам пакеты установились из зависимостей в первом шаге:

5. Открываем файл /etc/xl2tpd/xl2tpd.conf, стираем его содержимое и добавляем следующее:

Здесь в ip range вы указываете пул адресов, которые будут выдаваться клиентам, подключающимся к вашему L2TP/IPsec VPN, а в local ip - локальный ip шлюза из этой подсети, но не входящий в пул (обычно первый адрес в подсети). Последние строки вы можете раскомментировать в случае, если вам нужен более подробный лог соединения.

6. Создаем файл /etc/ppp/options.xl2tpd и добавляем следующее содержимое:

Адреса DNS можете указать другие, если необходимо.

7. Пользователей будем добавлять в файл /etc/ppp/chap-secrets:

8. Открываем стандартный файл /etc/sysctl.conf и добавляем в конец файла параметры для форвардинга пакетов и отключения ICP-редиректов:

9. Открываем стандартный файл /etc/rc.local и добавляем в конец файла перед строкой exit 0:

10. Посмотрите название сетевого интерфейса командой ifconfig. Если он начинается на eth, то смело добавляем правило iptables следующей командой:

Не забудьте заменить 0.0.0.0 на внешний IP вашего сервера. Если название сетевого интерфейса отличается, то в eth+ замените буквенный префикс на префикс вашего интерфейса.

11. Сохраняем правила NAT в файл командой:

12. Открываем файл /etc/network/interfaces и добавляем в конец файла строку:

Таким образом, правила iptables будут добавляться автоматически при перезагрузке сервера.

Теперь можно перезагрузить сервер для применения всех изменений. После этого вы можете выполнить команду ipsec verify для проверки корректности настройки IPsec. У меня вот такие результаты:

На некоторые предупреждения и ошибки можно не обращать внимания. Теперь вы можете попробовать подключиться к вашему L2TP/IPsec VPN используя логин, пароль и общий ключ, который указывали в конфигурации. Инструкцию по подключению с разных устройств можно посмотреть здесь.

Еще нет никаких комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *