Задача: Как настроить L2TP подключение из под Ubuntu 18.04 Desktop к домашней сети где в качестве роутера используется Mikrotik RB2012UiAS-2HnD с развернутым сервисом: PPP — L2TP Server.
Просто я к сожалению когда работал на Ubuntu Trusty Desktop так и не смог настроить L2TP подключение и использовал PPTP подключение. Читал что это не безопасно, но с учетом того как в меня все дома настроена я не беспокоился.
А тут я уже давным давно перешел на другой долговременный релиз Ubuntu — Ubuntu 18.04 Desktop в качестве домашней системы. И просматривая свои заметки на этот счет на меня накинулось, что есть не завершенная часть настройки удаленного подключения, может в этой системе все сложится удачно.
И вот теперь я разбираю новую заметку которая мне понадобится, но сперва создаю стенд под Virtualbox на основной системе: Lenovo E555 Ubuntu 18.04 Desktop, где в наличии две виртуальные машины.
Одна: Mikrotik x86 (с поднятым сервисом L2TP Server поднятым по заметке с двумя интерфейсами: eth1 — смотрит в интернет (172.33.33.34), eth2 — смотрит в локальную сеть
- Login для подключения через L2TP: l2tp_user1
- Password для подключения через L2TP: Aa1234567
- IPSec phrase: 612mbddr@
Вторая: Ubuntu 18.04 Desktop (eth1 (172.33.33.26) — смотрит в интернет))
На второй системе проделываю:
Посредством заметки где я показал, как я загружаю репозитарий Mercurial где содержится скрипт настройки системы произвожу настройку. В вашем случае он у каждого уважаемого системного администратора должен быть самолично написанным или же использовать дефолтную систему.
Если перейти в Настройки, они же «Параметры» (значок с изображением отвертки и гаечного ключа) из правого верхнего угла, затем перейти на элемент «Сеть», щелкнуть на плюсик у VPN, то можно заметить что в системе присутствует только один вид настройки удаленного подключения — это «Туннельный протокол типа точка-точка (PPTP)». Вот только мне не это нужно. Чтобы это дело исправить нужно:
ekzorchik@srv-bionic:~$ apt-cache search network-manager-l2tp
network-manager-l2tp - network management framework (L2TP plugin core)
network-manager-l2tp-gnome - network management framework (L2TP plugin GNOME GUI)
ekzorchik@srv-bionic:~$ sudo apt-get install network-manager-l2tp-gnome -y
Затем закрыть «Настройки» и заново дойти до VPN меню и нажать плюсик будет доступно новое подключение: «Layer 2 Tunneling Protocol (L2TP)» выбираю его.
Вкладка «Идентификация» окна «Добавить VPN»
- Название: home
- Шлюз: 172.33.33.34
- Имя пользователя: l2tp_user1
- Пароль: Aa1234567 (здесь же нажимаю на восклицательный знак в ромбе и выбираю «Запомнить пароль только для этого пользователя»
затем нажимаю «Настройки Ipsec»
- Enable Ipsec tunnel to L2TP host: отмечаю галочкой
- Pre-shared key: 612mbddr@
- Phase1 Algorithms: 3des-sha1-modp1024
- Phase2 Algorithms: 3des-sha1
и нажимаю кнопку OK — Добавить (окна «Добавить VPN»), затем нужно указать пароль для разблокировки связки ключей (это пароль при использовании команды sudo для текущего пользователя, в моем случае он совпадает с паролем (712mbddr@) от учетной записи ekzorchik текущей системы) и нажимаю «Разблокировать».
Вот теперь если в настроенного VPN подключения передвинуть бегунок в положение «Включено» должно произойти подключение к L2TP Server развернутому на Mikrotik. Но обычно все сразу не начинает работать как и планируется и следует углубиться в детали почему. В логах на Mikrotik наблюдаю вот такие вот сообщения:
ага, проблемы со второй фазой аутентификации, это либо то что передает Ubuntu 18.04 Desktop, либо на Mikrotik. Когда все было поправлено, то на Mikrotik станет видно активное VPN соединение:
winbox — IP&DNS:PORT — user&pass — PPP — вкладка Active Connections
Отлично, раз работает в лабораторных условиях, то будет и работать на боевых условиях.
Для справки приведу полный конфиг настроенного Mikrotik в этой заметки:
winbox — IP&DNS:PORT — user&pass — New Terminal
[admin@MikroTik] > export
# aug/25/2018 19:41:58 by RouterOS 6.42.5
# software id = Z4W6-YUUQ
#
#
#
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip ipsec policy group
add name=ipsec_policy_group1
/ip ipsec proposal
add enc-algorithms=3des name=l2tp_proposal
/ip pool
add name=l2tp_pool ranges=192.168.199.1-192.168.199.10
add name=dhcp_pool1 ranges=10.10.10.2-10.10.10.254
/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=ether2 name=dhcp1
/ppp profile
add change-tcp-mss=yes local-address=192.168.199.1 name=l2tp_profile \
remote-address=l2tp_pool use-compression=yes use-encryption=yes use-ipv6=\
no
/tool user-manager customer
set admin access=\
own-routers,own-users,own-profiles,own-limits,config-payment-gw
/interface l2tp-server server
set authentication=mschap2 enabled=yes ipsec-secret=866%sacred.77 use-ipsec=\
yes
/ip address
add address=10.10.10.1/24 interface=ether2 network=10.10.10.0
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1
/ip dhcp-server network
add address=10.10.10.0/24 gateway=10.10.10.1
/ip firewall filter
add action=accept chain=input port=1701,500,4500 protocol=udp
add action=accept chain=input protocol=ipsec-esp
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 src-address=\
192.168.199.0/24
add action=masquerade chain=srcnat src-address=10.10.10.0/24
/ip ipsec policy
set 0 proposal=l2tp_proposal
/ppp secret
add name=l2tp_user1 password=Aa1234567 profile=l2tp_profile service=l2tp
#error exporting /routing pim
#error exporting /routing rip
#error exporting /routing ripng
/system lcd
set contrast=0 enabled=no port=parallel type=24x4
/system lcd page
set time disabled=yes display-time=5s
set resources disabled=yes display-time=5s
set uptime disabled=yes display-time=5s
set packets disabled=yes display-time=5s
set bits disabled=yes display-time=5s
set version disabled=yes display-time=5s
set identity disabled=yes display-time=5s
set ether1 disabled=yes display-time=5s
set ether2 disabled=yes display-time=5s
set <l2tp-l2tp_user1> disabled=yes display-time=5s
/tool user-manager database
set db-path=user-manager
На заметку: если настраиваете с нуля Mikrotik то можно под каждую задачу подготовить скрипт настройки, но предварительно убрав из него строки отмеченные символом комментария («#»).
Итого заметка работоспособна. С уважением автор блога Олло Александр aka ekzorchik.