Проверка Openconnect сертификат с NetworkManager

на моем рабочем столе Cinnamon (linux) у меня есть настройка VPN-подключения openconnect в NetworkManager. При подключении у меня, кажется, нет никаких проблем: соединение установлено, и сетевой трафик маршрутизируется через него. Однако мой системный журнал содержит тревожную запись:

openconnect[2935]: SSL negotiation with (...)
openconnect[2935]: Server certificate verify failed: signer not found
openconnect[2935]: Connected to HTTPS on (...)
openconnect[2935]: Got CONNECT response: HTTP/1.1 200 OK

Я пробовал использовать openconnect из командной строки и не печатать ничего о проблемах с сертификатом (даже в расширенном режиме). Также отсутствуют ошибки сертификата с сайтом в Firefox или использование wget (Я понятия не имею, какое хранилище сертификатов использует openconnect...).

означает ли это, что соединение подвержено атакам "человек посередине"? Если сертификат не может быть проверен, почему нет запроса на подтверждение, который просит меня доверять сертификату перед подключением и отправкой моих учетных данных? Почему проблема возникает только при подключении с помощью NetworkManager?

командная строка openconnect is

/usr/sbin/openconnect --servercert sha1:bee140657db50a73ee69f47fee9e4d670905206e --syslog --cookie-on-stdin --script /usr/lib/NetworkManager/nm-openconnect-service-openconnect-helper --interface vpn0 (ip):443

предупреждение тоже присутствует, если я явно не устанавливаю сертификат CA в NetworkManager.

14
задан JPW
14.12.2022 7:18 Количество просмотров материала 2426
Распечатать страницу

1 ответ

эта проблема по-прежнему присутствует в Ubuntu 18.04 с network-manager-openconnect.

Я думаю, что проблема здесь в том, что соединение осуществляется на IP-адрес VPN-сервера, а не его DNS-имя:

$ ps aux | grep openconnect
/usr/sbin/openconnect --servercert sha256:<hash> --syslog --cookie-on-stdin --script /usr/lib/NetworkManager/nm-openconnect-service-openconnect-helper --interface vpn0 <ip>:443

выполните команду вручную, без параметра -- servercert:

$ /usr/sbin/openconnect <ip>:443 --authenticate
POST https://<ip>/
Connected to <ip>:443
SSL negotiation with <ip>
Server certificate verify failed: certificate does not match hostname
Certificate from VPN server "<ip>" failed verification.
Reason: certificate does not match hostname
To trust this server in future, perhaps add this to your command line:
   --servercert sha256:<hash>
Enter 'yes' to accept, 'no' to abort; anything else to view: 

обратите внимание на сбой проверки сертификата.

теперь используется имя хоста вместо IP:

$ /usr/sbin/openconnect <hostname>:443 --authenticate
POST https://<hostname>/
Connected to <ip>:443
SSL negotiation with <hostname>
Connected to HTTPS on <hostname>
XML POST enabled
Please enter your username and password.

нет ошибки сертификата.

теперь, использование IP с параметром servercert:

$ /usr/sbin/openconnect <ip>:443 --authenticate --servercert sha256:<hash>
POST https://<ip>/
Connected to <ip>:443
SSL negotiation with <ip>
Server certificate verify failed: signer not found
Connected to HTTPS on <ip>
XML POST enabled
Please enter your username and password.

сравните ошибку с первым примером - это другая ошибка. Этот не удается, потому что подписывающее лицо не найдено. Учитывая, что мы просто указываем хэш, я думаю, это имеет смысл,поскольку нет цепочки доверия.

для меня, я думаю, что основная причина в том, что network manager по какой-то причине подключается к IP-адресу, а не к имени хоста. Не уверен, почему он будет делать это?

1
отвечен cuvy 2022-12-15 15:06

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх