Mikrotik l2tp ipsec to linux

Как подключить l2tp IPSec клиента на Linux к Mikrotik?

Всем доброго! Перепробовал масу вариантов, но подключится с linux к Mikrotik по l2tp over ipsec так и не получилось, в большинстве случаев ошибка » failed to start».
Настройки на стороне Микротика корректны, так как подключаюсь к этому vpn с телефонов (android, ios) и Windows с MacOS без проблем.

VPN на Ubuntu поднимал вот по этому мануалу

# ipsec.conf — strongSwan IPsec configuration file

config setup
# strictcrlpolicy=yes
# uniqueids = no

conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev1
authby=secret
ike=aes128-sha1-modp1024,3des-sha1-modp1024!
esp=aes128-sha1-modp1024,3des-sha1-modp1024!

conn myvpn
keyexchange=ikev1
left=%defaultroute
auto=add
authby=secret
type=transport
leftprotoport=17/1701
rightprotoport=17/1701
right=$VPN_SERVER_IP

потом :
mkdir -p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp-control

service strongswan restart
service xl2tpd restart

после чего iPSec поднимается.

Дале пытаюсь поднять L2tp :

но почему то в ifconfig нету нового интерфейса ppp0 🙁

Простой 2 комментария

vesper-bot

Вы даже не описали что делали.

xl2tpd+ipsec вполне работают. Уточните где именно у Вас затык.

Виталий, я ставил libreswan для ipsec
ipsec.conf
config setup
interfaces=»ipsec0=ppp1″
plutodebug=all
plutostderrlog=/var/log/pluto.log
nat_traversal=no
protostack=netkey
uniqueids=yes
keep_alive=60
oe=off
nhelpers=0

Вот у меня рабочий конфиг с микротиком

# basic configuration config setup # strictcrlpolicy=yes # uniqueids = no # Add connections here. # Sample VPN connections conn ipsec-my ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev1 authby=secret ike=aes128-sha1-modp2048! esp=aes128-sha1-modp2048! conn myvpn keyexchange=ikev1 left=%defaultroute auto=add authby=secret type=transport leftprotoport=17/1701 rightprotoport=17/1701 right=vpnserverip.com - # address of VPN-server rightid=localip_of_mikrotik # without this option you will get error RightID mismatch

/etc/ipsec.secrets
%any vpnserverip.com : PSK «mykey»

[lac myl2tp] lns = vpnserverip.com ppp debug = yes pppoptfile = /etc/ppp/options.l2tpd.client length bit = yes
ipcp-accept-local ipcp-accept-remote refuse-eap require-mschap-v2 noccp noauth #idle 1800 mtu 1460 mru 1460 #defaultroute usepeerdns lock persist maxfail 10 holdoff 15 #интервал между подключениями connect-delay 5000 name YOUR_LOGIN password YOUR_PASSWORD

Но надо еще смотреть какие профили настроены в самом микротке

Источник

I’m the operator with my pocket calculator

В интернете можно найти много примеров настройки L2TP over IPSEC, в том числе с использованием оборудования Mikrotik. Беда только в том, что многие из этих гайдов являются либо не совсем корректными, либо не совсем понятными для тех, кто с IPSEC до этого не сталкивался или сталкивался поверхностно, ну и почти нигде не рассматривается вариант с L2TP-сервером на базе Linux-машины и микротиком в качестве клиента (что, опять же, может вызвать у тех, кто не имел раньше опыта с настройкой IPSEC, массу вопросов и непонимания, почему же ничего не работает).
В данной статье рассматривается организация L2TP over IPSEC с использованием Ubuntu Linux в качестве сервера (например, виртуалка в каком-нибудь DigitalOcean’е) и роутером с Mikrotik RouterOS в качестве клиента. В качестве аутентификации будем использовать pre-shared key (PSK).
ip-адреса и прочие вещи, указанные в примере (чтобы было понятно, что к чему):

Читайте также:  Перенос линукс на другой компьютер

Внешний IP-адрес Linux-машины с L2TP-сервером: 1.1.1.1 Внешний IP-адрес Mikrotik-клиента: 2.2.2.2 (примечание: если Mikrotik имеет динамический внешний адрес, то далее будет отдельный пункт для таких случаев) Диапазон адресов для L2TP-клиентов: 10.0.0.0/29

Подразумевается, что все команды, выполняемые на сервере, делаются от имени root.

L2TP-клиентам будем раздавать адреса из диапазона 10.0.0.0/29

В первую очередь нам нужно внести изменения в системные настройки ipv4. Дописываем в /etc/sysctl.conf следующие строчки:

net.ipv4.ip_forward = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 

Применяем изменения без перезагрузки с помощью sysctl -p, на всякий случай делаем

for each in /proc/sys/net/ipv4/conf/*; do echo 0 > $each/accept_redirects; echo 0 > $each/send_redirects; done 

Устанавливаем нужные пакеты (iptables-persistent в списке нужен для сохранения конфигурации iptables и автоматического восстановления оной после ребута, если вы используете другую утилиту такого толка, например vuurmuur, то не ставьте iptables-persistent и все упоминаия о нем в дальнейшем тексте статьи просто пропускайте):

apt-get update && apt-get install openswan xl2tpd iptables-persistent 

Добавляем правила в iptables:

iptables -t nat -A POSTROUTING -s 10.0.0.0/29 -j MASQUERADE iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 10.0.0.0/29 -j ACCEPT iptables -A FORWARD -d 10.0.0.0/29 -j ACCEPT iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu iptables -A FORWARD -m state --state INVALID -j DROP iptables -A FORWARD -j DROP 

Сохраним конфигурацию iptables командой /etc/init.d/iptables-persistent save

Настраиваем IPSEC. В файл /etc/ipsec.conf прописываем следующее (важно — обязательно соблюдая отступы как в примере):

config setup protostack=netkey nat_traversal=no conn L2TP-PSK authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h salifetime=10m type=tunnel left=1.1.1.1 leftprotoport=17/%any right=%any rightprotoport=17/%any 

Теперь прописываем ключи в файл /etc/ipsec.secrets

1.1.1.1 2.2.2.2: PSK "my_extremely_secure_key" 

Если внешний адрес у клиента динамический, то вместо 2.2.2.2 пишем %any

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

Переходим к настройке L2TP-демона. Открываем /etc/xl2tpd/xl2tpd.conf и пишем:

[global] port = 1701 [lns default] ip range = 10.0.0.2-10.0.0.6 local ip = 10.0.0.1 refuse chap = yes refuse pap = yes require authentication = yes ppp debug = no pppoptfile = /etc/ppp/options.xl2tpd length bit = yes exclusive = no assign ip = yes name = VPN-Server 

Прописываем опции pppd в /etc/ppp/options.xl2tpd:

require-mschap-v2 refuse-mschap ms-dns 8.8.8.8 ms-dns 8.8.4.4 asyncmap 0 auth crtscts mtu 1200 mru 1200 lock hide-password #debug modem name l2tpd proxyarp nodeflate lcp-echo-interval 30 lcp-echo-failure 4 

И наконец добавляем L2TP-пользователей в /etc/ppp/chap-secrets:

# client server secret IP addresses mikrotik l2tpd another_secure_secret * 

Перезапускаем ipsec и xl2tpd

service ipsec restart service xl2tpd restart 

Теперь настраиваем Mikrotik. Поскольку статья ориентирована на начинающих, я постараюсь показать все на примерах скриншотов из winbox.

Важно: красным на скриншотах выделены разделы/вкладки/и т.д. для того, чтобы было проще их заметить среди остальных (многие почему-то не очень хорошо ориентируются среди множества пунктов меню в winbox, хотя по-моему там всё предельно просто и удобно). В общем, если на скриншоте приведены какие-либо параметры, значит они нужны, поэтому сверяться со скриншотами рекомендую крайне внимательно.

Открываем PPP, вкладку Profiles, добавляем новый:

В разделе IP → IPSEC, во вкладке Proposals добавляем новую запись:

Затем переходим во вкладку Policies и добавляем:

Теперь добавляем peer в одноименной вкладке (в поле Secret прописываем ключ, который на сервере добавили в /etc/ipsec.secrets):

Возвращаемся в раздел PPP, во вкладке Interfaces создаем новый интерфейс L2TP client:

Сохраняем и применяем настройки. Если все сделано правильно, то L2TP-соединение должно установиться, а в разделе IPSEC — Installed SA должны появиться две записи для наших IPSEC-туннелей.

Дополнительно создаем новое NAT-правило в разделе IP → Firewall, во вкладке NAT:

Читайте также:  Lamp ubuntu linux apache mysql php

Если нужно пустить траффик до какого-либо узла через наш VPN, то нужно дополнительно прописать маршрут. Допустим, этим узлом будет 3.3.3.3, открываем IP → Routes, добавляем:

Теперь, если все сделано правильно, все должно работать, пакеты к 3.3.3.3 пойдут через VPN.

Дополнительная информация для случаев, когда Mikrotik имеет динамический внешний ip

Будем считать, что внешним интерфейсом у нас на микротике является ether1-gateway

Идем в раздел System → Scripts, создаем новый скрипт с именем update-ipsec-policy-wan, policy — read,write. Не забудьте поменять 1.1.1.1 в первой строчке на внешний ip вашего сервера, а имя вашего WAN-интерфейса — во второй.

:local VPNServer "1.1.1.1" :local WANinterface "ether1-gateway" :local WANip [/ip address get [find interface=$WANinterface] address] :local shortWANip ( [:pick "$WANip" 0 [:find "$WANip" "/" -1]] ) :set WANip ( $shortWANip . "/32" ) :local IPSECip [/ip ipsec policy get [find sa-dst-address=$VPNServer] sa-src-address] if ($shortWANip != $IPSECip) do= < /ip ipsec policy set [find sa-dst-address=$VPNServer] sa-src-address=$shortWANip src-address=$WANip >

Теперь в разделе System → Scheduler создаем новую задачу:

Сохраняем. Теперь каждые две минуты роутер будет проверять, изменился ли внешний ip, и если да, вносить его в нашу IPSEC Policy вместо старого.

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

/ip ipsec installed-sa flush sa-type=all;/ip ipsec remote-peers kill-connections 

Источник

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