Sursă APT pentru VPN: ce acordă și cum o limitezi
O sursă APT pentru VPN este o permisiune permanentă, nu o descărcare. Limitează cheia la acea sursă, citește tranzacția și scrie pasul de eliminare înainte de a o adăuga.
Descărcarea unui client VPN este o decizie unică; adăugarea depozitului său APT nu este. A doua îi spune managerului de pachete de unde poate veni software viitor, iar aceasta este un transfer permanent de autoritate, nu o descărcare. Poate fi aranjamentul corect când furnizorul întreține corect un depozit. Totuși merită o decizie conștientă, iar majoritatea ghidurilor de instalare o omit.
O semnătură autentifică o arhivă, nu codul ei
APT verifică metadatele semnate ale depozitului și apoi se încrede în sumele de control din acele metadate pentru pachetele pe care le aduce. Ce dovedește este că arhiva corespunde cu ceea ce a publicat deținătorul cheii, și nimic despre codul din interior. Un pachet semnat corect poate conține în continuare scripturi de întreținere nesigure, iar acele scripturi rulează ca root în timpul instalării pachetului. Manualul apt-secure trasează exact această linie între autentificarea arhivei și o revizuire a software-ului.
Așadar întrebarea utilă nu este dacă semnătura este validă, deoarece o semnătură ruptă oprește oricum instalarea. Este cui alegi să te încrezi în semnătură de acum înainte. O cheie de semnare furată este mai rea decât un pachet furat, pentru că atacatorul continuă să producă metadate valide mult după prima versiune proastă. Rotația este singura reparație, și depinde de furnizor să publice o cheie nouă printr-un canal pe care îl poți verifica independent.
De aceea identitatea cheii merită tot atâta atenție cât URL-ul depozitului. O cheie luată dintr-o adresă într-un răspuns vechi de forum nu demonstrează nimic despre editor, în timp ce HTTPS protejează transportul până la cel care a răspuns la telefon. Securitatea transportului și identitatea editorului sunt întrebări separate, și doar prima este rezolvată de un certificat.
Limitează cheia la sursă, nu la sistem
APT modern acceptă o referință Signed-By specifică sursei. O cheie administrată de operator poate sta sub /etc/apt/keyrings/, iar intrarea sursei numește cheia care poate autentifica acea arhivă. Aceasta este mai îngust decât a arunca aceeași cheie într-un set de încredere global, unde poate garanta pentru surse pe care nu ai vrut niciodată să le permiți. Urmează versiunea APT instalată și instrucțiunile actuale ale furnizorului în loc să amesteci fragmente din generații diferite de ghiduri.
curl -fsSL https://repo.example.com/vpn-key.gpg -o /etc/apt/keyrings/vpn.gpg
echo "deb [signed-by=/etc/apt/keyrings/vpn.gpg] https://repo.example.com/debian stable main" > /etc/apt/sources.list.d/vpn.listNu repara niciodată o eroare de semnătură dezactivând verificarea sau marcând o arhivă necunoscută drept de încredere. Asta schimbă o eroare vizibilă cu una invizibilă, iar cea invizibilă durează până când cineva auditează lista de surse. Dacă cheia nu se potrivește, corectarea corectă este să găsești cheia corectă, nu să elimini verificarea.
Obține detaliile depozitului și identitatea cheii de la proiect sau de la un administrator gestionat. O cheie copiată dintr-o postare de blog este o afirmație despre autorat, nu o dovadă a acestuia. Când un furnizor publică un canal de rotație, notează-l împreună cu cheia, pentru că acel canal face posibilă următoarea rotație.
Fixarea sursei nu este o listă albă de pachete
Restrângerea unei chei la o singură sursă limitează ce arhivă poate autentifica, nu ce pachete poate publica acea arhivă. Depozitul poate livra mult mai mult decât clientul VPN dorit, iar selecția candidaților și prioritățile APT decid ce versiune eligibilă câștigă. Verifică tranzacția propusă înainte de a o confirma, inclusiv lista dependențelor, pentru că dependențele vin din aceeași arhivă. Domeniul unei chei nu poate exprima ’doar acest pachet’.
Dacă ai nevoie de control mai puternic, exprimă-l ca politică privind numele sau versiunile pachetelor și ține acea politică sub managementul configurației. Citirea unei tranzacții durează un minut; descoperirea unui pachet neașteptat șase luni mai târziu durează o revizuire.
Pachetele neașteptate sunt momentul să te oprești, nu să continui, iar întrebarea pentru proprietarul arhivei este de ce sunt necesare. Un depozit care publică o duzină de pachete în jurul unui client este normal pentru un furnizor care livrează o suită desktop. Este și o suprafață mai mare decât sugera ghidul de instalare, și exact această parte merită notată. Niciunul dintre cele două rezultate nu este un motiv să nu ai încredere în semnătură; ambele sunt motive să scrii ce ai acceptat.
Notează autoritatea și cum se elimină
Scrie proprietarul arhivei, versiunea de sistem de operare acceptată, canalul de rotație a cheii și procedura de eliminare. Aceste patru fapte sunt ce are nevoie un succesor când clientul este retras sau furnizorul își rotește cheia. Fără ele, următoarea persoană moștenește o linie de surse și un fișier de cheie fără nicio poveste.
Eliminarea este pasul care se sare, așa că scrie-l la instalare. Șterge intrarea sursei și cheia ei dedicată împreună, și verifică dacă acea cheie este referită în altă parte înainte de a șterge fișierul. O cheie partajată ștearsă fără acea verificare transformă o curățare într-o întrerupere nelegată, ceea ce este cel mai rău rezultat pentru o schimbare de rutină. Apoi confirmă că actualizările obișnuite încă se rezolvă după ce intrarea a dispărut.
Un lucru rămâne după eliminarea depozitului: orice pachet deja instalat din el continuă să ruleze până când ceva îl înlocuiește. Întrebarea onestă este ce autoritate ai adăugat, și cât de îngust a fost exprimat rolul ei.