1) Генерируем корневой сертификат:
1
2
|
/certificate add name=template-CA country= "" state= "" locality= "" organization= "" unit= "" common-name= "templ-OVPN-CA" key-size=4096 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) Создаем сертификат сервера:
1
2
|
/certificate add name=template-SRV country= "" state= "" locality= "" organization= "" unit= "" common-name= "srv-OVPN" key-size=4096 days-valid=1095 key-usage=digital-signature,key-encipherment,tls-server /certificate sign template-SRV ca= "OVPN-CA" name= "srv-OVPN" |
3) Создаем клиентский шаблон сертификата:
1
|
/certificate add name=template-CL country= "" state= "" locality= "" organization= "" unit= "" common-name= "client-ovpn-template" key-size=4096 days-valid=365 key-usage=tls-client |
4) Создаем сертификат для клиента:
1
2
|
/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 во второй команде. Т.е. для добавления следующего сертификата клиента команды должны быть, например такими:
1
2
|
/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 адресов для наших клиентов:
1
|
/ip pool add name=OVPN_srv_pool ranges=192.168.100.2-192.168.100.254 |
Создаем профиль для OpenVPN:
1
|
/ppp profile add name=OVPN_server local -address=192.168.100.1 remote-address=OVPN_srv_pool |
Включаем аторизацию:
1
|
/ppp aaa set accounting= yes |
Добавляем пользователя:
1
|
/ppp secret add name= test -user-1 password=P@ssword1 service=ovpn profile=OVPN_server |
Это имя пользователя и пароль будут нужны при покдключении.
Включаем OpenVPN сервер:
1
|
/interface ovpn-server server set auth=sha1 cipher=blowfish128 default-profile=OVPN_server mode=ip netmask=24 require-client-certificate= yes certificate=srv-OVPN enabled= yes |
6) Выполним экспорт сертификатов:
1
2
|
/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 tap
proto tcp
remote 1.2.3.4 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@ssw0rd1
Вот и все, поместите скачанные сертфикаты и созданные файлы в одну папку. Теперь с помощью файла client.ovpn можно подключиться.
Для того что бы отозвать сертификат используется команда:
1
|
certificate issued-revoke имя сертификата |