Guarantee business interface. stickfish.com
abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz 64bit.eu 64bit.eu abcprace.cz AbcPráce.cz Raydesk Raydesk
Sledujte AbcLinuxu.cz na:
facebook favicon logo  Facebooku twitter favicon logo  Twitteru,   identi.ca favicon logo  Identi.ca
openmagazin logo openMagazin 1/2010 Nový vzhled!
Rozšířené hledání
×

Webináře IBM

Přihlaste se na webináře IBM pořádané v březnu, kde se můžete dozvědět více informací o nových i stávajích produktech vhodných právě pro váš business. Vše můžete sledovat ze své kanceláře díky aplikaci Lotus Live.
Který mobilní OS je nejlepší?
 (37%)
 (18%)
 (20%)
 (2%)
 (8%)
 (2%)
 (7%)
 (5%)
Celkem 773 hlasů
 Komentářů: 203, poslední dnes 12:43
Doména EU za fantastickou cenu
125 Kč bez DPH
Webhosting LinuxSTART? S doménou EU s 50% slevou. LinuxSTART je včetně e-mailů s antivirovým a antispamovým řešením
Pouze do konce března na www.CZECHIA.com.
dnes 08:50 | Zajímavý článek
Daniel Dočekal na svém blogu zveřejnil citaci z interního materiálu ČSSD, kde se píše o zřízení úřadu pro dohlížení nad Internetem po vzoru francouzského HADOPI. Cílem je hlídání a cenzura "škodlivého" obsahu. Úřad by měl přitom přímo podléhat vládě. Veřejnosti by měl být prezentován jako "ucinny nastroj boje s detskou pornografii ci sireni extremistickych nazoru".
xm | Komentářů: 32
včera 15:27 | Zajímavý software
David Airlie začal vyvíjet Prime, "proof-of-concept" projekt, který se podobá funkci Optimus od firmy NVIDIA. Prime zatím podporuje jen grafické karty Intel a ATI. Umožňuje vykreslování 3D grafiky pomocí jednoho GPU na obrazovku, kterou spravuje jiný GPU. Podrobnosti na Phoronixu.
Robert Krátký | Komentářů: 5
včera 13:29 | Nová verze
Vyšla stabilní verze 0.4.0 prohlížeče rekonq (používá WebKit a je určen primárně pro KDE). Nová verze obsahuje podporu např. pro integraci s KWallet a AdBlock.
Robert Krátký | Komentářů: 38
včera 12:45 | Pozvánky
Projekt Středisko UNIXových Technologií strahovského kolejního klubu Silicon Hill opět zahajuje pravidelné úterní semináře (nejen) o Linuxu a open source. Těšit se můžete na témata z oblasti desktopů, serverů, ale také embedded systémy, či speciální software. … více »
Oskar | Komentářů: 2
včera 12:44 | Zajímavý článek
Zack Rusin na svém blogu píše o rychlém softwarovém OpenGL rendereru llvmpipe pro Gallium3D. llvmpipe používá generování a optimalizaci kódu za běhu prostřednictvím LLVM a dobře se škáluje s počtem jader CPU. Přestože ještě nezačala práce na optimalizacích, llvmpipe už nyní dává v anholt.dm_68 OpenArena demu na procesoru Intel Xeon E5405 výkon 25 FPS (softwarový renderer v Mesa3D dává jen 3.5 FPS).
xm | Komentářů: 2
včera 08:53 | Nová verze
Je tady Gnome 2.29.92, což je kadidát na vydání verze 2.30. Přináší hromadu oprav chyb (včetně lokalizace). Podrobnosti naleznete v oznámení vydání. Finálního vydání se dočkáme již poslední březnový den, s čímž souvisí i zmrazení kódu, které nastane 15. března.
Tomáš Heger (geckon) | Komentářů: 0
včera 07:41 | Nová verze
Vyšla nová verze přehrávače Banshee. Nese označení 1.5.5 (neboli 1.6 RC1) a kromě oprav chyb přináší například rozšíření pro YouTube nebo vylepšení vyhledávání a fronty přehrávaných skladeb.
Tomáš Heger (geckon) | Komentářů: 6
11.3. 18:13 | Zajímavý článek
Společnost Palm na Game Developers Conference tento týden ohlásila port Unreal Engine 3 na platformu webOS. Tento engine pohání například hry Gears of War nebo Unreal Tournament 3 a bude brzy dostupný i dalším vydavatelům herních titulů.
Jan Grmela | Komentářů: 14
11.3. 16:55 | Nová verze
Phoronix informuje, že Khronos vydal specifikace OpenGL 3.3 a 4.0. OpenGL 4.0 přináší GLSL 4.00, výkonnostní zlepšení, lepší integraci s OpenCL a další novinky. Očekává se, že nVIDIA brzy dodá ovladače s podporou nové specifikace, zatímco AMD to bude asi trvat déle. Open-source podpory se s největší pravděpodobností v dohledné budoucnosti nedočkáme.
David Watzke | Komentářů: 5
11.3. 16:41 | Nová verze
Vyšlo Qt 4.7.0 Tech Preview (ukázková verze) a Qt Creator 2.0 alpha. Novinkou v Qt je Quick (Qt UI creation kit) umožňující vývoj dynamických uživatelských rozhraní ve skriptovacím jazyce QML. Rozšířena byla podpora multimédií. Nový Creator přináší podporu Quick a umožňuje vyvíjet programy pro Symbian a Maemo.
David Watzke | Komentářů: 30
Rozcestník
Doporučujeme
Placené odkazy
Kategorie zápisků
Aktuální zápisy

Jak zprovoznit CGI ve Fedoře s aktivním SE Linuxem

18.3.2007 18:36 | Přečteno: 527× | Linux | Výběrový blog

Jako dlouholetý uživatel Fedory jsem věděl, že již nějakou dobu má aktivní rozšíření SELinux. Při pokusu spustit CGI počítadlo přístupů (wwwcount) se to potvrdilo - jádro hlásilo avc: denied { write } for pid... a skript nefungoval. Popíšeme si, co se vlastně stalo, a jak to napravit...

Lehký začátek - standardní instalace wwwcount

Jen v kostce uvedu instalaci, abyste si mohli v praxi na něčem vyzkoušet, jak se selinux chová.

Stáhněte si wwwcount např. z http://www.muquit.com/muquit/software/Count/Count.html a rozbalte jej

Spusťte make config.h. Uvedu jen odlišnosti od implicitního nastavení

cgi-bin directory
/var/www/cgi-bin
data directory
/var/local/wwwcount/data
Log directory
/var/local/wwwcount/data

Dále pokračujeme pár make příkazy (pokud se ztratíte, tak spusťte make bez parametrů - zobrazí targety). Příkazy doporučuji spouštět jako běžný (ne-root) uživatel

make all_libs
make Count.cgi
make mkstrip
make extdgts
make cfg

V případě make cfg postupujte dle vlastního uvážení (klidně vše jen potvrďte)

Dejte su na root-a a spusťte

make install

Také musíme vytvořit adresáře pro data a logy, tj.

cd /var/local
mkdir wwwcount
mkdir wwwcount/data
mkdir wwwcount/logs
chgrp apache wwwcount/{data,logs}
chmod g+rw wwwcount/{data,logs}

Už jen zbývá vyrobit testovací stránku s počítadlem:

Počítadlo: <img src="/cgi-bin/Count.cgi?df=sample.dat&ft=0">

Pokud máte standardní FC6 s aktivním selinuxem (tj. nebootovali jste se selinux=0), tak by se vám měla zobrazit stránka se "zlomeným" obrázkem, ačkoliv z hlediska klasických Unix práv je vše v pořádku. Příkaz dmesg by měl navíc obsahovat něco jako:

audit(1174234991.319:4): avc:  denied  { write } for  pid=2837 comm="Count.cgi" name="data" dev=sda7 ino=2587335 scontext=user_u:system_r:httpd_sys_script_t:s0 tcontext=user_u:object_r:var_t:s0 tclass=dir
audit(1174234991.319:5): avc:  denied  { write } for  pid=2837 comm="Count.cgi" name="logs" dev=sda7 ino=2587337 scontext=user_u:system_r:httpd_sys_script_t:s0 tcontext=user_u:object_r:var_t:s0 tclass=dir

SE Linux v praxi

Z pohledu administrátora můžeme SE Linux považovat jako dodatečný filtr na volání jádra - to co zobrazil dmesg ve složených závorkách { write } je volání jádra, jehož SE audit neprošel. Další údaje jsou poměrně samovysvětlující až na ty poslední.

scontext
subject context - SE kontext pachatele (kdo se o to pokusil)
tcontext
target context (?) - cílový kontext objektu, se kterým chtěl daný objekt manipulovat.

Subject kontext

Váš kontext si můžete snadno zjistit příkazem id - vypíše jej za standardními POSIXovými informacemi jako např.

uid=501(henryk) gid=501(henryk) groups=501(henryk) context=user_u:system_r:unconfined_t:s0

Fedora používá tzv. targeted policy, tzn., že pouze explicitně vyjmenované programy podléhají restrikcím SE Linuxu. Jednotlivé údaje jsou, uživatel (*_u), role (*_r), a typ (*_t). unconfined znamená, že SELinux není pro náš proces aktivní (tj. nijak nás ne-audituje ani neomezuje)

V dalším textu se soustředíme jen na type (*_t), v SE linuxu je to synonymum pro domain (ale nemusí platit v jiných Unixech).

Obecně si můžete aktuální stav SE linuxu ověřit příkazem sestatus

Kde se vzal httpd_sys_script_t

Nejdříve se ujistěte, že máte nainstalovaný balíček selinux-policy - zde jsou totíž klíčové manuál stránky, konkrétně nás zajímá:

man httpd_selinux

Tam se dozvíme, jaký typ máme nastavit u souborů, či adresářů, aby cgi skripty mohly k nim přistupovat.

SE type zjistíme parametrem '-Z' příkazu ls, např.

$ ls -Zd /var/local/wwwcount/logs
drwxrwxr-x  root apache user_u:object_r:var_t:s0         /var/local/wwwcount/logs

Říká, že náš adresář pro logy je typu var_t, tj. naše cgi by muselo mít potřebná práva tento typ a to pochopitelně nemá. Proto dle manuálové stránky provedeme úpravu

chcon -R -t httpd_sys_script_rw_t /var/local/wwwcount/{data,logs}

A ověříme výsledek:

$ls -Zd /var/local/wwwcount/{data,logs}

drwxrwxr-x  root apache user_u:object_r:httpd_sys_script_rw_t:s0 /var/local/wwwcount/data
drwxrwxr-x  root apache user_u:object_r:httpd_sys_script_rw_t:s0 /var/local/wwwcount/logs

tj. změna proběhla úspěšně

Zkuste opět reload stránky s počítadlem - nyní už by mělo fungovat správně a bez hlášek od jádra

Další informace

Hlavní konfigurace selinuxu je pod /etc/selinux/*. Situaci malinko komplikuje fakt, že existují hned dva způsoby definic.

  1. monolitická - textové soubory pod /etc/selinux / mělo by se editovat příkazem semanage
  2. module - soubory *.pp spravují se příkazem semodule

Jistě vás zajímá, jak takové definice pravidel vypadají. Kromě zmíněného adresáře /etc/selinux/ doporučuji instalaci balíčku selinux-devel, pak si prohlédnout např. /usr/share/selinux/devel/include/services/apache.if

Bohužel jsem nenašel moc dokumentace (a to nehovořím o SE Linuxu v české literatuře), prakticky jen:

Varování: Tento příspěvek je bez záruky! Sám sebe považuji za SEzačátečníka!
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

ISSN 1214-1267   Powered by Powered by Sun
© 1999-2010 Stickfish, s. r. o. Všechna práva vyhrazena.