Ahoj, dodal bych, že existuje povedený GUI https://firejailtools.wordpress.com/, který má panel pro rychlé spouštění nebo spouštění, kde si můžete vše naklikat.
Tak toto som potreboval keby to fungovalo. Ja to potrebujem na jedinu vec, zamknut chrome. Skusal som to cez rozne programy tak som skusil aj toto. Bohuzial Chrome ma svoj vlastny SUID sandbox setup (/opt/google/chrome/chrome-sandbox) ktory sa neda ovladat. Chcel som iba obmedzit aby mal pristup iba do adresara ~/Downloads. Firefox funguje, chrome nie, vidi vsetko. Nainstaloval som na Debian testing a pouzil /etc/firejail/google-chrome.profile, ak mate nejaky napad sem s nim, dakujem.
Chromium mi pod firejailem normálně běží. V podstatě to používám podobně, jak chcete.
Já používám firejail tak, že appku pouštím přes shell skript, který (pokud neexistuje) vytvoří prázdný adresář, v něm adresáře, které chci sdílet, ty pomocí bindfs (fuse) namountuju ze skutečného home a v profile mám (mimo jiné):
private ADRESÁŘ
Tím chromium vidí jen fake prázdný home a to, co mám namountované.
na chrome lze selinux a omezit kam může, ale máš pravdu, že chrome je největší průser v tomhle ohledu, naprosto tvrdohlavý a trváří se jako vlastní OS. Na Macu mám na chrome (či prohlížeč obecně) jiný profil a vystrčený vnc socket k primárnímu uživateli. Na linuxu ho zase mám v qemu pod kvm, neměl jsem chuť to jinak znásilňovat. Chromium se mi na freebsd podařilo dostat do jailu a docela funguje dobře, ale moc nepoužívám, raději firefox v tomhle prostředí.
Představa, že prohlížeš, který se setkává s jednou hrozbou za jinou, má plná přístup do složek uživatele mě trochu děsí.
> Představa, že prohlížeš, který se setkává s jednou hrozbou za jinou, má plná přístup do složek uživatele mě trochu děsí.
Nemá. To, co v prohlížeči zpracovává obsah, tedy je vystaveno případnému útoku, už je sandboxované a s venkem komunikuje přes brokera. Už z tohoto sandboxu případný útočník typicky vyskakuje zneužitím chyby v kernelu a že tím vyskočí i z firejailu je jen detail, který nemusí nijak řešit.
Teoreticky možná...
Prakticky, alespoň pro mě, platí: "Kam může část aplikace, tam může celá aplikace." Obzvlášť u tak velkého a rychle vyvíjeného projektu, jako je chrome, si nedovedu představit se spoléhat na to že komunikace mezi sandboxovanou a nesandboxovanou částí bude 100% bez chyby. A čekal bych, že potenciální útok bude mířen právě tímhle směrem.
Když si člověk uvědomí kolik věcí má v home, tak obezřetnost je na místě. Pamatuji si, jak byla chyba v integrovaném prohlížeči PDF, myslím, že to byl FF i chrome, kde se útočník právě mohl dostat k lokálním datům. Byl jsem rád, že mám prohlížeče ve firejailu...
Pokud se podívám na CVE z chromu (https://www.cvedetails.com/product/15031/Google-Chrome.html?vendor_id=1224), vidím, že ty které mají znatelný dopad na bezpečnost nejsou chyby kernelu, ale chyby samotného chromu. Sandbox, o kterém mluvís je např. v chromu pořád sandbox v userspace...
Pouzivam a funguje. Mam ted zkompilovanou firejail version 0.9.63 . Doporucuju pouzivat novejsi verzi to co je v repositarich mi moc nefungovalo.
Clovek si to musi dokonfigurovat aby mu fungovali kamery jsou zakazane pres 'private-dev' tj. mit usebe
echo 'ignore private-dev' >> '${HOME}/.config/firejail/google-chrome.local'
Nebo radsi pouzivat chromium.
Jeste bych doplnil ze uzitecne si dat blacklist <tajne veci>
do ${HOME}/.config/firejail/global.local
Taky bacha man pages jsou docela derave hodne veci je na wiki
Samozřejmě, zprovoznění je velmi jednoduché, viz návod pro Zoom ve Firejailu.
psal sem to v noci pres "nahlasit chybu" ale koukam ze bez odezvy, tak pisu sem:
# firejail-profiles se (alespon v *buntu) nainstaluje samo jako doporucena zavislost)
apt install firejail firejail-profiles
=>
apt install firejail
(vypada to jako detail, ale pokud se rucne instaluje firejail-profiles a pak se provede odinstalace firejail, tak to neoznaci firejail-profiles jako osirelej balicek)
# rucni vytvareni symlinku ma byt do /usr/local/bin, nikoliv se snazit prepsat stavajici spoustec
ln -s /usr/bin/firejail /usr/bin/vlc
=>
ln -s /usr/bin/firejail /usr/local/bin/vlc
# misto per user, pouzit per system modificaci s priponou local
[...] lokální modifikaci [...] do ~/.config/firejail/ a upravit ho.
=>
/etc/firejail/jmenoprogramu.local
btw: v *buntu 18.04 profil pro skypeforlinux je zastarelej a je potreba stahnout (a upravit pro starsi verzi firejail) novej profile z upstreamu...
https://github.com/netblue30/firejail/issues/2933
https://github.com/netblue30/firejail/blob/master/etc/profile-m-z/skypeforlinux.profile
Ahoj znovu, měl bych ještě jednu připomínku k "automatickému použití". Zkoušel jsem to na Wine - aby se každá aplikace přes Wine automaticky spustila přes FireJail. Přes vás příkaz analogicky (samozřejmě se sudo) to nefungovalo:
# ln -s /usr/bin/firejail /usr/bin/wine
Ale...
# ln -s /usr/bin/firejail /usr/local/bin/wine
už ano.
Je to chybka, nebo někdy platí jeden a jindy druhý?
11. 6. 2020, 17:58 editováno autorem komentáře
je to chyba, viz...
k pochopeni:
1.symlink ma byt v /usr/local/bin/program, protoze tim ze /usr/local/bin je v $PATH nadrazene pred /usr/bin, tak pokud volas "program" pouzije se ten z /usr/local/bin (pokud tam je)
2. figl firejail symlinku je ten ze ackoliv vede na /usr/bin/firejail, tak ten (firejail) pri spusteni detekuje pres jake jmeno (tedy jmeno symlinku) se poustelo
3. firejail provede nastaveni dle nalezenych profilu a pusti nasledne /usr/bin/program tedy ten realnej, nikoliv podstrcenej symlink do local...
tedy to co ti nefungovalo by naborilo celej tento princip, pokud bys prepsal (pri vynuceni parametrem force) symlinkem v /usr/bin tu realne "binarku" tak by pak pri spusteni program se pres firefail nemela jiz jak pustit :-)
Hodne zajimave je toto issue: Replace `whitelist` and `blacklist` commands with better terms -
https://github.com/netblue30/firejail/issues/3447 . ??WTH!!??
12. 6. 2020, 17:26 editováno autorem komentáře