| Omezení práv |
|
|
|
| Zhlédnutí: 4624 | ||||||||
| Napsal filbar | ||||||||
| Pátek, 13 duben 2007 | ||||||||
| Aktualizováno ( Čtvrtek, 12 duben 2007 ) | ||||||||
|
Po trošku delší 14 denní pauze opět pokračujeme v našem seriálu o www serveru Apache. Dneska si ukážeme jak zabezpečit náš server pro Mass Virtual Hosting, neboli jak zaručit, aby www stránky běžely pod vybraným uživatelem, který může být pro každý Virtuální server jiný. Původní téma si necháme na příště, protože obě témata vydají každé na jeden článek. Omezení právPro omezení toho, pod kterým uživatelem lze skripty spustit existují dva moduly. První z nich suEXEC je součástí Apache a je určen pro obecné CGI a SSI skripty. Pro velmi populární PHP je vyvíjen speciální modul suPHP, který není součástí Apache. Stáhnout ti jej lze se stránek http://www.suphp.org/. suEXECNejprve si ukážeme konfiguraci suEXEC. Pokud máme Apache instalovaný z balíčků naši distribuce, tak by měl být nainstalovaný jako stardartní součást. V případě instalace ze zdrojových kódů je nutné použít ke skriptu configure přepínače --enable-suexec a --with-suexec-userdir(pokud chceme suEXEC použít i u domovských adresářů uživatelů). Do konfiguračního souboru Apache lze přidat pouze jednu konfigurační volbu. Ostatní se musí předat při kompilaci. Uživatelé, kteří mohou spouštět suEXEC určíme pomocí --with-suexec-caller(většinou je to uživatel, pod kterým se Apache spouští), nadřazený adresář adresářům které ma suEXEC kontrolovat nastaví --with-suexec-docroot. Dále zde máme minimální povolené UID resp. GID-parametry --with-suexec-uidmin resp. --with-suexec-gidmin. Dokonce i logovací soubor se nastavuje při kompilaci --with-suexec-logfile. Poslední konfigurační volby předávané při instalaci je bezpečná varianta proměnné PATH --with-suexec-safepath a umaska pro vytváření nových souborů pomocí skriptů --with-suexec-umask. Jedinou konfigurační volbou, která je povolena v konfiguračním souboru Apache je určení pod kterým uživatelem a skupinou se mají CGI skripty daného serveru, nebo virtualhosta spouštět. Syntaxe vypadá následovně SuexecUserGroup uzivatel skupina. Pro správnou funkci modulu je ještě nutné jeho začtení direktivou LoadModule suexec_module modules/mod_suexec.so Nyní by se po restartu Apache měl modul načíst a začíst spouštět cgi skripty web serveru, nebo jednotlivých virtuálních webů pod zadaným uživatelem a skupinou. suPHPModul speciálně napsaný pro PHP již není standardní součástí Apache a musíme si jej do něj přidat sami. Naštěstí to není nic složitého a jestli používáme Apache s balíčků tak obvykle stačí pouze nainstalovat odpovídající balíček. Instalace se zdrojových kódů spočívá ve spuštění skriptu configure, kterému lze předat nutné parametry jako --with-min-uid=UID a --with-min-gid=GID, které určují minimální UID a GID uživatele, pod kterým mohou běžet skripty PHP. Rovněž je opět nutné určit uživatele, pod kterým je spuštěn Apache --with-apache-user=USERNAME. Logovací soubor určíme přepínačem --with-logfile=FILE. Přepínačem --with-setid-mode=MODE nastavíme jestli se mají PHP skripty spouštět pod jejich vlastníkem(owner), spouštět pod vlastníkem a navíc kontrolovat jestli vlastník je shodný s tím uvedeným v konfiguračním souboru Apache(paranoid) a nakonec vynutit spouštění pod vlastníkem uvedeným v konfiguračním souboru Apache(force). V případě, že se na našem webserveru vyskytuje více instalací serveru Apache, je užitečný i přepínač --with-apxs=/cesta/k/souboru/apxs. Následuje již pouze kompilace make a instalace, kterou provedeme jako root příkazem make install. Ani zde nesmíme zapomenou na zavedení modulu do Apache: LoadModule suphp_module modules/mod_suphp.so Společně s modulem suPHP je v adresáři se zdrojovými kódy umístěn soubor suphp.conf-example, který ukazuje specifický konfigurační soubor modulu suPHP. Tento soubor se při instalaci ze zdrojových kódů neinstaluje automaticky, je třeba jej ručně zkopírovat nějlépe do adresáře /etc/ a přejmenovat na suphp.conf. Umístění později předáme Apachi v direktivě suPHP_ConfigPath. Před konfigurací Apache si ukážeme nastavení suPHP. Konfigurační soubor suphp.conf má syntaxi identickou s konfiguračním souborem PHP php.ini, který je součástí instalace PHP, tzn. komenráře se uvozují středníkem a konfigurace se zapísuje ve tvaru volba=hodnota. Zde lze změnit parametry, které jsme předávali pomocí přepínačů při kompilaci. Význam jednotlivých voleb sekce globals zní následovně:
V souboru se nachází ještě druhá sekce, která nese název handlers. Ta obsahuje pouze dvě volby. První z nich x-httpd-php=php:/cesta/k/php obsahuje celou cestu k programu PHP. Drouhou volbu je lepší ponechat ve tvaru x-suphp-cgi=execute:!self a určuje jak se má použít suPHP v CGI-módu. Druhá varianta, kdy se stejně jako u x-httpd-php spouští přímo php vypadá následovně: x-suphp-cgi=php:/cesta/k/php. Do konfiguračního souboru Apache přijdou následující direktivy, které můžeme umístit jak přímo do hlavní sekce, tak také do jednotlivých virtuálních hostitelů. Nejprve je nutné celý mechanismus suPHP zapnout direktivou suPHP_Engine on a normální PHP naopak vypnout php_admin_flag engine off. Dále je třeba přiřadit handler pro PHP skripty, jak jsme jej pojmenovali v sekci Handlers souboru suphp.conf. To nám zařídí dvojice direktiv AddHandler x-httpd-php .php Rovněž je nutné říct suPHP, kde má hledat konfiguraci PHP- suPHP_ConfigPath /usr/srv/etc. Na závěr nesmíme zapomenout předat Apachi to nejdůležitější uživatele, který má vlastnit PHP skripty, k čemuž využijeme služeb direktivy suPHP_UserGroup uzivatel skupina Zde si ale musíme dát pozor na jednu věc a to, že číslo tohoto uživatele s skupiny musí být za prvé vyšší než min_uid a min_gid uvedené v suphp.conf a také skripty musí mít tohoto vlastníka přířazeného, jinak dojde k zobrazení chybové stránky, pokud jsme při instalaci nastavili -with-setid-mode na owner, nebo paranoid(výchozí hodnota). V případě force se použije vlastník definovaný v této direktivě bez ohledu na skutečného vlastníka. Tím bychom pro dnešek skončili a příště se již určitě můžete těšit na konfiguraci Apache pro Mass Virtual Hosting, jak za pomocí modulu obsaženého v základní instalaci Apache, tak pomocí pokročilejšího modulu, se kterým je MVH úplná hračka.
Powered by !JoomlaComment 3.22
3.22 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
||||||||
| < Předch. | Další > |
|---|