İki OpenVPN profilini anahtarları sızdırmadan karşılaştırın
Bir metin diff'i, değişen bir yönergeyi gösterdiği kadar kolayca satır içi anahtarları da açığa çıkarabilir. Korumalı kopyalarda role göre karşılaştırın, ardından ayrı bir redakte tanılama dosyası oluşturun.
İki profil, biri bağlanıyor diğeri bağlanmıyor ve nedenini görmenin hızlı yolu bir diff. Sorun şu ki aynı diff, satır içi özel anahtarı, statik anahtarı ve dosyanın taşıdığı herhangi bir kimlik bilgisi bloğunu yazdırır ve insanlar fark etmeden çıktıyı bir sohbete yapıştırır. Neyi karşılaştırdığınıza karar vermek komutu çalıştırmadan önce gelir. Korumalı kopyalarda yapıyı ve rolleri karşılaştırın, başkasının görmesi gerektiğinde ayrı bir redakte dosya oluşturun.
Bir .ovpn dosyası gerçekte ne taşır
Bir .ovpn dosyası isteğe bağlı satır içi blokları olan bir yapılandırmadır. Bir CA sertifikası, istemci sertifikası, özel anahtar, tls-auth veya tls-crypt anahtarı ve harici dosyalara işaret eden veya kimlik bilgisi isteyen yönergeler içerebilir. İki dosya neredeyse aynı görünebilir ve yalnızca bir bloğun içinde farklılaşabilir ya da taşımayı tamamen değiştiren tek bir yönergede farklılaşabilir. Satır sayısı bunlardan hangisinin olduğunu size söylemez.
Bir anahtar bloğunun içindeki fark, hiçbir şeyin kamuya açık kanıtı değildir. Yeniden verilmiş bir sertifika ile yeni anahtarlı bir sertifika aynı biçimde değişiklik üretebilir, dolayısıyla blok uyuşmazlığı materyalin farklı olduğunu söyler, hangi kararın onu ürettiğini değil. Bunu alanları karşılaştırmak için bir işaret olarak görün, bir bulgu olarak değil.
Satıra göre değil, role göre karşılaştırın
Bağlantının kendi sırasını izleyin: önce uç nokta ve taşıma, sonra güven ve beklenen kimlik, sonra kullanıcı kimlik doğrulaması, sonra yollar, DNS ve betik kancaları. Bu sıra istemcinin yaptığıyla eşleşir, dolayısıyla karşılaştığınız ilk fark bağlantıyı bozmuş olabilecek ilk şeydir. Alfabetik karşılaştırma ise ilgili ayarları çıktının tamamına dağıtır.
Alan bilincine sahip bir geçiş bu öğelere bu sırayla bakar. İstemcinin etkileşimli olarak sorduğu her şey güven satırlarına değil kimlik doğrulama satırına aittir.
remote,protove bağlantı noktası, her bağlantı bloğu dahil.cavecert: veren, konu ve son kullanma tarihi.- Özel anahtarın hiç var olup olmadığı, asla ne içerdiği değil.
tls-authveyatls-cryptvarlığı ve anahtar yönü.- Kimlik doğrulama yönergeleri, herhangi bir kimlik bilgisi dosyası referansı dahil.
- Bağlanırken çalışan yollar, DNS seçenekleri ve betik kancaları.
Bir dosya birkaç bağlantı bloğu içerdiğinde, her seçeneği kendi uç noktasıyla birlikte tutun. Yalnızca ilk remote satırı karşılaştırmak, istemcinin bu ağda gerçekten seçtiği alternatifi kaçırabilir.
Düz bir diff neden yanlış araçtır
Düz bir diff metin için yapılmıştır, sırlar için değil. Özel bir anahtarı memnuniyetle ekran geçmişine yazdırır ve baktığınız yönergenin arızayla ilgisiz olduğunu size söylemez. Alan çıkarımları hem daha güvenli hem daha okunaklıdır, çünkü sertifika malzemesi bayt yerine üst veri olarak karşılaştırılabilir.
openssl x509 -in ca.crt -noout -subject -issuer -enddate
openssl x509 -in client.crt -noout -subject -issuer -enddate
grep -E '^(remote|proto|port|tls-auth|tls-crypt|route|dhcp-option)' profile.ovpn
İlk iki komut anahtara dokunmadan kimliği ve geçerliliği yazdırır, bu yüzden çıktıları yapıştırmak güvenlidir. grep yönerge adlarını ve değerlerini yazdırır ama blok gövdelerini asla, bu da onu taşıma veya yönlendirme farkından şüphelendiğinizde doğru ilk geçiş yapar. Bloğun kendisi karşılaştırılacaksa, içerik yerine hash'ini karşılaştırın.
Bilet için redakte bir kopya oluşturun
Farkı açıklamak için alan adlarını ve yeterli yapıyı koruyarak gerçek sırları ve gereksiz tanımlayıcıları kaldırın. Aynı biçimde bir işaret yine de malzemenin nerede olduğunu ve ne kadar uzun olduğunu açığa çıkarır, bu yüzden bunun bile kabul edilebilir olup olmadığına karar verin. Çalıştırdığınızı hatırladığınız komuta güvenmek yerine son eklentinin kendisini denetleyin. Yalnızca örnek üretmek için çalışan orijinali düzenlemeyin, çünkü redakte bir profil mutlaka çalıştırılabilir değildir ve asla yeniden içe aktarılmamalıdır.
Orijinalleri benzer adlı üç dizine kopyalamak yerine dosya adı ve hash ile tanınabilir tutun. Bir hash dizesi hangi dosyanın incelendiğini kanıtlamaya yeter ve sızarsa hiçbir maliyeti yoktur. Değişiklik kapandıktan sonra kopyaları budayın, böylece sonraki kişi tek bir yetkili dosyayı devralır.
Karşılaştırmayı bir arızaya bağlı tutun
Bir karşılaştırma, tek bir içe aktarma veya tek bir bağlantı arızası hakkındaki soruyu yanıtladığında maliyetine değer. Önce başarısız olan adımı adlandırın, sonra yalnızca o adımın bağlı olduğu alanları karşılaştırın; istemcinin tüm kimlik bilgilerini tek bir dizinde toplamak sonraki sızıntıyı daha olası, sonraki tanılamayı daha yavaş yapar. Soru ne kadar darsa, yanıtlayabilecek alanların listesi o kadar kısadır.
Yeni bir dosya operatörden geldiyse, güven malzemesini değiştirmeden önce dağıtım yolunu doğrulayın. Değişiklikten sonra, istemcinin gerçekten seçtiği içe aktarılmış kopyayı ve anlaşılan sonucu inceleyin, çünkü bir yönerge başka bir istemci sürümü tarafından yok sayılabilir veya farklı okunabilir. Diskteki dosya, çalışan bağlantının kanıtı değildir. Yönergelerin anlambilimi OpenVPN 2.6 kılavuzunda.