Настройка openvpn client на mikrotik с заменой шлюза

Mikrotik RouterOS. Создаем OpenVPN сервер для подключения клиентов Windows и Android

Сегодня мы рассмотрим довольно изъезженную тему про поднятие OpenVPN сервера на Mikrotik. Но в отличие от множества мануалов, которые можно найти в сети мы будем настраивать именно TUN (в терминологии Mikrotik – IP), а не TAP (Ethernet) сервер, причем таким образом, чтобы к нему могли подключаться как Windows клиенты, так и клиенты на Android.

Большинство мануалов в сети, например, этот предполагают поднятие OpenVPN сервера в Mode: Ethernet. Однако при таком варианте настройки Windows клиенты будут подключаться к нему без проблем, а вот при попытке подключения с Android ничего не получится, т.к. два распространенные клиента под Android – OpenVPN Connect и OpenVPN for Android не умеют работать с TAP-интерфейсом.

Вообщем, наша цель – создать такой сервер, чтобы мы без проблем коннектились к нему и из под Windows, и из под Android и не испытывали при этом никаких проблем. Предполагается что вы уже знакомы с генерацией сертификатов для OpenVPN-сервера и можете сгенерировать их либо в самом Mikrotik'е, либо с использованием OpenSSL. Последний вариант, кстати, хорошо расписан в этой статье.

Поэтому здесь мы подробно не будем останавливаться на этом.

Настраиваем OpenVPN следующим образом:

Стандартный для OpenVPN TCP порт 1194 мы изменили на 8888, также не забываем что нам нужно разрешить на него входящие подключения в firewall'е. В mode выставляем ip, что соответствует tun интерфейсу, а в netmask – ставим 30. Как все это будет работать – вы поймете чуть позже. 

В openvpn-profile мы ничего не настраиваем, т.е. Local Address и Remote Address оставляем пустыми. Вместо этого мы будем назначать адреса вручную в PPP -> Secrets для каждого клиента в отдельности. Предположим что у нас их два, один – смартфон на Android (android01), второй – клиент на Windows (правда назвал я его зачем-то android02):

Теперь давайте разберемся … у нас используется tun интерфейс, при этом должна использоваться маска подсети /30 (почему так – описывать здесь не буду, почитайте мануалы по OpenVPN) … Что же такое маска /30 (255.255.255.252), чтобы было нагляднее – давайте я приведу вам пример нескольких подсетей с такой маской, включая адреса хостов:

Сеть 1:

Сеть: 172.16.0.0/30
Кол-во хостов: 4
Базовый адрес сети: 172.16.0.0
Широковещательный адрес сети: 172.16.0.3
Первый адрес хоста: 172.16.0.1
Последний адрес хоста: 172.16.0.2
Маска сети: 255.255.255.252

Сеть 2:

Сеть: 172.16.0.4/30
Кол-во хостов: 4
Базовый адрес сети: 172.16.0.4
Широковещательный адрес сети: 172.16.0.7
Первый адрес хоста: 172.16.0.5
Последний адрес хоста: 172.16.0.6
Маска сети: 255.255.255.252

Т.о. мы получаем что при использовании tun-адаптера local и remote address должны быть из одной подсети /30, так, для клиента android01 мы прописали local address 172.16.0.1, а remote address 172.16.0.2, для android02 – 172.16.0.5 и 172.16.0.6 соответственно. Теперь напишем клиентский конфиг:clientdev tunproto tcpremote openvpn-server-ip 8888resolv-retry infinitenobindpersist-keypersist-tunca ca.crtcert android01.crtkey android01.keyverb 3pullauth-user-pass auth.cfgredirect-gateway def1dhcp-option DNS 8.8.8.8dhcp-option DNS 8.8.4.4tls-cipher TLS-RSA-WITH-AES-256-CBC-SHAОбратите внимание, здесь в auth-user-pass задается имя файла с логином и паролем auth.cfg (файл состоит из двух строк, на первой логин, на второй пароль), redirect-gateway def1 – нужна для переопределения основного шлюза, т.е. чтобы при подключении к OpenVPN-серверу весь траффик шел через него, и последняя строка tls-cipher задает используемый тип шифрования. Без нее мы получим проблему с TLS failed при соединении, которая подробно описана вот здесь (вообще на форуме Mikrotik'a очень много тем про ошибку TLS при подключении, но решения так нигде и не приведено, по-крайней мере сходу оно не находится, причем как утверждают там же на ранних версиях RouterOS все работало, а вот после обновления версии прошивки почему-то перестало).

Проверяем подключение в OpenVPN Connect и OpenVPN for Android:

Как видно, все работает. Под Windows, с использованием OpenVPN 2.3.8 x86_64-w64-mingw32 все также отлично подключается:

  • chevron_left
  • chevron_right

Источник: https://solved3g.blogspot.com/2015/09/mikrotik-routeros-openvpn-windows.html

Настройка MikroTik в качестве OVPN-сервера с использованием клиенских сертификатов и списка отзыва

28 октября 2015 в 12:27 (МСК) | сохранено28 октября 2015 в 12:47 (МСК)<\p>

Передо мной возникла задача настроить MikroTik в качестве OVPN сервера с использованием клиентских сертификатов и возможностью их отзыва. В интернетах на данную тему чёткого How-To я не нашёл, поэтому решил изобрести свой собственный велосипед.

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

Касательно PKI есть два варианта: 1.

С использованием встроенного в ROS PKI:

  • + можем выдавать и отзывать сертификаты непосредственно на микротике, иначе нам придётся после каждого отзыва вручную обновлять crl на нём
  • — случайное удаление с микротика CA-сертификата, используемого для подписи и отзыва сертификатов — фатально, импорт ранее выгруженных сертификата и ключа CA не поможет, а дальнейшее использование будет возможно только с использованием openssl и ручной загрузкой crl после каждого отзыва (конечно, если у вас есть актуальный бэкап всего этого)
  • + если мы бэкапим весь конфиг микротика, то вместе с ним бэкапится и CA

2. С использованием стороннего PKI — openssl, или windows server PKI (НЕ используйте доверенные CA типа StartSSL, они выдают клиентские сертификаты не только вам):

  • + защищены от недостатка первого варианта
  • — в случае openssl необходимо вручную загружать crl на микротик после каждого отозванного сертификата
  • + в случае windows server PKI теоретически можно реализовать проверку подлинности через механизм SCEP, но пока не проверял
  • — в случае windows server PKI нужен домен, без него этот самый PKI работать не будет

Я буду рассматривать только первый вариант, т.к., во-первых, он мне подходит, во-вторых, он более гибкий. Так же я не буду подробно останавливаться на параметрах сертификатов и прочих разных параметрах стандартных инструментов ROS, т.к. их исчерпывающее описание есть на официальной MikroTik Wiki.
1.1. Сертификат CA:

/certificate add name=template-CA country=”” state=”” locality=”” organization=”” unit=”” common-name=”test-CA” key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign

/certificate sign template-CA ca-crl-host=127.0.0.1 name=”test-CA”

Примечание: ca-crl-host= — обязательный параметр, иначе список отзыва не будет создан; полный путь к списку отзыва будет указан в параметрах сертификата, графа “[1]Точка распределения списка отзыва (CRL)”; в принципе, можно указать любой из ip-адресов нашего микротика, тот что укажем — и будет прописан в сертификате. Доменные имена параметром не поддерживаются, к сожалению. 1.2. Сертификат сервера:

/certificate add name=template-SRV country=”” state=”” locality=”” organization=”” unit=”” common-name=”test-srv-OVPN” key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server

/certificate sign template-SRV ca=”test-CA” name=”test-srv-OVPN”

Примечание: для сертификата сервера key-usage лучше не менять, почему так — описано здесь (а если очень хотим поменять — то там же написано что нужно прописать в конфиге клиента для этого).

Примечание: в отличие от SSTP — OVPN не проверяет соответствие common-name сертификата сервера fqdn'у этого сервера. 1.3. Шаблон для сертификатов клиентов:

/certificate add name=template-CL country=”” state=”” locality=”” organization=”” unit=”” common-name=”test-client-ovpn-template” key-size=4096 days-valid=365 key-usage=tls-client

1.3.1 Сертификат первого клиента:

/certificate add name=template-CL-to-issue copy-from=”template-CL” common-name=”test-client-ovpn-1″

/certificate sign template-CL-to-issue ca=”test-CA” name=”test-client-ovpn-1″

1.3.2. Сертификат второго и последующих клиентов: См. п. 3.1, но меняем значение параметров.

common-name=”test-client-ovpn-1″

Для первой команды, это значение должно быть уникальным в пределах одного CA.

name=”test-client-ovpn-1″

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

certificate issued-revoke %cert-name%

Где %cert-name% — поле name= подписанного сертификата, то есть отображаемое PKI микротика. Примечание: можно настроить в режиме tun («ip» в ROS), а можно в режиме tap («ethernet» в ROS). Режим tun — обычный туннель.

Режим tap — эмуляция полноценного ethernet, в частности в режиме tap клиентов можно объединить в режим моста и они будут прекрасно друг друга видеть. В теории в режиме tap можно запустить DHCP-сервер, но в текущей версии ROS это не реализовано. 2tun.1.

Задаём пул адресов для OVPN-клиентов (можно задать непосредственно в PPP-profile):

/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.254

2tun.2. Создаём PPP-profile для OVPN-сервера:

/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool<\p>

Источник: https://sohabr.net/habr/post/269679/

Mikrotik: настройка OVPN-client через консоль

Данная заметка поможет:

  • обеспечить доступ к микротик через SSH-ключи;
  • немного поднять защищенность микротика;
  • подключить микротик openvpn клиентом к внешнему серверу.

При изложении предполагается:

  • mikrotik “из магазина” или сброшен к дефолтным настройкам и его адрес 192.168.88.1;
  • вся настройка ведется с компьютера под управлением Linux – имеющему доступ к микротику по сети :). И хранящему на себе openvpn ключи и сертификаты настраиваемого клиента;
  • админ зашел в консоль Linux-а выше с правами root;
  • внешний интерфейс linux-box = eth0.

I. При настройке микротика рекомендуются следующие дополнительные действия:

  1. устанавить новый порт SSH, например 22222:
    /ip service edit ssh port=22222
  2. изменить пароль admin;
  3. после завершения настройки добавить нового пользователя с полными правами, а admin перевести в группу read:
  4. изменить дефолтный порт winbox:
    /ip service edit winbox port=62623;
  5. закрыть на файрвол любой доступ к Mikrotik извне, кроме порта 22222.

II. Если компьютер находится в одной сети с микротиком, то достаточно:

export MKT_IP=192.168.88.1 ; ifconfig eth0:0 192.168.88.10/24 up && ping $MKT_IP -с 5

Т.е. просто поднимите на внешнем интерфейсе alias в дефолтной сети микротика не перенастраивая интерфейсы или файрвол вашего linux-box.

С помощью ssh-keygen создаем на своем linux пару ключей в директории /root/.ssh для двух пользователей – нового админа, вместо admin, и пользователя backup, с обрезанными правами. Его используем для настройки openvpn клиента и, в будущем, если надо – для backup-ов конфы:

ssh-keygen -t rsa -f /root/.ssh/mktbackup_rsa

здесь на вопросы вводим ПУСТОЙ пароль

ssh-keygen -t rsa  -f /root/.ssh/mktroot_rsa

а здесь – нормальный, случайный.

Копируем public “половинки” на микротик:

scp /root/.ssh/mkt*.pub -P 22222 admin@$MKT_IP:/

На приглашение введите пароля админа:  файлы должны скопироваться.

III. Заходим на mikrotik по SSH:

  1. ssh -p 22222 admin@$MKT_IP 
    где сначала проверяем:
    /file print where name=mktbackup_rsa.pub
    что файл скопировался.
  2. Добавляем нового админа: /user add name=root group=full

    /user ssh-keys import user=root public-key-file=mktroot_rsa.pub

  3. Создаем группу для backup-админа и его самого: /user group add name=backup policy=local,ssh,ftp,read,write,api /user add name=backup group=backup

    /user ssh-keys import user=backup public-key-file=mktbu_rsa.pub

  4. /user set admin password= ; user set admin group=read

Vous a la!

Замечу попутно, что новый админ – root – НЕ ИМЕЕТ установленного пароля. Стал быть и подобрать его нельзя 🙂

IV. Настраиваем openvpn клиента.

  1. Отключаемся от микротика.
  2. Проверям доступ “по ключу”: ssh -i /root/.ssh/mktbackup_rsa -p 22222 root@$MKT_IP

    после залогинивания – без лишних вопросов – отключаемся.

  3. Копируем файлы openvpn клиента – предварительно сделайте cd в директорию с ключами: for f in ca.crt clnt.crt clnt.key ; do  scp -i /root/.ssh/mktbackup_rsa -P 22222 $f backup@$MKT_IP:/

    done

  4. Устанавливаем сертификаты из скопированных файлов: ssh -p 22222 -i /root/.ssh/mktbackup_rsa backup@$MKT_IP   “/certificate import file-name=ca.crt passphrase=”” ; /certificate import file-name=clnt.crt passphrase=”” ;

     /certificate import file-name=clnt.key passphrase=”” “

  5. Переименовываем сертификаты: ssh -p 22222 -i /root/.ssh/mktbackup_rsa backup@$MKT_IP

     “/certificate set ca.crt_0 name=2ARC_CA ; /certificate set clnt.crt_0 name=2ARC_CLNT”

  6. Поднимаем интерфейс клиента: ssh -p $MKT_SSH -i $BOX_SSHKEY backup@$MKT_ADDR

     “/interface ovpn-client add connect-to=$OVPNSRV_ADDR port=$OVPNSRV_PORT add-default-route=no auth=sha1 mode =ip certificate=2ARC_CLNT disabled=no user=clnt password=”” name=2arc profile=default”

  7. Cервер должен пинговаться с микротика. В логах сервера вы должны увидеть “историю” успешного подключения.
Читайте также:  Установка bind 9 (named) в centos 7

Собственно все, удачи в администрировании! 

Вернуться в список статей

Источник: https://arctech.ru/info/sistemnoe_administrirovanie/sistemnoe_administrirovanie/administrirovanie_mikrotik/mikrotik_nastrojka_ovpn-client_cherez_konsol/

Настройка OpenVPN в связке Mikrotik-Ubuntu

В любой компании, где существует более одного офиса, рано или поздно возникает необходимость в объединении этих самых офисов. Многие провайдеры предлагают такие услуги, но попросят за это денег, да и кто знает, что там творится на стороне провайдера? Поэтому сделаем все сами, и рассмотрим вариант объединения с помощью Mikrotik RB750, Ubuntu и OpenVPN.

Почему Mikrotik?

Дело в нативной поддержке, простоте настройки, более стабильном поведении, низких (в сравнении) пингах и множестве других приятных фич, которые предоставляет RB750. Сторонние прошивки вроде tomato или dd-wrt были исключены из рассмотрения, т.к. были (и остаются) сомнения в их стабильности. Тестировался также Asus WL-520GU, но пинги были на 20-30 мс выше.

Итак, поехали

На сервере в центральном офисе, стоит Ubuntu. Установка openvpn на нем выглядит следующим образом.

$ sudo su
# apt-get update
# apt-get upgrade
# apt-get install openvpn
# cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn
# cd /etc/openvpn/easy-rsa/2.0
# ln -s openssl-1.0.0.cnf openssl.cnf
# source vars
# ./clean-all
Создаем пару корневой сертификат ca.crt и ключ ca.key
# ./build-ca
Создаем пару сертификат сервера server.crt и ключ server.key
# ./build-key-server server
Создаем пару сертификат клиента client1.crt и ключ client1.key
# ./build-key client1
Ключи Диффи Хелмана
# ./build-dh
# cd keys
# mkdir /etc/openvpn/.keys && /etc/openvpn/.ccd
# cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/keys
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# cd /etc/openvpn
# gunzip -d /etc/openvpn/server.conf.gz
# nano /etc/sysctl.conf
Находим строку и снимаем с нее комментарий:
# Enable packet forwarding
net.ipv4.ip_forward=1

Все нюансы настройки заключались в файле конфигурации openvpn на сервере, по итогу он получился таким (комментировал лишь существенные моменты, описание остальных параметров конфига есть в манах, инете, example конфигах и проч.):

port 1194
# Mikrotik не умеет работать с UDP
proto tcp
dev tun
ca .keys/ca.crt
cert .keys/server.crt
key .keys/server.key # This file should be kept secret
dh .keys/dh1024.pem
server 10.0.141.0 255.255.255.0
client-config-dir .ccd
client-to-client
keepalive 10 120
tun-mtu 1500
mssfix 1450
cipher AES-256-CBC # AES
auth sha1
# Компрессия микротиком так же не поддерживается
;comp-lzo
user nobody
group nogroup
#Сохраняем туннель при обрыве на время keepalive
persist-key
#Не пересчитываем ключи при обрыве связи
persist-tun
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 10

/etc/openvpn/.ccd/client1

# Клиентская подсеть за mikrotik (192) и адрес openvpn у роутера (10)
iroute 192.168.141.0 255.255.255.0 10.0.141.2
# Добавим шлюз по умолчанию для машин за микротиком
ifconfig-push 10.0.141.2 10.0.141.1

Теперь Mikrotik

Настройку опишу с самого начала, в том числе организацию свича, настройку адресов, маршрутов, DHCP и проч. Заходим в веб-интерфейс роутера, качаем winbox.

Запускаем winbox(возможно подключение как по IP, так и по MAC), открываем new terminal, и пишем следующее(achtung, сброс конфигурации роутера): system reset-configuration

Подключаемся ко второму порту микротика, запускаем все тот же winbox, и на появившийся запрос клацаем remove config Организуем свич на портах 2-5, порт 1 будет выступать в роли WAN порта. Для этого у всех интерфейсов 3-5 указываем мастер порт ether2:В меню IP->Adresses назначаем ip lan интерфейсаДобавим гейт для выхода в инет в меню IP->Routes (гейтом в данном конкретном случае выступает DSL модем с адресом 10.100.0.1)Обратим внимание, что 10.100.0.0 — адресация между роутером и модемом DSL, через который он ходит в инет, а 10.0.141.0 — сеть VPN. Настроить DNS можно тут IP->DNS, а DHCP в меню IP->DHCP Server->DHCP setup, указав параметры пула. Всю нашу внутреннюю подсеть задвинем за NAT, для этого настроим маскарадинг. Переходим IP->Firewall->NAT и добавляем правило по аналогии:

Счастье близко

Осталось скопировать корневой сертификат(ca.crt) и клиентские сертификат и ключ(client1.crt, client1.key), которые мы сгенерировали в процессе установки/настройки сервера. На микротике выбираем меню Files, и видим окно с файловой системой роутера. Именно сюда нужно положить наши ключи, работает drag-n-drop.

Чтобы роутер знал о наличии у него сертификатов, их нужно импортировать через System->Certifates добавляем ca.crt, client1.crt, client1.key, клиентский ключ автоматом станет «Decrypted». Непосредственно соединение OpenVPN создается в меню Interfaces, при нажатии на красный плюс увидим OVPN Client в выпадающем списке.

На вкладке Dial Out укажем адрес нашего сервера, порт, клиентский сертификат и типы шифрования.

Итог

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

Источник: https://pvsm.ru/linux/63586

OpenVPN Server (Debian 8 Jessie) + OpenVPN Client (Mikrotik)

Настройка сервера OpenVPN

1.  apt-get install openvpn

2. копируем каталог /usr/share/easy-rsa  в  /etc/openvpn

3. в файле /etc/openvpn/easy-rsa/vars   меняем на необходимый регион и емайл

       KEY_COUNTRY = “RU”

       KEY_PROVINCE = “Barnaul”

       KEY_CITY = “Barnaul”

       KEY_ORG = “Home”

       KEY_EMAIL = “[email protected]

   chmod +x ./vars

   source ./vars

   ./clean-all

4. ./build-dh     (создаем файл dh2048.pem)

5. ./pkitool –initca (создаем ca.key и ca.crt)

    ./pkitool –server server (создаем server.key, server.crt, server.csr)

    ./pkitool client (создаем client.key, client.crt, client.csr)

    ./pkitool mikrotik (создаем mikrotik.key, mikrotik.crt, mikrotik.csr)

6. в каталог /etc/openvpn копируем  server.key, server.crt, ca.crt, dh2048.pem

7. редактируем файл конфигурации server.conf (/etc/openvpn)

            port 1194

            proto tcp

            dev tun

            local 192.168.0.156

            ca /etc/openvpn/ca.crt

            cert /etc/openvpn/server.crt

            key /etc/openvpn/server.key

            dh /etc/openvpn/dh2048.pem

            server 10.44.0.0 255.255.255.0

            route 172.23.0.0 255.255.255.0 192.168.0.158

            push “route-delay 5”

            client-config-dir /etc/openvpn/ccd

            client-to-client

            duplicate-cn

            ifconfig-pool-persist /etc/openvpn/ipp.txt

            max-clients 100

            auth sha1

            cipher AES-128-CBC

            persist-key

            persist-tun

            keepalive 10 120

            tun-mtu 1500

            verb 3

            status /etc/openvpn/log/status.log

8. systemctl start openvpn.service

    systemctl enable openvpn.service

    ifconfig -a  (появится tun0 интерфейс)

9. настраиваем конфигурационный файл клиента client.ovpn (для остальных клиентов кроме Mikrotik)

       client

       dev tun

       proto tcp

       remote 192.168.0.157 1194

       iroute 172.23.0.0 255.255.255.0 10.44.0.1

       key client.key

       cert client.crt

       ca ca.crt

       auth-user-pass

       persist-key

       persist-tun

       verb 3

10. клиенту передаем файлы (client.key, client.crt, ca.crt, client.ovpn)

Настройка клиента openvpn на маршрутизаторе Mikrotik.

(!!!транспорт только tcp, не поддерживается сжатие lzo, нельзя использовать tls)

     Заходим на роутер (логин admin / пароль пустой).

     Настраивать можно через граф.интерфейс (для доступа к роутеру можно воспользоваться web, либо стандартной программой winbox) или через терминал.

     Сбрасываем конфигурацию:

          [admin@MikroTik] >system reset-configuration 

          r  (remove default configuration)

     Для первого порта ip берем по dhcp:

         [admin@MikroTik] > ip dhcp-client add interface=ether1 disable=no

         [admin@MikroTik] > ip dhcp-client print

     В IP → ADDRESS LIST добавляем адрес второго интерфеса (локальная сеть) пр. 172.23.0.1/24     
     На втором пропишем ip и ставим DHCP сервер (сначала добавляем пул адресов (IP –> Pool) – потом сам сервер(IP –> DHCP Server) и dhcp сеть (вкладка Networks)).   

     Копируем файлы сертификатов в корень (вкладка Files) (сертификат сервера ca.crt, ключ сервера ca.key сертификат клиента mikrotik.crt и приватный ключ клиента mikrotik.key). Далее импортируем сертификаты (ca.crt, ca.key, mikrotik.crt, mikrotik.key).

    Firewall → NAT — добавляем правило<\p>

    (chain = srcnat, out interface = ether1 смотрит в интернет, action = masquerade)

    Теперь настраиваем подключение:

    [admin@MikroTik] > /interface ovpn-client add name=”ovpn” connect-to=192.168.0.1   

                                     port=1194 user=”none” password=”none” disabled=no profile=default  

                                     certificate=”cert1″ add-default-route=no

     cert1 – сертификат клиента

     Firewall → NAT — добавляем правило<\p>

     (chain = srcnat, out interface = ovpn, action = masquerade)

!!! Since RouterOS does not support route-push you need to add manually which networks you want to access over the tunnel.

     Создаем файл /etc/openvpn/ccd/mikrotik

           ifconfig-push 10.44.0.2 10.44.0.1              (ip клиента и шлюз)

Источник: https://itnootes.blogspot.com/2015/07/openvpn-server-debian-8-jessie-openvpn.html

Настройка OpenVPN сервера c сертификатами openssl на Mikrotik | IT Knowledge Base

Настройка OpenVPN сервера на Mikrotik

Создание сертификатов и ключей подписи для сервера и клиента

  1. Сертификаты будем создавать на машине c win10. Скачиваем сам  OpenVPN (в моем случае это версия 2.4.6) для генерации сертификатов.
    Важно, при установке  выбрать все галочки.
  2. Открываем папку “C:Program filesOpenVPNeasy-rsa“, запускаем init-config.

    bat, появится файл vars.bat.sample, открываем его  и редактируем такие  строки:set KEY_COUNTRY=BY set KEY_PROVINCE=GomelRegion set KEY_CITY=Gomel set KEY_ORG=VTelecom set KEY_EMAIL=disnetern@disnetern.

    ru set KEY_CN=server set KEY_NAME=server set KEY_OU=disnetern

    Эти параметры оставить неизменными “Key_CN” и “Key_NAME”, остальные можно вписать произвольно. Сохраняем как vars.

    bat в сваю домашнюю папку (в текущую не разрешат права), а потом перемещаем этот файл в “C:Program filesOpenVPNeasy-rsa” с подтверждением замены.

  3. Теперь открываем openssl-1.0.0.cnf и выставляем параметр default_days=3650 (3650= это 10 лет, можете выставить нужное время истекания сертификата по своему усмотрению ).
  4. Теперь открываем CMD от имени администратора и пишем поочередно команды:cd C:Program FilesOpenVPNeasy-rsa vars.bat clean-all.bat

    «Скопировано файлов: 1». Значит, процедура успешна. Если выдало сообщение ” vars.bat не является внутренней или внешней командой, исполняемой программой или пакетным файлом.” То отредактируйте  в этом файле правильные, полные пути до команды.

    Далее поочередно вбиваем команды для создания ключей:

    build-dh build-ca

    Если опять выдало сообщение об ошибке – редактируем полный путь до команды openssl. (В моем случает нужно было указать полный адрес с пробелом, указав его в двойных кавычках). Все вопросы подтверждаем Enter. Дальше набираем:

    build-key-server server

    Все вопросы подтверждаем Enter, а на последние два соглашаемся “Y”

    Далее создаем сертификат клиента:

    build-key client

    При ошибке, редактируем путь. На вопрос Common Name – ввести client. В конце два раза подтвердить “Y”.

    С сертификатами готово. Забираем их из папки C:Program FilesOpenVPNeasy-rsakeys : ca.crt server.crt, server.key

     Настройка сервера OpenVPN на mikrotik

  5. Заливаем файлы сертификатов и ключа на роутер Mikrotik, где будем настраивать сервер.
  6. Далее произведём импорт сертификатов, System – Certificates, выбираем поочередно сертификаты из списка ca.crt, server.crt, server.key и жмём кнопку Import:
  7. Создаём новый пул IP адресов для наших клиентов OpenVPN.

     IP -> Pool, добавили диапазон, например, 172.16.244.10-172.16.244.50, и назвал пул OVPN-pool

  8. Далее создаём PPP профиль. PPP -> Profiles-> вводим имя профиля, локальный адрес роутера, в моем случае 172.16.244.1, с созданным пулом адресов OVPN-pool, остальные настройки выставляем по желанию.

  9. Далее настраиваем сам OpenVPN сервер, PPP->Interface->OVPN Server, ставим Enabled, выбираем нужный порт, mode выставляем ip, выбираем созданный ранее профиль, ставим Require Client Certificate и выбираем сертификат server, остальные параметры по желанию.

  10. Создадим пользователя, переходим в раздел PPP -> Secrets, вводим имя пользователя, пароль, указываем сервис и профиль.
  11. Так как используются сертификаты, необходимо что бы время на сервере и на клиенте совпадало, для этого настраиваем ntp клиент и временную зону на роутере в разделе- System ->Clock/NTP Client.

     Адреса для NTP клиента можно взять, например, здесь.

  12. Еще не забудьте настроить Ваш фаерфол для разрешения порта для OVPN, IP -> Firewall->Filter Rules

Теперь можно подключаться к нашему OVPN серверу.

Настройка Mikrotik в качестве клиента OpenVPN сервера

  1. Сначала необходимо добавить сертификаты клиента на роутер (client.crt и  client.key).  Не передавайте никому закрытый ключ сертификата – “ca.key”, имея его можно создавать сертификаты подписанные данным ключом.

  2. Делаем импорт сертификатов, идём в раздел System – Certificates, выбираем поочередно сертификаты  client.crt->client.key.

  3. Само соединение OpenVPN настраивается в меню PPP-> добавить  OVPN Client 
  4. Указываем адрес сервера, логин/пароль, порт, клиентский сертификат и тип шифрования:

Готово! Можем пользоваться.

Last posts

Источник: https://disnetern.ru/configure-mikrotik-open-vpn/

Mikrotik, OpenVPN, linux`ы и сети

Пока что это заготовка статьи про обозначенные выше вещи. Ну, как бэ, рабочий черновик, но впоследствии будет дополняться и корректироваться. Погнали!

Пожалуй, я прибегну к ряду новых практик в деле написания how-to`шек, ну а прямо сейчас работаю над скиллами и пр.

Одно из новшеств – ключевые слова:

  • openvpn сервер на mikrotik
  • доступ к сети за клиентом openvpn
  • межклиентское взаимодействие в openvpn
  • взаимодействие между сетями за клиентами openvpn

Терминология:

  • микротик, RB – Mikrotik RouterBoard 951G-2HnD
  • сервер – сервер OpenVPN
  • ovpn – читай OpenVPN
  • клиент – клиент ovpn
  • c2c – client-to-client
  • n2n – межсетевой доступ через с2с

Постановка задачиДопустим, имеется микротик с белым ip. Он и будет нашим ovpn-сервером. К нему будут подлючаться клиенты. Нужно обеспечить доступы как между клиентами, так и между их сетями. Если клиент – шлюз, то всё прозаично. А вот если нет… -__-

Иными словами:

  1. доступ для клиентов в сеть за сервером;
  2. доступ с2с по ovpn-адресации;
  3. доступ n2n через собственную адресацию в ЛВС;

Причём, клиенты – за NATом, посему ovpn – самое логично-удобное решение. PPTP, сколь бы мне он ни нравился для рабочих целей, не подходит – два клиента не могут сидеть из-за одного NATа. Ну и секурность, все дела 🙂

Настройка OpenVPN-сервера на Mikrotik RB951G-2HnD

Дабы не повторять много раз написанное, дам линки:Как бы, ясно-понятно, поэтому едем дальше.

Настройка доступа в сеть за клиентом из сети за микротиком

Клиент замечательно видит сеть за сервером. Иначе дела обстоят наоборот. И вот тут вас ждёт сюприз! -дело в том, что, если клиент – не шлюз, хосты в его “домашней” сети не будут знать, кому отвечать. У самого клиента маршрут “куда звонить” прописан в конфиге.

Теоретически, можно запушить его с микротика, но конфиг – это капитально.

Итак, чтобы забегал пинг к какой-нибудь соседней линуксовой тачке, надо сделать вот такой маршрут:route add -net 192.168.XXX.0 netmask 255.255.255.0 gw 192.168.VVV.

2 eth0, где

  • 192.168.XXX.0 – сеть за микротиком;
  • 255.255.255.0 – её маска;
  • 192.168.VVV.2 – клиент (шлюз), через который отвечаем в сеть за микротиком;
  • eth0 – интерфейс хоста, через который пуляем данные в шлюз.

В свою очередь, на микротике надо сделать route: dst – 192.168.YYY.0/24 gw – Z.Z.Z.Z pref.source W.W.W.W, где

  • 192.168.YYY.0/24 – сеть за клиентом;
  • Z.Z.Z.Z – адрес ovpn-интерфейса, через который пойдём;
  • W.W.W.W – адрес сервера.

А можно поднамутить на клиенте второй сетевой интерфейс, на соседних машинах – тоже и указать шлюзом клиента.
Обращаю ваше внимание: в линуксах нет опции добавления постоянных маршрутов (как в винде через -р). При перезагрузке всё обнулится. Не забывайте выносить их на автостарт или просто сделать исполняемый файлик, где заводятся только они.

Доступы между клиентами

В конфиге ovpn-сервера для линуксов есть опция client-to-client. Она позволяет (при наличие bridge-utils) и tap-интерфейсов клиентам “общаться” друг с другом. В RB (не путать с Республикой Беларусь 🙂 ) такой опции нет. Для коррекции недоразумения делаем сюда: в Bridge создаём мост, далее идём в PPP -> Profiles -> , где в поле Bridge указываем то, что вы создали. Замечание: если вы накатываете бридж на работающие соединения, позаботьтесь о переподключении клиентов! Маршруты добавятся автоматически. Обходное решение, my ass… -зато работает.Но это не всё! Ведь мы хотим, скажем, из сети 192.168.1.0/24 попасть в 192.168.2.0/24 и там пошукать. Нам понадобятся маршруты. Если честно, глядя на оф.ман OpenVPN, веры ему нет, ибо убог. Пришлось задействовать подспорье с инетов, от опытных камрадов.Итак, рассмотрим ситуацию, когда один клиент – линукс, второй – винда. В качестве усложнения задачи, уточним, что рядом с линукс-клиентом есть машина, к которой надо получить доступ.

Начнём с микротика: пропишем ему в NAT маскарадинг. Соответственно: chain – srcnat dst.address – 192.168.YYY.0/24 out.iface – action – masquerade. Пояснять тут, думаю, не нужно. Теперь возьмём винду и задействует cmd.exe.

Один маршрут в сеть за микротиком прописан в конфиге и я хз, как туда дописать ещё один, поиграюсь на досуге. А пока, открывает цэ-эм-дэ и вводим: route print. Получим список текущих маршрутов. Вводим: route -p ADD 192.168.YYY.0 MASK 255.255.

255.0 , где

  • route -p ADD – добавление постоянного (-р) маршрута (без -р после ребута исчезнет);
  • 192.168.YYY.0/24 – сеть за клиентом;
  • MASK 255.255.255.0 – её маска;
  • – ip-адрес сервера.

Теперь линуксовая машина за клиентом. Там уже упомянутой выше командой добавляем сеть ovpn, её маску, шлюз, которым будет клиент 192.168.VVV.2 и интерфейс.Всё.Пишите маршруты, подключайте клиентов и да пребудет с вами мощь OpenSource, благословление Торвальдса и воля Столлмана. Админь!

UPD: наверное, докуплю микротиковский же mAP 2n для доступа в сеть с линуксовыми тачками. Не так дорого стоит, зато можно полноценно эксплуатировать доступы в сеть.

UPD-2, чем всё закончилось: А докупил я RB750. Он явно мощнее mAP2n, но является самым слабым многопортовым девайсом в линейке маршрутизаторов, к тому же он без WiFi. Ну, а нам больше и не надо! Итак, вкратце: как запилить на нём ovpn-клиент и сделать мост между двумя сетями. Для этого надо:

  1. Установить сертификаты. Те же файлы, что для виндовых и линуксовых клиентов (ca.crt, .crt и .key). Делается это, как показано выше (см. ссылки), но напомню, что сначала надо закачать файлы (удобно через Winbox), а потом их надо установить через System->Certificates;
  2. Зайти в секцию РРР и там через “+” создать интерфейс, где всё прописываем;
  3. Создать маршрут в Routes, аналогично примеру “сеть за клиентом”, только здесь мы прописываем сеть за сервером;
  4. Проверить, не совпадают ли у вас подсети 🙂
  5. Сделать правило маскарадинга для пакетов с назначением в сеть за сервером в IP->Firewall->NAT, исходящий интерфейс – ovpn`овый (как дефолтное правило, просто добавляем такое же, где указаны dst и iface).

Конечно, есть ещё прикольный вариант с EoIP, но он пока не требуется. Итак, результаты: микрота друг друга пингует, может пинговать хосты в другой сети, куда прописан маршрут.

Источник: https://catbasil.livejournal.com/31156.html

Настройка MikroTik в качестве OVPN-сервера с использованием клиентских сертификатов – Adminbook.click – Записки системного администратора

В этой статье описана схема настройки Mikrotik в качестве сервера openvpn. Данная конструкция рабочая, проверена на RouterOS v6.29. Для создания сертификатов будем использовать встроенный в RouterOS PKI

Хочу сразу сообщить, что в отличие от Linux серверов, OpenVPN на Mikrotik не поддерживает UDP транспорт и компрессию lzo. Но, тем не менее, все остальные функции, включая TCP транспорт, L2/L3 туннели и т.д., полностью работают.

Настраиваем OVPN-сервер на ROS

/certificate add name=cert-CA country=”MD” state=”MD” locality=”Chisinau” organization=”CompanyName” unit=”” common-name=”itsp-CA” key-size=1024 days-valid=3650 key-usage=crl-sign,key-cert-sign /certificate sign cert-CA ca-crl-host=127.0.0.

1 name=”itsp-CA”
/certificate add name=cert-SRV country=”MD” state=”MD” locality=”Chisinau” organization=”CompanyName” unit=”” common-name=”itsp-SRV-OVPN” key-size=1024 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server /certificate sign cert-SRV ca=itsp-CA name=”itsp-SRV-OVPN”
/certificate add name=cert-CL country=”MD” state=”MD” locality=”Chisinau” organization=”CompanyName” unit=”” common-name=”itsp-CL-OVPN” key-size=1024 days-valid=3650 key-usage=tls-client

Создадим сертификат для первого клиента:

/certificate add name=cert-CL-to-TEST copy-from=”cert-CL” common-name=”client-test” /certificate sign cert-CL-to-TEST ca=”itsp-CA” name=”client-test”

Сертификат второго и последующих клиентов:

/certificate add name=cert-CL-to-${название клиента} copy-from=”cert-CL” common-name=”client-${название клиента}”

где:

  • common-name=”client-${название клиента}” – должен быть уникальным

/certificate sign cert-CL-to-${название клиента} ca=”itsp-CA” name=”client-${название клиента}”

где:

  • name=”client-${название клиента}” – должен быть уникальным

Отзыв сертификатов

В будущем, для отзыва сертификатов используем команду:

/certificate issued-revoke ${название сертификата}

где:

  • ${название сертификата} – это поле 'name=' подписанного сертификата

2.Настройка OVPN сервера

Задаем пул-адресов для OVPN-клиентов

/ip pool add name=ovpn-pool ranges=10.127.3.210-10.127.3.230

Создаем PPP-профиль для OVPN-сервера

/ppp profile add name=ovpn-clients local-address=10.127.3.1 remote-address=ovpn-pool dns=10.17.2.172 use-ipv6=no

Включаем OVPN-сервер

На Mikrotik сервер OVPN можно настроить в режиме tun («ip» в ROS), а можно в режиме tap («ethernet» в ROS). Режим tun — обычный туннель. Режим tap — эмуляция полноценного ethernet, в частности в режиме tap клиентов можно объединить в режим моста и они будут прекрасно друг друга видеть.

Мы же будем настраивать наш Mikrotik в режиме tun. Добавлю парочку картинок, смотрим на рисунок ниже.

Создаем пользователя:

3.Экспорт сертификатов для настройки клиентов

Экспорт сертификата CA:

/certificate export-certificate itsp-CA export-passphrase=””

Примечание: Нам нужен только сам сертификат, закрытый ключ не нужен, поэтому параметр export-passphrase=”” должен быть пустым.

Экспорт сертификатов клиентов:

/certificate export-certificate client-test export-passphrase=pa55w0rd

Примечание: export-passphrase= – обязательный параметр для экспорта закрытых ключей. Для каждого клиента используем свой пароль. Стараемся не использовать тот же самый пароль, который указывали для пользователей!

Далее извлекаем полученные файлы сертификатов и ключей из микротика любым удобным способом – можно просто “перетянуть” их из winbox'а, можно скачать посредством ftp или с помощью scp.

Настройка Windows-клиента

  1. Получаем OVPN-дистрибутив с openvpn.net.
  2. Устанавливаем, все опции оставляем по-умолчанию, в том числе tap-интерфейс, который понадобится для любого режима настройки.
  3. Идём в OpenVPNconfig (по-умолчанию C:Program FilesOpenVPNconfig) и создаём там файл client.ovpn
  4. Создаём конфигурацию клиента.

Ниже представлен пример рабочей конфигурации клиента:

client
dev tun
proto tcp-client
remote ras.example.com 1194
tls-client
tls-cipher TLS-RSA-WITH-AES-256-CBC-SHA
auth SHA1
resolv-retry infinite
nobind
persist-key
persist-tun
ca cert_export_itsp-CA.crt
cert cert_export_client-test.crt
key cert_export_client-test.key
auth-user-pass user-pwd.txt
askpass pass.txt
verb 3
route 10.0.0.0 255.0.0.0
route-delay 5

Примечание: для применения параметров маршрутизации, прописанных в конфиге, сам сервис OVPN, или же OVPN GUI должны быть запущены с правами администратора.
Примечание №2: auth-user-pass user-pwd.

txt – тут записаны логин и пароль пользователя. Первая строчка – логин, вторая – пароль.
Примечание №3: askpass pass.

txt – тут записан пароль, указанный при экспорте закрытого ключа (в данном примере в этом файле будет записано значение pa55w0rd)

Всем удачи в настройке!

Разбирался в вопросе с помощью следующих источников:

  • https://wiki.mikrotik.com/wiki/OpenVPN
  • https://habrahabr.ru/post/269679/

Источник: https://adminbook.click/nastrojka-mikrotik-v-kachestve-ovpn-servera-s-ispolzovaniem-klientskih-sertifikatov/

Установка OpenVPN сервера на Ubuntu Linux для подключения клиентов Mikrotik. Часть 2. Настройка ovpn-клиента на устройстве Mikrotik

Продолжая статью «Настройка сервера OpenVPN и генерация сертификатов клиентов«, сегодня будем настраивать ovpn-клиент на устройстве Mikrotik:

Для начала, нужно скопировать 2 файла сертификата клиента, которые были ранее импортированы с сервера. Для этого, подключаемся к устройству Mikrotik через winbox. Далее в левой части окна, выбираем вкладку Files и методом перетаскивания (drag&drop) копируем файлы на устройство

Теперь необходимо «собрать» данный сертификат: открываем вкладку System->Certificates и далее нажимаем на «+«. В появившемся окне, можно поменять поле Name (имя сертификата, например client1) и нажимаем на кнопку Import

Далее появится маленькое окошечко, где нужно выбрать из выпадающего списка файл сертификата клиента с раcширением .crt и нажать на кнопку Import:

После нажатия на кнопку «ОК» в списке сертификатов должен появиться файл client1.crt со значением «Т» в начале строки:

Нажимаем еще раз на «+» и теперь уже выбираем файл с расширением .key, если Вы сделали всё правильно, то в начале строки сертификата клиента, значение «Т» поменяется на «KT«, что будет означать правильность «сборки»:

На данном этапе всё, сертификат собран и готов к подключению к серверу.

Создаем подключение к OpenVPN серверу: переходим на вкладку PPP, нажимаем на «+» и выбираем пункт OVPN Client:

выставляем настройки согласно скриншоту:

  1. connect To: указываем либо «белый» ip-адрес Вашего сервера, либо доменное имя
  2. User: Обязательное поле, можно указать произвольное имя. например client1
  3. Выбираем ранее «собранный» серитификат: client1.crt_0
  4. AuthL sha1
  5. Cipher: aes_128а

и нажимаем «ОК«. Если всё правильно, то в начале строки только что настроенного соединения появиться значок «R» (RUN), что означает успешное подключение:

Теперь можно проверить доступность сервера, используя протокол icmp, говоря иначе — ping. Для этого, запускаем в левой части окна «New Terminal» и пробуем «пропинговать» сервер OpenVPN:

если Вы сделали правильно, то должны увидеть успешную передачу пакетов.

На этом всё, «цикл статей» «Установка OpenVPN сервера на Ubuntu Linux для подключения клиентов Mikrotik» завершен. Спасибо за внимание.

Источник: https://coldit.ru/?p=450

Как настроить OpenVPN сервер на Mikrotik

Привет. Сегодня хочу показать вам как на Mikrotik можно поднять OpenVPN Сервер. На микротике он не совсем полноценный, но бывают ситуации когда его использовать гораздо удобнее чем другие типы VPN соединений.

В сети есть много инструкций, как поднять OpenVPN сервере на маршрутизаторе Mikrotik, генерируя ключи при помощи openssl, мы же обойдемся без этой утилиты и всю настройку будем производить исключительно средсвами микротика.

Ниже я приведу список команд, которые нужно ввести в термнале:

1) Генерируем корневой сертификат:

/certificate add name=template-CA country=”” state=”” locality=”” organization=”” unit=”” common-name=”templ-OVPN-CA” key-size=4096 days-valid=3650 key-usage=crl-sign,key-cert-sign
/certificate sign template-CA ca-crl-host=127.0.0.1 name=”OVPN-CA”

2) Создаем сертификат сервера:

/certificate add name=template-SRV country=”” state=”” locality=”” organization=”” unit=”” common-name=”srv-OVPN” key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server
/certificate sign template-SRV ca=”OVPN-CA” name=”srv-OVPN”

3) Создаем клиентский шаблон сертификата:

/certificate add name=template-CL country=”” state=”” locality=”” organization=”” unit=”” common-name=”client-ovpn-template” key-size=4096 days-valid=365 key-usage=tls-client

4) Создаем сертификат для клиента:

/certificate add name=template-CL-to-issue copy-from=”template-CL” common-name=”client-ovpn-1″
/certificate sign template-CL-to-issue ca=”OVPN-CA” name=”client-ovpn-1″

В этих командах common-name в первой команде, должен соответствовать name во второй команде. Т.е. для добавления следующего сертификата клиента команды должны быть, например такими:

/certificate add name=template-CL-to-issue copy-from=”template-CL” common-name=”client-ovpn-2″
/certificate sign template-CL-to-issue ca=”OVPN-CA” name=”client-ovpn-2″

5) Настраиваем собственно OpenVPN:

Добавляем pool адресов для наших клиентов:

/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.100.254

Создаем профиль для OpenVPN:

/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool

Включаем аторизацию:

/ppp aaa set accounting=yes

Добавляем пользователя:

/ppp secret add name=test-user-1 [email protected] service=ovpn profile=OVPN_server

Это имя пользователя и пароль будут нужны при покдключении.

Включаем OpenVPN сервер:

/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=yes certificate=srv-OVPN enabled=yes

6) Выполним экспорт сертификатов:

/certificate export-certificate OVPN-CA export-passphrase=””
/certificate export-certificate client-ovpn-1 export-passphrase=11111111

Соответственно во второй команде имя сертификата должно соответсвовать имени клиентского сертификата. В этой команде – запомните passphrase – она будет нужна при подключении.

7) Дальше нужно скопировать с микротика экспортированные сертификаты, например через winbox — пункт меню files.

8) Последний пункт — нужно создать 2 файла на компьютере:

1 — файл конфигруации OpenVPN, для клиентов client.ovpn. Выглядеть он должен так:

Тут измените поле remote, 1.2.3.4 — измените на адрес вашего микротика.

Что бы микротик не был шлюзом по умолчанию закомментируйте последнюю строчку и раскомментируйте предпоследнюю (;route 192.168.0.0 255.255.255.0 192.168.100.1) — за местро 192.168.0.0 впишите нужную вам сеть.

И второй файл – с логином и паролем user-pwd.txt:

Вот и все, поместите скачанные сертфикаты и созданные файлы в одну папку. Теперь с помощью файла client.ovpn можно подключиться.

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

certificate issued-revoke имя сертификата

Видеоуроки по настройке MikroTik

Нет возможности пройти очный тренинг MTCNA? Ему есть альтернатива. Минус – не будет официального сертификата. Плюсов гораздо больше.

Во-первых, не надо никуда ехать, смотрите и пересматривайте видеоуроки тогда, когда вам удобно и столько раз, сколько нужно. Во-вторых, в курсе упор на практику, ее примерно в 4 раза больше, чем на очном обучении.

Подробнее о курсе на странице «Настройка оборудования MikroTik», там же можно заказать бесплатно первые 25 уроков.

0 0

Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.

Если вам помогла статья, вы можете >>отблагодарить автора

Источник: https://mytechnote.ru/kak-nastroit-openvpn-server-na-mikrotik

Настройка защищенного OpenVPN туннеля между двумя маршрутизаторами Mikrotik

Достаточно часто, возникает задача по объединению двух различных сетей. Например, когда два разных подразделения одного предприятия, находятся в разных зданиях. Но их компьютеры, должны быть объединены в одну сеть. Тут, конечно же, поможет один из протоколов VPN (Виртуальная частная сеть), что бы создать L2 туннель и решить эту задачу. 

Вот и сегодня, мы построим такой туннель между двумя маршрутизаторами Mikrotik и подробно рассмотрим все этапы настройки, на реальном примере. В целом, всю эту процедуру, можно условно разделить на три основных пункта: 

1. Генерация сертификата 

2. Настройка сервера 

3. Настройка клиента 

И так, у нас есть два отдельных офиса, расположенных в разных частях города, и подключенных к разным Интернет Провайдерам. Наша задача, объединить их в единую виртуальную сеть.

Для этих целей, мы выбрали протокол OpenVPN. Причин для этого выбора, достаточно много. Но достаточно упомянуть, хотя бы RSA шифрование, с длинной ключа не менее 1024 бит.

Одним словом – высокая безопасность и сохранность ваших данных. 

1. Генерация сертификата

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

Первым делом, обновляем список доступных пакетов 

~# apt-get update  

И устанавливаем, необходимый для генерации сертификата и ключей, пакет OpenVPN 

~# apt-get install openvpn  

Когда пакет установлен, можем приступать к созданию сертификата. При необходимости, в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/, можем отредактировать файл vars, указав там наши данные в переменных типа export KEY_ххххх. Например, в переменной export KEY-SIZE, можно увеличить размер ключа, заменив 1024 на 2048.  

Переходим в папку /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 

~# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/ 

Инициализируем переменные и на на всякий случай, очищаем существующие ключи и сертификаты. 

~# source vars

~# ./clean-all  

Инициализируем создание сертификата и ключа собственного центра сертификации 

~# ./pkitool –initca  

Создаем ключ и сертификат для OpenVPN сервера (имя файлов сертификата и ключей, будет таким, которое вы указали в файле vars, переменной KEY_NAME) 

~# ./pkitool –pass –server

И теперь, в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0/, у нас появился новый каталог keys, в котором и хранятся, все сертификаты и ключи. Для центра сертификации, это файлы ca.crt и ca.key, и для сервера, в нашем случае, это Cert.crt и Cert.key.  

Но есть один нюанс. Полученный таким образом ключ, имеет формат pkcs8, который не поддерживается Mikrotik RouterOS, и как следствие, не может быть использован в маршрутизаторе. Поэтому, нам потребуется конвертировать его в подходящий формат. Для чего, мы выполним соответствующую команду 

~# openssl rsa -in keys/Cert.key -out keys/Cert.pem 

В итоге, получив еще один файл в папке keys.  

2. Настройка сервера

Нам нужно, любым доступным способом, например по FTP, получить к себе на компьютер, файлы ca.crt, Cert.crt и Cert.pem. Именно они нам понадобятся для настройки OpenVPN туннеля. Подключаемся к маршрутизатору, который будет выступать сервером, при помощи фирменной утилиты Winbox и переносим все файлы туда.  

После чего, импортируем их в систему, в разделе меню System – Certificates, при помощи кнопки Import, где в новом окне выбираем:

Only File – имя файла сертификата или ключа;

Passphrase – пароль для импорта ключа, если необходимо.

При этом, стараемся соблюдать последовательность – сперва, сертификат CA, затем сертификат сервера OpenVPN и в конце, ключ.

В итоге, у нас появятся вот такие записи в разделе сертификатов. Причем, возле сертификата OpenVPN сервера, должны быть 2 буквы – KR, обозначающие K:

Decrypted-Private-Key R: RSA.  

И теперь, мы можем приступить к непосредственной настройке OpenVPN сервера. Для этого, открываем меню PPP и первым делом, переходим на вкладку Profiles, где кнопкой “+”, добавляем новый профиль. 

В открывшемся окне, в поле Name – присваиваем имя профилю, а в полях Local Address и Remote address, вписываем IP адреса. Где Local, это адрес нашего туннеля, присваиваемый серверу, а Remote – клиенту.  

Переходи на вкладку Interfaces, где нажимаем на кнопку OVPN Server и в открывшемся окне, ставим галочку Enabled, тем самым, активируя OpenVPN сервер.

Default Profile – выбираем созданный нами ранее профиль.

Certificate – выбираем сертификат OpenVPN сервера, который мы импортировали в самом начале.

И сохраняем настройки.  

Последнее, что нам нужно сделать по настройке сервера, это добавить нового пользователя, на вкладке Secrets. Где мы, при помощи кнопки “+”, создаем новую запись.

В которой, в полях Name и Password, вписываем логин и пароль, для будущего пользователя.

Service – выбираем ovpn, а в качестве профиля, в поле Profile, выбираем наш OpenVPN профиль.  

Однако, нужно иметь в виду, что в зависимости от ваших настроек Firewall, возможно нужно будет добавить разрешающее правило в меню IP – Firewall, на вкладке Filter Rules, следующего содержания:

Chain – input 

Protocol – tcp 

Dst.Port – 1194

Action – accept  

Оно должно располагаться раньше запрещающих правил.  

3. Настройка клиента

Теперь, переходим к настройке клиента, который находится в другой части города. Его так же, будем настраивать посредством фирменной утилиты Winbox. 

Хочу обратить ваше внимание на то, что настраивая сервер, мы специально в его свойствах, не поставили галочку Requre Client Certificate. Поэтому, не требуется дополнительных сертификатов для клиента, и его настройка, будет достаточно простой. 

В разделе меню PPP, на вкладке Interfaces, кнопкой “+”, добавляем новую запись OVPN Client.  

И в открывшемся окне, на вкладке Dial Out, устанавливаем следующие параметры:

Connect To – IP адрес OpenVPN сервера

User – логин клиента

Password – пароль клиента

Auth – выбираем sha1

Cipher – выбираем aes 256  

Сохраняем настройки, и вскоре, возле новой записи, должна появиться буква R, свидетельствующая о том, что соединение успешно установлено.  

Настало время, проверить все ли работает. Для этого, мы открываем консоль New Terminal и командой ping, определяем доступность узлов локальной сети.  

Таким образом, мы видим, что оба маршрутизатора, не смотря на территориальную разницу, находятся в одной локальной сети. 

Далее, в зависимости от ваших потребностей, вы можете настроить NAT, Routing и т.д. на ваше усмотрение.

Источник: https://lanmarket.ua/stats/nastroyka-zashchishchennogo-OpenVPN-tunnelya-mejdu-dvumya-marshrutizatorami-Mikrotik-

Ссылка на основную публикацию