RouterOS из коробки поддерживает работу в качестве OpenVPN сервера и OpenVPN клиента, за некоторыми исключениями: не поддерживается LZO сжатие и UDP транспорт, а так же согласно документации требуется использование аутентификация по логину/паролю. А как же быть, если мы хотим использовать аутентификацию только по ключам? Оказывается, все очень просто.
Note: RouterOS supports only TCP mode. LZO compression is not supported and username/password authentication is required
Процесс настройки OpenVPN сервера я опущу, так как он достаточно подробно освещен другими.
Первым шагом мы импортируем подписанные сертификаты. На роутер их можно скопировать используя scp, sftp, ftp и т.п.
На просторах сети многие рекомендуют банально выполнить "/certificate import", но у меня этим способом не импортировался закрытый ключ:
[admin@MikroTik] > /certificate import
passphrase:
certificates-imported: 1
private-keys-imported: 0
files-imported: 1
decryption-failures: 0
keys-with-no-certificate: 0
[admin@MikroTik] /certificate> print
Flags: K - decrypted-private-key, Q - private-key, R - rsa, D - dsa, C - crl
0 C name="cert1" subject=CN=MikroTik,emailAddress=XXXX,OU=XXXX,O=XXXX SPB,L=Saint-Petersburg,C=RU
issuer=CN=XXXXX CA,emailAddress=XXXXX,OU=XXXXX,O=XXXXXX,L=Saint-Petersburg,C=RU
serial-number="19" email=XXXXX invalid-before=feb/26/2014 15:33:34
invalid-after=feb/26/2015 15:33:34 trusted=yes
Пришлось поочередно импортировать открытый и закрытый ключи:
[admin@MikroTik] /certificate> import file-name=XXXX.crt
passphrase:
certificates-imported: 1
private-keys-imported: 0
files-imported: 1
decryption-failures: 0
keys-with-no-certificate: 0
[admin@MikroTik] /certificate> import file-name=XXXXX.key
passphrase:
certificates-imported: 0
private-keys-imported: 1
files-imported: 1
decryption-failures: 0
keys-with-no-certificate: 0
[admin@MikroTik] /certificate> print
Flags: K - decrypted-private-key, Q - private-key, R - rsa, D - dsa, C - crl
0 KRC name="cert1" subject=CN=MikroTik,emailAddress=XXXXX,OU=XXXXX,O=XXXXX,L=Saint-Petersburg,C=RU
issuer=CN=XXXXX CA,emailAddress=XXXXX,OU=XXXXX,O=XXXXX,L=Saint-Petersburg,C=RU
serial-number="19" email=XXXXX invalid-before=feb/26/2014 15:33:34
invalid-after=feb/26/2015 15:33:34 trusted=yes
Для настройки OpenVPN соединения необходимо выполнить нижеприведенную команду, при этом необходимо не забыть указать параметры user/password с любыми значениями:
[admin@MikroTik] /interface ovpn-client> add name="test" connect-to=xxx.xxx.xxx.xxx port=1194 user="none" password="none" disabled=no profile=default certificate="cert1" add-default-route=no
После этого, проверяем поднялось ли соединение:
[admin@MikroTik] /interface ovpn-client> monitor
numbers: 0
status: connected
uptime: 1m58s
encoding: BF-128-CBC/SHA1
mtu: 1500
-- [Q quit|D dump|C-z pause]