Închisoare FreeBSD

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 28 iunie 2015; verificările necesită 10 modificări .

FreeBSD Jail ( eng.  jail - „închisoare”) este un mecanism de virtualizare în sistemul FreeBSD care vă permite să creați mai multe FreeBSD care rulează independent pe același nucleu de sistem de operare, dar complet independent configurat cu un set independent de aplicații instalate într-o singură operare FreeBSD. sistem.

FreeBSD Jail se bazează pe apelul de sistem chroot(2) , în care pentru procesul curent și toți descendenții acestuia, directorul rădăcină este transferat într-o locație specifică din sistemul de fișiere . Această locație devine directorul rădăcină pentru proces. Astfel, un proces sandbox poate accesa doar arborele de directoare de bază.

Cu toate acestea, FreeBSD Jail are suport și la nivel de kernel , ceea ce vă permite să restricționați accesul la rețea, memoria partajată, variabilele kernelului sysctl și să limitați vizibilitatea proceselor din afara închisorii.

Un proces închis poate accesa numai anumite adrese IP ale sistemului de operare și poate utiliza un anumit nume de gazdă . Un astfel de proces se numește „proces izolat” sau „proces închis”.

Astfel, se creează o „cușcă” sigură, în interiorul căreia poate fi executat chiar și software potențial periculos, care nu poate dăuna în niciun fel sistemului principal sau altor astfel de „cuști”. Înainte de versiunea 9.0-RELEASE, FreeBSD Jail nu avea control asupra utilizării resurselor (la fel ca, de exemplu, OpenVZ sub Linux ). Începând cu versiunea 9.0-RELEASE, mecanisme similare au fost introduse prin utilitarul rctl(8) și cadrul RACCT .

La nivelul sysctl al sistemului, privilegiile proceselor închise sunt configurate:

identificatorul sysctl Funcționalitate controlată
security.jail.chflags_allowed Abilitatea de a schimba steagurile fișierelor de sistem
security.jail.allow_raw_sockets Abilitatea de a crea prize de nivel scăzut
security.jail.sysvipc_allowed Abilitatea de a utiliza System V IPC
security.jail.set_hostname_allowed Posibilitatea de a vă seta propriul nume de gazdă în cadrul proceselor închise (de obicei, numele de gazdă este setat atunci când apelați la închisoare)
security.jail.enforce_statfs Abilitatea de a vedea toate sistemele de fișiere montate în interiorul proceselor închise
security.jail.socket_unixiproute_only Restricție privind capacitatea de a crea socket-uri UNIX/IPv4/rută
securitate.listă.închisoare Lista închisorilor care rulează

Utilizare

Cea mai comună utilizare a FreeBSD Jail este crearea de mașini virtuale izolate și sigure. În acest caz, jail(8) rulează scriptul de inițializare /etc/rc , care inițiază lansarea unui sistem virtual izolat separat. În cazul în care chiar și cel mai distructiv hacking al unui sistem virtual și funcționalitatea acestuia este dezactivată, restul sistemelor virtuale care rulează nu vor fi afectate.

În practica furnizorilor de găzduire , mecanismul de închisoare poate fi folosit pentru a construi sisteme gestionate pe servere dedicate . În această opțiune, clientului i se oferă acces numai la închisoare, iar personalul tehnic al companiei furnizorului la sistemul master.

Caracteristici de utilizare a mașinilor virtuale

FreeBSD Jail, atunci când este folosit ca o mașină virtuală pentru a rula software arbitrar, va necesita o emulare completă a mediului de sistem, inclusiv:

Fiecare mașină virtuală de pe sistemul gazdă (înainte de FreeBSD 7.2) va necesita în mod necesar o singură adresă IP pentru a rula. De asemenea, este posibil să utilizați aceeași adresă IP pentru mai multe mașini, dar serviciile de pe aceste mașini virtuale nu trebuie să utilizeze aceleași porturi TCP/UDP .

Începând cu FreeBSD 8.0, mai multe adrese IP pot fi atribuite fiecărei mașini virtuale.

Pentru mai multe informații despre instalarea și utilizarea FreeBSD Jail, consultați paginile de manual jail(8) sau documentația oficială. [unu]

Defecte de implementare a închisorii (în FreeBSD 7.2 și versiuni anterioare)

add path 'bpf*' unhide

Note

  1. FreeBSD Handbook Arhivat 15 august 2014 la Wayback Machine  

Vezi și

Link -uri