ConnMan OpenConnect çerezünün süresi doluyor, sertifika sorunu değil
Günlükte iki arıza aynı görünür. Sabitlenmiş parmak izini oturum çereziyle karşılaştırın, süresi dolan alanı yenileyin ve ardından daemon'ı yeniden başlatın.
ConnMan bir öğleden sonra çalışır ve sonra reddeder, günlük satırı da sertifika doğrulamasından söz eder. O satır insanları hiç bozulmamış CA paketlerine yönlendirir. İki farklı arıza neredeyse aynı biçimde başarısızlık üretir: oturum çerezinin süresi dolar ya da sunucu sertifikası gerçekten değişmiştir. İkisi yaklaşık bir dakikada ayrılabilir ve yalnızca biri parmak iziyle ilgilidir.
İki arıza, tek bir kafa karıştırıcı günlük satırı
İki gözlemle ayrılırlar ve hiçbiri ikinci bir okuma gerektirmez. Birincisi arızanın ne zaman başladığıdır: süresi dolmuş çerez saatler veya günler süren çalışmadan sonra gelir, ve değiştirilmiş sertifika ise ağ geçidi değişikliğinden hemen sonra gelir.
| Signal | Expired cookie | Changed certificate |
|---|---|---|
| When it started | after hours or days of working | right after a gateway change |
| Fingerprint from a fresh authenticate | unchanged | different value |
| Usual log tail | HTTP CONNECT 401 / unauthorized | signer not found / verify failed |
| Repair | replace the cookie, restart | re-pin deliberately, then restart |
Bir dakikalık test aşağıdaki authenticate çalıştırmasıdır. FINGERPRINT değerini dosyadaki OpenConnect.ServerCert ile karşılaştırın. Aynı parmak izi ve farklı COOKIE yalnızca çerezi değiştirmek anlamına gelir. Farklı parmak izi sunucu sertifikasının gerçekten değiştiği anlamına gelir, bu yüzden onu bilerek yeniden sabitleyin ve kimin onayladığını kaydedin.
Materyali yazmak yerine üretin
ConnMan'ın NetworkManager'ın aksine OpenConnect profili için içe aktarma adımı yoktur. Değerlerinin önceden üretilmesi gereken bir sağlama dosyasını okur ve bunları üretmenin desteklenen yolu OpenConnect'in authenticate kipidir.
sudo openconnect --csd-wrapper=/home/user/.cisco/csd-wrapper.sh \
--authenticate --user myuser vpn.example.comÇıktı dört değer yazdırır: POST, COOKIE, HOST ve FINGERPRINT. sha256: önekli parmak izi sunucunun sabitlemesidir. Çerez ise ömrüne ağ geçidinin karar verdiği oturum artefaktıdır. Onları farklı gizli türleri olarak ele alın: farklı çizelgelerle süreleri dolar ve yalnızca birinin değişmesi beklenir.
Dosya ikisini de taşır ve ikisi farklı yaşlanır
Sağlama dosyası /var/lib/connman-vpn/ altında yaşar ve her bağlantı için VPN daemon'ı tarafından okunur, sistem tepsisi uygulaması tarafından değil. Bağlantı adını genel bölümde, protokol ayrıntılarını sağlayıcı bölümünde tutun.
[global]
Name = Company VPN
[provider_openconnect]
Type = OpenConnect
Name = Company Cisco VPN
Host = vpn.example.com
Domain = corp.example
OpenConnect.ServerCert = sha256:...
OpenConnect.Cookie = ...Portalın gerçekten hizmet verdiği ana bilgisayar adını kullanın. Çıplak bir IP adresi sertifika denetimini geçip yine de başarısız olabilir, çünkü cihaz sanal ana bilgisayara göre yönlendirir ve adı bekler.
systemctl status connman-vpn --no-pager # is the daemon even installed and running
sudo systemctl restart connman-vpn # after the file edit
journalctl -u connman-vpn --since '1 hour ago' # after the connection attemptGünlük gerçekte ne gösterir
Tepsi ipucu hangi arızanın olduğunu söylemez. İlk telaşlandırıcı satır yerine sırayı okursanız günlük söyler. Eski bir çerez genellikle TLS görüşmesinin tamamlandığını ve HTTP katmanının ardından reddettiğini gösterir; bu yüzden sertifikalarla ilgili sözler bir yetkilendirme başarısızlığının yanında durur.
Yeni bir authenticate çalıştırmasını dosyadaki değerlerle karşılaştırın. Parmak izi eşleşiyor ve yalnızca çerez farklıysa, güven ayarlarına dokunmadan yanıtınız var.
Süresi dolan alanı yenileyin
authenticate komutunu yineleyin, OpenConnect.Cookie değerini değiştirin ve daemon'ı yeniden başlatın. Yeni çıktı farklı bir değer göstermiyorsa parmak izine dokunmayın; o durumda sunucu sertifikası gerçekten değiştirilmiştir ve yeniden sabitleme birinin kaydetmesi gereken bir karardır, hata iletisinden yapıştırma değil.
Yenilemeyi otomatikleştirmek mantıklıdır: küçük bir betik parolayı standart girdiden okur, authenticate kipini çalıştırır ve yalnızca çerez satırını yeniden yazar. Kimlik bilgisini betiğin dışında tutun ve yalnızca onu çalıştıran hesap tarafından okunabilir yapın, yeniden yazmayı da atomik yapın ki başarısız bir çalıştırma yarı yazılmış bir dosya bırakmasın.
Yenileme birkaç saatte bir gerekiyorsa aralığı yazın. Bu, ağ geçidinin oturum ilkesinin bir özelliğidir ve yenilemenin otomatikleştirilmesine mi yoksa daha uzun bir oturum istenmesine mi karar verir.