OpenVPN клиент на Debian 9

OpenVpn Сервер

Сегодня разберём как подключить Debian к микротику посредствам OpenVPN. Ранее мы уже разбирали как поднять VPN сервер на микротике, поэтому будем разбирать как подключится к нему с Linux.

Установка

Пожалуй на дебиане настройка выполняется самым простым образом. Первоначально нам надо установить пакет. Никаких сложностей, воспользуемся обычным менеджером пакетов, никаких новых репозиториев нам не нужно.

apt install openvpn1apt install openvpn

apt 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, должен появится новый интерфейс

ifconfig tun0
Если интерфейса нет, смотрим лог файлы

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

На этом всё.
Как и прежде любые вопросы или пожелания можно оставлять ниже в комментариях.

Друзья помогите этому контенту стать доступнее в социальных сетях.

Не проходи мимо жмакни по кнопке возможно кому то еще он будет полезен!