Настройка VPN через MikroTik - OpenVPN

В предыдущей статье мы писали о настройке VPN через MikroTik с помощью протоколов PPPoE и PPTP. Это самые популярные способы туннелирования. Сегодня мы остановимся на OpenVPN - также распространенном решении VPN-туннелей на роутерах Микротик.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Особенности 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.

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

 

Установка OpenVPN

 

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

 

Установка 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.

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

Ошибка сохранения vars.bat

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

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

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

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

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

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

Следующий этап генерации сертификатов

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

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

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

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

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

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

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

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

  • ca.crt,
  • server.crt,
  • server.key.

 

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

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

 

Вставка сертификатов OpenVPN в Winbox MikroTik

 

Далее импортируем их. Для этого используем меню WinBox: System - Certificates - выбор сертификата - кнопка Import.

Импорт производим в следующем порядке: ca.crt => server.crt => server.key.

 

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

 

Сертификаты OpenVPN после импорта

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

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

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

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

 

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

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

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

Создание пользователя OpenVPN

Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню 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. Только теперь это будут:

  • ca.crt,
  • client.crt,
  • client.key.

 

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

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

Импорт сертификата клиента OpenVPN

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

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

 

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

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

 Настройка клиента 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 редактируем следующим образом:

  1. proto tcp-client
  2. remote 123.123.123.123 # здесь внешний адрес нашего роутера MikroTik
  3. dev tap
  4. nobindpersist-key
  5. tls-client
  6. ca ca.crt #указываем имя CA сертификата
  7. cert client.crt #указываем имя сертификата клиента
  8. key client.key # указываем имя файла-ключа для клиента
  9. ping 10
  10. verb 3 # чем выше этот параметр - тем выше уровень логирования
  11. ns-cert-type server
  12. cipher AES-256-CBC
  13. auth SHA1
  14. pull
  15. auth-user-pass auth.cfg # здесь имя файла с логином-паролем пользователя
  16. route-method exe 
  17. route-delay 2 
  18. 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)

 

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