Подключение через 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 Connections — work (Созданная конфигурация для удаленного подключения)
Если все настроено правильно, то рабочая станция 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.
Устанавливаем необходимые пакеты:
Настраиваем 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-клиентом.
Источник