Windows'ta bir L2TP bağlantısındaki 789 hatası, tünelin IPsec güvenlik alışverişinin içinde öldüğü anlamına gelir; bu, Windows'un bir kullanıcı parolasını herhangi bir yere göndermesinden çok önce gerçekleşir. Parolayı yeniden denemek veya dizinde sıfırlamak o aşamayı ileri taşıyamaz. Onu ileri taşıyan şey, bağlantıyı PowerShell'den ağ geçidinin gerçekte sunduğu teklifle yeniden kurmaktır, çünkü Ayarlar sihirbazı IPsec dönüşümlerini sessizce seçer ve ne seçtiğini size hiç göstermez. Bu, bunun için başvuru rehberidir: profili oluşturun, teklifi sabitleyin, sonra bir aşama tablosu kullanın ki sonraki kod size bir şey söylesin.

Profili sihirbaz olmadan oluşturun

Add-VpnConnection yerel bir telefon defteri girdisi yazar, yani sonuç Ayarlar uygulamasının sonradan düzenleyeceği aynı nesnedir. Bağlantı makinedeki her hesap için var olması gerektiğinde yükseltilmiş bir oturumdan, gizli kalması gerektiğinde kullanıcı bağlamından çalıştırın:

Add-VpnConnection -Name "Contoso L2TP" `
  -ServerAddress 203.0.113.10 `
  -TunnelType L2tp `
  -EncryptionLevel Required `
  -AuthenticationMethod MSChapv2 `
  -RememberCredential -Force

-AuthenticationMethod ayarını ağ geçidinin sunduğuyla eşleştirin. MSChapv2, EAP ve PAP birbirinin yerine geçmez ve sunucunun kabul etmeyeceği bir yöntem isteyen profil, herhangi bir kullanıcı kaydına bakılmadan önce başarısız olur. Gerçek olan her şey için -EncryptionLevel Required ayarını koruyun; Optional, karşı taraf bir tane sunarsa Windows'un şifrelenmemiş bir tüneli kabul etmesine izin verir, bu bir laboratuvar kısayoludur, gönderilecek bir ayar değildir.

-L2tpPsk verirseniz, o önceden paylaşılan anahtar diskteki profile yazılır ve oradan o makinede profili okuyabilen herkes onu kurtarabilir. Ağ geçidi desteklediğinde karşı tarafın kimlik doğrulaması için sertifika kullanın ve PSK kaçınılmazsa, her sağlama çalıştırmasına yapıştırmak yerine onu deponun ve kabuk geçmişinin dışında tutun.

Varsayılanları kabul etmek yerine teklifi sabitleyin

Windows IPsec dönüşümlerini kendisi doldurur, bu yüzden aynı görünen bir bağlantıya sahip iki makine aynı ağ geçidine karşı farklı biçimde başarısız olabilir. Set-VpnConnectionIPsecConfiguration bunları sabitlemenin desteklenen yoludur:

Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
  -AuthenticationTransformConstants SHA256128 `
  -CipherTransformConstants AES128 `
  -EncryptionMethod AES128 `
  -IntegrityCheckMethod SHA256 `
  -DHGroup Group14 `
  -PfsGroup None `
  -PassThru -Force

Bu küme yaygın bir L2TP/IPsec düzenlemesidir, evrensel bir yanıt değildir. Her parametre sabit bir değer listesi kabul eder ve platformun eşleyemediği bir bileşim, sessizce zayıflatılmış bir profil yerine cmdlet hatası olarak döner. Böyle bir hatayı değerler hakkında bir ifade olarak görün, izinleriniz hakkında değil.

Teklifi ağ geçidinin belgelerinden veya onun canlı aşama 1 ve aşama 2 ayarlarından kopyalayın ve ağ geçidi reddettiği dönüşümleri günlüğe kaydederken yalnızca bir seferde bir alanı değiştirin. Beş alanı dolaşmak tesadüfen çalışan bir bağlantı ve bir sonraki kişiye hiçbir şey anlatmayan bir kayıt üretir.

Hatayı hata metnine göre değil aşamaya göre okuyun

789, istemci iletişim kutusunda hepsi aynı görünen bir kod ailesine aittir. Profile yeniden dokunmadan önce kodu ait olduğu aşamanın karşısına koyun:

What you seeStage that failedCheck first
Nothing happens, then a timeoutNo IKE response at allServer address, UDP 500 and 4500 reachability, NAT traversal on the gateway
Error 789IKE security exchangeProposal, pre-shared key, certificate trust and client clock
Error 691 or a repeated password promptUser authenticationAccount state, domain, RADIUS or NPS policy
Tunnel up, some hosts unreachableRouting or DNS after PPPSplit-tunnel routes, pushed DNS, remote subnet mask

Burada kimlik bilgilerinin iki rolü önemlidir. Önceden paylaşılan bir anahtar veya sertifika tarafları birbirine doğrular, MSChapv2 veya EAP ise sizi tünelin içinde doğrular. Kullanıcı parolasını sıfırlamak birincisini düzeltemez, yeni bir ortak sır ikincisini düzeltemez ve ikisini birden değiştirmek hangisinin yanlış olduğuna dair kanıtı yok eder.

Sertifika yolunda, doğrulamayı gevşetmeyi düşünmeden önce istemci saatini, güven zincirini ve ağ geçidinin beklediği kimliği kontrol edin. Doğrulamayı kapatmak, görünen bir 789'u yanlış tarafa güvenerek bağlanan bir tünele dönüştürür ve istemcide hiçbir şey bunun olduğunu size söylemez. Microsoft'un uzak erişim hataları listesi kodların kendisi için referanstır ve güvenlik katmanı hatalarını oturum açma hatalarından ayırır.

Düzeltildi demeden önce iki uçtan da doğrulayın

Profili geri okuyun, ancak çıktıda teklifi beklemeyin. Get-VpnConnection adı, sunucu adresini, tünel türünü, şifreleme düzeyini ve kimlik doğrulama yöntemini bildirir ve dönüşümler hakkında hiçbir şey bilmez, bu yüzden geri okuma girdinin var olduğunu ve doğru ana bilgisayarı gösterdiğini doğrular:

Get-VpnConnection -Name "Contoso L2TP" |
  Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod

İletişim kutusu yerine bir numara almak için komut satırından arayın: rasdial "Contoso L2TP" arayüzün döndüreceği aynı hata kodunu döndürür ve rasdial "Contoso L2TP" /disconnect denemeler arasında onu temizler. Ardından aynı deneme için ağ geçidinin tarafını okuyun. strongSwan'ın ipsec statusall çıktısı veya yönlendiricinin IKE günlüğü hangi teklifin geldiğini ve hangisinin reddedildiğini söyler ve bunu cmdlet değerleriyle karşılaştırmak iki ucun anlaştığını gerçekten kanıtlayan tek adımdır.

Başarılı bir bağlantı bitiş çizgisi değildir. Kullanıcının önemsediği uygulamayı açın, çünkü yollar, itilen DNS ve bölünmüş tünel ayarları tünel ayakta olduktan sonra başarısız olur ve hiçbir hata iletişim kutusu üretmez.

Bunu otomatikleştirin ve temiz biçimde geri alın

Gözetimsiz kurulum bunu betiklemenin nedenidir ve arama adımı kimlik bilgilerinin sızdığı yerdir. rasdial onları kendi komut satırında alır ve orada diğer yerel kullanıcılar ile çoğu günlük toplayıcı onları okuyabilir:

subprocess.run(["rasdial", "Contoso L2TP"], check=True)

İşi çalıştıran hesaba sınırlı bir kimlik bilgisini tercih edin veya zamanlanmış bir görevde parolayı bağımsız değişken olarak geçirmek yerine profilin onu -RememberCredential ile saklamasına izin verin. Sağlama komutlarının kendileri -Force ile yinelenmek için güvenlidir, ancak eski bir teklifin üzerine seve seve yazarlar, bu yüzden yeniden çalıştırma yalnızca betik güncel değerleri taşıyorsa yardımcı olur.

Profiller yeniden başlatmalar arasında kalır ve inşa edildikleri ağ geçidi yapılandırmasından daha uzun yaşar. Ağ geçidinin teklifi değiştiğinde, değerlerin ikinci bir kümesini üstüne katmanlamak yerine girdiyi kaldırın ve yeniden oluşturun: Remove-VpnConnection -Name "Contoso L2TP" -Force, ardından iki cmdlet'i yeni kümeyle yineleyin.

Döngüyü betiğin yanında yaşayan dört kontrolle kapatın: Get-VpnConnection beklenen tünel türünü ve şifreleme düzeyini gösterir; ağ geçidi istemci adresiniz için aşama 1 ve aşama 2 tamamlandığını günlüğe kaydeder; rasdial başarı döndürür ve uygulama açılır; ve betikte kayıtlı teklif ağ geçidinin güncel ayarıyla eşleşir. Sıradaki 789 geldiğinde, o karşılaştırma bir öğleden sonra yerine dakikalar sürer.

İlgili makaleler