Linux LXC vs FreeBSD börtön

Van-e jelentős különbség az LXC (Linux tárolók) között és FreeBSD börtönök a biztonság, a stabilitás szempontjából & teljesítmény szempontjából?

Először nézd, mindkét megközelítés nagyon hasonlónak tűnik.

Megjegyzések

  • Az LXC meglehetősen új technológia, ezért jobb biztonságot és stabilitást várnék a börtönöknél. még egy tipp is a teljesítményről. Van néhány ismert biztonsági probléma az LXC-vel kapcsolatban, amelyeket például a selinux használatával lehet enyhíteni. Pedig én személy szerint szeretem az LXC-t.
  • @ PavelŠimerda Ma csak hallottam az LXC-ről, de voltam meglepett, hogy megtudja, hogy mind a Heroku, mind a Google App Engine valószínűleg már használja az LXC-t.
  • Ha ‘ csak ütközött az LXC-vel, akkor meg kell néznie a Dockert, amely az LXC-t használja a motorháztető alatt: docker.io/the_whole_story
  • A Docker nem ot már nem használja az lxc-t.
  • @nwildner nem használ ‘ már nem használja a liblxc-t, de pontosan ugyanazokat a fogalmakat használja: kernel névterek.

Válasz

Nem számít az itt használt fantázianév, mindkettő megoldást jelent egy adott problémára: Jobb elkülönítési megoldás, mint a klasszikus Unix chroot . Az operációs rendszer szintű virtualizáció, a konténerek, a zónák vagy akár a “szteroidokkal való chroot” olyan nevek vagy kereskedelmi címek, amelyek ugyanazt a fogalmat definiálják a felhasználói térelválasztásról, de eltérő jellemzőkkel rendelkeznek.

A Chroot-ot 1982. március 18-án vezették be. , hónapokkal a 4.2 BSD megjelenése előtt, a telepítés és a rendszer kiépítésének tesztelésére szolgáló eszközként, de ma még mindig vannak hibái. Mivel a chroot első célja csak egy newroot elérési út biztosítása volt, a rendszer egyéb, elkülönítésre vagy irányításra szoruló aspektusait feltárták (hálózat, folyamatnézet, I / O áteresztőképesség). Itt jelentek meg az első tárolók (felhasználói szintű virtualizáció).

Mindkét technológia (FreeBSD Jails és LXC) a felhasználók térszigetelését használja egy újabb biztonsági réteg biztosításához. Ez a szétválasztás biztosítja, hogy egy meghatározott folyamat csak az ugyanazon tárolóban lévő ugyanazon tárolóban lévő más folyamatokkal kommunikáljon, ugyanazon a gazdagépen, és ha bármilyen hálózati erőforrást használ a “külvilág” kommunikáció elérésére, akkor az összes tovább lesz továbbítva a hozzárendelt interfészhez / csatornához, amelyet ez a tároló tartalmaz. rendelkezik.

Jellemzők

FreeBSD börtönök:

  • Stabil technológiának tekinthető, mivel 4.0 óta a FreeBSD egyik funkciója;
  • A ZFS fájlrendszer legjobbjait veszi igénybe azon a ponton, ahol klónozhatja a börtönöket és létrehozhat börtönsablonok további börtönök egyszerű telepítéséhez. Még néhány ZFS őrület ;
  • Jól dokumentált és fejlődik ;
  • A hierarchikus börtönök lehetővé teszik, hogy börtönöket hozzanak létre a börtön belsejében (mélyebbre kell mennünk!). Kombinálva az allow.mount.zfs vel nagyobb teljesítmény elérése érdekében, és más változók, például a children.max maximális gyermekfogházat határoznak meg. id = “7bc29ec1b6”>

rctl (8) kezeli a börtönök erőforráskorlátjait (memória, CPU, lemez, …);

  • a FreeBSD börtönök kezelik a Linuxot felhasználói terület ;
  • Hálózati szigetelés a vnet segítségével, lehetővé téve minden börtön számára, hogy saját hálózati verem, interfészek, címzési és útválasztási táblák;
  • nullfs a mappák összekapcsolásához a valódi szerveren található börtön belsejében;
  • ezjail segédprogram a tömeges telepítéshez és a börtönök kezeléséhez;
  • rengeteg kernel hangolható (sysctl ). A security.jail.allow.* paraméterek korlátozzák az adott börtön fő felhasználójának műveleteit.
  • Lehet, hogy a FreeBSD börtönök kibővítik a VPS projekt néhány funkcióját, például a élő migráció a közeljövőben.
  • Némi erőfeszítéseket tesz a ZFS és a Docker integráció futás. Még mindig kísérleti jellegű.
  • A FreeBSD 12 támogatja a bhyve-t a börtönben és a pf-t a börtönben, további elszigetelést hozva létre ezektől az eszközöktől
  • Az elmúlt években rengeteg érdekes eszközt fejlesztettek ki. Néhányuk ezen a blogbejegyzésen szerepel.
  • Alternatívák: FreeBSD VPS projekt
  • Linux-konténerek (LXC):

    • Új “kernel” technológiában, de nagyok is támogatják őket (különösen Canonical);
    • Kiváltságtalan tárolók az LXC 1-től kezdődően.0, nagy lépést tesz a konténerek biztonságában;
    • UID és GID leképezés a konténerek belsejében;
    • A rendszermag névterei az IPC, a mount, a pid, a hálózat és a felhasználók elkülönítésére. Ezeket a névtereket külön lehet kezelni, ahol egy különböző hálózati névteret használó folyamat nem feltétlenül lesz elkülönítve más szempontoktól, például a tárolástól;
    • Csoportok (csoportok) vezérlése az erőforrások kezeléséhez és csoportosításához. A CGManager a fickó ennek elérésére.
    • Apparmor / SELinux profilok és Kernel képességek a konténerek által elérhető kernelfunkciók jobb érvényesítéséhez. A Seccomp elérhető az lxc tárolókon is a rendszerhívások szűrésére. További biztonsági szempontok itt .
    • Élő migrációs funkciók fejlesztése folyamatban van. Nagyon nehéz megmondani, hogy mikor lesz kész a gyártási használatra, mivel a docker / lxc-nek a felhasználói tér szüneteltetésével, pillanatképével, áttelepítésével és konszolidálásával kell megküzdenie – ref1 , ref2 . Élő migráció működik az alapvető tárolókkal (nincs eszköz áthaladás sem összetett hálózati szolgáltatások, sem speciális tárolási konfigurációk).
    • API-összerendelések a fejlesztés lehetővé tételére a python3 és 2, lua, Go, Ruby és Haskell
    • központosított “Mi az új” területen. Nagyon hasznos, amikor ellenőrizni kell, hogy javítottak-e valamilyen hibát, vagy elkövettek-e egy új funkciót. Itt .
    • Érdekes alternatíva lehet lxd , amely a motorháztető alatt működik az lxc-vel, de van néhány olyan szép funkciója, mint a REST api, az OpenStack integrációja stb.
    • Egy másik érdekes az a helyzet, hogy az Ubuntu úgy tűnik, hogy a z div fájlokat szállítja alapértelmezett fájlrendszerként a 16.04 . A projektek összehangolása érdekében az lxd elindította a 2.0-s verzióját, és egyes funkciók zfs kapcsolatosak .
    • Alternatívák : OpenVZ , Docker
    • Docker . Itt jegyezzük meg, hogy a Docker névtereket, csoportokat használ “alkalmazásonként” / “szoftverenként” elkülönítéssel. . Főbb különbségek itt . Míg az LXC több folyamatot tartalmazó tárolókat hoz létre, a Docker a tárolókat a lehető legnagyobb mértékben egyetlen folyamatra redukálja, majd a Dockeren keresztül kezeli.
    • Erőfeszítések a Docker SELinux integrálásával és a konténerben lévő képességek csökkentésével a biztonságosabbá tétel érdekében – Docker és SELinux, Dan Walsh
    • Mi a különbség a Docker, az LXD és az LXC között

    A Docker már nem használ lxc-t. Most már rendelkeznek egy specifikus lib nevű runc , amely közvetlenül kezeli az integrációt az alacsony szintű kernel névtér és a csoportok funkcióival.

    Egyik technológia sem biztonsági csodaszer, de mindkettő nagyon jó módszer egy olyan környezet, amely a vegyes operációs rendszerek infrastruktúrája miatt nem igényel teljes virtualizálást. A biztonság sok dokumentáció elolvasása és kernelhangolható fájlok, MAC és izolációk végrehajtása után következik be, amelyeket az operációs rendszer-szintű virtuális erőforrások kínálnak Önnek.

    Lásd még:

    Hozzászólások

    • Érdemes megemlíteni, hogy a dobozon kívül az lxc nem törekszik a vendégek megfelelő elszigetelésére. Az lxd azonban megpróbál olyan szigetelést biztosítani, mint a BSD börtönök vagy a Solaris zónák.
    • Az lxd egy ” jobb élmény ” az LXC-ből, más funkciókat helyezve a tetejére. Jónak tűnik azonban ezt a kis srácot itt idézni
    • @allquixotic, arra gondolsz, ha változatlan konfigurációt használsz sablonokból? Igaz, de kiváltságtalan (userns-kompatibilis) tárolók elérhetők voltak az LXC 1.x verzióval, és akár rendszerindításkor is automatikusan elindíthatók, feltéve, hogy root tulajdonában vannak (és így megtalálhatók). konténerek rendszerszintű helyén).

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük