
Привет. Сегодня хочу показать вам как на Mikrotik можно поднять OpenVPN Сервер. На микротике он не совсем полноценный, но бывают ситуации когда его использовать гораздо удобнее чем другие типы VPN соединений.
В сети есть много инструкций, как поднять OpenVPN сервере на маршрутизаторе Mikrotik, генерируя ключи при помощи openssl, мы же обойдемся без этой утилиты и всю настройку будем производить исключительно средсвами микротика.
Ниже я приведу список команд, которые нужно ввести в термнале:
1) Генерируем корневой сертификат:
/certificate add name=template-CA country="" state="" locality="" organization="" unit="" common-name="templ-OVPN-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="OVPN-CA"
2) Создаем сертификат сервера:
/certificate add name=template-SRV country="" state="" locality="" organization="" unit="" common-name="srv-OVPN" key-size=2048 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server/certificate sign template-SRV ca="OVPN-CA" name="srv-OVPN"
3) Создаем клиентский шаблон сертификата:
/certificate add name=template-CL country="" state="" locality="" organization="" unit="" common-name="client-ovpn-template" key-size=2048 days-valid=365 key-usage=tls-client
4) Создаем сертификат для клиента:
/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-1"/certificate sign template-CL-to-issue ca="OVPN-CA" name="client-ovpn-1"
В этих командах common-name в первой команде, должен соответствовать name во второй команде. Т.е. для добавления следующего сертификата клиента команды должны быть, например такими:
/certificate add name=template-CL-to-issue copy-from="template-CL" common-name="client-ovpn-2"/certificate sign template-CL-to-issue ca="OVPN-CA" name="client-ovpn-2"
5) Настраиваем собственно OpenVPN:
Добавляем pool адресов для наших клиентов:
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.100.254
Создаем профиль для OpenVPN:
/ppp profile add name=OVPN_server local-address=192.168.100.1 remote-address=OVPN_srv_pool
Включаем аторизацию:
/ppp aaa set accounting=yes
Добавляем пользователя:
/ppp secret add name=test-user-1 password=P@sswOrd1 service=ovpn profile=OVPN_server
Это имя пользователя и пароль будут нужны при покдключении.
Включаем OpenVPN сервер:
/interface ovpn-server server set auth=sha1 cipher=aes256-gcm default-profile=OVPN_server mode=ip netmask=24 require-client-certificate=yes certificate=srv-OVPN enabled=yes
Здесь я использую шифрование aes256-gcm, в старых версиях router os оно не поддерживалось. Если у вас нет возможности обновить систему, используйте другой тип, не забыв позже поправить конфигурацию клиента.
6) Выполним экспорт сертификатов:
/certificate export-certificate OVPN-CA export-passphrase=""/certificate export-certificate client-ovpn-1 export-passphrase=11111111
Соответственно во второй команде имя сертификата должно соответсвовать имени клиентского сертификата. В этой команде – запомните passphrase – она будет нужна при подключении.
7) Дальше нужно скопировать с микротика экспортированные сертификаты, например через winbox — пункт меню files.
8) Последний пункт — нужно создать 2 файла на компьютере:
1 — файл конфигруации OpenVPN, для клиентов client.ovpn. Выглядеть он должен так:
client dev tun –cipher AES-258-GCM –data-ciphers AES-258-GCM proto tcp remote 45.135.135.214 1194 resolv-retry infinite nobind persist-key persist-tun ca cert_export_OVPN-CA.crt cert cert_export_client-ovpn-1.crt key cert_export_client-ovpn-1.key –auth-user-pass user-pwd.txt remote-cert-tls server verb 3 route-delay 5 ;Это маршрут до сети за микротиком (0.0 – сеть за микротиком, 100.1 – адрес микротика в ovpn) ;route 192.168.0.0 255.255.255.0 192.168.100.1 ;это если нужно будет, что бы микротик был шлюзом по умолчанию redirect-gateway def1
Тут измените поле remote, 1.2.3.4 — измените на адрес вашего микротика.
Что бы микротик не был шлюзом по умолчанию закомментируйте последнюю строчку и раскомментируйте предпоследнюю (;route 192.168.0.0 255.255.255.0 192.168.100.1) — за местро 192.168.0.0 впишите нужную вам сеть.
И второй файл – с логином и паролем user-pwd.txt:
test-user-1
P@sswOrd1
Вот и все, поместите скачанные сертфикаты и созданные файлы в одну папку. Теперь с помощью файла client.ovpn можно подключиться.
Для того что бы отозвать сертификат используется команда:
certificate issued-revoke имя сертификата