Роутеры Mikrotik позволяют поднять различные сервер VPN. В данной инструкции мы рассмотрим настройку OpenVPN. Мы выполним:
Подключение к Mikrotik осуществим при помощи Winbox, однако ход настройки через веб-интерфейс аналогичен.
Для правильной работы роутера с сертификатами, необходима корректно настроенное время. Переходим в System — Clock:
Проверяем правильность установки времени и часового пояса.
Если время задано не правильно, выбираем правильный часовой пояс. После переходим в терминал и зададим настройки для сервера, с которым мы будем синхронизировать время:
/system ntp client
set enabled=yes primary-ntp=[:resolve time.nist.gov] secondary-ntp=[:resolve time.windows.com]
Сертификаты мы можем создать несколькими способами. Разберем 2 — на роутере Mikrotik и с помощью утилиты на компьютере с Windows.
Проще и быстрее всего сгенерировать сертификаты на самом роутере.
1. Открываем терминал и создаем последовательность для центра сертификации:
> /certificate add name=template-ca country=»RU» state=»Sankt-Petersburg» locality=»Sankt-Petersburg» organization=»Organization» unit=»DMOSK» common-name=»CA» key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
> /certificate sign template-ca ca-crl-host=127.0.0.1 name=»ca»
* первая команда создает файл-шаблон запроса, на основе которого мы генерируем сертификаты второй командой. В шаблоне мы указываем опции для сертификата — так как сам сертификат самоподписный, можно указать любые значения и это никак не отразится на его использовании (стоит только указать корректные значения для стойкости шифрования key-size и срока действия сертификата days-valid).
2. Генерируем сертификат сервера OpenVPN:
> /certificate add name=template-server country=»RU» state=»Sankt-Petersburg» locality=»Sankt-Petersburg» organization=»Organization» unit=»DMOSK» common-name=»SERVER» key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
> /certificate sign template-server ca=»ca» name=»server»
* как и в примере выше, мы сначала создали файл запроса и на его основе — сам сертификат. В качестве центра сертификации мы указываем созданный ранее сертификат ca.
Если по каким-либо причинам нам не подходим первый способ создания сертификатов (например, нужны особые опции, которые не поддерживаются роутером), воспользуемся способом, описанным ниже.
Нам нужно будет установить утилиту для генерирования сертификатов, создать их и скопировать на роутер.
И так, заходим на сайт OpenVPN и переходим на страницу загрузки. Скачиваем openvpn-install для нашей операционной системы, например, Windows 7 или 10:
Запускаем установку клиента — снимаем все галочки, оставляем EasyRSA 2 Certificate Management Scripts:
Завершаем установку. После чего в папке C:\Program Files\OpenVPN\easy-rsa создаем файл vars.bat со следующим содержимым:
set «PATH=%PATH%;%ProgramFiles%\OpenVPN\bin»set HOME=%ProgramFiles%\OpenVPN\easy-rsaset KEY_CONFIG=openssl-1.0.0.cnfset KEY_DIR=keysset KEY_SIZE=2048set KEY_COUNTRY=RUset KEY_PROVINCE=Sankt-Petersburgset KEY_CITY=Sankt-Petersburgset KEY_ORG=Organizationset [email protected]set KEY_CN=DMOSKset KEY_OU=DMOSKset KEY_NAME=server.domain.ruset PKCS11_MODULE_PATH=DMOSKset PKCS11_PIN=12345678
* где для нас имеют значение:
В этой же папке C:\Program Files\OpenVPN\easy-rsa создаем каталог keys — в нем будут создаваться сертификаты.
Запускаем командную строку от имени администратора:
Переходим в каталог easy-rsa:
cd %ProgramFiles%\OpenVPN\easy-rsa
Запускаем vars.bat:
Чистим каталоги от устаревшей информации:
clean-all.bat
Снова запускаем vars.bat (после clean переопределяются некоторые переменные):
Теперь генерируем последовательность центра сертификации:
build-ca.bat
На все запросы нажимаем Enter (по умолчанию, будут подставлены значения, которые мы указали в файле vars.bat).
Генерируем сертификат для сервера:
build-key-server.bat server
* где server — имя сертификата; на все запросы нажимаем Enter. В конце подтверждаем два раза корректность информации вводом y.
Готово — в каталоге C:\Program Files\OpenVPN\easy-rsa\keys мы найдем 3 сертификата — ca.crt, server.crt. server.key:
Их мы будем использовать для настройки OpenVPN.
Заходим в настройки роутера — переходим в раздел Files — кликаем по Upload и выбираем наши 3 сертификата:
Кликаем по OK. Нужные нам файлы окажутся на роутере.
Переходим в System — Certificates:
Кликаем по Import:
… и по очереди импортируем:
* импорт делаем именно в такой последовательности.
После создания сертификатов, можно переходить к настройке самого микротика.
Пул адресов нужен для выдачи клиентам сетевых адресов. Для его настройки переходим в IP — Pool:
Введем настройки для нашего пула:
* где Name просто указывает название для идентификации пула; Addresses — стартовый и конечный адреса, которые будет назначаться клиентам при подключении к VPN. В данном примере мы указываем последовательность от 176.16.10.10 до 176.16.10.250.
В профиле мы задаем настройки IP-адреса интерфейса для VPN и ранее созданный пул.
Переходим в PPP — открываем вкладку Profiles — создаем новый профиль — указываем название для профиля, IP-адрес сервера VPN и пул, из которого будут выдаваться IP-адреса клиентам — OK:
* как видим, мы выбрали наш пул openvpn и назначили адрес 176.16.10.1 для сервера.
Для каждого пользователя, желательно создать своего пользователя. В том же PPP переходим на вкладку Secrets — создаем нового пользователя — задаем ему имя, пароль, указываем сервис ovpn и выбираем профиль, из которого пользователю будет назначен адрес при подключении — нажимаем OK:
Для включение сервиса OpenVPN в том же PPP переходим на вкладку Interface — кликаем по кнопке OVPN Server — включаем сервис (Enabled) и задаем настройки — кликаем по OK:
* в данном примере примененные настройки пометились синим цветом. Мы указали профиль для PPP (profile-openvpn), выбрали сертификат сервера (server), включили требование клиентского сертификата (Require Client Certificate) и расширили число алгоритмов для шифрования.
Мы активировали наш сервер OVPN на порту 1194 и нам нужно открыть данный порт на фаерволе. Переходим в раздел IP — Firewall:
На вкладке Filter Rules создаем новое правило:
* мы должны выбрать для Chain — Input, указать протокол (tcp) и задать порт, на котором слушает сервер OpenVPN (1194).
По умолчанию для создаваемых правил, действие задано на разрешение, поэтому просто сохраняем правило, нажав OK. После создания правила перетягиваем его мышкой наверх (выше запрещающих правил).
OpenVPN сервер готов к работе.
Теперь убедимся, что наш серер работает. Настроим клиентское подключение с компьютера на Windows. Для этого необходимо сгенерировать клиентские сертификаты и настроить клиентское подключение.
Мы рассмотрели 2 способа создания сертификатов для сервера — рассмотрим также два способа и для клиентов.
В консоли на роутере создаем общий шаблон, на основе которого будем генерировать все сертификаты для клиентов:
/certificate add name=template-clients country=»RU» state=»Sankt-Petersburg» locality=»Sankt-Petersburg» organization=»Organization» unit=»DMOSK» common-name=»clients-template» key-size=2048 days-valid=3650 key-usage=tls-client
Теперь создадим сертификат для первого клиента:
/certificate add name=template-client-to-issue copy-from=»template-clients» common-name=»client1″
/certificate sign template-client-to-issue ca=»ca» name=»client1″
* принцип, во многом, схож с процессом создания ключенй для сервера.
Для создания сертификата второго клиента вводим:
/certificate add name=template-client-to-issue copy-from=»template-clients» common-name=»client2″
/certificate sign template-client-to-issue ca=»ca» name=»client2″
… и так далее.
После экспортируем сертификаты:
/certificate export-certificate ca export-passphrase=»»
/certificate export-certificate client1 export-passphrase=12345678
* при выгрузке сертификата клиента обязательно указываем пароль, чтобы экспортировался закрытый ключ.
Теперь переходим в раздел Files и скачиваем сертификат для ca и клиентов:
После переименовываем их в client1.crt, client1.key, ca.crt.
Снова запускаем от администратора командную строку. Переходим в каталог easy-rsa:
Запустим скрипт vars.bat:
Создадим сертификат для первого пользователя:
build-key.bat client1
* на все запросы наживаем Enter, кроме Common Name — в данном поле вводим имя клиента (в нашем случае, просто client1). В конце подтверждаем введенную информацию — y.** На каждого клиента нужно сгенерировать свой сертификат, в противном случае, могут быть проблемы идентификации клиентов с последующей выдачей одинаковых IP.
Теперь из папки keys копируем файлы client1.crt, client1.key, ca.crt и переносим их на клиентский компьютер.
Рассмотрим конфигурирование клиента для Windows и Linux. Подробнее процесс описан в статье Настройка OpenVPN клиента — в ней можно найти подробное описание опций настройки, а также пример конфигурирования клиента на Android.
Заходим на сайт OpenVPN и переходим на страницу загрузки. Скачиваем openvpn-install для нашей операционной системы:
Запускаем установку клиента — оставляем галочки, как есть. Продолжаем установку и дожидаемся ее окончания.
Открываем текстовый редактор и создаем конфиг:
clientdev tunproto tcpremote xxx.xxx.xxx.xxx 1194auth-nocacheca ca.crtcert client1.crtkey client1.keyremote-cert-tls servercipher AES-256-CBCresolv-retry infinitenobindpersist-keypersist-tunverb 3auth-nocacheauth-user-passroute 192.168.0.0 255.255.255.0
* в данном конфиге нас интересуют опции:
* подробнее опции описаны в инструкции Настройка OpenVPN клиента.
Сохраняем файл с настройками в каталоге C:\Program Files\OpenVPN\config (или другом, где установлен клиент). В этот же каталог поместим наши сертификаты.
Запускаем OpenVPN GUI от имени администратора — в правом нижнем углу появится иконка программы:
Кликаем по ней правой кнопкой мыши и выбираем Подключиться:
Программа попросит нас авторизоваться — вводим логин и пароль, созданные ранее на роутере (client1); после мы должны будем ввести пароль для сертификата — вводим тот, что использовали при выгрузке.
Дожидаемся подключения — значок должен стать зеленым:
Если мы хотим запускать клиента без пароля (без необходимости его вводить), в конфиге правим опцию auth-user-pass на:
…auth-user-pass auth.txt…
Создаем текстовый файл auth.txt в той же папке, где находится файл конфигурации со следующим содержимым:
usernamepassword
* где username — логин пользователя, а password — пароль.
Приведем примеры установки клиента для систем на базе deb и RPM.
а) на deb (Debian, Ubuntu, Mint):
apt-get install openvpn
б) на RPM (Red Hat, CentOS, Fedora):
yum install epel-release
yum install openvpn
После установки клиента создаем конфигурационный файл:
vi /etc/openvpn/client.conf
Также в каталог /etc/openvpn копируем сертификаты.
Выполняем подключение:
openvpn —config /etc/openvpn/client.conf
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies