Настройка клиента Ubuntu l2tp ipsec

Обновлено: 03.07.2024

Наличие L2TP/IPSEC VPN очень удобно, если у вас есть Macbook, устройство iOS или Android и вы хотите иметь удаленный доступ к своей сети, находясь в дороге. L2TP через IPSEC — лучший выбор, чем PPTP, который в настоящее время считается небезопасным. Кроме того, эти устройства изначально поддерживают L2TP/IPSEC, поэтому в отличие от OpenVPN не требуется никакого дополнительного клиентского программного обеспечения.

Для начала давайте представим небольшую сеть, использующую довольно стандартный диапазон частных адресов. 192.168.1.0/24. Эта установка будет выполняться на внутреннем сервере Ubuntu, который подключен к внутренней сети, к которой вы хотите получить доступ. В этом примере вам нужна только 1 сетевая карта.

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

Вам необходимо перенаправить
UDP 500
UDP 4500
трафик ESP (протокол 50)
трафик AH (протокол 51)

ESP и AH — это не порты, а протоколы. Большинство потребительских маршрутизаторов не могут перенаправлять эти протоколы, поэтому вам может потребоваться использовать параметр «Перенаправлять весь трафик» на внутренний сервер или использовать настройку «Внутренний хост DMZ», которую можно найти на многих устройствах. Протестируйте его и найдите лучший вариант, который подходит именно вам.

Установить IPSEC

Openswan — это пакет, обеспечивающий функциональность IPSEC. Вы можете использовать его для VPN-сетей между сайтами с использованием предварительных ключей, сертификатов или других внутренних механизмов аутентификации. В этой настройке я буду простым и просто использую предварительный общий ключ (PSK). PSK с идентификатором и паролем будет достаточно для большинства людей, которым нужен безопасный доступ к небольшой или домашней сети.

Отредактируйте файл /etc/ipsec.conf так, чтобы он выглядел следующим образом.
ПРОВЕРКА ПРАВИЛЬНОСТИ: Убедитесь, что вы сохранили пробелы под заголовками конфигурации и заголовками соединений. Без него вы можете получить ошибки формата…

Отредактируйте файл /etc/ipsec.secrets и добавьте следующее в конец файла:

Теперь давайте настроим файлы, которые определяют соединение.
Создайте/отредактируйте файл и назовите его /etc/ipsec.d/road-warrior.conf

Далее создайте/отредактируйте файл с именем /etc/ipsec.d/road-warrior.secrets

Далее, чтобы OPENSWAN работал правильно, вам нужно выполнить следующее в командной строке bash:

Для проверки конфигурации OPENSWAN используйте команду IPSEC VERIFY. Ваш вывод должен соответствовать приведенному ниже выводу.

Наконец, перезапустите службу IPSEC

Установить L2TP

Далее нам нужно установить пакет L2TP. L2TP работает с IPSEC в том смысле, что L2TP предоставляет туннель, где IPSEC обеспечивает шифрование.

Установите пакет L2TP:

Отредактируйте /etc/xl2tpd/xl2tpd.conf

Диапазон IP-адресов используется туннелем L2tp. Вы хотите быть уверены, что этот диапазон не пересекается ни с одной подсетью внутренней сети. IP-адрес сервера не должен входить в диапазон IP-адресов.

Установить PPP

Последняя часть этой настройки — аутентификация пользователя. Каждый пользователь может поделиться PreSharedKey, но каждый пользователь должен иметь уникальный идентификатор/пароль.

Редактировать/создать файл /etc/ppp/options.xl2tpd

Измените DNS-серверы в соответствии со своими потребностями. Эти серверы являются общедоступными, но вы также можете легко использовать там свой частный DNS.

Теперь добавьте пользователей, отредактировав /etc/ppp/chap-secrets

Теперь настройте удаленное устройство с правильным именем сервера, PSK и идентификатором/паролем и протестируйте его.

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

Отредактируйте файл /etc/rc.local, чтобы он содержал:

Устранение неполадок:
Если у вас возникли проблемы:

  • Просмотрите журналы. «tail -f /var/log/syslog /var/log/auth.log». Это даст вам много информации.
  • Дважды проверьте, что порты переадресованы. В журналах будет указано какое-либо входящее соединение, если порты открыты.
  • Дважды проверьте совпадения ключей PSK на клиенте и сервере.
  • Из журнала logsd сервер отправляет MR2 и ждет, пока MI3 навсегда укажет, что указанные порты частично открыты, проверьте устройство периметра.
  • Команда IPSEC whack –status дает много информации о конфигурации. Кроме того, это хороший вывод в GREP для других скриптов.

Наконец, вот несколько небольших фактов, которые поставили меня в тупик, когда я впервые играл с openswan, и я хотел, чтобы кто-нибудь указал мне, когда я начинал:

Ubuntu прекратила поддержку L2TP через IPSec со времен Precise. Обходной путь для этого существует с помощью network-manager-l2tp.

В этом руководстве мы покажем вам, как настроить L2TP/IPSec VPN в Ubuntu, но сначала давайте посмотрим, каковы наши требования и рекомендации.

Требования

Для настройки L2TP/IPSec VPN вам потребуется:

  1. Учетная запись CactusVPN. Если у вас его нет, вы можете попробовать наши услуги бесплатно.
  2. Ваше имя пользователя, пароль и адрес VPN-сервера.Вы можете найти их в своей учетной записи на нашем веб-сайте, перейдя в настройки.

Если вы все еще хотите настроить L2TP/IPSec VPN вручную, следуйте пошаговым инструкциям:

Инструкции по настройке L2TP/IPSec VPN

Открыть терминал (1).

Введите следующие команды одну за другой:

Нажмите «Диспетчер сети» (2) > «Подключения VPN» (3) > «Настроить VPN» (4).

В окне "Сетевые подключения" выберите вкладку VPN и нажмите кнопку "Добавить" (5).

В окне Choose a Connection Type выберите Layer 2 Tunneling Protocol (L2TP) (6) и нажмите кнопку Create… (7).

Выберите настройки IPsec… (8).

Установите флажок Включить туннель IPsec для хоста L2TP (9).

Введите IP-адрес сервера CactusVPN, к которому вы хотите подключиться, в поле ID шлюза (10).

Вы можете найти IP-адреса всех наших серверов в своей учетной записи на нашем веб-сайте, перейдя в настройки.

Введите cactusvpn в поле предварительного общего ключа (11).

Нажмите ОК (12).

Укажите имя для вашего VPN-подключения в поле Имя подключения (13).

Заполните поля Имя пользователя и Пароль (14) своим именем пользователя и паролем VPN.

Вы можете найти свое имя пользователя и пароль VPN в своей учетной записи на нашем веб-сайте, перейдя в Настройки -> Имя пользователя и пароль VPN. Убедитесь, что вы используете имя пользователя и пароль VPN, а НЕ учетные данные веб-сайта (в чем разница?).

Нажмите "Сохранить" (15).

Подключение L2TP через IPsec VPN в Ubuntu настроено. Подключитесь к VPN, выбрав созданное VPN-подключение в Network Manager.

В этой статье описывается, как настроить и использовать клиент виртуальной частной сети L2TP/IPsec в Arch Linux. Он охватывает установку и настройку нескольких необходимых программных пакетов. L2TP относится к протоколу туннелирования w:Layer 2, а для w:IPsec используется реализация Openswan.

Это руководство в первую очередь предназначено для клиентов, подключающихся к компьютеру с Windows Server, поскольку в нем используются некоторые настройки, характерные для реализации L2TP/IPsec корпорацией Майкрософт. Однако его можно адаптировать к любой другой стандартной настройке L2TP/IPsec. Вики Openswan содержит инструкции по настройке соответствующего сервера L2TP/IPSec Linux.

Содержание

Установка

Для использования с NetworkManager установите пакеты networkmanager-l2tp и strongswan.

Теперь вы можете запустить strongswan.service . Если он не запущен, вы можете получить следующее:

Запустите проверку ipsec, чтобы проверить конфигурацию и решить возможные проблемы, прежде чем продолжить.

Конфигурация

Менеджер сети

Откройте пользовательский интерфейс NetworkManager, а затем:

  1. Выберите Сеть > VPN. Нажмите "+"
  2. Выберите "Протокол туннелирования уровня 2 (L2TP)".
  3. Вы можете выбрать имя для VPN.
  4. Введите IP-адрес вашего VPN-сервера для шлюза.
  5. Введите свое имя пользователя VPN в качестве имени пользователя.
  6. Щелкните правой кнопкой мыши значок ? в поле Пароль выберите Сохранить пароль только для этого пользователя. (Если этот вариант вызывает у вас затруднения, вы можете использовать «Сохранить пароль для всех пользователей»)
  7. Введите пароль VPN для пароля.
  8. Оставьте поле "Домен NT" пустым.
  9. Нажмите «Настройки IPsec». кнопка.
  10. Установите флажок Включить туннель IPsec для хоста L2TP.
  11. Оставьте поле идентификатора шлюза пустым.
  12. Введите PSK VPN IPsec для предварительного общего ключа.
  13. ОК, затем нажмите "Добавить", чтобы сохранить информацию о VPN-подключении.

Теперь вы сможете запустить VPN, включив переключатель.

ОпенСван

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

Этот файл содержит основную информацию для установки безопасного туннеля IPsec к VPN-серверу. Он включает NAT Traversal, если ваша машина находится за NAT-маршрутизатором (большинство людей), и различные другие параметры, необходимые для правильного подключения к удаленному серверу IPsec. Следующий файл содержит ваш общий ключ (PSK) для сервера.

Создайте файл /etc/ipsec.secrets. Он должен содержать следующую строку:

Не забудьте заменить локальный ( 192.168.0.123 ) и удаленный ( 68.68.32.79 ) IP-адреса правильными номерами для вашего местоположения. Предварительно общий ключ будет предоставлен провайдером VPN, и его необходимо будет поместить в этот файл в виде открытого текста. Вы можете обнаружить, что этот файл уже существует и уже содержит некоторые данные, попробуйте создать его резервную копию и создать новый файл только с вашим PSK, если вы увидите сообщение Не удается аутентифицировать: предварительный ключ не найден для . при включении соединения в следующем разделе. Не забудьте установить правильные разрешения (600) для этого файла, иначе вы получите сообщение об ошибке. Мы не можем идентифицировать себя ни с одним из концов этого соединения. .

Добавьте соединение, чтобы оно было доступно для использования:

На этом настройка IPsec завершена, и мы можем перейти к настройке L2TP.

Запуск Openswan в контейнере

Не забудьте добавить возможность CAP_SYS_MODULE и доступ к дереву хост-модулей. Пример для nspawn:

xl2tpd

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

Этот файл настраивает xl2tpd с именем подключения, IP-адресом сервера (опять же, не забудьте изменить его на адрес вашего сервера) и различными параметрами, которые будут переданы pppd после настройки туннеля.

Теперь создайте файл /etc/ppp/options.l2tpd.client со следующим содержимым:

Поместите в этот файл назначенное вам имя пользователя и пароль для VPN-сервера. Многие из этих параметров предназначены для взаимодействия с серверами Windows Server L2TP. Если ваш VPN-сервер использует аутентификацию PAP, замените require-mschap-v2 на require-pap .

На этом настройка соответствующих пакетов программного обеспечения для подключения к серверу L2TP/IPsec завершена. Чтобы начать подключение, выполните следующие действия:

Запустите openswan.service и xl2tpd.service .

В этот момент туннель запущен, и вы сможете увидеть его интерфейс, если наберете:

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

Маршрутизация

Направление трафика на один IP-адрес или подсеть через туннель

Это так же просто, как добавить правило маршрутизации в таблицу ядра:

Примечание: xxx.xxx.xxx.xxx — это конкретный IP-адрес (например, 192.168.3.10) или подсеть (например, 192.168.3.0/24), с которыми вы хотите установить связь через туннельное устройство (например, ppp0).

Примечание: yyy.yyy.yyy.yyy — это «IP-адрес равноправного узла» вашего устройства pppX, который используется для маршрутизации трафика в пункт назначения туннеля xxx.xxx.xxx.xxx.


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

Направление всего трафика через туннель

Это намного сложнее, но весь ваш трафик будет проходить через туннель. Начните с добавления специального маршрута для фактического VPN-сервера через текущий шлюз:

Это гарантирует, что после изменения шлюза по умолчанию на интерфейс ppp ваш сетевой стек все еще сможет найти VPN-сервер, маршрутизируя его по туннелю. Если вы пропустите этот шаг, вы потеряете подключение к Интернету, и туннель рухнет. Теперь добавьте маршрут по умолчанию, который ведет к удаленному концу PPP:

Удаленный конец PPP можно обнаружить, выполнив действия, описанные в предыдущем разделе. Теперь, чтобы убедиться, что ВЕСЬ трафик проходит через туннель, удалите исходный маршрут по умолчанию:

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

Создание маршрута также можно автоматизировать, поместив скрипт в /etc/ppp/ip-up.d.

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

Проблема: journalctl регистрирует VPN-подключение: не удалось подключиться: «Не удалось перезапустить службу ipsec.

Решение Убедитесь, что у вас установлен strongswan

Примечание. Первым шагом может быть использование команды ipsec verify для проверки конфигурации установленного IPSEC.

Проблема: я получаю сообщение от pppd, в котором говорится: «Не удалось аутентифицировать себя в одноранговом узле», и я подтвердил правильность своего пароля. Что может быть не так?

Решение 1. Если в файле /var/log/daemon.log вы видите следующее:

тогда вы выполняете аутентификацию на SonicWALL LNS, который не знает, как правильно обрабатывать аутентификацию в стиле CHAP.

Решение этой проблемы состоит в том, чтобы добавить в файл options.l2tp.client следующее:

Это заставит SonicWALL по умолчанию использовать следующий механизм аутентификации, а именно MSCHAP-v2. Это должно пройти проверку подлинности, и с этого момента xl2tpd должен успешно построить туннель между вами и удаленным сервером L2TP.

Решение 2. Если вы видите следующее в своем журнале после запуска journalctl -ru xl2tpd от имени пользователя root:

Попробуйте добавить доменное имя перед именем пользователя в файле options.l2tpd.client (обратите внимание на двойную обратную косую черту), например:

Советы и рекомендации

Скрипт запускается и выключается

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

Во-первых, служебный скрипт для автоматического обнаружения удаленных концов PPP:

Далее скрипт для поднятия туннеля. Это заменит маршрут по умолчанию, поэтому весь трафик будет проходить через туннель:

Наконец, скрипт выключения, он просто меняет процесс:

Еще один скрипт

Приведенный выше сценарий действительно помогает мне в работе. И обратите внимание, что скрипт использует фиксированный IP-адрес, и кто-то вроде меня может изменить сетевой адрес vpn, я хотел бы поместить свой дополнительный скрипт ниже (не знаю, как добавить вложение, поэтому просто сырой):

Скрипт для разрешения DNS-имен и подключения

Эта статья или раздел нуждается в улучшении языка, синтаксиса вики или стиля. См. Help:Style для справки.

Эта конфигурация была успешно протестирована на устройствах Android, Windows и iOS.

Инструкции

IPSec/Openswan

В копии файла /etc/ipsec.conf:

Убедитесь, что вы следуете настройке в файле ipsec.conf, часть "config setup" и "conn l2tp-psk" должны быть слева, а другой текст на 8 пробелов справа.

В копии файла "/etc/ipsec.secrets":

Замените x.x.x.x на IP-адрес вашего сервера

Запустите службу IPSEC с помощью

Подтвердите службу IPSEC с помощью:

у вас не должно быть ошибок.

Создайте файл с именем "ipsec.vpn" в "/etc/init.d/"

Это настроит переадресацию брандмауэра. Если вы используете локальный пул IP-адресов, отличный от 10.152.2, обязательно обновите его.

Затем установите разрешение на выполнение:

Отключите сценарий инициализации ipsec по умолчанию с помощью

И включите пользовательский.

  • диапазон IP-адресов = диапазон IP-адресов для подключения подключающихся клиентов.
  • local ip = IP-адрес VPN-сервера. Значение должно быть за пределами "диапазона IP-адресов".
  • отказаться от pap = запросить аутентификацию по pap
  • отладка ppp = да при тестировании, нет при работе

Выберите подходящую строку аутентификации типа запрос-ответ. В идеале секрет должен состоять из 16 символов и, вероятно, должен быть длиннее, чтобы обеспечить достаточную безопасность. Требования к минимальной длине отсутствуют. В файле /etc/xl2tpd/l2tp-secrets:

В файле /etc/ppp/options.xl2tpd скопируйте:

параметр ms-dns

Здесь вы устанавливаете DNS-сервер для своей локальной сети, этот DNS-сервер передается дорожному воину, когда он подключается. Если вы хотите добавить несколько серверов, просто добавьте несколько строк.

Если вам нужно передать настройки wins клиентам, для этого есть отдельная опция.

мту/мру
проксиарп

Добавляет запись в таблицу ARP [Протокол разрешения адресов] этой системы с IP-адресом однорангового узла и Ethernet-адресом этой системы. Это приведет к тому, что одноранговый узел будет казаться другим системам подключенным к локальной сети Ethernet.

Читайте также: