Linux vpn to mikrotik

Подключение через PPTP к Mikrotik c Ubuntu Trusy

Задача: Как подключиться через VPN (Virtual Private Network) к домашней/рабочей сети находящейся за микротиком (Mikrotik) с рабочей станции Ubuntu Trusty Desktop (окружение Gnome Classic).

$ sudo rm -Rf /var/lib/apt/lists

$ sudo apt-get update && sudo apt-get upgrade -y

$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y

Настраиваю подключение на Микротик который смотрит в интернет, на нем у меня настроен сервис Mikrotik+VPN+PPTP:

Applications (Приложения) — System Tools (Системные утилиты) — Preferences (Параметры) — Network Connections (Сетевые соединения) — Add

  • Choose a Connection Type: выбираю Point-to-Point Tunneling Protocol (PPTP)

и нажимаю кнопку Create, затем привожу настройки подключения к виду:

  • Connection name: work

вкладка VPN:

  • Gateway: home.domain.ru
  • User name: ekzorchik
  • Password: 712mbddr@ и не забываем выставить настройку сохранения пароля Saved

после щелкаю на Advanced и указываю какой тип аутентификации при подключении к роутеру Mikrotik использовать:

  • Allow the following authentication methods: MSCHAPv2

и нажимаю кнопку OK окна PPTP Advanced Options.

Вкладка IPv4 Settings:

  • Method: Automatic (VPN)

и сохраняю внесенные изменения переходом на кнопку Save… Далее потребуется ввести пароль от повышения прав (как при использовании sudo) для разблокировку «Связки ключей» Ubuntu Trusty Desktop и нажать Unlock.

Теперь произвожу подключение:

В правой верхней части экрана нажимаю на две стрелочки, одна смотрит вверх, а другая в низ левой кнопкой мыши, после переходим на VPN Connectionswork (Созданная конфигурация для удаленного подключения)

Если все настроено правильно, то рабочая станция Ubuntu Trusty Desktop успешно соединиться через клиент VPN к сети за Mikrotik.

default dev ppp0 proto static

10.9.9.0/24 dev eth0 proto kernel scope link src 10.9.9.168 metric 1

172.54.54.1 dev ppp0 proto kernel scope link src 172.54.54.100

вот создался интерфейс ppp0 и я вижу сеть, локальную сеть, да и значок на подключении изменился с обычного на значок с замочком:

Вообще если у Вас не идет подключение, то следует смотреть логи Mikrotik и еще раз проверить настройка PPTP сервера.

На заметку: я описываю свои настройки, у меня работает Mikrotik Cloud + DNS + CNAME запись, в Вашем случае это может не работать, но это не означает что заметка не функциональна. Просто это не Ваш случай. Вообще лучше использовать организацию VPN ресурса с использованием L2TP + IPSEC, а не pptp. Только вот дефолтного клиента в Ubuntu Trusty Desktop нет и нужно изобретать велосипед или искать дополнительные надстройки.

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

Итак я для себя оформил, как и что нужно сделать дабы с Ubuntu Trusty Desktop подключиться к Mikrotik через VPN сервис. На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

Источник

IPIP IPsec VPN туннель между Linux машиной и Mikrotik за NAT провайдера

upd: Отличный разбор про устройство современного стэка IPsec протоколов ESPv3 и IKEv2 опубликовал stargrave2. Рекомендую почитать.

Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

  • Eth0 1.1.1.1/32 внешний IP
  • ipip-ipsec0 192.168.0.1/30 будет наш туннель

Mikrotik: CCR 1009, RouterOS 6.46.5

  • Eth0 10.0.0.2/30 внутренний IP от провайдера. Внешний IP NAT провайдера динамический.
  • ipip-ipsec0 192.168.0.2/30 будет наш туннель

IPsec туннель на Linux машине будем поднимать с помощью racoon. Не буду описывать подробности, есть хорошая статья у vvpoloskin.

Читайте также:  Windows cmd exe logs

Устанавливаем необходимые пакеты:

Настраиваем racoon, он условно будет выступать в роли ipsec сервера. Так как mikrotik в main режиме не может передавать дополнительный идентификатор клиента, а внешний ip адрес через который он коннектится к Linux динамический, использовать preshared key (авторизацию по паролю) не получится, так как пароль должен сопоставляться либо с ip адресом подключающегося хоста, либо с идентификатором.

Будем использовать авторизацию по RSA ключам.

Демон racoon использует ключи в формате RSA, а mikrotik — в формате PEM. Если генерировать ключи утилитой plainrsa-gen идущей вместе с racoon, то конвертировать публичный ключ для Mikrotika в формат PEM с ее помощью не получится — она конвертирует только в одну сторону: PEM в RSA. Сгенерированный plainrsa-gen ключ не смогли прочитать ни openssl, ни ssh-keygen, поэтому с их помощью также не получится выполнить конвертацию.

Мы сгенерируем PEM ключ с помощью openssl, а затем конвертируем его для racoon с помощью plainrsa-gen:

Полученные ключи положим в папку: /etc/racoon/certs/server. Не забываем установить владельцем пользователя, от чьего имени запускается демон racoon (обычно root), права 600.

Настройку mikrotik опишу при подключении через WinBox.

Ключ server-name.pub.pem загрузим в mikrotik: Меню «Files» — «Upload».

Открываем раздел «IP» — «IP sec» — вкладка «Keys». Теперь генерируем ключи — кнопка «Generate Key», затем экспортируем публичный ключ mikrotika «Expor Pub. Key», скачать его можно из раздела «Files», правой кнопкой по файлу — «Download».

Импортируем публичный ключ racoon, «Import», в выпадающем списке поля «File name» ищем загруженный ранее нами server-name.pub.pem.

Публичный ключ mikrotik нужно сконвертировать

и положить в папку /etc/racoon/certs не забыв про владельца и права.

Возвращаемся в раздел «IP» — «IPsec»

Вкладка «Profiles»
Параметр
Значение
Name На ваше усмотрение (по умолчанию default)
Hash Algorithm sha512
Encryption Algorithm aes-128
DH-Group modp2048
Proposhal_check claim
Lifetime 1d 00:00:00
NAT Traversal true (ставим галочку)
DPD 120
DPD Maximum failure 5
Вкладка «Peers»
Параметр
Значение
Name На ваше усмотрение (далее MyPeer)
Address 1.1.1.1 (IP linux машины)
Local Address 10.0.0.2 (IP WAN интерфейса mikrotik)
Profile default
Exchange Mode main
Passive false
Send INITIAL_CONTACT true
Вкладка «Proposal»
Параметр
Значение
Name На ваше усмотрение (далее MyPeerProposal)
Auth. Algorithms sha512
Encr. Algorithms aes-128-cbc
Lifetime 08:00:00
PFS Group modp2048
Вкладка «Identities»
Параметр
Значение
Peer MyPeer
Atuh. Method rsa key
Key mikrotik.privet.key
Remote Key server-name.pub.pem
Policy Tamplate Group default
Notrack Chain пусто
My ID Type auto
Remote ID Type auto
Match By remote id
Mode Configuration пусто
Generate Policy no
Вкладка «Policies — General»
Параметр
Значение
Peer MyPeer
Tunnel true
Src. Address 192.168.0.0/30
Dest. Address 192.168.0.0/30
Protocol 255 (all)
Template false
Вкладка «Policies — Action»
Параметр
Значение
Action encrypt
Level requier
IPsec Protocols esp
Proposal MyPeerProposal

Скорее всего у вас, как и у меня, на WAN интерфейсе настроен snat/masquerade, это правило надо скорректировать, чтобы исходящие пакеты ipsec уходили в наш туннель:
Переходим в раздел «IP» — «Firewall».
Вкладка «NAT», открываем наше правило snat/masquerade.

Вкладка «Advanced»
Параметр
Значение
IPsec Policy out: none

Рестартуем демона racoon

Если при рестарте racoon не запускается, значит в конфиге имеется ошибка, в syslog racoon выводит информацию о номере строки, в которой обнаружена ошибка.

Демон racoon при загрузке ОС стартует раньше поднятия сетевых интерфейсов, а мы указали в секции listen опцию strict_address, необходимо добавить в файл systemd юнита racoon
/lib/systemd/system/racoon.service, в секцию [Unit], строку After=network.target.

Сейчас наши ipsec туннели должны подняться, смотрим вывод:

Если туннели не поднялись, смотрите syslog, либо journalctl -u racoon.

Теперь необходимо настроить L3 интерфейсы, чтобы можно было маршрутизировать трафик. Есть разные варианты, мы будем использовать IPIP, так как его mikrotik поддерживает, я бы использовал vti, но, к сожалению, в mikrotik его до сих пор не реализовали. От IPIP он отличается тем, что дополнительно может инкапсулировать multicast и ставить метки (fwmark) на пакеты, по которым можно их фильтровать в iptables и iproute2 (policy-based routing). Если нужна максимальная функциональность — тогда, например, GRE. Но не стоит забывать, что за дополнительную функциональность платим большим оверхедом.

Перевод неплохого обзора туннельных интерфейсов можно посмотреть тут.

На Linux:

Теперь можно добавить маршруты для сетей за mikrotik

Чтобы наш интерфейс и маршруты поднимались после перезагрузки, нужно описать интерфейс в /etc/network/interfaces и там же в post-up добавлять маршруты, либо прописать все в одном файле, например, /etc/ipip-ipsec0.conf и дергать его через post-up, не забудьте про владельца файла, права и сделать его исполняемым.

На Mikrotik:

Раздел «Interfaces», добавляем новый интерфейс «IP tunnel»:

Вкаладка «IP tunnel» — «General»
Параметр
Значение
Name На ваше усмотрение (далее IPIP-IPsec0)
MTU 1480 (если не указывать, то mikrotik начинает резать mtu до 68)
Local Address 192.168.0.2
Remote Address 192.168.0.1
Ipsec Secret Деактивируем поле (иначе будет создан новый Peer)
Keepalive Деактивируем поле (иначе интерфейс будет постоянно выключаться, так как у mikrotika какой-то свой формат этих пакетов и с linux не работает)
DSCP inherit
Dont Fragment no
Clamp TCP MSS true
Allow Fast Path true

Раздел «IP» — «Addresses», добавляем адрес:

Параметр Значение
Address 192.168.0.2/30
Interface IPIP-IPsec0

Теперь можно добавлять маршруты в сети за linux машиной, при добавлении маршрута, gateway будет наш интерфейс IPIP-IPsec0.

PS

Так как наш сервер linux является транзитным, то на нем имеет смысл задать параметр Clamp TCP MSS для ipip интерфейсов:

создаем файл /etc/iptables.conf со следующим содержимым:

и в /etc/network/interfaces
post-up iptables-restore

Источник

VPN между Debian и Microtic

Доброго дня Никак не получается настроить VPN соединение из Debian к microtic, вроде перепробовал все мануалы, но в основном натыкаюсь на примеры с ключами, у меня же настроили что авторизация идет по паролю. Собственно есть телефон на android где это работает, там в профиле vpn прописано тип(L2TP/IPSec PSK) адрес сервера, общий ключ IPSEC. При подключении ввожу логин и пароль и вуаля, я в сети. ЧТо нужно сделать чтоб повторить подобное на debian пока не могу представить. Просьба подсказать, а то уже голова трещит

«` apt install strongswan xl2tpd «` Потом находишь день на чтение документации, и вуаля, ты в сети.

apt install strongswan xl2tpd

Потом находишь день на чтение документации, и вуаля, ты в сети.

хм, день это обнадеживает, я побился часа 2-3, не получилось и решил написать, думал что дело не хитрое. На андроиде то все работает вообще без проблем )

дело хитрое, сначала добейся работы ipsec, потом l2tp, потом убедись что l2tp поднимается внутри ipsec канала.

если не сложно, дайте ссылку на годную статью, спасибо. А то в гугле много старого

Чорт побери, это же гениально и все работает. Большое спасибо добрый человек, это то что мне надо

А чего OpenVPN, не?

Может ТС хочет еще через ведроид и винду потом коннектиться без установки дополнительного софта. Вполне себе юзкейс. А так да, по настройке OpenVPN как-то попроще выглядит.

а микротик уже научили в openvpn через udp?

ну мне принципиально разницы не было, была задача подключится к рабочему пк из linux через microtic, и по статье, указанной alter78rus это получилось. А вы считаете что openvpn будет лучше ?

да самое интересное, что ведроид был настроен за минут 10-15, а вот с linux возникли траблы.

Нет. Но не факт, что ТСу критичен TCP meltdown на его нагрузках и задержках.

Лучше по какому критерию?

По производительности: хуже, но это проявляется при больших потоках данных. Микротики пару десятков мегабит через OpenVPN точно держат без проблем, думаю и больше.

По простоте настройки: и да, и нет. Нужно настраивать только сам OpenVPN, который и тоннель сделает, и шифрование с аутентификацией поднимет. Конфиг достаточно короткий и понятный. Но там аутентификация либо по секретному ключу (надо заранее на машины раскидать), либо через сертификаты (больше телодвижений, но на деле то же самое; сертификаты удобны, когда много машин). Сертификаты легко сгенерить через easy-rsa. Может и по паролю можно настроить, но я не знаю.

По удобству: его нет из коробки нигде, надо устанавливать. Микротики поддерживают только TCP-режим, который подвержен TCP meltdown, который проявляется при херовом линке. На практике не встречался с таким, даже когда клиент сидит на длинном радиолинке в зажопинске.

По защищенности: не слышал, чтобы он был дырявее IPsec.

Но если ты уже настроил ipsec, и он работает достаточно хорошо, то просто забей и радуйся жизни.

А зачем? Вроде бы как TCP итак за глаза.

У микротыков с OpenVPN другая проблема — он с easyrsa3 не дружит. Ну то есть, не поддерживает свойства сертификата server и client.

А потому для микротыков приходится руками серты генерить.

во времена летсэнкриптов и работающего везде ikev2, продолжать хвалить опенвпн и «генерить что-то там руками». серьёзно?

У микротыков с OpenVPN другая проблема — он с easyrsa3 не дружит. Ну то есть, не поддерживает свойства сертификата server и client.

А можно отсюда поподробнее? Тут вот есть сервер OpenVPN с клиентом mikrotik и сертификатами из easyrsa3 и даже работает.

Прошивка из последних?

Я уж года два не делал новых серверов openvpn с микротыками.

и в ней используется старый easy-rsa, в котором свойств клиент-сервер не было. Хотя. в ней вот они задают типа сервер и клиент.

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

На самом деле, особых отличий «дорогих» от «дешевых» не замечал.

Там прошивка-то одна и та же.

Пару лет назад было, что подсовываешь сгенерированные easyrsa3 серты — и микротык просто не может установить связь. То ли TLS handshake failed писал, то ли Verify error — я уж и не помню по давности.

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

Половину гугла перерыл, пока не нашел объяснение.

Да потом уже пожалели, что микротык взяли. Какой-нибудь стартовый Ubiquity стоит почти столько же, но удобства на порядок больше. Для того устройства как раз основная задача была быть VPN-клиентом.

Источник

Читайте также:  Acer aspire 5738g драйвера wifi windows 10
Оцените статью