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.

SignalExpired cookieChanged certificate
When it startedafter hours or days of workingright after a gateway change
Fingerprint from a fresh authenticateunchangeddifferent value
Usual log tailHTTP CONNECT 401 / unauthorizedsigner not found / verify failed
Repairreplace the cookie, restartre-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 attempt

Gü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.

İlgili makaleler