Debian l2tp клиент до микротика

Задача: создать автоматическое l2tp соединение хостинга(debian — клиент) с серверной(mikrotik — сервер).

Решение:

Mikrotik configuration:

L2TP server:

/interface l2tp-server server   set enabled=yes ipsec-secret=...any.ipsec.secret... use-ipsec=yes service=l2tp

L2TP secret:

/ppp secret
add name=...l2tp.user... password=...l2tp.pass...    + local & remote address

IPsec Profile (in debian configuration IKE)

ip ipsec profile print
Flags: * - default
0 * name="default" hash-algorithm=sha1 enc-algorithm=aes-128,3des dh-group=modp2048,modp1024 lifetime=1d proposal-check=obey nat-traversal=yes dpd-interval=2m dpd-maximum-failures=5 

IPsec Proposal (in debian configuration ESP)

ip ipsec proposal print
Flags: X - disabled, * - default
0 * name="default" auth-algorithms=sha1 enc-algorithms=3des lifetime=30m pfs-group=modp1024 

 

Debian install & configuration:

apt install xl2tpd strongswan libstrongswan-extra-plugins

/etc/ipsec.conf

Редактируем файл /etc/ipsec.conf, отступы в начале строк параметров, обязательны.

conn %default   ikelifetime=60m   keylife=20m   rekeymargin=3m   keyingtries=1   keyexchange=ikev1   authby=secret conn myvpn   keyexchange=ikev1   left=%defaultroute auto=start dpdaction=hold closeaction=hold   authby=secret   type=transport   leftprotoport=17/1701   rightprotoport=17/1701   right=...ipsec.server.ip...   ike=aes-sha1-modp1024!   esp=3des-sha1-modp1024!

/etc/ipsec.secrets

Создадим 2 файла с правами 600, пустая строка в конце файла обязательна:

: PSK "...any.ipsec.secret..."

/etc/xl2tpd/xl2tpd.conf

[myl2tp]
lns = ...ipsec.server.ip...
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes

/etc/ppp/options.l2tpd.client

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
#defaultroute
usepeerdns
connect-delay 5000
name ...l2tp.user...
password ...l2tp.pass...

Start:

service strongswan-starter restart
service xl2tpd restart
ipsec up myvpn
...connection 'myvpn' established successfully

echo "c myl2tp" > /var/run/xl2tpd/l2tp-control
ip address

ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1450 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 172.16.0.250 peer 172.16.0.100/32 scope global ppp0
    valid_lft forever preferred_lft forever

ip route add A.B.C.D dev ppp0

Скрипт автоматизации:

l2tp-ipsec-vpn.tar

Возможные ошибки:

  1. «Failed to start LSB: layer 2 tunelling protocol daemon.» Решение, запуск с монитором: xl2tpd -D
    (синтаксическая ошибка была)
  2. debian: «received NO_PROPOSAL_CHOSEN error notify», mikrotik: «failed to pre-process ph2 packet»
    Решение: На микротике поправить IP-IPsec
    Решение: На микротике поправить IP-IPsec

    Пример: Сервер: /ip ipsec peer print address=YY.YYY.YY.YY/32 local-address=ХХ.ХХХ.ХХ.ХХ auth-method=pre-shared-key secret=»ПАРОЛЬ» generate-policy=port-strict policy-template-group=default exchange-mode=main send-initial-contact=yes nat-traversal=no proposal-check=obey hash-algorithm=sha1 enc-algorithm=aes-128 dh-group=modp2048,modp1024 lifetime=1d dpd-interval=disable-dpd Клиентский роутер: MikroTik] > ip ipsec peer print Flags: X — disabled, D — dynamic, R — responder 0 name=»DC» address=ХХ.ХХХ.ХХ.ХХ/32 local-address=YY.YYY.YY.YY profile=default exchange-mode=main send-initial-contact=yes /ip ipsec policy add dst-address=ХХ.ХХХ.ХХ.ХХ/32 ipsec-protocols=ah peer=DC proposal=PROPOSAL-IPSEC-MAIN \ protocol=gre sa-dst-address=ХХ.ХХХ.ХХ.ХХ sa-src-address=YY.YYY.YY.YY src-address=\ YY.YYY.YY.YY/32 tunnel=yes Т.е. на клиенте в протоколах я поставил ah вместо esp, а на сервере отключил dpd и позволил формировать policy автоматически. В результате, туннель поднялся, а на центральном роутере появилась диинамическая policy от клиента.

    [свернуть]

Источник: https://gist.github.com/danielv99/ae6dbd6d3f5b8fe4241519f5a0733ff3

https://forummikrotik.ru/viewtopic.php?t=11235

https://wiki.slackware.su/wiki:articles:l2tp

L2TP VPN client on Linux Debian

ipsec.conf(5) – Linux man page

Openswan L2TP/IPsec VPN client setup

Mikrotik Manual:IP/IPsec