- Mikrotik openvpn client to linux server
- ovpn-client mikrotik и Сервер на Ubuntu
- Настройка OpenVPN на Ubuntu Server для подключения клиентом Mikrotik
- Настройка сервера OpenVPN
- Настройка OpenVPN-клиента (Mikrotik)
- На сервере
- Настройка доступа к сети Интернет через сервер VPN
- Настройка анонимности
- Проброс портов (Port Forwarding)
- Читайте также
- use Catalyst;
Mikrotik openvpn client to linux server
Обнаружена блокировка рекламы: Наш сайт существует благодаря показу онлайн-рекламы нашим посетителям. Пожалуйста, подумайте о поддержке нас, отключив блокировщик рекламы на нашем веб-сайте.
ovpn-client mikrotik и Сервер на Ubuntu
Господа , всем привет. Вообщем решил я развернуть ovpn клиента на микроте. Суть такая: есть у меня сервер на убунте , который генерит мне клиентские «профиля» путем баш скрипта ( openvpn-install.sh ). Он весьма популярный. выглядит примерно так:
Welcome to OpenVPN-install!
The git repository is available at: https://github.com/angristan/openvpn-install
It looks like OpenVPN is already installed.
What do you want to do?
1) Add a new user
2) Revoke existing user
3) Remove OpenVPN
4) Exit
Select an option 4:
При его помощи он сам создает пользака , и предоставляет мне уже готовый профиль подключения для программы open-vpn. С программой на винде все окей Внутри этого профиля конечно есть сертификаты. Внутри сам профиль OVPN выглядит так. (Сертификаты сократил чтоб текста было меньше )
client
proto tcp-client
remote 777.777.777.777 1194
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_2OonN4xkoO2bpScg name
auth SHA256
auth-nocache
cipher AES-128-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
——BEGIN CERTIFICATE——
MIIBwDCCAWegAwIBAgIJAM4GaSVX0lQpMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM
ld8V9sMYVxt9WcIxcbXZRrqrCNM=
——END CERTIFICATE——
——BEGIN CERTIFICATE——
MIIBzzCCAXWgAwIBAgIRAMwnhnWutnNVUMZy63qIHCkwCgYIKoZIzj0EAwIwHjEc
qwIgPnr2m2Rd+N/3ZRdNWjFyJdiSc7L6dqo0V9jSeN03rDg=
——END CERTIFICATE——
——BEGIN PRIVATE KEY——
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg7e0Lv6vL8q6xCjuV
bSx+Dy9G8I/kWF/GI7aDE6ic9+ihRANCAAQiAuJwxsBlSDaTalxP2wNsx6qwTaii
bvJvga8ckJY2uY8xGCcFqGqZizXxwH4xrHr04y0HHL93L4fLXmTDlO4d
——END PRIVATE KEY——
#
# 2048 bit OpenVPN static key
#
——BEGIN OpenVPN Static key V1——
a16131c230f0a9336f779f23a8ec7539
291fb61db13081f08256bfb522af9be8
——END OpenVPN Static key V1——
Отсюда и вопрос: могу ли используя эти сертификаты прикрутить их к микроту? Увы мануалов мало на эту тему , поэтому прошу помощи у вас.
Заранее спасибо
Настройка OpenVPN на Ubuntu Server для подключения клиентом Mikrotik
Обновлено: 08.03.2023 Опубликовано: 27.06.2022
В данной инструкции мы рассмотрим настройку сервера OpenVPN на Ubuntu и конфигурирование Mikrotik для подключения по VPN.
Настройка сервера OpenVPN
Мы настроим наш сервер, чтобы он слушал на нестандартном порту OpenVPN — 443. Откроем порт в брандмауэре:
* если мы будем использовать другой порт, меняем его на соответствующий. Также необходимо обратить внимание на протокол tcp. Необходимо использовать именно его, так как Mikrotik не поддерживаем UDP для подключения к OpenVPN. Для сохранения правил используем утилиту iptables-persistent:
* где openvpn — сам сервер и клиента OpenVPN; easy-rsa — утилита для создания сертификатов. Создаем каталог, в котором разместим готовые сертификаты для OpenVPN:
export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»
* данные значения могут быть любыми, но лучше их задать осмысленно. Для удобства. Рассмотрим процесс формирования сертификата с использованием RSA3 пошагово. 1. Инициализируем PKI:
* nopass можно упустить, если хотим повысить безопасность с помощью пароля на сертификат. На запрос «Common Name» можно просто нажать Enter:
port 443
proto tcp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh.pem
server 172.16.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 32
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 4
mute 20
daemon
mode server
cipher BF-CBC
- port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных. Порт 1194 является стандартным для OpenVPN).
- proto — используемый транспортный протокол.
- dev — виртуальный сетевой адаптер, который будет создан для работы OpenVPN.
- ca — путь до сертификата корневого центра сертификации.
- cert — путь до открытого сертификата сервера.
- key — путь до закрытого сертификата сервера.
- dh — путь до ключа Диффи — Хеллмана.
- server — задаем IP-адрес сервера в сети VPN.
- ifconfig-pool-persist — путь к файлу для хранения клиентских IP-адресов.
- keepalive X Y — каждые X секунд отправляется ping-запрос на удаленный узел. Если за Y секунд не получено ответа — перезапускать туннель.
- max-clients — максимум одновременных подключений.
- persist-key — не перезагружать ключи при повторной загрузки из-за разрыва соединения.
- persist-tun — не изменять устройства tun/tap при перезапуске сервера.
- status — путь до журнала статусов.
- log-append — путь до файла лога с дополнительным выводом информации.
- verb — уровень логирования событий. От 0 до 9.
- mute — ограничение количества подряд отправляемых в лог событий.
- daemon — работа в режиме демона.
- mode — в каком режиме работает openvpn (сервер или клиент).
- cipher — тип шифрования. В нашем примере это blowfish 128.
Создадим каталог для логов:
Разрешаем автоматический старт сервиса vpn и перезапускаем его:
systemctl enable openvpn@server
systemctl restart openvpn@server
Настройка OpenVPN-клиента (Mikrotik)
Сертификат должен быть сформирован на сервер, после чего перенесен на микротик. Рассмотрим процесс подробнее.
На сервере
Создадим каталог, куда поместим сертификаты для обмена:
* сертификаты будут скопированы в каталог /tmp для удобства их переноса на компьютер.
Переходим в каталог easy-rsa:
Создаем сертификат для клиента:
./easyrsa build-client-full client1 nopass
* в данном примере будет создан сертификат для узла client1 (название может быть любым).
Вводим пароль, который указывали при создании корневого сертификата:
Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:
Скопируем ключи во временную директорию:
cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt /tmp/keys/
* название client1 зависит от имени сертификата, который мы ему дали при создании.
Разрешим доступ на чтение каталога с ключами всем пользователям:
Переносим данный каталог с ключами на компьютер, с которого мы будем настраивать Mikrotik. Это можно сделать с помощью различных утилит, например WinSCP.
Подключаемся к роутеру Mikrotik. Это можно сделать с помощью веб-браузера или специальной программы Winbox. Мы рассмотрим вариант с использованием последней.
Заходим в настройки роутера — переходим в раздел Files — кликаем по Upload и выбираем наши 3 сертификата:
Кликаем по OK. Нужные нам файлы окажутся на роутере.
Переходим в System — Certificates:
Кликаем по Import:
* импорт делаем именно в такой последовательности.
Теперь переходим в раздел PPP — создаем новое соединение OVPN Client:
На вкладке Dial Out настраиваем наше соединение:
- Connect To — адрес сервера OpenVPN, к которому должен подключиться Mikrotik.
- Port — порт, на котором слушает OpenVPN.
- User — учетная запись для авторизации. Мы не настраивали проверку пользователя, но без указания данного поля Mikrotik не даст сохранить настройку.
- Certificate — выбираем сертификат, который импортировали на Mikrotik.
- Auth — алгоритм криптографического хеширования, который должен использоваться для подключения.
- Chiper — криптографический алгоритм шифрования.
- Add Default Route — если поставить данную галочку, все запросы в другую подсети (Интернет) должны пойти через VPN соединение.
Нажимаем OK — наш роутер должен подключиться к серверу.
Настройка доступа к сети Интернет через сервер VPN
Для того, чтобы наш сервер VPN мог раздавать Интернет подключившимся к нему устройствам, выполняем несколько действий.
sysctl -p /etc/sysctl.d/gateway.conf
Добавляем фаервольные правила. Как правило, управление брандмауэром netfilter в Linux на базе Debian выполняется с помощью утилиты iptables.
Настройка выполняется из расчета, что сеть Интернет настроена через интерфейс ens3:
iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE
iptables -I FORWARD -i tun0 -o ens3 -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i tun0 -o ens3 -j ACCEPT
Предполагается, что tun0 используется для VPN сети (данное имя присваивается серверу OpenVPN по умолчанию), а ens3 — внешней. Посмотреть имена интерфейсов можно командой:
Сохраняем настройки iptables:
apt-get install iptables-persistent
Настройка анонимности
В сети есть различные порталы для проверки анонимности. Например, сайты whoer или 2ip. Приведем некоторые настройки для получения 100%-го результата.
1. Отключение icmp. По времени ответа на ping можно определить отдаленность клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp.
sysctl -p /etc/sysctl.d/icmp.conf
2. Настройка MTU.
Для решения проблем с VPN fingerprint, на стороне сервера добавляем 2 опции:
systemctl restart openvpn@server
Проброс портов (Port Forwarding)
Необходим для перенаправление сетевых запросов на Mikrotik, стоящий за VPN.
Настройка выполняется двумя командами:
iptables -t nat -I PREROUTING -p tcp -i ens3 —dport 80 -j DNAT —to-destination 172.16.10.6:80
iptables -I FORWARD -p tcp -d 172.16.10.6 —dport 80 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
* где ens3 — внешний сетевой интерфейс. 172.16.10.6 — IP-адрес роутера Mikrotik, который он получит после подключения.
Не забываем сохранить правила:
Читайте также
Другие полезные инструкции на тему VPN:
use Catalyst;
Выбор провайдеров vps и разбор их тарифов выходит за рамки данной статьи. Скажу только, что для openvpn-сервера подойдет любой минимальный тариф за $5 в месяц и даже меньше. Например, самый дешевый дроплет DigitalOcean подходящий вариант.
В качестве дистрибутива Linux я буду использовать Debian 10 Buster.
Поддержка возможностей Openvpn у RouterOS не полная:
- Нет возможности работать по протоколу UDP, только по TCP.
- Не поддерживается сжатие трафика.
- Нет TLS аутентификации.
Сначала нужно сгенерировать центр сертификации (CA), сертификаты сервера и клиента. Для этого в Debian 10 используется набор скриптов Easy-RSA версии 3, которая довольно сильно отличается от предыдущей второй версии. Для желающих глубокого погружения в тему отсылаю к официальной документации. Здесь же приведу необходимые команды с кратким пояснением.
$ sudo make-cadir /etc/easy-rsa $ sudo -i # cd /etc/easy-rsa # ./easyrsa init-pki # ./easyrsa build-ca nopass # ./easyrsa gen-dh # ./easyrsa gen-crl
# ./easyrsa gen-req myserver nopass # ./easyrsa sign-req server myserver
# ./easyrsa gen-req mikrotik nopass # ./easyrsa sign-req client mikrotik
$ sudo mcedit /etc/openvpn/server/myserver.conf
ca /etc/easy-rsa/pki/ca.crt cert /etc/easy-rsa/pki/issued/myserver.crt key /etc/easy-rsa/pki/private/myserver.key dh /etc/easy-rsa/pki/dh.pem crl-verify /etc/easy-rsa/pki/crl.pem proto tcp dev tun topology subnet server 192.168.188.0 255.255.255.0 client-config-dir /etc/openvpn/ccd
$ sudo mkdir /etc/openvpn/ccd $ sudo mcedit /etc/openvpn/ccd/mikrotik
ifconfig-push 192.168.188.200 255.255.255.0
$ sudo systemctl start openvpn-server@myserver
$ sudo systemctl status openvpn-server@myserver
$ sudo systemctl enable openvpn-server@myserver
Импортируем в хранилище сертификатов сначала сертификат, затем приватный ключ клиента, меню [System >> Certificates >> Import]:
Добавляем клиентское подключение к openvpn-серверу, меню [PPP >> Interface >> Add >> OVPN Client >> Dial Out]: