Guarantee business interface. stickfish.com
abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz abchost.cz AbcHost 64bit.eu 64bit abcprace.cz AbcPráce unixshop.cz unixshop Raydesk Raydesk HDmag.cz HDmag.cz
Sledujte AbcLinuxu.cz na:
facebook favicon logo  Facebooku twitter favicon logo  Twitteru,   identi.ca favicon logo  Identi.ca
openmagazin logo openMagazin 11 Osvětové PDF
Rozšířené hledání
×
Blu-ray?
 (28%)
 (31%)
 (33%)
 (3%)
 (35%)
 (11%)
Celkem 1480 hlasů
 Komentářů: 289, poslední včera 18:54
včera 23:34 | Nová verze
Miguel de Icaza oznámil dostupnost Moonlight 3.0 Preview 1 (alfaverze). Nová verze by měla přinést kompatibilitu se Silverlight 3.0. Přibyla například podpora demuxeru MP4.
Robert Krátký | Komentářů: 0
včera 18:59 | Nová verze
Po měsících vývoje vyšla nová verze multiplatformního IRC klientu dxirc 0.40.0. Vedle četných vylepšení grafického uživatelského rozhraní a několika oprav přináší podporu DCC a možnosti skriptování v jazyce Lua.
Jaromír Hradílek | Komentářů: 0
včera 16:45 | Nová verze
Vyšel Cairo-Dock 2.1.3 - líbivý desktopový panel Cairo-Dock je inspirovaný panelem z MacOS X. Nová verze především zjednodušuje konfigurační dialog. Kromě toho vylepšuje navigaci, některé efekty atd.
Robert Krátký | Komentářů: 18
včera 14:32 | Zajímavý článek
Ghacks.net představuje program HomeBank pro domácí účetnictví. Je zaměřen na osobní finance a může zastoupit komplikovanější programy GnuCash nebo KMyMoney.
Robert Krátký | Komentářů: 7
včera 11:09 | Zajímavý článek
Greg KH odstranil z linuxového jádra (ze stromu -staging) kód Google Android. Greg vysvětluje, že pro odstranění byly dva hlavní důvody: Nikdo se o kód nestaral a kód nebyl kompatibilní se zbytkem jádra (především by byl problém s novými zámky a bezpečnostním modelem, který Android zavádí). Greg konstatoval, že Android je v podstatě fork jádra. Bohužel tím zabraňuje začlenění nových ovladačů, které vzniknou na základě jeho kódu. RegHardware to vtipně komentuje slovy: 'Go fork yourself!'
Robert Krátký | Komentářů: 6
včera 10:53 | Zajímavý článek
Vývojáři nástroje phpMyAdmin se na FOSDEM dohodli, že přesunou vývoj na Git a pro lokalizaci začnou používat gettext. Více v blogu Michala Čihaře.
Robert Krátký | Komentářů: 4
včera 06:54 | Bezpečnostní alerty
Na několik bezpečnostních děr jádra v Ubuntu upozorňuje Ubuntu Security Notice USN-894-1. Problém se týká vydání 6.06 LTS, 8.04 LTS, 8.10, 9.04 i 9.10. Aktualizace je důrazně doporučena. Zdroj: linuxos.sk.
Tomáš Heger (geckon) | Komentářů: 21
7.2. 21:04 | Zajímavý článek
Tvůrce linuxového jádra Linus Torvalds uveřejnil na svém blogu, že si pořídil telefon od Google Nexus One.
mibo | Komentářů: 16
7.2. 11:16 | Zajímavý software
Uživatelé MacOS možná znají Ommwriter. Pro Linux vzniká něco podobného. Marave je textový editor, který se snaží svou jednoduchostí neodvádět pozornost od samotného psaní. Grafické rozhraní je možno dle libosti nastavit nebo si pustit hudbu na pozadí. Kompletní seznam funkcí je na webu projektu nebo na blogu autora.
Martin Stiborský | Komentářů: 52
7.2. 08:30 | Komunita
Ak máte záujem, môžete sa zúčastniť všeobecného prieskumu linuxovej distribúcie openSUSE. Pre výhercov v tombole je pripravených 20 tričiek, 5 krabíc openSUSE 11.2 a jedna super vecička, ktorá zatiaľ nebola určená. S najväčšou pravdepodobnosťou to bude Chumby. Pre vstup do tomboly zadajte svoju e-mailovú adresu na konci prieskumu. E-mailová adresa bude použitá iba pre účely tomboly. Prieskum trvá do konca februára 2010 a výsledky budú zverejnené na openSUSE.org.
ra100 | Komentářů: 68
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.