Москва+7 (495) 103-4-103
Заказать звонок
  • Заказать звонок
  • Отложить 0 шт.
  • Сравнить 0 шт.
 21 Июл 2015    MikroTik, VPN

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

Если при сохранении 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 файла:

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

 Импортируем сертификаты 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 - если ставим галку, то сервер при подключении проверяет сертификат клиента. Если нет - то не проверяет, и настройка клиента при этом упрощается.

 

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

Идем: 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. Только теперь это будут:

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

 После этого поочередно импортируем их, используя меню 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)

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



©lantorg