Настройка VPN клиента в Ubuntu 16.04

Категория: Linux

Настройка VPN клиента для OpenVPN сервера на Ubuntu 16.04.

Пример .ovpn файла конфигурации клиента:

client

remote XX.XX.XX.XX
port 1198

auth SHA512
auth-user-pass /path-to/username-password.txt

## @note Включаем компрессию данных
comp-lzo yes

dev tun
proto udp
nobind
auth-nocache
persist-key
persist-tun

cipher AES-256-CBC

verb 3

## @note В документации рекомендуется этот пункт для клиентов с нестабильным доступом, например Wi-Fi
resolv-retry infinite

key-direction 1

##push "route-nopull"
##push "route no-pull"
##push "redirect-gateway def1 bypass-dhcp"

##route-nopull
##route 172.21.227.0 255.255.255.0 172.21.103.33  ## @note Пример установки статического маршрута 

# Скрипт работает при подключении, он обновляет записи в resolv.conf при подключении к OpenVPN серверу и очищает их при отключении от OpenVPN сервера
#script-security 2
#up /etc/openvpn/update-resolv-conf
#down /etc/openvpn/update-resolv-conf

#ca ca.crt
#cert client.crt
#key client.key
#tls-auth clients-auth.key 1

<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>

<cert>
Certificate:
    Data:
        ...
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
</key>

<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
...
-----END OpenVPN Static key V1-----
</tls-auth>

Этот файл можно импортировать в NetworkManager, утилита nm-connection-editor. Придется повторно указать username и password (если заданы).

Будет создано новое VPN соединение. Файл конфигурации: /etc/NetworkManager/system-connections/Some-VPN-Connection.

Нет возможности из ovpn-конфига указать параметры IPv4 "Способ настройки: Автоматически (VPN, только адрес)" или параметры маршрутизации "Использовать это соединение только для ресурсов в этой сети" (Use this connection only for resources on its network). А в Ubuntu 16.04 при настройке/редактировании VPN маршрутов через nm-connection-editor слетает значение Metrics, из-за чего не устанавливаются статичные маршруты, которые вы указали в настройках соединения.


Окно настройки маршрутов OpenVpn клиента в Ubuntu 16.04

Чтобы изменить эти опции, отредактируйте файл вручную:

sudo ls -la /etc/NetworkManager/system-connections/
sudo nano /etc/NetworkManager/system-connections/vpn.my.domain.com.nmconnection
## Add lines to [connection]:
autoconnect=false
permissions=user:YOUR_USER:;

И укажите параметры ignore-auto-dns=true и never-default=true:

[connection]
id=Some-VPN-Connection
uuid=33278466-4d4d-4781-ad1f-0edaf1919ba6
type=vpn
permissions=
secondaries=
timestamp=1568982399

[vpn]
ta-dir=1
connection-type=password-tls
password-flags=1
remote=XX.XX.XX.XX
comp-lzo=yes
cert-pass-flags=0
port=1198
username=YouUsername
cert=/home/user/.cert/nm-openvpn/Some-VPN-Connection-cert.pem
ca=/home/user/.cert/nm-openvpn/Some-VPN-Connection-ca.pem
key=/home/user/.cert/nm-openvpn/Some-VPN-Connection-key.pem
ta=/home/user/.cert/nm-openvpn/Some-VPN-Connection-tls-auth.pem
dev=tun
service-type=org.freedesktop.NetworkManager.openvpn

[ipv4]
dns-search=
ignore-auto-dns=true
method=auto
never-default=true
route1=172.21.227.0/24,172.21.254.49 ## @note Удалите значение метрики 4294967295, если указано

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=ignore

Перезапустите сервис после редактирования:

sudo service network-manager restart
## или
sudo systemctl restart NetworkManager.service
Примечание

Чтобы добавить маршрут временно вручную:

sudo ip route add 172.21.227.0/24 via 172.21.103.33 dev tun0

#VPN #OVPN #OpenVPN #NetworkManager #Ubuntu 16.04

категория: Linux