Настройка VPN клиента в Ubuntu 16.04
Настройка 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 gedit /etc/NetworkManager/system-connections/Some-VPN-Connection
И укажите параметры 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