Fedora 20 jegyzetek

[-] Mysql nem indul, mert nincs jog alapból a log mappára. Megoldás:

chown -R mysql:mysql /var/log/mariadb

[-] GNU Screen mindig felülírja automatikusan path és user infóval az ablak címeket.

Megoldás ebben a szálban

[+] Átméretezhető a sandbox ablak!

sandbox -t sandbox_net_t -X -- firefox

Hozzászólások

Ez a sandbox hogyan működik? Még sohasem használtam, egyszer próbáltam kb. két release-zel korábban, majdnem sikerült kizárnom magam a gépről. Csak a selinux=0 kernelparaméter segített, meg utána az egész filerendszerre relabeling. Úgy értem, a /-be egy .autorelabel elhelyezése, majd selinux=1. Legalább is így emlékszem. Azóta nem húzogattam az oroszlán bajszát.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

su -c "yum install policycoreutils-sandbox"

majd a fenti parancs. "man sandbox" még hasznos lehet.

A rövid lényeg annyi, hogy egy teljesen különálló X session-t nyit Xephyr-rel a programnak SELinux szabályokkal körbebetonozva. A Xephyr és így a különálló X miatt a GUI-n keresztüli betörés kivédve. Egy Python-os utility.

A /tmp-n belül lesznek a gyökér mappái a sandbox sessionben futó programnak. A fenti firefox futattása után ilyen mappák lesznek a session idejére:

$ ls -ltrad /tmp/.sand*
drwx------. 2 andras andras  40 Feb  9 13:25 /tmp/.sandbox_tmp_A4O6n1
drwx------. 7 andras andras 200 Feb  9 13:25 /tmp/.sandbox_home_KcWQxB
drwxrwx--T. 3 root   andras  60 Feb  9 13:25 /tmp/.sandbox-andras-atRZ1l

Játszál vele nyugodtan. A rendszer SELinux beállításaihoz ne nyúljál, csak a sandbox parancsot használd. Pl.

sandbox -X xterm

sandbox -t sandbox_net_t -X -- firefox

A firefox esetén bármennyi különálló példányt elindíthatsz így, amelyek nem tudnak egymásról és semmi közük nem lesz egymáshoz. A -i kapcsolóval pedig bármennyi mappát átadhatsz a sandbox-olt programnak, amely mappák a futás idejére átmásolásra kerülnek ugyanolyan mappa struktúrában. Nekem a ~/.mozilla/plugins mappába van bemásolva a libflashplugin.so, ezért így használom a böngészőt nem megbízható oldalakhoz vagy teszteléshez:

sandbox -i ~/.mozilla/plugins -t sandbox_net_t -X -- firefox

Ezt még nézd meg:

sandbox -t

Megjegyzés: a böngészőt nem sandbox_web_t-vel használom azért, mert socks5 meg egyéb proxy-hoz akkor kevés lenne a jog. De sima böngészéshez használhatod ezt a korlátozottabb beállítást. Ekkor csak http és https portokat enged neki.

Szerk.: a Chrome-ot próbáltam pár éve így futtatni, de olyan PID-es meg egyéb trükközéseket használ, hogy akkor pár éve még nem ment ezzel a sandbox megoldással. Midori is remekül megy illetve általában minden. Torrent, vlc stream meg egyéb.

Jó, jó, de böngészőhöz ftp is kell. Kívülről copy-paste működik ilyenkor? További gondom, hogy bukom a böngészési előzményeket, beállításokat, könyvjelzőket, ha jól értem. Ha jól értelek, egy default beállítással el lehet indulni, csak a változások nem kerülnek vissza a profilba.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Bármit megtehetsz, akár -i kapcsolóvan megadhatod ~/.mozilla mappádat, és a script végére meg csinálsz egy visszamásolást. Én egy ilyet írtam transmission-höz (-H és -T kapcsolót nézd meg):

http://pastebin.com/Nqx5Mx4L

Hasonló trükkel simán megteheted, hogy visszamásolod a mozilla mappádat még kilépés előtt (pl. trap-be elkapni a signal-t és cp). Legalábbis ha mindig így akarsz böngészni. Mert ha nem megbízható oldal kompromittálja a gépedet, akkor ezzel pont minden letárolt jelszavadhoz és egyéb profilodhoz hozzáfér. Én ezért úgy csinálom, hogy normál böngészés profillal és nem megbízható oldalhoz pedig üres profil.

Szerk.: illetve azt hiszem nem kell trap trükközés, mert -H és -T megadásánál neked kell gondoskodni ezek törléséről, így nagyon egyszerű dolgod van, valami hasonló (nem teszteltem):

H=$(mktemp -d)
T=$(mktemp -d)
sandbox -i ~/.mozilla -H "$H" -T "$T" -t sandbox_net_t -X -- firefox
mv ~/.mozilla ~/.mozilla.bak
cp -a "$H"/.mozilla ~
rm -rf "$H" "$T"

Ki tudja mennyire lyukas?

Meg nem JS-ből, hanem egy sebezhetőség kihasználásával ha el tud indulni tetszőleges kód, akkor a FF session jogaival hozzáférhető dolgokat olvashatja csak - márpedig ha megadod a teljes profilod, akkor azt.

Sok hasonló sérülékenységről olvashattunk már azért. A canadai pwn2own-on asszem Chrome beépített sandbox-át kerülték meg stb.