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

Уведомление о наличии отсутвии хоста в сети на микротике netwatch telegram

Добавить в Tools > Netwatch скрипты отправки:

UP:

/tool fetch url="https://api.telegram.org/bot5416297136:AAHAx3p-yFsDr4nG8h5YNBI6nRyPeXXXXX/sendMessage?chat_id=-100158142342&text=\F0\9F\9F\A2 <b>Server</b> is UP&parse_mode=html" keep-result=no

DOWN:

/tool fetch url="https://api.telegram.org/bot5416297136:AAHAx3p-yFsDr4nG8h5YNBI6nRyPeXXXXX/sendMessage?chat_id=-100158148142342&text=\F0\9F\94\B4 <b>Server</b> is DOWN&parse_mode=html" keep-result=no

Результат:

windows7 openvpn 2.5.10 client два подключения

Вводные:
OpenVPN 2.5.10 похоже последняя подходящая версия, что работает с Win7. Версия 2.6.12 — уже не встали сетевые драйвера.
— на данной машине создать два подключения. Один сетевой адаптер(tun0) во время установки поставится. Для другого подключения к опенвпн, — нужно добавить второй(tun1) самостоятельно.
— сервер OpenVPN(debian). Описание настройки в предыдущей записи.

Решение:
2.5.10, добавление дополнительго сетевого адаптера: «c:\Program Files\OpenVPN\bin\tapctl.exe» create
Для версий 2.3, скрипт такой C:\Program Files\TAP-Windows\bin\addtap.bat.

Рабочий пример конфигурация клиента OpenVPN 2.5.10:

client
dev tun1
proto udp
remote vpn.mysite.ru 1194
resolv-retry infinite
nobind
persist-tun
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC
tls-auth ta.key 1
verb 3
mute 20

Литература:

2x HOW TO

  1. С первой попытки помогли примеры: Пример Клиента.

(до этого источника долго мучался с кучей нерабочих(старых) примеров, поэтому еще раз напоминаю, самый быстрый путь — начать с родной инструкции производителя)

2. https://serveradmin.ru/kak-sdelat-odnovremenno-neskolko-openvpn-podklyucheniy/

 

Rsync на windows без Cygwin подробнее

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

Утилита rsync позволяет синхронизировать содержимое двух каталогов как для локальной системы, так и удаленных серверов. Это может использоваться как для резервного копирования, так и поддержания в актуальном состоянии нод кластера. Читать далее «Rsync на windows без Cygwin подробнее»

Emby абракадабра в названиях файлов

Исправить кодировку с CP1251 на UTF8:

# покажет что сделает
convmv -r -f cp1251 -t utf8 /нужный_каталог

# переименует. включая подкаталоги
convmv -r -f cp1251 -t utf8 --notest /нужный_каталог