1. Настройка времени на Mikrotik
System - Clock и установим правильное значение часового пояса, его автоматическое определение лучше отключить.
В консоли это можно сделать командой:
> /system clock set time-zone-autodetect=no time-zone-name=Europe/Moscow
В качестве параметра опции time-zone-name следует указать наименование вашего часового пояса согласно tz database.
Затем установим пакет NTP, для этого вам потребуется скачать с официального сайта архив Extra packages для вашей архитектуры и версии RouterOS, оттуда следует извлечь пакет ntp и поместить его на роутер, для установки достаточно перезагрузить устройство.
После чего перейдем в System - NTP Client, включим его и укажем адреса NTP-серверов, в нашем случае это сервера из пула ru.pool.ntp.org.
0.ru.pool.ntp.org
1.ru.pool.ntp.org
В консоли:
> /system ntp client set enabled=yes primary-ntp=195.218.227.166 secondary-ntp=5.183.147.2
Обратите внимание, что вместо доменных имен серверов следует указать их IP, имейте ввиду, что адреса pool.ntp.org указывают на случайно выбранные из пула сервера, которые меняются каждый час, поэтому полученные вами адреса могут отличаться от указанных нами.
Аналогичные манипуляции следует выполнить на всех роутерах-участниках VPN-сети. Для ПК и других устройств-клиентов также следует настроить синхронизацию времени.
2. Создание сертификатов на Mikrotik
2.1. Корневой сертификат на Mikrotik
Идем в System - Certificate и жмем на "+", заполняем поля
Из них обязательно заполнить: Name, Common Name, Key Size, и Days Valid.
Остальное заполнять не обязательно, но желательно для идентификации сертификата в дальнейшем.
Переходим на закладку Key Usage, укажем только crl sign и key cert. sign и жмем Apply.
Подпишем сертификат нажав Sign. В появившемся окне заполним поле CA CRL Host адресом локальной петли - 127.0.0.1 и жмем Start, ждем когда в окне Progress отобразится done. Закрываем окна и возвращаемся в Certificates.
В консоли:
> /certificate
> add name=ca country="ru" state="77" locality="msk" organization="cda" unit="it" common-name="ca-bugor" key-size=2048 days-valid=3650 key-usage=crl-sign,key-cert-sign
> sign ca ca-crl-host=127.0.0.1
2.2. Сертификат и закрытый ключ сервера на Mikrotik
Закладка General заполняется аналогично, только в полях Name и Common Name указываем server-bugor.
На закладке Key Usage укажем только digital-signature, key-encipherment и tls-server.
Подпишем сертификат ключом нашего CA нажав Sign, в поле CA выберем созданный сертификат ca, остальное не заполняем.
Закрываем окна и возвращаемся в Certificates.
В консоли:
> /certificate
> add name=server-bugor country="ru" state="77" locality="msk" organization="cda" unit="it" common-name="server-bugor" key-size=2048 days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
> sign server-bugor ca="ca"
2.3. Клиентские сертификаты на Mikrotik
Закладка General заполняется так же аналогично, только в полях Name и Common Name указываем уникальное имя клиента, в Days Valid укажем срок действия сертификата, нет смысла делать его сроком на 3650 (10 лет) дней как для предыдущих сертификатов, ограничимся реально нужным сроком к примеру - 365 дней (1 год). Для клиентских маршрутизаторов можем задать больший срок, но не превышающий корневого сертификата.
На закладке Key Usage укажем только tls-client.
Подпишем сертификат ключом нашего CA нажав Sign, в поле CA выберем созданный сертификат ca, остальное не заполняем.
В консоли:
> /certificate
> add name=chesnokovda-bugor country="ru" state="77" locality="msk" organization="cda" unit="it" common-name="chesnokovda-bugor" key-size=2048 days-valid=365 key-usage=tls-client
> sign chesnokovda-bugor ca="ca"
Если все было сделано правильно то корневой сертификат должен иметь флаги KLAT, остальные KI.
2.4. Экспорт сертификатов на Mikrotik
Для использования сертификата на клиента нам необходимо экспортировать закрытый ключ, сертификат клиента и корневой сертификат. Для этого откроем клиентский сертификат и жмем Export
Type - PKCS12 (содержит все необходимые компоненты в одном файле: сертификат, ключ и сертификат CA)
Export Passphrase - парольная фраза (минимум 8 символов, без этого закрытый ключ не экспортируется)
Экспортированные сертификаты скачиваем в разделе Files.
В консоли:
> /certificate
> export-certificate chesnokovda-bugor type=pkcs12 export-passphrase=12345678
3. Настройка OpenVPN сервера на Mikrotik
3.1. Создадим пулл адресов для выдачи, переходим IP -> Pool и жмем на "+":
Name - pool-ovpn - произвольное имя
Addresses - 172.20.30.10-172.20.30.199 - диапазон адресов для выдачи
В консоли:
> /ip pool
> add name=pool-ovpn ranges=172.20.30.10-172.20.30.199
3.2. Создаем профиль. Идем PPP -> Profiles и жмем на "+":
Если требуется указываем свой DNS Server для выдачи клиентам
В терминале:
> /ppp profile
> add local-address=172.20.30.254 name=profile-ovpn remote-address=pool-ovpn
3.3. Включаем аутентификацию пользователя
Идем в PPP -> Secrets -> PPP Authentication&Accounting - должен стоять флаг Accounting
В терминале:
> /ppp aaa
> set accounting=yes
3.4. Заводим УЗ для пользователя.
В PPP -> Secrets жмем на "+"
Заводим пользователя желательно по имени его сертификата
В терминале:
> /ppp secret
> add name=chesnokovda-bugor password=123 profile=profile-ovpn service=ovpn
3.5. Включаем OVPN Server
Переходим в PPP -> Interface и жмем OVPN Server, в открывшемся окне настраиваем как ниже на картинке
Require Client Certificate - будет проверять сертификат клиента на принадлежность к цепочке сертификатов локального CA
В терминале:
> /interface ovpn-server server
> set auth=sha1 certificate=server-bugor cipher=aes256 default-profile=profile-ovpn enabled=yes mode=ethernet require-client-certificate=yes
Также не забудьте разрешить входящие подключения к OpenVPN серверу в цепочке Input вашего Firewall.
4. Настройка OpenVPN клиента на Mikrotik
4.1. Грузим файл сертификата на клиента
Открываем Files и перетаскиваем ранее экспортированный файл сертификата
4.2. Импортируем сертификат
Перейдем в System -> Certificate и жмем Import, в открывшемся окне укажем файл сертификата и парольную фразу, которую мы установили при экспорте, и жмем Import.
В результате появятся два сертификата: сертификат клиента с закрытым ключом, о чем говорит флаг KT, и корневой сертификат удостоверяющего центра с флагом LAT (K - означает наличие ключа). Запомним наименование сертификатов, либо переименуем их.
В консоли:
/certificate
import file-name=cert_export_chesnokovda-bugor.p12 passphrase=12345678
4.3. Создаем новый интерфейс OVPN Сlient
Идем в PPP -> Interface жмем на "+"
Создадим новый интерфейс OVPN Сlient, заполняем:
ГОТОВО