Biri size bir profil gönderir, onu içe aktarırsınız ve otuz saniye sonra bir istemci kimsenin denetlemediği bir hedefe bağlanıyordur. Önce dosyayı bir metin düzenleyicide okuyun, çünkü önemli olan her şey bir avuç yönergede toplanır: remote, proto, port, ca, cert, tls-crypt ve verify-x509-name. Geri kalan her şey varsayılan değerlerdir ve sürprizler tam orada yaşar.

Dosyanın kullanabileceği her uç noktayı listeleyin

Uç noktalarla başlayın, çünkü bir profil birkaç tane içerebilir. grep -nE '^[[:space:]]*(remote|proto|port|remote-random|connection)' profile.ovpn her adayı dosya sırasına göre yazdırır, satır içi <connection> bloklarının içine yuvalanmış olanlar dahil.

Bir yönerge bağlantı noktasını atlarsa, istemci dinleyicinin varsayılanına döner, bu yüzden tek başına remote vpn.example.com, dosyada daha sonra hangi proto görünürse görünsün 1194 bağlantı noktası anlamına gelir. Birkaç düz remote satırı alternatiftir: istemci bunları sırayla dener, remote-random onları karıştırmadıkça, ve asla başka bir işletmecinin ana bilgisayarını sessizce değiştirmez. İlgisiz alan adlarında iki remote satırı, durup hangisinin kastedildiğini sorduğunuz noktadır.

proto yazımına da dikkat edin. tcp istemci tarafındaki tcp-client için eşanlamlı olarak kabul edilir, ancak istemci profilinde tcp-server temiz başarısız olmak yerine askıda kalmaya eğilimli bir yapılandırma hatasıdır.

Önce adı, sonra bağlantı noktasını doğrulayın

dig +short vpn.example.com adın var olup olmadığını ve hangi adresleri döndürdüğünü söyler; çok adresli veya bir vekil sunucunun arkasındaki bir uç nokta meşru olarak birkaç tane döndürebilir. Ad çözümlemesi bir ön koşuldur, sahiplik kanıtı değildir; herkes bir adı bir adrese yöneltebilir ve bir adres birçok adı yanıtlayabilir.

Ardından bulduğunuz bağlantı noktasındaki dinleyiciyi taşımaya uygun olarak denetleyin. TCP üzerinden openssl s_client -connect vpn.example.com:1194 -servername vpn.example.com sunucunun sunduğu zinciri yazdırır. UDP üzerinden DTLS gerekir: openssl s_client -dtls1_2 -connect vpn.example.com:1194 aynı el sıkışmayı veri birimleri üzerinden yürütür. Tamamlanmış bir el sıkışma bir şeyin dinlediğini ve bir sertifika tuttuğunu kanıtlar; bu, ping'in gösterdiğinden fazla ve profilin kendi güven ayarlarının talep ettiğinden azdır.

El sıkışma başarısız olduğunda ve ana bilgisayar ping'e yanıt verdiğinde, bağlantı noktası muhtemelen yanlıştır veya filtrelenmiştir. Bunu doğru bağlantı noktasını istemek için bir neden sayın, yakındakileri taramak için bir davet değil. nc -vzu de bazı yığınlarda hiçbir şey dinlemezken başarı bildirir, bu yüzden arkasında el sıkışma olmayan çıplak bir UDP denemesi hiçbir şey ifade etmez.

Güven sabitlerini adresten ayrı okuyun

Adres istemcinin nereye gideceğine karar verir; güven bloğu vardığında kime inanacağına karar verir. verify-x509-name "vpn.example.com" name öznenin ortak adını sabitler ve remote-cert-tls server sunucu kimlik doğrulaması için genişletilmiş anahtar kullanımını şart koşar. Bir işletmecinin size verdiği profilde ikisi de bulunmalıdır.

ca, satır içi bir <ca> bloğu ve ya tls-crypt ya da tls-auth arayın. tls-auth kullanan bir profil, sunucu tarafı 0 yönünü kullandığında istemcide key-direction 1 gerektirir ve uyuşmazlık el sıkışmayı sertifika arızası gibi okunan bir TLS hatasıyla düşürür. Adını yeni çözdüğünüz işletmeciye ait olmayan satır içi bir CA, dosyanın iki kaynaktan birleştirildiği anlamına gelir ve bu, kesin olarak reddedilmeye değer durumdur.

verify-x509-name name, name-prefix veya subject kiplerini kabul eder ve sonuncusu, sunucunun yazdırdığı tam sırayla eksiksiz bir ayırt edici ad bekler. Değerin biçimine uyan bir kip seçin, çünkü istemci yakın bir isabetsizlik konusunda uyarmak yerine her bağlantıyı reddeder. Kendi yazmadığınız bir dosya için basit bir ana bilgisayar adıyla name en az şaşırtıcı seçimdir.

Sessizce başarısız olan seçenekleri denetleyin

OpenVPN 2.6 şifreleri data-ciphers üzerinden pazarlık eder ve yalnızca eski bir cipher AES-256-CBC satırı taşıyan bir profil denetim kanalını tamamlayıp sonra veride takılabilir. Bu değeri okumak, dosyanın katıldığınız sunucudan daha eski olup olmadığını söyler; 2.6'nın kılavuz sayfası pazarlık sırasını listeler, işletmeciye aktarmanız gerekirse.

Dosya adı olmayan auth-user-pass istemcinin soracağı anlamına gelir, bu yüzden kendi kendine yeterli görünen bir profil bile kimlik bilgilerine ihtiyaç duyar. auth-user-pass credentials.txt size muhtemelen gönderilmemiş bir dosya beklediği anlamına gelir. nobind ve resolv-retry infinite olağan ve zararsızdır, oysa explicit-exit-notify yalnızca UDP içindir ve TCP üzerinden anlamsızdır.

Bunların hiçbiri profilin nereye bağlandığını değiştirmez, ama her biri bağlanıp bağlanmayacağını değiştirir ve hiçbiri istemcinin içe aktarma penceresinde görünmez.

Karar verin, sonra neye karar verdiğinizi yazın

Bu okumadan sonra üç sonuç vardır ve yalnızca biri içe aktarmadır. Uç nokta ve sabitler ayrı bir kanaldan aldığınız yönergelerle eşleştiğinde içe aktarın. Uç nokta doğru görünüyor ama sabitler veya CA eşleşmiyorsa düzeltilmiş bir dosya isteyin. Dosya farklı kaynaklardan uç noktaları veya CA malzemesini karıştırıyorsa silin ve yeni bir kopya isteyin.

İncelediğiniz hash'i yazın, böylece sonraki kişi dosyanın değişip değişmediğini anlayabilir: sha256sum profile.ovpn, notlarınızda uç noktanın yanına yapıştırılmış. Profil bir adres listesi değil, bütün bir düzenlemedir, bu yüzden çalışan bir remote'u başkasının güven bloğuna onların kimlik bilgilerini koruyarak asla eklemeyin.

Notları karşılaştırırken özel anahtarları ve parolaları ekran görüntülerinden ve sohbet dizilerinden uzak tutun. Uç nokta ve gizli olmayan seçenekler kesin bir soru sormak için yeterlidir, geri kalanı dosyaya aittir.

Yine de içe aktarır ve ilk deneme başarısız olursa istemciyi --verb 3 ile çalıştırın ve ilk on satırı okuyun: çözülen remote adresi, pazarlık edilen proto ve TLS hatası bu sırayla görünür, bu da yukarıdaki denetimlerden hangisini atladığınızı söyler.

İlgili makaleler