28.7 Biztonsági problémák elkerülése

A nyilvános interneten muködo webkiszolgálók folyamatos felügyeletet igényelnek. Elkerülhetetlenül fellépnek biztonsági problémát, akár a szoftverbol, akár a véletlen félrekonfigurálásból adódóan. Az alábbiakban néhány ötletet szeretnénk adni az elkerülésükhöz.

28.7.1 Naprakész szoftver

Amikor sérülékenységeket találnak az Apache szoftverben, a SUSE biztonsági tanácsot ad ki. Ebben leírja a sérülékenységek kijavításának módját, amelyet a leheto leghamarabb el kell végezni. A SUSE biztonsági bejelentések az alábbi címeken érhetok el:

28.7.2 DocumentRoot-jogosultságok

Alapértelmezés szerint a openSUSE rendszerben a DocumentRoot könyvtár (/srv/www/htdocs) és a CGI-könyvtár (/srv/www/cgi-bin) a root felhasználóhoz és csoporthoz tartoznak. Ezeket a jogosultságokat nem célszeru megváltoztatni. Ha a könyvtárak bárki által írhatók lennének, akkor akármelyik felhasználó rakhatna beléjük fájlokat. Utána pedig elofordulhat, hogy az Apache végrehajtaná ezeket a fájlokat a wwwrun felhasználó jogosultságával, és így a felhasználónak a más szándék ellenére hozzáférést engedne a fájlrendszer eroforrásaihoz. Éppen ezért az /srv/www alkönyvtáraiba helyezze el a virtuális gépek DocumentRoot és CGI-könyvtárait, és gondoskodjon róla, hogy ezek a könyvtárak és fájlok a root felhasználóhoz és csoporthoz tartozzanak.

28.7.3 Fájlrendszer elérése

Alapértelmezés szerint a teljes fájlrendszer elérése le van tiltva az /etc/apache2/httpd.conf fájlban. Ezeket a direktívákat ne írja felül; engedélyezze külön-külön az Apache által elérni szükséges könyvtárakat (ennek részletei: Virtuális gépek alapszintu beállításai). Ily módon garantálható, hogy semmilyen kritikus fájl (például jelszavakat tároló, vagy rendszerkonfigurációs fájl) nem érheto el kívülrol.

28.7.4 CGI-parancsfájlok

A Perl, PHP, SSI és más programozási nyelveken írott interaktív parancsfájlok lényegében tetszés szerinti parancsokat végrehajthatnak, ezért általánosságban biztonsági kockázatot jelentenek. A kiszolgálón végrehajtott parancsfájlokat csak a kiszolgáló rendszergazdája által megbízhatónak tartott forrásokból szabad telepíteni – általában nem túl jó ötlet engedni a felhasználóknak, hogy mindenféle parancsfájlt végrehajthassanak. Szintén célszeru biztonsági szempontból megvizsgálni a parancsfájlokat.

A parancsfájlok felügyeletének megkönnyítése érdekében bevált gyakorlat korlátozni a CGI-parancsfájlok végrehajtását néhány könyvtárra és nem engedélyezni oket globálisan. Ennek beállítására a ScriptAlias és Option ExecCGI direktívák használhatók. A openSUSE alapértelmezett konfigurációja nem engedi a CGI-parancsfájlok végrehajtását tetszés szerinti helyrol.

Minden CGI-parancsfájl ugyanazon felhasználó nevében fut, ezért a különbözo parancsfájlok lehetséges, hogy megzavarják egymást. A mod_suEXEC modul lehetové teszi a CGI-parancsfájlok egy másik felhasználó és csoport nevében történo futtatását.

28.7.5 Felhasználói könyvtárak

A felhasználói könyvtárak (a mod_userdir vagy a mod_rewrite segítségével történo) engedélyezésekor igen komolyan érdemes megfontolni, hogy ne használhassák a .htaccess fájlokat, amelyekkel felülírhatók a biztonsági beállítások. Legalábbis korlátozni kell azt, hogy a felhasználó milyen mértékben befolyásolhatja a beállításokat (az AllowOverRide direktívával). openSUSE rendszereken a .htaccess fájlok alapértelmezés szerint engedélyezve vannak ugyan, de a felhasználók nem jogosultak felülírni semmilyen Option direktívát a mod_userdir használatakor (lásd az /etc/apache2/mod_userdir.conf konfigurációs fájlt).