
В предыдущей статье мы писали о настройке VPN через MikroTik с помощью протоколов PPPoE и PPTP. Это самые популярные способы туннелирования. Сегодня мы остановимся на OpenVPN - также распространенном решении VPN-туннелей на роутерах Микротик.
Особенности OpenVPN на MikroTik
OpenVPN имеет много преимуществ, благодаря которым он по-прежнему один из самых популярных протоколов для поднятия VPN туннелей:
Однако отметим, что возможности OpenVPN на MikroTik урезаны:
Сертификаты для сервера и клиента можно создать средствами самого OpenVPN (Easy-RSA), а можно с помощью ресурса CAcert.org. Рассмотрим создание самоподписанных сертификатов посредством Easy-RSA.
Скачиваем и устанавливаем OpenVPN.
Редактируем параметры easy-rsa OpenVPN.
После установки идем в папку с программой, в каталог easy-rsa
и открываем с помощью блокнота файл vars.bat.sample, редактируем его.
Если мы создаем дубликат папки easy-rsa (а в этом есть смысл) и работаем в нем, то необходимо отредактировать строку, прописав в ней новый путь к папке:
set HOME=%ProgramFiles%\OpenVPN\easy-rsa
Значение строки set KEY_SIZE=1024 можно поменять на 2048 (как сказано в комментариях в файле - если вы параноик), но учтите, что производительность уменьшится.
Далее редактируем следующие строки, проставляя в них актуальные для себя значения (пустыми параметры оставлять нельзя):
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), запустив ее от имени администратора.
Переходим в нужный каталог: 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.
Из созданных нами сертификатов и ключей нас интересуют 3 файла:
Импортируем сертификаты OpenVPN в ОС MikroTik.
Остальные настройки не трогаем.
Идем в меню PPP- Interface - OVPN Server.
Создаем и настраиваем пользователя.
Идем: PPP - Secrets и добавляем пользователя. Тут все просто: имя, пароль, сервис и профиль.
Необходимо также в настройках клиента предусмотреть синхронизацию времени с сервером. Вначале убеждаемся, что у нас выставлена правильная тайм-зона (меню System - Clock). Далее идем в меню System - SNTP Client и прописываем адрес NTP сервера (на скриншоте указан локальный, но можно взять любой, к примеру 85.21.78.91).
Настраиваем разрешающее правило фаерволла.
Идем IP - Firewall - Filter Rules и разрешаем трафик на порт OpenVPN:
Активируем правило на вкладке Action:
Напомним, что разрешающее правило в списке правил должно быть выше запрещающих, иначе оно не будет работать.
Если мы не используем клиентские сертификаты (в настройках сервера не отмечали галочкой пункт require-client-certificate), то настроить клиент OpenVPN будет быстрее и проще. Нам не нужно будет копировать сертификаты для клиента, только создать в меню PPP - Interfaces новую запись OVPN Client и и на вкладке Dial Out прописать:
Настройка второго роутера Микротик как клиента OpenVPN.
Так же, как и при настройке сервера, копируем из папки C:\Program Files\OpenVPN\easy-rsa\keys и вставляем в раздел Files файлы сертификатов и ключей OpenVPN. Только теперь это будут:
После этого поочередно импортируем их, используя меню System – Certificates - выбор сертификата - кнопка Import.
После успешного импорта в строке сертификата должны появиться буквы KT
Далее настраиваем соединение, практически так же, как и в случае без сертификатов. Создаем в меню PPP - Interfaces новую запись OVPN Client и и на вкладке Dial Out прописываем:
Все, осталось проверить, поднялось ли соединение.
Настройка клиента 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 редактируем следующим образом: