
Сегодня разберём как подключить Debian к микротику посредствам OpenVPN. Ранее мы уже разбирали как поднять VPN сервер на микротике, поэтому будем разбирать как подключится к нему с Linux.
Установка
Пожалуй на дебиане настройка выполняется самым простым образом. Первоначально нам надо установить пакет. Никаких сложностей, воспользуемся обычным менеджером пакетов, никаких новых репозиториев нам не нужно.
apt install openvpn1apt install openvpn
после установки переходим в каталог /etc/openvpn/client и создаём файлик client.conf следующего содержания:
proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123dev tapnobindpersist-keytls-client
#указываем имена публичного CA сертификата
ca ca.crt
# публичного сертификата клиента
cert client.crt
# и его закрытый ключ
key client.key
#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться
keepalive 10 120verb 3
#проверка сертификата сервера
#
https://openvpn.net/index.php/open-source/documentation/howto.html
#
mitm remote-cert-tls server cipher AES-256-CBC auth SHA1 pull
# эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике auth-user-pass auth.cfg
# в этой части мы задаём настройки сетей которые находятся за микротиком,
# в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть,
# а 192.168.221.1 это адрес микротика который мы указывали в PPP профиле route-delay 2 route 192.168.1.0 255.255.255.0 192.168.221.1
12345678910111213141516171819202122232425262728293031
proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123
dev tap nobindpersist-key tls-client
#указываем имена публичного CA сертификатаca ca.crt
# публичного сертификата клиентаcert client.crt
# и его закрытый ключkey client.key
#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться
keepalive 10 120verb 3
#проверка сертификата сервера
#https://openvpn.net/index.php/open-source/documentation/howto.html
#mitm remote-cert-tls server cipher AES-256-CBC auth SHA1 pull
# эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике auth-user-pass auth.cfg
# в этой части мы задаём настройки сетей которые находятся за микротиком,
# в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть,
# а 192.168.221.1 это адрес микротика который мы указывали в PPP профиле route-delay 2
route 192.168.1.0 255.255.255.0 192.168.221.1
в этой же папке создаём файл auth.cfg куда записываем логин-пароль
user
12312
user123
Сюда же скидываем сертификаты: клиента, CA и секретный ключ клиента. После того как все файлы готовы можно запускать службу. В 9 дебиане это делается через systemd
systemctl start openvpn-client@client1
systemctl start openvpn-client@client
Тут добавлю немножко деталей. openvpn-client — значит запустить конфиг из папки /etc/openvpn/client, а @client значит запустить конфиг с названием client (файл в папке с именем client.conf). Соответственно таким же образом мы можем все файлы накидать в папку server и запуститься командой systemctl start openvpn-server@client. В какую именно папку закидывать конфиг и как запускаться зависит только от Вас.
Failed to enable unit: Unit file openvpn.service does not exist.
Ещё есть момент, что на разных системах работает эта команда по разному, например в ubuntu надо сложить файлы в /etc/openvpn, а запускать сервис командой: systemctl start openvpn@client.
Проверяем всё ли в порядке командой ifconfig, должен появится новый интерфейс

Если интерфейса нет, смотрим лог файлы
tail -n 100 /var/log/syslog1tail -n 100 /var/log/syslog
OpenSSL: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
Эта ошибка означает что у вас сгенерирован сертификат с использованием md5, что сейчас считается небезопасным, обновите скрипт который генерировал сертификат и создайте заново всю цепочку ca-server-client. Проверял начиная с 2.4.6 используется sha256, не знаю как более ранние, но более поздние точно нормально генерируют.
Если же всё в порядке добавляем службу в автозапуск
systemctl enable openvpn-client@client1systemctl enable openvpn-client@client
На этом всё.
Как и прежде любые вопросы или пожелания можно оставлять ниже в комментариях.
