remote-cert-tls server: OpenVPN profilində nəyi yoxlayır
Direktiv qarşı tərəfin sertifikatında kodlanmış rolu yoxlayır, adını yox. Hər hansısa şeyi söndürməzdən əvvəl rolu, etibarlılıq kökünü və host adı yoxlamasını müqayisə edin.
Üç fərqli sual OpenVPN profilinin üç fərqli hissəsi tərəfindən cavablandırılır və onları birləşdirmək insanların işləyən bir yoxlamanı söndürməsi ilə nəticələnir. Qarşı tərəfin sertifikatı etibar etdiyim orqan tərəfindən imzalanıbmı? Bu sertifikat TLS server rolunu bəyan edirmi? Məhz çatmaq istədiyim serverdirmi? remote-cert-tls server yalnız ortadakına cavab verir və bunu sertifikatın içindəki uzantıları oxuyaraq edir.
Beyində birləşdirməsi asan olan üç yoxlama
Etibarlılıq kökü ca direktivindədir. Rol yoxlaması remote-cert-tls-yə aiddir. Şəxsiyyət yoxlaması verify-x509-name-ə aiddir, profil ondan istifadə etdikdə, və ya yerləşdirmənin əlavə etdiyi hər hansı ad yoxlamasına.
Onlar müxtəlif uğursuzluqları əhatə edir:
| Question | Directive | Failure it catches |
|---|---|---|
| Who signed this? | ca | Certificate from an unrelated authority |
| Is this a server? | remote-cert-tls | Client certificate presented by a peer |
| Is this my server? | verify-x509-name | Another valid server from the same CA |
Profil hər üçünə sahib ola bilər və hələ də zəif ola bilər, əgər CA çox geniş paylaşılırsa, bu direktiv deyil, açar idarəetməsi məsələsidir.
Rol yoxlaması nəyi oxuyur
Direktiv makrodur. O, açar istifadəsi tələbinə və TLS Veb Server rolunu adlandıran genişləndirilmiş açar istifadəsi tələbinə açılır, buna görə qarşı tərəfin sertifikatı həmin məqsədi həqiqətən bəyan etməlidir. Müştəri autentifikasiyası üçün verilmiş sertifikat bunu təmin etmir, hətta hər ikisini eyni orqan imzalasa da.
Bu vacibdir, çünki paylaşılan CA kiçik yerləşdirmələrdə geniş yayılmışdır. Bir orqan hər müştərini və serveri imzalayır və rol yoxlaması olmadan həmin sertifikatlardan hər hansı biri əl sıxmanın server tərəfini tamamlaya bilər. Yoxlama bu ssenarini qeyri-mümkün etmir, amma onun trivial versiyasını aradan qaldırır.
Direktiv dizayn etibarilə asimmetrikdir: müştərilər remote-cert-tls server daşıyır, serverlər isə remote-cert-tls client. Onları dəyişin və hər bağlantı pozulmuş sertifikata bənzəyən rol xətası ilə uğursuz olur.
Köhnə profillər bəzən eyni məqsəd üçün ns-cert-type istifadə edir. Hazırkı təlimat səhifələri bu seçimi köhnəlmiş hesab edir, buna görə hələ də ona güvənən profili sazlamaq əvəzinə köçürməyə dəyər.
Niyə onu söndürmək düzəliş kimi hiss olunur
Rol yoxlaması uğursuz olduqda, bağlantı yoxlama xətası ilə dayanır və aşkar addım sətri silməkdir. Sonra bağlantı qalxır, bu irəliləyiş kimi hiss olunur və əslində direktivin qarşısını almaq üçün mövcud olduğu uğursuzluq rejimidir. İndi siz sertifikatı heç vaxt həmin rol üçün nəzərdə tutulmamış qarşı tərəfi qəbul edirsiniz.
Əvəzində xətanı oxuyun. O, uğursuz olan yoxlamanı adlandırır və qarşı tərəfdəki sertifikat həqiqətən hansı uzantıları daşıdığını görmək üçün yoxlana bilər. İki dəqiqəlik oxu nasazlığın verilişdə yoxsa konfiqurasiyada olduğunu həll edir. Təxmin etmək bir günorta baha başa gəlir və adətən zəifləmiş profil ilə bitir. Genişləndirilmiş açar istifadəsini itirmiş yenilənmiş server sertifikatı yeniləmədə əsl nasazlıqdır, müştərini yumşaltmaq üçün səbəb deyil.
Ad yoxlaması ayrı direktivdir
Rol yoxlamasını təmin etmək qarşı tərəfin sizin orqanınız tərəfindən imzalanmış hansısa server olduğunu bildirir. Hansı olduğu barədə heç nə demir, bu isə eyni CA bir neçə şlüz üçün sertifikat verdikdə və onlardan biri kompromisə uğradıqda və ya təkrar istifadə edildikdə vacibdir.
verify-x509-name sertifikat subyektini konfiqurasiya etdiyiniz dəyərlə müqayisə edir, dəqiq subyekt, prefiks və ya tək sahə üçün uyğunluq rejimləri ilə. Şlüzü həqiqətən identifikasiya edən sahəni istifadə edin və ad dəyişdikdə onu qəsdən yeniləməyi gözləyin.
Direktivlərin heç biri yaxşı açar idarəetməsini əvəz etmir. Müştəri açar faylı profil ilə bir yerdən digərinə köçürülürsə, qarşı tərəfin şəxsiyyəti yalnız paylama siyahısı qədər güclüdür.
Profili redaktə etməzdən əvvəl sertifikatı yoxlayın
Qarşı tərəfin sertifikatını və müştəri jurnalını bu qaydada oxuyun. Sertifikat hansı rolları bəyan etdiyini deyir; jurnal hansı yoxlamanın onu rədd etdiyini deyir.
Bu əmrlər istifadə uzantılarını və ətraflı bağlantının yoxlama sətirlərini çap edir:
openssl x509 -in server.crt -noout -text | grep -A1 -E "Key Usage|Extended Key Usage"
sudo openvpn --config client.ovpn --verb 4 2>&1 | grep -i verifyUzantılar server rolunu göstərirsə və jurnal hələ də rol uğursuzluğu bildirirsə, profil çox güman ki pis sertifikata deyil, yanlış sertifikat faylına işarə edir. Uzantılar yalnız müştəri autentifikasiyasını göstərirsə, müştəriyə baxmağı dayandırın və verilişi düzəldin. Hər halda, bağlantını sağlam adlandırmazdan əvvəl yoxlamanı bərpa edin, çünki yoxlama çıxarıldıqdan sonra uğurlu əl sıxma onu əvəz etdiyi xətadan daha az sübut edir.