Настройка VPN через MikroTik — OpenVPN
Содержание
- Генерация сертификатов для OpenVPN
- Установка сертификатов OpenVPN и настройка сервера на MikroTik
- Настройка клиента OpenVPN
В предыдущей статье мы писали о настройке VPN через MikroTik с помощью протоколов PPPoE и PPTP. Это самые популярные способы туннелирования. Сегодня мы остановимся на OpenVPN — также распространенном решении VPN-туннелей на роутерах Микротик.
Особенности OpenVPN на MikroTik
OpenVPN имеет много преимуществ, благодаря которым он по-прежнему один из самых популярных протоколов для поднятия VPN туннелей:
- простота настройки;
- надежность и защищенность благодаря сертификатам;
- универсальность — удаленный доступ можно организовать с устройств с любой операционной системой;
- отсутствие проблем с NAT.
Однако о тметим, что возможности OpenVPN на MikroTik урезаны:
- нет сжатия LZO;
- нет UDP, хотя именно он является предпочтительным для OpenVPN как простой и легковесный транспорт;
- скорость передачи данных не слишком высока;
- нет возможности присваивать адреса через другой DHCP, их выдает только сам Mikrotik.
- генерация сертификатов;
- настройка OpenVPN сервера на MikroTik;
- настройка клиента.
Генерация сертификатов для OpenVPN
Сертификаты для сервера и клиента можно создать средствами самого 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.
Установка сертификатов OpenVPN и настройка сервера на MikroTik
Из созданных нами сертификатов и ключей нас интересуют 3 файла:
Импортируем сертификаты OpenVPN в ОС MikroTik .
Создаем PPP-профиль н а роутере MikroTik.
Создаем 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. Только теперь это будут:
После этого поочередно импортируем их, используя меню 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
- nobind persist-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)
Источник: