OPENVPN НА MIKROTIK

Первым делом нам нужно создать шаблоны сертификатов

/certificate
add name=ca-template common-name=example.com days-valid=3650 key-size=2048 key-usage=crl-sign,key-cert-sign
add name=server-template common-name=*.example.com days-valid=3650 key-size=2048 key-usage=digital-signature,key-encipherment,tls-server
add name=client-template common-name=client.example.com days-valid=3650 key-size=2048 key-usage=tls-client

Для OpenVPN сервера поле common name может быть любым. Сертификаты можно сгенерировать используя утилиту easyrsa, но лично у меня они потом не завелись. Клиенты при подключении получали в журнале TCP recv EOF и в логах микротика я видел TLS_ERROR, поэтому буду рад получить обратную связь если у вас заведется со своими сертификатами.

Созданные сертификаты нужно подписать:

/certificate
sign ca-template name=ca-certificate
sign server-template name=server-certificate ca=ca-certificate
sign client-template name=client-certificate ca=ca-certificate

Экспортируем сертификаты, они понадобятся нам позже на клиенте:

/certificate
export-certificate ca-certificate export-passphrase=""
export-certificate client-certificate export-passphrase=12345678

Можно убрать пароль на сертификат, если он вам не нужен, ну или изменить его

Команды выше создатут 3 файла, которые вы сможете скачать в соответствующем разделе:

cert_export_ca-certificate.crt, cert_export_client-certificate.crt, cert_export_client-certificate.key

Далее нам нужно создать пул адресов для впн клиентов

/ip pool add name="vpn-pool" ranges=192.168.8.10-192.168.8.99

Так же мы создадим новый профиль и свяжем с ранее созданым пулом, укажем что днс сервером будет являтся этот маршрутизатор (если конечно вам это нужно)

/ppp
profile add name="vpn-profile" use-encryption=yes local-address=192.168.8.250 dns-server=192.168.8.250 remote-address=vpn-pool

Добавим учетные данные пользователя secret add name=ovpnc1 profile=vpn-profile password=ovpnc1 Наконец мы можем включить интерфейс сервева open vpn

/interface ovpn-server server
set default-profile=vpn-profile certificate=server-certificate require-client-certificate=yes auth=sha1 cipher=aes128,aes192,aes256 enabled=yes

Скопируем ранее созданные ключи и сертификаты в директорию с OpenVPN на клиенте C:\Program Files\OpenVPN\config\

И создадим фаил с настройками для клиента:

client
dev tun
proto tcp
remote example.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca cert_export_ca-certificate.crt
cert  cert_export_client-certificate.crt
key cert_export_client-certificate.key
remote-cert-tls server 
cipher AES-128-CBC
auth SHA1
auth-user-pass auth.secret
redirect-gateway def1 # заворачивает весь трафик на впн 
route 192.168.0.203 255.255.255.255 vpn_gateway # пример маршрута который будет поднят после подключения
# точно работает на windows 7 и android vpn_gateway слово которое будет заменено на адрес вашего шлюза
verb 3

в файле auth.secret ( положите его рядом ) впишите логин и пароль клиента с новой строки П.С не забудьте открыть порт для клиентов

/ip firewall filter
add chain=input protocol=tcp dst-port=1194 action=accept place-before=0 comment="Allow OpenVPN"