Установка OpenVPN на Ubuntu 18.04 LTS. Часть 7 из 12

27.07.2020

Теги: LinuxSSLUbuntuVPNКлиентКлючКонфигурацияЛокальнаяСетьМаршрутизацияНастройкаСерверУстановка

Вернем настройки сервера 123.123.123.123 как было раньше — опять добавим client-to-client в файл конфигурации сервера, запретим пересылку пакетов между интерфейсами, удалим все правила netfilter и вернем политику ACCEPT для цепочки FORWARD таблицы filter. В общем все, что мы сделали для фильтрации пакетов между двумя подсетями.

Еще один VPN-клиент

И продолжим наш разговор об установке и настройке OpenVPN. Предположим, что в компании есть несколько сотрудников, которым нужен удаленный доступ к ресурсам локальных сетей центрального офиса и филиала компании. Другими словами, у нас получается уже следующая схема:

Создаем в центре сертификации закрытый ключ и запрос на подпись сертификата для пользователя Сергей Иванов:

$ cd /home/evgeniy/easy-rsa/
$ ./easyrsa gen-req vpn-client-sergey-ivanov nopass

Подписываем сертификат VPN-клиента:

$ ./easyrsa sign-req client vpn-client-sergey-ivanov

Поскольку в файле конфигурации сервера у нас есть директива ccd-exclusive, нужно создать файл vpn-client-sergey-ivanov в директории client-config-dir. Кроме того, сообщим этому клиенту о сетях 192.168.150.0/24 и 192.168.250.0/24:

$ sudo nano /etc/openvpn/ccd/vpn-client-sergey-ivanov
# сообщить этому клиенту маршрут до сети за клиентом gateway1
push "route 192.168.150.0 255.255.255.0 10.8.0.1"
# сообщить этому клиенту маршрут до сети за клиентом gateway2
push "route 192.168.250.0 255.255.255.0 10.8.0.1"

Переходим на pc5, устанавливаем пакет openvpn и копируем файлы:

$ sudo mkdir /etc/openvpn/keys/ # создаем директорию для ключей и сертификатов
$ sudo scp evgeniy@123.123.123.123:/home/evgeniy/easy-rsa/pki/ca.crt /etc/openvpn/keys/
$ sudo scp evgeniy@123.123.123.123:/home/evgeniy/easy-rsa/pki/private/vpn-client-sergey-ivanov.key /etc/openvpn/keys/
$ sudo scp evgeniy@123.123.123.123:/home/evgeniy/easy-rsa/pki/issued/vpn-client-sergey-ivanov.crt /etc/openvpn/keys/
$ sudo scp evgeniy@123.123.123.123:/home/evgeniy/easy-rsa/ta.key /etc/openvpn/keys/

Создаем файл конфигурации клиента:

$ sudo nano /etc/openvpn/client/config.conf
# это макрокоманда, преобразуется в директивы pull и tls-client
client
# работа по протоколу UDP (для работы по TCP нужно указать tcp-client)
proto udp
# сетевой интерфейс TUN (или TAP)
dev tun

# ip-адрес и порт сервера
remote 123.123.123.123 1194

# если не удалось получить ip-адрес сервера от DNS, то через указанное
# количество секунд попытаться снова; infinite — повторять бесконечно
resolv-retry infinite

# использовать динамический порт для подключения к серверу (клиенту не
# требуется привязка к определенному порту); актуально только для UDP
nobind

# корневой сертификат
ca /etc/openvpn/keys/ca.crt
# сертификат клиента
cert /etc/openvpn/keys/vpn-client-servey-ivanov.crt
# приватный ключ клиента
key /etc/openvpn/keys/vpn-client-sergey-ivanov.key

# для защиты от атаки «человек посередине», когда авторизованный клиент
# пытается подключиться к другому клиенту, выдавая себя за сервер; при
# указании этой директивы проверяется, что сертификат именно серверный
remote-cert-tls server

# добавляет дополнительную подпись HMAC ко всем пакетам handshake для
# проверки целостности; любой пакет, не имеющий правильной HMAC-подписи,
# будет отброшен без дальнейшей обработки; это для доп.безопасности
tls-auth /etc/openvpn/keys/ta.key
# направление ключа: для клиента — 1, для сервера — 0
key-direction 1

# использовать алгоритм AES-256-GCM шифрования пакетов канала данных;
# на данный момент это самый безопасный и быстрый алгоритм шифрования
cipher AES-256-GCM
# алгоритм хеширования — для проверки целостности передаваемых пакетов
# канала данных и (если включено tls-auth) пакетов канала управления
auth SHA256

# пользователь и группа с минимальными правами — для большей безопасности
user nobody
group nogroup

# не перечитывать файлы ключей при восстановлении после разрыва соединения
persist-key
# оставлять без изменения устройства tun или tap при перезапуске службы
persist-tun

# по умолчанию логи идут в syslog; использование одной из директив ниже
# предписывает вести отдельный лог; первая — перезаписывать файл лога,
# вторая — дополнять файл лога; можно использовать только одну директиву
#log         /var/log/openvpn/openvpn.log
#log-append  /var/log/openvpn/openvpn.log

# уровень детализации лога от 0 до 11; если 0 — тогда только фатальные ошибки;
# при настройке установить значение 4-11, при эксплуатации — 0 или 1
verb 3

Все готово, можно запускать VPN-клиент:

$ sudo systemctl start openvpn-client@config.service

Добавим запуск клиента в автозагрузку:

$ sudo systemctl enable openvpn-client@config.service

При попытке выполнения команды ping 192.168.150.2 с компьютера pc5 меня ждало разочарование — пакеты не доходили до компьютера pc1. После некоторых размышлений — стало понятно, что правила netfilter на gateway1 не подходят для новых условий работы:

$ sudo iptables -L -v --line-numbers 
Chain INPUT (policy ACCEPT 2734 packets, 704K bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination

Chain FORWARD (policy DROP 95 packets, 6060 bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination
1      188   15551   ACCEPT   all    --    enp0s8   enp0s3   192.168.150.0/24  !192.168.250.0/24
2      143   19914   ACCEPT   all    --    enp0s3   enp0s8   anywhere           192.168.150.0/24
3        3     252   ACCEPT   all    --    enp0s8   tun0     192.168.150.0/24   192.168.250.0/24
4        3     252   ACCEPT   all    --    tun0     enp0s8   192.168.250.0/24   192.168.150.0/24

Chain OUTPUT (policy ACCEPT 2429 packets, 239K bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination

Давайте это исправим — удалим все правила и добавим вместо них новые:

$ sudo iptables -F
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -s 192.168.150.0/24 ! -d 192.168.250.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -s 192.168.150.0/24 ! -d 10.8.0.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -d 192.168.150.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o tun0 -s 192.168.150.0/24 -d 192.168.250.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i tun0 -o enp0s8 -s 192.168.250.0/24 -d 192.168.150.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o tun0 -s 192.168.150.0/24 -d 10.8.0.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i tun0 -o enp0s8 -s 10.8.0.0/24 -d 192.168.150.0/24 -j ACCEPT
$ sudo iptables-save > /etc/iptables/rules.v4

Получилось примерно так:

  • пакеты из сети 192.168.150.0/24, не предназначеннные для сети 192.168.250.0/24 — отправлять во внешний мир
  • пакеты из сети 192.168.150.0/24, не предназначеннные для VPN-клиентa 10.8.0.0/24 — отправлять во внешний мир
  • пакеты из внешнего мира, предназначенные для сети 192.168.150.0/24 — отправлять в сеть 192.168.150.0/24
  • пакеты из сети 192.168.150.0/24, предназначеннные для сети 192.168.250.0/24 — отправлять в туннель
  • пакеты из туннеля от сети 192.168.250.0/24, предназначеннные для 192.168.150.0/24 — отправлять в сеть 192.168.150.0/24
  • пакеты из сети 192.168.150.0/24, предназначеннные для VPN-клиента 10.8.0.0/24 — отправлять в туннель
  • пакеты из туннеля от VPN-клиента 10.8.0.0/24, предназначеннные для 192.168.150.0/24 — отправлять в сеть 192.168.150.0/24

На маршрутизаторе gateway2 делаем все по аналогии:

$ sudo iptables -L -v --line-numbers 
Chain INPUT (policy ACCEPT 2811 packets, 732K bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination

Chain FORWARD (policy DROP 6 packets, 504 bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination
1      886   81136   ACCEPT   all    --    enp0s8   enp0s3   192.168.250.0/24  !192.168.150.0/24
2      960   3555K   ACCEPT   all    --    enp0s3   enp0s8   anywhere           192.168.250.0/24
3        3     252   ACCEPT   all    --    enp0s8   tun0     192.168.250.0/24   192.168.150.0/24
4        3     252   ACCEPT   all    --    tun0     enp0s8   192.168.150.0/24   192.168.250.0/24

Chain OUTPUT (policy ACCEPT 2438 packets, 222K bytes)
num   pkts   bytes   target   prot   opt   in       out      source             destination 
$ sudo iptables -F
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -s 192.168.250.0/24 ! -d 192.168.150.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o enp0s3 -s 192.168.250.0/24 ! -d 10.8.0.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s3 -o enp0s8 -d 192.168.250.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o tun0 -s 192.168.250.0/24 -d 192.168.150.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i tun0 -o enp0s8 -s 192.168.150.0/24 -d 192.168.250.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i enp0s8 -o tun0 -s 192.168.250.0/24 -d 10.8.0.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -i tun0 -o enp0s8 -s 10.8.0.0/24 -d 192.168.250.0/24 -j ACCEPT
$ sudo iptables-save > /etc/iptables/rules.v4

Сертификаты внутри ovpn-файла

Очень неудобно каждому VPN-клиенту передавать несколько файлов ключей и сертификатов + каждый раз создавать файл конфигурации. Все это можно разместить в одном ovpn-файле — это все тот же файл конфигурации клиента, но в него добавлены блоки

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

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

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

<tls-auth>
-----BEGIN OpenVPN Static key V1-----
.....
-----END OpenVPN Static key V1-----
</tls-auth>

А вот строки, указывающие путь к ключам и сертификатам надо удалить:

# корневой сертификат
ca /etc/openvpn/keys/ca.crt
# сертификат клиента
cert /etc/openvpn/keys/vpn-client-servey-ivanov.crt
# приватный ключ клиента
key /etc/openvpn/keys/vpn-client-sergey-ivanov.key

# добавляет дополнительную подпись HMAC ко всем пакетам handshake
tls-auth /etc/openvpn/keys/ta.key

Директиву key-direction удалять не нужно! Иногда в файлах конфигурации встречается альтернативный вариант указания ключа TLS и направления — не двумя директивами, а одной:

# путь к файлу ключа и направление ключа 1
tls-auth /etc/openvpn/keys/ta.key 1

В этом случае надо добавить в ovpn-файл конфигурации клиента директиву

# направление ключа для клиента
key-direction 1

Сделаем это на компьютере Сергея Иванова (хотя правильно делать это в центре сертификации):

$ sudo cp /etc/openvpn/client/config.conf /etc/openvpn/client/sergey-ivanov.ovpn
$ sudo nano /etc/openvpn/client/sergey-ivanov.ovpn
# это макрокоманда, преобразуется в директивы pull и tls-client
client
# работа по протоколу UDP (для работы по TCP нужно указать tcp-client)
proto udp
# сетевой интерфейс TUN (или TAP)
dev tun

# ip-адрес и порт сервера
remote 123.123.123.123 1194

# если не удалось получить ip-адрес сервера от DNS, то через указанное
# количество секунд попытаться снова; infinite — повторять бесконечно
resolv-retry infinite

# использовать динамический порт для подключения к серверу (клиенту не
# требуется привязка к определенному порту); актуально только для UDP
nobind

# для защиты от атаки «человек посередине», когда авторизованный клиент
# пытается подключиться к другому клиенту, выдавая себя за сервер; при
# указании этой директивы проверяется, что сертификат именно серверный
remote-cert-tls server

# для клиента направление ключа TLS — 1 (для сервера — 0)
key-direction 1

# использовать алгоритм AES-256-GCM шифрования пакетов канала данных;
# на данный момент это самый безопасный и быстрый алгоритм шифрования
cipher AES-256-GCM
# алгоритм хеширования — для проверки целостности передаваемых пакетов
# канала данных и (если включено tls-auth) пакетов канала управления
auth SHA256

# пользователь и группа с минимальными правами — для большей безопасности
user nobody
group nogroup

# не перечитывать файлы ключей при восстановлении после разрыва соединения
persist-key
# оставлять без изменения устройства tun или tap при перезапуске службы
persist-tun

# по умолчанию логи идут в syslog; использование одной из директив ниже
# предписывает вести отдельный лог; первая — перезаписывать файл лога,
# вторая — дополнять файл лога; можно использовать только одну директиву
#log         /var/log/openvpn/openvpn.log
#log-append  /var/log/openvpn/openvpn.log

# уровень детализации лога от 0 до 11; если 0 — тогда только фатальные ошибки;
# при настройке установить значение 4-11, при эксплуатации — 0 или 1
verb 3

<ca>
-----BEGIN CERTIFICATE-----
MIIDZjCCAk6gAwIBAgIUWqA7PRJW0tpOQTdClbqbTYnXWiYwDQYJKoZIhvcNAQEL
BQAwHzEdMBsGA1UEAwwUVG9rbWFrb3YgQXV0aCBDZW50ZXIwHhcNMjAwNzIwMTEy
NTQ4WhcNMzAwNzE4MTEyNTQ4WjAfMR0wGwYDVQQDDBRUb2ttYWtvdiBBdXRoIENl
bnRlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKLqIfSBPhTvoK+0
yYJyIQNaxhXVKMjcTbaxHVaukaxoybxEVr54zmuedYYVvH6TSKlmgqIIhM6w/5UD
rU3+DedNyerHgptC9Z9c5K/2uZyvwH98HPbyfqAIp0n4IYchSuBcUR3E4wzoX8kN
Cu0fh47+NgJEgVwGa4rUpI+UcIkVrMUcG8WwYdxmBh0ee9kE5/dZZpZcnyQbj7Bw
QTlNVaJl6SYZ1X3uxtkNikHZ3c/y7BNrvO8+xjygYgzzjM3FIJPplaqGyZN1sjMR
Da4ZpTJhJdGEasO8V2rD6prrn9nbP/OV12aW5S+z8h0oezEYASVehooqGcWKIDGJ
/50S628CAwEAAaOBmTCBljAdBgNVHQ4EFgQU6+h63+5BNtBXEMXo4XH4txrpRGUw
WgYDVR0jBFMwUYAU6+h63+5BNtBXEMXo4XH4txrpRGWhI6QhMB8xHTAbBgNVBAMM
FFRva21ha292IEF1dGggQ2VudGVyghRaoDs9ElbS2k5BN0KVuptNiddaJjAMBgNV
HRMEBTADAQH/MAsGA1UdDwQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAFhVLbw3w
/rCAmGfpekdSklcWc5AH9oiS0bItucusJz4dBcPk5EdYGzrVzRTVhlSKVMHHo2/q
jDRd3SEkecdpKRSzcUS2/TVFPUGdClbfEZQ6h+DSk2fqiWpkHWXaALNrHrGSaVki
UOUzN/RY2GE1aTNLjxR+AiPrO/fzM6pEufzo1yihJM8QFjE42JSJdoVnH+JbHAbD
XjQMWlHyVVTrGz4yUfS+13RMugFB9hTrSRgyJ00/mI9ejaINI4XxWEozKP3bHU8Y
WlYHMoXzenJTK2uY3ndPkDZ9rYsAdMUq3J0ATN5IYncXEVSE0d4FROyJFqDgexaH
LJKMrXggloUblA==
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIDeDCCAmCgAwIBAgIQTZp7Y0aGLvsC12C0saxeITANBgkqhkiG9w0BAQsFADAf
MR0wGwYDVQQDDBRUb2ttYWtvdiBBdXRoIENlbnRlcjAeFw0yMDA3MjcwODUyMzRa
Fw0yMjEwMzAwODUyMzRaMCMxITAfBgNVBAMMGHZwbi1jbGllbnQtc2VyZ2V5LWl2
YW5vdjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1obAAN8q+ci59F
SWO+TzN1baBFTU85R0xrZIU2JQG5a7Zvj2QfOPoKyDarTD0uH3YbQTAs7ee9HEo+
5FKlLFp3+YTlbYcdwk0diQ9HXmY58i3q6T99Jg4Wvic9NB4mtOn+evNkGDu6xzms
8brye1XQfJYqXi3PAErvm3xjWPGMjuv7cHTstuUQqD1WeYehgNus3w00Igd1WuTs
6TU4kTTr+GjafY1UEWyJWYl1ounjk7dgljCtuKZ0tbgQe/krwV1nq2Gi/bWy1Tuq
z0xHLjYJvhlaFS4H9DavM6z1348RvXPCj9iv7L85BQQEBrS+lepEJw9WDEUPK9Lx
VhZCiAECAwEAAaOBqzCBqDAJBgNVHRMEAjAAMB0GA1UdDgQWBBSi7WM5gKMvLgsz
hCET+83FMpZAYTBaBgNVHSMEUzBRgBTr6Hrf7kE20FcQxejhcfi3GulEZaEjpCEw
HzEdMBsGA1UEAwwUVG9rbWFrb3YgQXV0aCBDZW50ZXKCFFqgOz0SVtLaTkE3QpW6
m02J11omMBMGA1UdJQQMMAoGCCsGAQUFBwMCMAsGA1UdDwQEAwIHgDANBgkqhkiG
9w0BAQsFAAOCAQEAMmKHNYHHkksGxJLlP5urgQnKmWA8EvKRT/hq7Yg0fTH1omId
oPufjRqj4brElrgBtnxNI/MitEyfxk2gFiLNGavUsC31FyPS4SsqlSMQxTB7jQ/p
FasBmunw4ICVu4EPkV3SxzNGhVRWd8P167GyNyjdf0pWmmm6V9wWXXzy2J2nliDx
gyNSN0OV+LAgPgZn3urDvM4J1UrG6hni+t7kksxUkdZVRGX1HDgLNnYgdtzG6kO3
mcHpO56BIJWxboFTVEk8g4GHv/EWLw0A1XzdS5N+/jVLGdhxCDjdu82Wtm3gnLa+
jBodjrxecG7RgQEY4zWRQ1b5B+a492LrzJWaew==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDNaGwADfKvnIuf
RUljvk8zdW2gRU1POUdMa2SFNiUBuWu2b49kHzj6Csg2q0w9Lh92G0EwLO3nvRxK
PuRSpSxad/mE5W2HHcJNHYkPR15mOfIt6uk/fSYOFr4nPTQeJrTp/nrzZBg7usc5
rPG68ntV0HyWKl4tzwBK75t8Y1jxjI7r+3B07LblEKg9VnmHoYDbrN8NNCIHdVrk
7Ok1OJE06/ho2n2NVBFsiVmJdaLp45O3YJYwrbimdLW4EHv5K8FdZ6thov21stU7
qs9MRy42Cb4ZWhUuB/Q2rzOs9d+PEb1zwo/Yr+y/OQUEBAa0vpXqRCcPVgxFDyvS
8VYWQogBAgMBAAECggEAXkCkDgJYcaxrhNHOMy6IORyRCRHDv66QwMgmf9mwcXIb
ssLOESsigdmgtTU07n3TgeZPq0NyhvuHl6n0KtgP2hNjM0/zSiSlm60JzzD4Z//+
2IMKNE/AvoZBCtBSseMg8J4M3NH5LK8v648n/Jh3b5ETGfSm8m4hvEDmH9WWYn9B
IIZ84MKnvXyp+rLpWXSxsrDpja2jK5ZepThiZyE8OxYUAw+p7HDyS9kciAGhFHE6
/KRHSYuODF7l4+A8kS/wzNYusZ4vUpa7murhWalbfBD/XxZHyF6TgvL6CuLBhtiX
zv78alQZIFmqecDr6arWP/0/cNvveuT9Sl0vvMzSAQKBgQD+aVT0VP8EbsZWC8DG
uTUyOy/jPh2FgGp2cR1GapbaKRMlCRUYGQdLfS+jWtF1brbyjh7gSJgnr4NJu+aR
xenF/QP/7hQB9Hlku5R821ZYHhd19TMRLS/r2/Ahk6f6psRU3SNbvg5PVbTgMCq4
36U0OfLzeyt5PbK4QIxE2tq8uQKBgQDOsMJt5cW3XUJKGEbeWu/JoGXcSgWCo0rS
grvjoUMXTrRl7CsrDg1yrAkS/1NDBKeyaM2hFeS9XlmIStbBzYqQJDHbMYZk97k3
anF51ZMDrTDFc07vCfvSZ1u71IwaWtV9f+K7nkU8zc73GeXsSVyrFHed1f5N6fh5
byoScOVRiQKBgEnWrmZ/qMhTklL09E15AZyDmyF8LLtLixq3N8TxOLk2xKyyFyI4
WWqqecISoMpRiN2bLBDyYN7bzOIAnCng5Dmndpq4MaxjlTwMSUt3qXbHvQ1qThkF
IWx2GBrWrSFNd5wd1p5Q6fxSpr2OnUes+VjQHNhX/kUhCBb7/Poa/vNZAoGAb4zC
QmGh5aZ1Ylvb06GsjFr+3ncspibO+PIJyX59IRUfE2r0mVYKN/tVImWeYCsg/o7F
e8y/GNzU4VPSt+HgiI6gQbZm3BM+aQQPnjuADpnoGohy71uqBxI1VhgOTSL82bCt
g6iVoY1Jx964Ul/9nW98ZzjY+N/vdEpkoHNBsFECgYEAv1f3SQ1x0Bi1U8IKbxmj
iB4gb8oG08I198x91p0uvpV/t3iW5whcEGWQaOK6+UFOCyBreJs63kfifyeGk/VW
GumYK5PcpisttwqbX9tubZDWxYSse5CuTyyVng7Cq701SsJ7kIIDRIo2z5BgKNSK
RJGRkgcBo2g+GS+XBP8cEG0=
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
45dd5b67b5a2f6218051b75aa2f27c26
c3e40a0a9694c1ca13ed5d2e9e7b677d
673180b0957be9b9865a3ce08553fa9e
15c2bfd7587592c819d119c493023bb1
489c593f74ffe5ac009be74ea22d4c72
e244efda7c545929355c7071564ff7c6
bd84db4b273edad7febdbbbab00df9e9
4fdfb9af0b56cb30eb0076e3420b8eae
dffacd97c98763e0243d66a1d51a36c6
0ff085e1953a5d7e86f6a324fe29e024
b78378a78d71fa5ba2acedafcb2d2bc1
b80548a509f95bddc354f671fa8cd92a
351b44e00c72a87e3bd6fe79f516274d
27520e7ea3bec65771ba7d39d2865994
df834acdd526abe913ccb70010e5d7b8
bb850748947ff820a009868d6b0f1b47
-----END OpenVPN Static key V1-----
</tls-auth>

Скопируем получившийся файл в домашнюю директорию пользователя:

$ sudo /etc/openvpn/client/sergey-ivanov.ovpn /home/ivanov/sergey-ivanov.ovpn

Остановим VPN-клиент и удалим его из автозагрузки:

$ sudo systemctl stop openvpn-client@config.service
$ sudo systemctl disable openvpn-client@config.service

Дальше установим два пакета и перезагрузим службу NetworkManager:

$ sudo apt install network-manager-openvpn
$ sudo apt install network-manager-openvpn-gnome
$ sudo systemctl restart NetworkManager.service

Теперь идем в настройки и добавляем новый VPN-сервер:

Выбираем пункт «Импортировать из файла»:

Жмем кнопку «Добавить» справа сверху:

Теперь можно в любой момент подключиться к VPN-серверу:

Подключиться к VPN-серверу можно и не заходя в настрйки:

Собственно, такие несложные действия пользователь в состоянии выполнить самостоятельно, без нашего участия.

Поиск: Linux • SSL • Ubuntu • VPN • Клиент • Ключ • Конфигурация • Локальная сеть • Маршрутизация • Настройка • Сервер • Установка • Сертификат

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.