Страницы

вторник, 8 мая 2018 г.

OpenVPN network troubleshoot. Сетевая точка отказа туннеля Ubuntu - Fedora

При подключении и настройки openvpn-сервера часто возникает проблема с подключением клиента.

Основные точки отказа - это проблемы с конфигурационными опциями, с сетевой подсистемой - включен firewall, недоступны ключи и сертификаты, несоответствие ключей и сертификатов серверу.

Проблема в сетевом подключении?


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

Подразумевается, что имеется доступ к серверу по протоколу SSH.

Server (Ubuntu 18.04 LTS):

Системный openvpn сервис должен быть выключен.
# systemctl stop openvpn@server

Генерация ключа:
# mkdir /etc/openvpn/keys
# openvpn --genkey --secret /etc/openvpn/keys/psk.key

Предварительно сгенерированный секретный ключ хранится на сервере в файле: /etc/openvpn/keys/psk.key
Серверный конец туннеля, будет иметь ip-адрес: 192.168.6.1
На сервере запускается тестовый openvpn с параметрами: 

# openvpn  --secret /etc/openvpn/keys/psk.key 0 --dev tun --local XXX.XX.XX.XX --ifconfig 192.168.6.1 192.168.6.2

XXX.XX.XXX.XX - внешний статически IP-адрес сервера.

Client (Fedora 28):

На клиенте надо получить с сервера общий секретный ключ командой scp.

$ scp -2  root@XXX.XX.XXX.XX:/etc/openvpn/keys/psk.key .

. - это текущий каталог, в котором будет лежать общий секретный ключ.
На клиенте запускается клиент и конфигурируется ip-адрес точки туннеля на стороне клиента.
Клиентский конец туннеля, будет иметь ip-адрес: 192.168.6.2

$ sudo openvpn  --secret psk.key 1 --dev tun --remote XXX.XX.XXX.XX --ifconfig 192.168.6.2 192.168.6.1
Обратить внимание на цифру после ключа: 0 - для сервера, 1 - для клиента. В принципе, их можно опустить.
sudo - нужно для формирования нового сетевого интерфейса tun0.
После установки связи, должны быть доступны по ping концы туннеля, как с клиента, так и сервера.
$ ping 192.168.6.1
PING 192.168.6.1 (192.168.6.1) 56(84) bytes of data.
64 bytes from 192.168.6.1: icmp_seq=1 ttl=64 time=159 ms
64 bytes from 192.168.6.1: icmp_seq=2 ttl=64 time=170 ms
64 bytes from 192.168.6.1: icmp_seq=3 ttl=64 time=162 ms

....

Поднятый туннельный интерфейс tun0:
$ ifconfig
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
inet 192.168.6.2  netmask 255.255.255.255  destination 192.168.6.1
Для расширенного понимания что происходит надо добавить разговорчивости серверу, опцией --verb 4

Проблема в аутентификации графического клиента Fedora NetManager OpenVPN?


Столкнулся с багом - нельзя использовать русские имена в папках, где храняться ключи openvpn.

Для просмотра журнала того, что происходит при соединении графического клиента OpenVPN NetManager в Fedora 28 используется команда journalctl:

$ journalctl -r -t nm-openvpn

мая 08 15:45:51 red nm-openvpn[26544]: Options error: Please correct these errors.
мая 08 15:45:51 red nm-openvpn[26544]: Options error: --key fails with '/home/gimmor/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/server/client1.key': No such file or directory
мая 08 15:45:51 red nm-openvpn[26544]: WARNING: cannot stat file '/home/gimmor/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/server/client1.key':
No such file or directory
 мая 08 15:45:51 red nm-openvpn[26544]: Options error: --cert fails with '/home/gimmor/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/server/client1.crt
мая 08 15:45:51 red nm-openvpn[26544]: Options error: --ca fails with '/home/gimmor/%D0%94%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/server/authority.crt':
No such file or directory
 мая 08 15:43:30 red nm-openvpn[26481]: Use --help for more information.
В консольном режиме, подключался, а в графическом - бага.


P.S. Не успела Ubuntu 18.04 LTS выйти, как уже доступна у облачного хостинга - вот это оперативность.
※※※


Комментариев нет: