Mikrotik openvpn client firewall



Mikrotik openvpn client firewall

Copy raw contents

Mikrotik router as OpenVPN Client

There are a bunch of tutorials online about how to set up a Mikrotik routerboard as an OpenVPN server; this is not one of them, this repository contains information and code samples for configuring a Mikrotik router as a client to connect to your own OpenVPN server hosted elsewhere.

As of Jun ’16 this is confirmed working on a Mikrotik 951Ui-2HnD routerboard, all traffic destined for the internet is routed via the VPN connection and I’m able to watch region-locked video streaming services while connected through this wifi network.

  • TCP is supported UDP is not supported (ie. the default setup is not supported)
  • username/passwords are not mandatory
  • certificates are supported
  • LZO compression is not supported

Setting up the server

This info applies to you if you are setting up the server for yourself, otherwise you best check with your server admin that they have configured the server for a Mikrotik client.

For the most part I followed this tutorial for installing OpenVPN server on Ubuntu 14.04.

Be careful with this tutorial, if you are using any services other than OpenVPN and SSH; or if you use non-standard ports, make sure you add the corresponding firewall rules!

I only made a couple changes to my server.conf :

Change protocols from UDP to TCP

add the corresponding firewall rule:

Disable compression (optional)

This step is optional, if you’re streaming video you can disable compression by commenting it out:

Setting up the client

This section covers the steps required to set up your Mikrotik routerboard as an OpenVPN client.

Copy files from server

You’ll need some files from your OpenVPN server or VPN provider, only 3 files are required:

If you’re using the scripts in this repo then you’ll need to create a directory called cert and put those files inside. You’ll also need to rename your client keys to match the file names above.

Establish a SSH session

All the commands are executed by SSH so you’ll need SSH access to your routerboard before continuing, otherwise I guess you could read the commands and enter them in the GUI, up to you.

Great you connected! the interface is a bit weird, all commands start with a / and you use ? for help within each section. If you didn’t manage to connect you’re going to need to sort that out before continuing or give up and use a GUI.

Type /quit in to the console to exit.

Check your OS version

All the code in this repo is hard-coded for version 6.35.2 (which was current at time of writing). If yours is older than that go ahead and upgrade first.

Upload your certificates

You’ll need to upload those certificates that we downloaded earlier on to your Mikrotik.

you’ll need to do this for all 3 files, see ./task/cert.install.sh for more info.

We can confirm that worked:

Rename your certificates

This is optional; if this if your first time, best do this so you can follow the rest of the steps:

We can confirm that worked:

Create a PPP profile

This section contains all the details of how you will connect to the server, the following worked for me, you may need to change some settings for your specific server configuration:

Читайте также:  Роутеры ростелеком сменить пароль

We can confirm that worked:

Create an OpenVPN interface

Here we actually create an interface for the VPN connection:

IMPORTANT!! Change xxx.xxx.xxx.xxx to your own server address (ip address or domain name).

User/password properties seem to be mandatory on the client even if the server doesn’t have auth-user-pass-verify enabled.

Test the VPN connection

If everything went according to plan you should now be connected:

Note the ‘R’ which shows the connection has been established (give it a few seconds):

Configure the firewall

This is explained in this post, basically we define some routes in our local network that won’t go through the VPN (things in the 10.0.0.0, 172.16.0.0 & 192.168.0.0 ranges) and we add them to a list called local_traffic :

Then we set up a ‘mangle’ rule which marks packets coming from the local network and destined for the internet with a mark named vpn_traffic :

Next we tell the router that all traffic with the vpn_traffic mark should go through the VPN interface:

And finally we add a masquerade NAT rule:

That’s it! your external traffic should now be routed through the VPN.

If this readme helped you out please star the repo; github stars are like crack cocaine to software developers 🙂

Big thanks to all these people who wrote about this in the past.

Источник

Mikrotik openvpn client firewall

Особенности OpenVPN на MikroTik

OpenVPN имеет много преимуществ, благодаря которым он по-прежнему один из самых популярных протоколов для поднятия VPN туннелей:

  • простота настройки;
  • надежность и защищенность благодаря сертификатам;
  • универсальность — удаленный доступ можно организовать с устройств с любой операционной системой;
  • отсутствие проблем с NAT.

Однако отметим, что возможности OpenVPN на MikroTik урезаны:

  • нет сжатия LZO;
  • нет UDP, хотя именно он является предпочтительным для OpenVPN как простой и легковесный транспорт;
  • скорость передачи данных не слишком высока;
  • нет возможности присваивать адреса через другой DHCP, их выдает только сам Mikrotik.

Поднятие OpenVPN на MikroTik состоит из 3 этапов:

  • генерация сертификатов;
  • настройка OpenVPN сервера на MikroTik;
  • настройка клиента.

Генерация сертификатов для OpenVPN

Сертификаты для сервера и клиента можно создать средствами самого OpenVPN (Easy-RSA), а можно с помощью ресурса CAcert.org. Рассмотрим создание самоподписанных сертификатов посредством Easy-RSA.

Скачиваем и устанавливаем OpenVPN.

Идем на официальный сайт https://openvpn.net/ и скачиваем версию ПО, которая подходит для нашей системы.

Далее устанавливаем OpenVPN, галочки можно снять только с неважных пунктов (например, добавление ярлыка программы на панель быстрого доступа и в меню Пуск, ассоциации файлов).

Редактируем параметры easy-rsa OpenVPN.

После установки идем в папку с программой, в каталог easy-rsa

и открываем с помощью блокнота файл vars.bat.sample, редактируем его.

Если мы создаем дубликат папки easy-rsa (а в этом есть смысл) и работаем в нем, то необходимо отредактировать строку, прописав в ней новый путь к папке:

set HOME=%ProgramFiles%\OpenVPN\easy-rsa

Значение строки set KEY_SIZE=1024 можно поменять на 2048 (как сказано в комментариях в файле — если вы параноик), но учтите, что производительность уменьшится.

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

  • set KEY_COUNTRY=UA
  • set KEY_PROVINCE=Harkiv
  • set KEY_CITY=Harkiv
  • set KEY_ORG=OpenVPN
  • set KEY_EMAIL=admin@lantorg.com
  • set KEY_CN=server
  • set KEY_NAME=server
  • set KEY_OU=lantorg
  • set PKCS11_MODULE_PATH=changeme
  • set PKCS11_PIN=1234

Последние два параметра можно не менять.

После чего сохраняем файл под именем vars.bat.

Читайте также:  Keenetic ретранслятор гостевая сеть

Если при сохранении vars.bat в этом же каталоге система выдает ошибку:

то сохраните файл вначале на рабочем столе, а потом перенесите в этот каталог.

Выполняем генерацию сертификатов для OpenVPN под MikroTik.

Работаем в командной строке Windows (cmd), запустив ее от имени администратора.

1. Переходим в нужный каталог: cd «C:\Program Files\OpenVPN\easy-rsa»

2. Набираем команду vars и жмем энтер.

3. Набираем команду clean-all и жмем энтер.

Если мы видим надпись, как на изображении — «Скопировано файлов — 1.», значит, все сделано правильно.

4. Набираем команду build-ca. Программа начинает генерацию публичного сертификата OpenVPN и запрашивает у нас значения параметров. Если на вопрос в командной строке мы просто жмем энтер, то программа подставляет значения по умолчанию, которые мы вписали в файл vars.bat. Останавливаемся, когда снова появляется строка C:\Program Files\OpenVPN\easy-rsa.

5. Даем команду на генерацию сертификата сервера OpenVPN для MikroTik: build-key-server имя_сертификата. В нашем случае пишем

build-key-server server, на вопрос «Sign the certificate?» отвечаем y, точно также на вопрос «1 out of 1 certificate requests certified, commit?», на остальные просто жмем энтер.

6. Даем команду на генерацию сертификата клиента — build-key client. Имя сертификата (Common Name) должно быть уникальным и не совпадать с другими сертификатами. Поэтому на этот вопрос отвечаем — client. Здесь также в конце появятся два вопроса, как в предыдущем пункте, и мы тоже отвечаем на них — y.

Все, теперь в папке C:\Program Files\OpenVPN\easy-rsa\keys лежат все созданные ключи и сертификаты OpenVPN.

Установка сертификатов OpenVPN и настройка сервера на MikroTik

Из созданных нами сертификатов и ключей нас интересуют 3 файла:

Импортируем сертификаты OpenVPN в ОС MikroTik.

Заходим с помощью WinBox на роутер Микротик, на котором мы будем поднимать OpenVPN сервер. Копируем 3 вышеуказанных файла из папки, где они лежат, и вставляем с помощью меню: Files — Paste.

Далее импортируем их. Для этого используем меню WinBox: System — Certificates — выбор сертификата — кнопка Import.
Импорт производим в следующем порядке: ca.crt => server.crt => server.key.

После этого в окне Certificate List добавятся две записи: публичного сертификата CA и сертификата OpenVPN сервера. В первом столбце записи сертификата сервера должны стоять две буквы — KR. Если вы видите там что-то другое, попробуйте еще раз импортировать файл ключа (*.key).

Создаем PPP-профиль на роутере MikroTik.

Если подключение по VPN-тоннелю будет разрешено с нескольких IP-адресов, нам нужно создать их пул. Идем в IP -> Pool, создаем его и присваиваем имя.

Если подключение по тоннелю будет производиться с одного IP-адреса, то пропускаем этот момент.

Создаем PPP-профиль. Для этого идем: PPP — Profiles. Добавляем его кнопкой +.

В поля вписываем:

  • имя профиля,
  • Local Address — адрес роутера Микротик, к которому будут подключаться клиенты. Он должен лежать в одой подсети с Remote Address
  • Remote Address- здесь пишем либо один IP-адрес клиента, либо имя ранее созданного пула адресов.

Остальные настройки не трогаем.

Настраиваем сервер OpenVPN на роутере MikroTik.

Идем в меню PPP- Interface — OVPN Server.

    • Активируем его, поставив галочку в пункте Enabled.
    • В поле mode оставляем IP (IP-туннелирование по умолчанию) или выставляем ethernet (режим сетевого моста), это L3 и L2 соответственно. Чаще всего используется IP.
    • Default Profile — выбираем профиль, который мы создали ранее.
    • Certificate — сертификат сервера.
  • require-client-certificate — если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет — то не проверяет, и настройка клиента при этом упрощается.
Читайте также:  Mikrotik unknown cipher algo or key size

Создаем и настраиваем пользователя.

Идем: PPP — Secrets и добавляем пользователя. Тут все просто: имя, пароль, сервис и профиль.

Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню System — Clock). Далее идем в меню System — SNTP Client и прописываем адрес NTP сервера (на скриншоте указан локальный, но можно взять любой, к примеру 85.21.78.91).

Настраиваем разрешающее правило фаерволла.

Идем IP — Firewall — Filter Rules и разрешаем трафик на порт OpenVPN:

  • В поле Chain ставим input.
  • Protocol — 6(tcp).
  • Dst. Port — 1194.
  • In. Interface — прописываем название интерфейса, на который идет входящий трафик.

Активируем правило на вкладке Action:

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

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

Если мы не используем клиентские сертификаты (в настройках сервера не отмечали галочкой пункт require-client-certificate), то настроить клиент OpenVPN будет быстрее и проще. Нам не нужно будет копировать сертификаты для клиента, только создать в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописать:

    • адрес OpenVPN сервера (поле Connect To),
    • логин и пароль пользователя (поля User и Password),
    • порт соединения,
  • тип аутентификации и шифрования (поля Auth и Cipher).

Если мы используем сертификаты, читаем дальше.

Настройка второго роутера Микротик как клиента OpenVPN.

Так же, как и при настройке сервера, копируем из папки C:\Program Files\OpenVPN\easy-rsa\keys и вставляем в раздел Files файлы сертификатов и ключей OpenVPN. Только теперь это будут:

После этого поочередно импортируем их, используя меню System – Certificates — выбор сертификата — кнопка Import.

После успешного импорта в строке сертификата должны появиться буквы KT

Далее настраиваем соединение, практически так же, как и в случае без сертификатов. Создаем в меню PPP — Interfaces новую запись OVPN Client и и на вкладке Dial Out прописываем:

  • адрес OpenVPN сервера (поле Connect To),
  • логин и пароль пользователя (поля User и Password),
  • порт соединения,
  • наименование сертификата,
  • тип аутентификации и шифрования (поля Auth и Cipher).

Все, осталось проверить, поднялось ли соединение.

Настройка клиента OpenVPN в Windows.

Копируем ранее созданные нами файлы ca.crt, client.crt, client.key из папки C:\Program Files\OpenVPN\easy-rsa\keys в каталог C:\Program Files\OpenVPN\config.

Создаем здесь же обычный текстовый файл, который сохраняем как auth.cfg (обратите внимание, меняем и расширение тоже).

Открываем файл auth.cfg для редактирования в блокноте и вписываем в него 2 строки: первую -логин пользователя, вторую — пароль, которые мы задали на сервере. Сохраняем файл.

Создаем еще один текстовый файл, который сохраняем как client.ovpn (включая смену расширения).

Файл client.ovpn редактируем следующим образом:

  • proto tcp-client
  • remote 123.123.123.123 # здесь внешний адрес нашего роутера MikroTik
  • dev tap
  • nobindpersist-key
  • tls-client
  • ca ca.crt #указываем имя CA сертификата
  • cert client.crt #указываем имя сертификата клиента
  • key client.key # указываем имя файла-ключа для клиента
  • ping 10
  • verb 3 # чем выше этот параметр — тем выше уровень логирования
  • ns-cert-type server
  • cipher AES-256-CBC
  • auth SHA1
  • pull
  • auth-user-pass auth.cfg # здесь имя файла с логином-паролем пользователя
  • route-method exe
  • route-delay 2
  • route 192.168.1.0 255.255.255.0 172.21.108.1 # эта строка задает маршрут, здесь 172.21.108.1 — адрес микротика из PPP-профиля, а 192.168.1.0 255.255.255.0 — сеть и маска сети.

Файл сохраняем. Запускаем OpenVPN GUI (исполняемый файл лежит в папке C:\Program Files\OpenVPN\bin)

Запускаем обязательно от имени администратора!

Источник

Adblock
detector