Bir köhnə qurğu ortaya çıxır, qoşula bilmir və ən sürətli görünən düzəliş bütün hostu əlaqə uğur qazanana qədər zəiflətməkdir. Bu güzəşt hazırda görünməz, praktikada isə daimidir, çünki nəhayət işləyən həddi heç kim götürmür. Təzyiqi iki çox fərqli nasazlıq yaradır və onlardan yalnız biri ümumiyyətlə şifrlərlə bağlıdır. Əvvəlcə nasazlığı sıralayın, sonra istisnanı yayıla bilməyəcəyi yerə qoyun.

Direktivə toxunmadan əvvəl nasazlığı ikiyə bölün

Ortaq şifrənin olmaması və ya dəstəklənməyən protokol versiyası haqqında server jurnalı sətri idarə kanalından gəlir: iki tərəf razılaşmanın özünün necə qorunacağı barədə razılığa gələ bilməyib. Müştərinin heç bir server sertifikatı yoxlama üsulunun aktiv olmadığını bildirən sətri isə tamamilə başqa yerdən gəlir, çünki o müştəri cavab verənin kim olduğunu ümumiyyətlə yoxlamır. Məlumat şifrəsini dəyişmək ikinci hal üçün heç nə etmir, rol yoxlaması əlavə etmək isə birinci hal üçün heç nə etmir.

Hər tərəfdən ən erkən uğursuz sətri götürün, ayrılmadan əvvəlki sonuncu sətri yox, çünki sonuncu adətən nəticədir. Sonra müştərinin həqiqətən hansı faylı açdığını müəyyən edin: idxal edilmiş profil çox vaxt fərqli göstərilən adlarla iki dəfə mövcud olur və heç kimin oxumadığı nüsxəni redaktə etmək inandırıcı bir dəyişiklik olmaması yaradır. İşləyən proses başladığı parametrləri saxlayır, yəni saxlanmış fayl yüklənmiş fayl deyil. Aşağıdakı əmrlər müştərinin razılaşmasını serverin həmin cəhdə baxışı ilə yanaşı göstərir.

openvpn --config <profile>.ovpn --verb 4 2>&1 | head -n 40
journalctl -u [email protected] --since '-10 min' | grep -iE 'cipher|tls|verify'

Daha zəif hədd üçün dürüst yer ikinci dinləyicidir

Qurğu 2.5-dən əvvəlki məlumat kanalı ilə TLS 1.0-da dayanırsa, server daha aşağı idarə kanalı həddi və köhnə müştərinin tanıdığı məlumat şifrəsi təklif etməlidir. Ehtiyat direktivi məhz bu qarşı tərəf üçün mövcuddur, şifrə siyahısı isə müasir müştəriləri müasir dəstlərdə saxlayır. Hər iki direktiv istifadəçiyə və ya bağlantıya deyil, dinləyiciyə aiddir və heç bir müştəri üzrə seçim onları sonradan daraltmır. Ona görə əsas portda bir köhnə qurğu onu paylaşan hər qarşı tərəf barədə qərardır.

Platforma imkan verdikdə köhnə dinləyicini ayrı portda öz nüsxəsi kimi işlədin, o porta yalnız qurğunun ünvanından icazə ver və əsas xidmətə toxunma. İkinci dinləyicinin niyə mövcud olduğunu onun konfiqurasiyasını daşıyan faylda yaz, yoxsa gələcək təmizlik onu qalıq zibil kimi oxuyacaq. Bölmə yalnız zəif hədd qurğunun bitdiyi yerdə bitirsə dəyərlidir.

tls-version-min 1.0
data-ciphers AES-128-GCM:AES-256-GCM:AES-256-CBC
data-ciphers-fallback AES-256-CBC

Köhnə provayder sertifikatı əslində nəyi pozur

Yoxlama xətası çatışmayan rol bağlamasıdır: o olmadan müştəri etibarlı CA-ya zəncirlənən istənilən sertifikatı qəbul edəcək, həmin sertifikatın server üçün verilib-verilməməsindən asılı olmayaraq. Əvvəlcə sertifikatı server roluna bağla və bağlamanı tənzimləmə düyməsi deyil, tələb kimi qəbul et. Yalnız bu addımdan sonra hələ də uğursuz olan profilin əsl sertifikat problemi var.

Açar ölçüsü və ya imza alqoritmi artıq standart OpenSSL siyasətinə uyğun gəlməyən köhnə provayder sertifikatı idarə kanalında məhdud təhlükəsizlik səviyyəsi dəyişikliyi üçün haldır. Orada səviyyəni aşağı salmaq yoxlamanı söndürmür və heç vaxt boş CA, deaktiv edilmiş yoxlama parametri və ya yoxlanılmamış host adı ilə birləşdirilməməlidir. Sətri yalnız ona ehtiyac duyan profilin içində saxla; yumşaldılmış OpenSSL konfiqurasiyasını qlobal şəkildə ixrac etmək eyni yumşaltmanı maşındakı hər proqrama verərdi.

remote-cert-tls server
tls-cipher "DEFAULT:@SECLEVEL=0"

Danışılmış dəyərləri oxuyun, banneri yox

4-cü detallılıq səviyyəsində hər iki tərəf idarə kanalının razılaşdıqları TLS versiyasını və şifrəsini, həmçinin sessiyanın məlumat şifrəsini çap edir. Başlanğıc bannerini deyil, həmin sətirləri oxuyun, çünki banner uğuru xəbər verir, onun şərtlərini yox. Sonra müasir müştərini əsas dinləyiciyə yenidən qoşun və onun hələ də müasir dəstə düşdüyünü təsdiqləyin, çünki paylaşılan konfiqurasiyaya sızmış istisna ilk burada görünür. Kopyaladığınız dəyərlər növbəti baxış üçün baza olur.

Köhnə qurğunu tək yoxlayın: qoşulmalı və jurnallarda zəif parametrləri göstərən yeganə sessiya olmalıdır. Əgər ikinci qarşı tərəf də köhnə dəstlə razılaşarsa, istisna nəzərdə tutulduğundan genişdir və dinləyici bölgüsü həqiqətən baş verməyib. Yalnız nəticəni deyil, hər iki müşahidəni qeyd edin.

Hər istisnanın sahibi və tarixi olmalıdır

Silinmə şərti olmayan istisna səssizcə standart hala gəlir, ona görə qurğunu, sahibini, səbəbi və onun getdiyi tarixi əsaslandırdığı konfiqurasiyanın yanına qoyun. O sətir olmadan zəif hədd ona ehtiyac duyan avadanlıqdan uzun yaşayır.

Müştərini dəyişmək və ya provayderdən cari profil istəmək hədəflənməli nəticədir; istisna isə dizayn deyil, gecikmədir. Qurğu istifadədən çıxdıqda dinləyicini və profili eyni dəyişiklikdə silin ki, heç bir yarısı işlək qalmasın. Bunların heç biri köhnə parametrləri təhlükəsiz etmir, sadəcə bir qurğunun həddinin hamının bazasına çevrilməsinin qarşısını alır.

Əlaqəli məqalələr