Primul semn este de obicei un avertisment, nu o defecțiune. Un client refuză să încarce o cheie pentru că fișierul este lizibil de către grup sau de toți, sau o revizuire de securitate găsește client.key cu modul 644 într-un director de profil care conține și pachete exportate. Nimic nu a eșuat încă, și exact de aceea avertismentul este ignorat. Cheia funcționează, tunelul se ridică, iar fișierul este lizibil de către fiecare cont de pe mașină.

Simptomul este un avertisment de permisiuni, nu o cădere

Pe un sistem de tip Unix, o cheie privată ar trebui să fie lizibilă doar de către contul care rulează serviciul. Modul 600 cu proprietarul corect este aranjamentul obișnuit. Modul 644 înseamnă că orice utilizator local poate copia cheia, iar pe un host de compilare partajat acesta este un public real.

Clienții care verifică acest lucru vă fac un serviciu. Cei care nu verifică nu sunt dovada că fișierul este sigur, iar o conexiune reușită nu spune nimic despre cine altcineva poate citi materialul care a făcut-o posibilă. Tratați avertismentul ca întreaga constatare. Este exact și a venit înainte ca cineva să copieze fișierul.

Potriviți modul cu identitatea serviciului

Accesul doar pentru proprietar se potrivește unei chei folosite de acel proprietar. Un serviciu cu un grup partajat în mod deliberat poate avea nevoie de un alt aranjament controlat, cum ar fi citirea de grup pe o cheie deținută de un cont de serviciu. Setarea orbește a unui singur mod numeric pentru toate fișierele rupe clienții acceptați, iar chmod -R 777 nu este soluția la nimic.

Verificați proprietarul și contul de serviciu înainte de a schimba ceva. Certificatele CA publice și cheile de identitate private au cerințe de secret diferite chiar și atunci când se află în același director, așa că un mod recursiv aplicat întregului folder le tratează pe amândouă ca pe același obiect.

ls -l /etc/openvpn/client/
stat -c '%U %G %a %n' /etc/openvpn/client/*.key
id openvpn

Pe alte platforme, folosiți depozitul de chei sau modelul de control al accesului documentat, în loc să traduceți modurile Unix într-o presupunere. Un nume de fișier care se termină în private este o etichetă, nu un mecanism de aplicare.

Găsiți copiile pe care modul nu le acoperă

Editorii, arhivele de backup, profilurile exportate și pachetele temporare pot fiecare păstra aceeași identitate. Protejați acele copii în funcție de conținutul lor, deoarece strângerea fișierului original nu face nimic pentru cea din arhiva tar de luna trecută.

O frază de acces pe un fișier de cheie este utilă pentru materialul stocat și nu justifică publicarea fișierului criptat lângă parola sa. Permisiunile protejează obiectul actual al sistemului de fișiere; ele nu spun nimic despre o acreditare deja copiată în altă parte.

Căutați copiile înainte de a declara munca terminată: grep -rl linia de antet a cheii în directoarele probabile și o privire la excluderile de backup. Rezultatul este de obicei mai interesant decât fișierul cu care ați început.

După corectare, verificați și înlocuiți

Testați că serviciul dorit încă se autentifică, apoi confirmați că niciun cont inutil nu a obținut acces. Limitați ieșirea de diagnostic la metadate, deoarece imprimarea cheii nu este necesară pentru a demonstra că fișierul este lizibil și pune materialul într-un jurnal.

Dacă cheia a fost expusă, strângeți modul, apoi înlocuiți acreditarea și revocați-o pe cea veche. Specificația POSIX chmod explică ce înseamnă fiecare bit de mod, ceea ce merită știut înainte ca următoarea revizuire să vă ceară să justificați numărul ales.

Articole similare