Openconnect в режиме Juniper неожиданно завершается с ошибкой "Не удалось получить cookie WebVPN"

Я использовал Openconnect на Unbutu 16.04 LTS для успешного подключения к моей VPN в течение достаточно долгого времени, используя следующие опции для вызова поддержки Juniper и настройки туннеля SOCKS5.

(Обратите внимание, что реальный URL-адрес VPN был заменен на vpn.company.com)

openconnect --juniper 
            --script-tun --script "/usr/bin/ocproxy -D 11080"  
            --cafile=/etc/ssl/certs/vpn1.company.com.der
            https://vpn.company.com

После перезагрузки за обедом я больше не мог восстановить соединение, но вместо этого получил следующую расшифровку, заканчивающуюся ошибкой:

WARNING: Juniper Network Connect support is experimental.
It will probably be superseded by Junos Pulse support.
GET https://vpn.company.com/
Attempting to connect to server XXX.XXX.XXX.XXX:443
SSL negotiation with vpn.company.com
Connected to HTTPS on vpn.company.com
Got HTTP response: HTTP/1.1 302 Found
GET https://vpn.company.com/dana-na/auth/url_default/welcome.cgi
SSL negotiation with vpn.company.com
Connected to HTTPS on vpn.company.com
frmLogin
GET https://vpn.company.com/dana-na/auth/url_default/welcome.cgi
SSL negotiation with vpn.company.com
Connected to HTTPS on vpn.company.com
frmLogin
Failed to obtain WebVPN cookie

Команда поддержки сети не знает о каких-либо проблемах с Juniper VPN, но я неожиданно даже не дошел до запроса пароля.

1 ответ

Решением стало ручное обновление Openconnect.

С помощью apt-get install --upgrade-only openconnect, Я подтвердил, что уже был на последней версии (7.06-2build2)

Я скачал последнюю версию (7.08) и собрал ее вручную. Поскольку vpnc-scripts Пакет помещает vpnc-скрипт в другое место, чем по умолчанию, мне нужно было предоставить эту информацию configure, Я также не заботился об отсутствии поддержки DTLS, поэтому сказал, чтобы я просто использовал мою текущую версию openssl:

./configure --with-vpnc-script=/usr/share/vpnc-scripts/vpnc-script --without-openssl-version-check

а также добавить несколько недостающих пакетов, необходимых для сборки - в моем случае libxml2, libxml2-dev, а также pkg-config,

Наконец, поскольку пакет Xenial использовал GnuTLS, но моя сборка использовала OpenSSL, он не смог прочитать файл сертификата как.der и получил Failed to open CA file, Это было исправлено путем преобразования его в.pem (по умолчанию OpenSSL):

openssl x509 -in /etc/ssl/certs/vpn1.company.com.der -inform der 
             -out /etc/ssl/certs/vpn1.company.com.pem -outform pem

Я подозреваю, что на стороне VPN-сервера произошли изменения, которые начали отправлять "Предварительное сообщение для входа", которое теперь поддерживается в 7.08.

Другие вопросы по тегам