L2tp ipsec linux centos

Настройка клиента L2TP over IPsec в CentOS 7

В предыдущей статьей была описана настройка L2TP/IPsec в маршрутизаторе Mikrotik. В той статье была настройка сервера и одного клиента под Windows для проверки, т.к. это просто и быстро. Для соединения через L2TP и IPsec клиентов на Linux уже нужно выполнить некоторые манипуляции, о которых расскажу ниже.

Последовательность настройки любая, но алгоритм подключения будет следующий: сначала устанавливается шифрованное соединение IPsec, а в нём уже поднимается L2TP, поэтому ниже будет инструкция по настройке strongswan для Centos 7.7:

Настройка IPsec (ikev1)

Использованы дефолтные и рекомендованные параметры в конфиге.

/etc/strongswan/ipsec.conf conn %default lifetime=1h margintime=9m rekeyfuzz = 100% keyingtries=1 keyexchange=ikev1 authby=secret ike=aes128-sha1-modp2048! esp=aes128-sha1-modp1024! conn conn-ipsec keyexchange=ikev1 #auto=add authby=secret type=transport forceencaps = yes leftprotoport=17/1701 rightprotoport=17/1701 right="$SERVER_IP" auto=route # необходим для автоподнятия ipsec dpdaction=restart

При настройке стоит обратить внимание на следующие параметры:

  • lifetime, margintime и rekeyfuzz – параметры для времени переподключения, т.к. используется IKEv1, где reauth происходит всегда. На клиенте и сервере lifetime могут быть разными, но лучше устанавливать всё одинаково во избежание несогласованности.
  • right – обязательно указывать IP вместо DNS, иначе соединение не установится, т.к. не сможет отрезолвить домен
  • auto и dpdaction – очень важны для поднятия соединения в случае реконнекта
  • ike & esp – установить шифры, которые указаны на сервере
  • forceencaps = yes – без этого параметра на Debian 11 туннель ipsec отваливался

С используемыми шифрами ike и esp стоит поиграться и выбрать для себя наиболее оптимальные по части безопасности и скорости работы, не стоит копировать бездумно. В данной статье шифры для примера, не стоит использовать в продакшене

Далее указывается секретный ключ IPsec:

/etc/strongswan/ipsec.secrets : PSK

На этом настройка закончена и можно переходить к xl2tpd.

Настройка L2TP

/etc/xl2tpd/xl2tpd.conf [lac conn-l2tp] lns = "$SERVER_IP" ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd.client length bit = yes redial = yes redial timeout = 10 autodial = yes
  • # redial, redial timeout и autodial – опять же для реконнекта
  • # lac – имя соединения для его установления
  • # lns – адрес сервера, тут можно указать DNS-адрес
/etc/ppp/options.l2tpd.client ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth mtu 1450 mru 1450 noipdefault connect-delay 5000 name CLIENT_LOGIN password CLIENT_PASSWORD
  • # require-mschap-v2 – установить, если используется mschap-v2 в настройках L2TP сервера на Mikrotik
  • name & password – логин\пароль профайла на Mikrotik
Читайте также:  Red hat enterprise linux systems

Подключение

Создается директория для PID файла и управления xl2tpd:

mkdir -p /var/run/xl2tpd && touch /var/run/xl2tpd/l2tp-control
systemctl restart strongswan && systemctl restart xl2tpd
echo "c conn-l2tp" > /var/run/xl2tpd/l2tp-control

Теперь можно проверить, что соединение установилось, появился интерфейс ppp с клиентским IP:

ip a ppp0: mtu 1450 qdisc pfifo_fast state UNKNOWN group default qlen 3 link/ppp inet 10.0.10.2 peer 10.0.10.25/32 scope global ppp0 valid_lft forever preferred_lft forever

Настройка маршрутов

Соединение есть, но для доступа к нужным подсетям по этому соединению необходимо прописать необходимые маршруты. По-хорошему, для автоматического добавления маршрутов в подсети офиса в скрипте /etc/ppp/ip-up в конец файла прописано несколько маршрутов. Несмотря на то, что в этом файле сказано, что добавлять файлы нужно в /etc/ppp/ip-up.local, такой вариант не сработал, поэтому маршруты добавляются в ip-up прямо в конце файла:

/etc/ppp/ip-up #!/bin/bash # This file should not be modified -- make local changes to # /etc/ppp/ip-up.local instead PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH LOGDEVICE=$6 REALDEVICE=$1 [ -f /etc/sysconfig/network-scripts/ifcfg-$ ] && /etc/sysconfig/network-scripts/ifup-post --realdevice $ ifcfg-$ /etc/ppp/ip-up.ipv6to4 $ [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@" if [ $5 = "10.0.10.25" ] then ip route add 192.168.34.0/24 via 10.0.10.2 ip route add 10.10.12.0/24 via 10.0.10.2 ip route add 192.168.30.0/24 via 10.0.10.2 ip route add 192.168.178.0/24 via 10.0.10.2 ip route add 192.168.79.0/24 via 10.0.10.2 fi exit 0

Когда ppp связь установлена, этот скрипт вызывается со следующими параметрами:

$1 - имя интерфейса, используемое pppd (напр. ppp3) $2 - имя устройства tty $3 - скорость устройства tty $4 - локальный IP адрес для интерфейса $5 - удаленный IP адрес $6 - параметр, указанный опцией 'ipparam' в pppd

Ручное управление

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

echo "d conn-l2tp" > /var/run/xl2tpd/l2tp-control
strongswan down conn-ipsec

Или же воспользоваться командами systemd по перезагрузке сервисов.

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

Проблема по идее кроется во времени reauth, поэтому нужно выставить рекомендуемые параметры lifetime на сервере и клиенте, а также ознакомиться с документацией. В моём случае всё сработало при параметре auto=route в конфиге strongswan.

Читайте также:  Linux get file folder

Источник

Настройка IPSEC L2TP VPN-сервера на CentOS 7

Обновлено

Обновлено: 14.03.2020 Опубликовано: 09.04.2018

Один из лучших способов поднять сервер VPN — настроить OpenVPN. Однако, данный сервер не лишен недостатков — на клиенты потребуется устанавливать специальное программное обеспечение. Если мы хотим использовать стандартные средства операционных систем для подключения к серверу, настроим VPN IPSEC L2TP.

Подготовка сервера

Для установки ПО потребуется репозиторий EPEL:

firewall-cmd —permanent —add-port=1701/tcp

firewall-cmd —permanent —add-service=ipsec

IPSEC

Открываем конфигурационный файл racoon:

remote anonymous
exchange_mode main,aggressive,base;
doi ipsec_doi;
passive on;
proposal_check obey;
support_proxy on;
nat_traversal on;
ike_frag on;
dpd_delay 20;
proposal
encryption_algorithm aes;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
proposal
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group modp1024;
>
>

Теперь открываем следующий файл:

Для клиентов Windows добавляем:

ip-addres1 key-password1
ip-addres2 key-password2

* где ip-addres — ip-адрес клиента, с которого будет идти подключение; key-password — пароль для подключения.

Для клиентов Android добавляем:

identifier1 key-password1
identifier2 key-password2

* где identifier — идентификатор клиента, который будет использоваться при подключении; key-password — пароль для подключения.

Создаем скрипт с настройкой ipsec политик:

spdadd 0.0.0.0/0[l2tp] 0.0.0.0/0 any -P out ipsec esp/transport//require;
spdadd 0.0.0.0/0 0.0.0.0/0[l2tp] any -P in ipsec esp/transport//require;

chmod 755 /etc/rc.d/init.d/racoon.init

Добавляем скрипт на автозапуск:

Разрешаем запуск сервиса racoon и стартуем его:

L2TP

Устанавливаем пакет xl2tpd:

Открываем конфигурационный файл:

[global]
ipsec saref = yes
force userspace = yes

В секции [lns default] изменяем диапазон IP-адресов:

[lns default]
ip range = 176.16.10.10-176.16.10.200
local ip = 176.16.10.1

Разрешаем автозапуск сервиса и стартуем его:

PPP

Вносим небольшие изменения в DNS:

Открываем файл с пользователями:

* где dmosk — логин; первая звездочка — любой сервер; password — пароль, который должен вводить пользователь dmosk; вторая звездочка — подключение с любого IP-адреса.

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

Пример настройки клиента Windows:

Пример настройки клиента VPN на Windows

На устройстве с Андроидом настраиваем выбираем в качестве VPN-сервера IPSEC-L2TP PSK и вводим данные из файла psk.txt (например, identifier1 и key-password1). Пример подключения на Android:

Пример настройки клиента VPN на Android

VPN-сервер как шлюз

Для этого настраиваем только CentOS.

Источник

How to Setup an L2TP/IPsec VPN Client on Linux

L2TP (which stands for Layer 2 Tunneling Protocol) is a tunneling protocol designed to support virtual private networks (VPN connections) over the internet. It is implemented in most if not all modern operating systems including Linux and VPN-capable devices.

The L2TP does not provide any authentication or encryption mechanisms directly to traffic that passes through it, it is usually implemented with the IPsec authentication suite (L2TP/IPsec) to provide encryption within the L2TP tunnel.

Читайте также:  Linux what is configured

In this article, we will show how to set up an L2TP/IPSec VPN connection in Ubuntu and its derivatives and Fedora Linux.

This guide assumes that the L2TP/IPsec VPN server has been set up and that you have received the following VPN connection details from your organization’s or company’s system administrator.

Gateway IP address or hostname Username and Password Pre-shared Key (Secret)

How to Setup L2TP VPN Connection in Linux

To add an L2TP/IPsec option to the NetworkManager, you need to install the NetworkManager-l2tp VPN plugin which supports NetworkManager 1.8 and later. It provides support for L2TP and L2TP/IPsec.

To install the L2TP module on Ubuntu and Ubuntu-based Linux distributions, use the following PPA.

$ sudo add-apt-repository ppa:nm-l2tp/network-manager-l2tp $ sudo apt-get update $ sudo apt-get install network-manager-l2tp network-manager-l2tp-gnome

On RHEL/CentOS and Fedora Linux, use the following dnf command to install L2TP module.

# dnf install xl2tpd # dnf install NetworkManager-l2tp # dnf install NetworkManager-l2tp-gnome OR # yum install xl2tpd # yum install NetworkManager-l2tp # yum install NetworkManager-l2tp-gnome

Once the package installation is complete, click on your Network Manager icon, then go to Network Settings.

Access Network Settings

Next, add a new VPN connection by clicking on the (+) sign.

Add New VPN Connection

Then select Layer 2 Tunneling Protocol (L2TP) option from the pop-up window.

Select Layer 2 Tunneling Protocol

Next, enter the VPN connection details (gateway IP address or hostname, username and password) you received from the system administrator, in the following window.

Add VPN Details

Next, click IPsec Settings to enter the pre-shared key for the connection. Then enable IPsec tunnel to L2TP host, enter (or copy and paste the) the Pre-shared key and click Ok.

Add Pre-shared Key

After that, click Add. Now your new VPN connection should be added.

VPN Connection Created

Next, turn on the VPN connection to start using it. If the connection details are correct, the connection should be established successfully.

Enable VPN ConnectionEnabled VPN Connection

Last but not least, test if the VPN is working fine. You can check your computer’s public IP address to confirm this from a web browser: it should now point to the IP of the gateway.

Confirm Your VPN Connection

That’s the end of this article. If you have any queries or thoughts to share, reach us via the feedback form below.

Источник

Оцените статью
Adblock
detector