Interjú a FreeBSD jail programozóval

Címkék

Az interjú Pawel Jakub Dawidek-kel (honlap), a FreeBSD jail implementációjának egyik programozójával készült.

TJ: Kicsoda Pawel Dawidek? Mi a háttered?

Pavel: C-64 assembler-rel kezdtem programozni, majd jött az Amiga... Néhány évvel ezelőtt úgy döntöttem, hogy elhagyom az Amiga-t és elkezdtem játszani a FreeBSD-vel. Az első FreeBSD-m (és az első UNIX-szerű rendszerem is egyben) a FreeBSD 4.2 volt, szóval nem olyan rég forgok ezekben a körökben :). Jelenleg szinte az összes szabadidőmet a FreeBSD kernel hackelésével töltöm.

TJ: Hogyan kerültél kapcsolatba a jail-ekkel?

P: Arra használtam a jail-eket, hogy megvédjem azokat a daemonokat, amelyek 0-ás UID-del futnak, úgy hogy egyszerű virtuális gépeket hoztam létre a gépeimen, stb. Ez igazán nagyszerű funkció, de ha valamit hosszú időn keresztül használsz, elkezdesz gondolkozni (mint programozó) azon, hogy hogyan tudnád fejleszteni, mely funkciókat találnák használhatónak az emberek, stb.

Egy rövid lista a [jail] megkötésekről:

  • nem tudsz jail-t futtatni, ha jail-ben vagy
  • azt látod, ahova chroot-olva vagy (például a mount(8) parancs segítségével),
  • csak egy IP-t használhatsz a jail-el belül
  • a SysV IPC-k használata a jail-ben nem biztonságos (alapértelmezés szerint ki vannak kapcsolva)

Ezekhez a megkötésekhez készítek patcheket. Voltak még információ szivárgások, amelyeket szintén javítok.

[Szerkesztő: A patcheket meg lehet találni a http://garage.freebsd.pl címen]

TJ: Mi a története a jail-eknek?

P: Nos, mint tudjuk a tradícionális UNIX biztonsági modell nem nagyon rugalmas, de ennek ellenére néhány dolog már megvalósult ezen a területen. A jail az egyik ilyen dolog, de természetesen a jail több ennél. A jail megtöri a népszerű jelmondatot:

"God, root, what the difference?"

("Isten, root, mi a különbség?")

Ennek oka az, hogy alapvető felépítéséből adódóan használható egyszerű virtuális szerverek készítésére is. Ez a funkció a FreeBSD 4.0-RELEASE-ben mutatkozott be, köszönhetően két szponzornak (ahogy én tudom): a serverthweb.com-nak és a Safeport Network Services-nek. Az implementációt Poul-Henning Kamp és Robert N. M. Watson készítette.TJ: Mi a legnagyszerűbb dolog, amelyet hallottál, hogy a jail-lel elkövettek?

P: Számos a jail-lel kapcsolatos érdekes projekt létezik. Például van egy FreeBSD fork - az IspBSD (http://www.ispbsd.com) amely nagyon fejlett jail implementációval rendelkezik, de ez nem nyílt forrású...

TJ: Merre tart a jail? Mik a fejlesztési tervek a jövőre nézve?

P: Több különböző vélemény van azzal kapcsolatban, hogy mit kellene a jail-lel tenni a jövőben. Néhány fejlesztő nem akarja a jail-t továbbfejleszteni, azt akarják, hogy maradjon meg kicsi, nem erőforrás-igényes implementációnak. Számos módjon lehet javítani, tudom, hogy az én többszintű (multilevel) jail implementációmat tesztelik, és lehet, hogy egy nap beépítik a forrásfába. Ezen kívül nagyszerű munkát végez Marko Zec (megj: ma volt róla szó) a hálózati verem klónozással, a patcheit itt találod:

http://www.tel.fer.hr/zec/BSD/vimage/index.html

Lehetséges, hogy egy nap az egész jail alrendszer modulja lesz a Mandatory Access Control keretrendszernek (www.TrustedBSD.org), de jelenleg teljesértékű jail megoldás még nincs implementálva a MAC-ba.

TJ: Hogy látod, mi a jail jelenlegi legjobb felhasználási módja?

P: Számos cég használja a jail-eket virtuális szerverek üzemeltetésére, ez a jail legjobb felhasználása és úgy gondolom, hogy ez az amiért a jail meg lett tervezve és implementálva lett. De ahhoz, hogy a jail igazi virtuális szerver megoldást nyújtson még többet kell javítani.

TJ: Az avatatlanok számára: mi az amit a jail parancs jeleneg tud?

P: Néhány szóban: elsősorban bebörtönzi (chroot) a processzt egy adott útvonalra. Létrehoz egy struktúrát, amely leírja az újonnan létrehozott börtönt (jail) és a hívó processzt ehhez a börtönhöz köti. Innentől a processz és az összes gyermek processz (amely tőle származik) csak arra jogosult, hogy csak azokkal a processzekkel legyenek kapcsolatban és csak azokat ``lássák'' amelyek ugyanabban a börtönben (jail) vannak.

TJ: A jail jelenleg néhány hiányosságban szenved, például nem enged közvetlen (raw access) hozzáférést a hálózati veremhez, stb. Tervbe vannak véve ezen hiányosságok kiküszöbölései? Ha igen mikor várhatóak? Végsősoroan a jail-ek lehetővé teszik majd, hogy virtuális FreeBSD gépekként használjuk őket?

P: Vannak dolgok amelyeket lehet javítani, de úgy gondolom, hogy nem mindet lehet közvetlenül megoldani. Az ICMP szerintem az egyik olyan dolog, amelyet nehéz javítani, és ami biztos messze van a jail tervezési céljaitól.

Úgy gondolom, a változtatások azt célozzák meg jelenleg, hogy a jail egy virtuáis gép legyen, de a könnyűsúlyú implmenetáció jellege is megmaradjon.

TJ: Nagyon köszönöm, hogy időt szakítottál.

P: Nem probléma :) Elnézést az angolomért, remélem kijavítod :)

Az eredeti angol interjút itt találod.

Az interjút az a JVDS névre hallgató cég készítette, amely augusztusban elhatározta, hogy FreeBSD-t fog használni a hostolási szolgáltatásához, és emellett az első havi bevételét felajánlja a FreeBSD Alapítványnak (FreeBSD Fundation).

Ezzel akarnak adózni a FreeBSD közösség által végzett munka iránt.

Hozzászólások

Hi Trey,

Kicsit meglepődtem:

"God, root, what the difference?"

("Isten, root, mi a különbség?")

Ez talán arra irányuló törekvéseid egyike, hogy hozzáférhetőbbé tedd a HUP-ot szélesebb rétegek részére?

(Gondoltam egyszer már meg is dicsérlek, had legyen egy jó napod :)