Módosítások

FastCGI

4 942 bájt hozzáadva, 2013. február 25., 15:54
nincs szerkesztési összefoglaló
Amennyiben úgy szeretnék Shibboleth SP-t beüzemelni, hogy biztonsági, vagy bármilyen egyéb megfontolásokból az FastCGI-ként fusson, úgy az alábbi példa lehet segítségünkrealábbiakban leírtak szerint kell(ene) a rendszernek működnie.
==FastCGI-ről==
Ezt még meg CGI (Common Gateway Interface) alkalmazás esetén a program futása a következőképpen néz ki: jön a kérés a kiszolgáló felé, mire az továbbítja a kérést a CGI programnak. Jelen esetben ez a PHP értelmező lesz, ami futtatja a programot, és az eredményt visszaadja a kiszolgálónak, majd ezután eltűnik a memóriából. Egy következő kéréskor ugyanez a folyamat ismétlődik, amiből egyből láthatjuk, hogy ez a módszer nem túl hatékony, a PHP értelmezőt állandóan be kell írnitölteni, majd ki kell pakolni a memóriából.
==Telepítés== A FastCGI ezt a be/ki töltögetést küszöböli ki: a PHP értelmező bent marad a memóriában addig, amíg szükség van rá. Sőt, egyszerre több értelmezőt is a memóriában tart, így egyszerre több kérést is ki tud szolgálni a szerver.
A Lighttpd-t CGI program külön szálként fut a kiszolgálón, elkülönítve tőle, és a Shibboleth-et Debian Lenny rendszerre telepítjüktöbbi hasonló száltól. Az egyszerűség kedvéért mindkét összetevő csomagját Ha az egyik kedves felhasználó programja megöli a CGI értelmezőjét, akkor sincs semmi gond, az meghal, de a debian oldaláról letölthető forrásból állítjuk előtöbbi attól még vígan dolgozik, majd már és szolgálja ki a generált csomagból telepítjüklapokat.
''Forrás:'' [http://weblabor.hu/cikkek/phpfastcgimodban Weblabor] ==Lighttpd, mint webszerver== {{ambox| type = attention| image = [[Image:Attention.svg|40px]]| text = <big>'''FIGYELEM!'''</big>----{{#if:{{{1|}}} | {{{1}}}}}Az alább leírt módszer csak elviekben működik, a gyakorlatban - a szükséges patchelés ellenére sem - sikerült működésre bírni. A hiba oka [http://redmine.lighttpd.net/issues/show/322 egy '''lighttpd bug'''], melyről a fejlesztők is tudnak, ám kijavítása nem szerepel a napirenden, mivel hivatalosan a patch megjavítja, ám a gyakorlat ezt cáfolja. Az érthetőség kedvéért hibajelenség pontos leírása a telepítési folyamat leírása után található. }}  ==== Lighttpd ==== A figyelmeztetésben is emlegetett, és az alább részletezett patch-elés miatt nem a legfrissebb, hanem az 1.4.15-ös lighttpd-t használjuk.
Beszerzés
dget wget http://ftpwww.delighttpd.debian.org/debian/poolnet/main/ldownload/lighttpd/lighttpd_1-1.4.19-515.tar.dscgz dpkgtar -source xf http://www.lighttpd.net/download/lighttpd-x *1.4.15.tar.dscgz
Egy ismert bug miatt, amely javítása későbbi lighttpd változatban már szerepel, de a debian csomagban lévőben még nem, emiatt A szükséges patch-elni kell. Patch letöltése:
wget http://redmine.lighttpd.net/attachments/download/91/fastcgi-authorizer-fixes.diff
patch -p0 < fastcgi-authorizer-fixes.diff
Konfigurálnunk Majd a patchelés kiegészítéseként be kell szúrnunk egy sort a <code lang="xml">src/mod_fastcgi.c</code> fájlba.  con->http_status == 0)) { /* * If we are here in AUTHORIZER mode then a request for autorizer * was proceeded already, and status 200 has been returned. We need * now to handle autorized request. */ +++ con->http_status = 0; if ( ! buffer_is_empty(host->docroot) ) { /* * Serve local file if they specified * a docroot */  Fordítás és telepítés ([http://redmine.lighttpd.net/projects/lighttpd/wiki/InstallFromSource|a <code lang=xml>configure</code> paraméterei természetesen tovább finomíthatók])  ./configure --libdir=/usr/lib/lighttpd --with-openssl --with-openssl-libs=/usr/lib make make install '''Telepítés utáni beállítás:''' vim /etc/lighttpd/lighttpd.conf server.modules szekcióba be kell írni "mod_fastcgi", majd ugyanebben a fájlban meg kell adni az alapvető beállításokat mind a 80-as, mind a 443-as portra vonatkozólag server.name = "sp2.example.org" server.document-root = "/var/www/" $SERVER["socket"] == "10.0.0.8:443" { // a host ip-címe ssl.engine = "enable" ssl.pemfile = "/etc/lighttpd/certs/lighttpd.pem" // ahol a fordítás paramétereitdomain-re vonatkozó tanusítványunk található }  === Shibboleth === Beszerzés dget http://ftp.de.debian.org/debian/pool/main/s/shibboleth-sp2/shibboleth-sp2_2.0.dfsg1-4.dsc dpkg-source -x *.dsc Fordítás előtti hangolás
vim debian/rules
Be kell szúrni a ./configure paramétereit meghatározó sorba:
--with-fastcgi=/usr/sbin/lighttpd (a lighttpd elérési útja)
 
=== Shibboleth + Lighttpd ===
 
Még két beállítást kell eszközölnünk, hogy a webszerver tudja, hogy shibbolethes hívások esetén mi a teendő. Először is a FastCGI beállításokat betöltetjük a lighttpd-vel (ez shibboleth-től függetlenül is kellhet, pl. php futtatása esetén). Egy egyszerű szimbolikus linket készítünk a mods-available könyvtár vonatkozó fájljáról a mods-enabled -be. A második, hogy ezt a fájlt kiegészítjük két, shibboleth specifikus sorral.
 
"/Shibboleth.sso" => ((
"socket" => "/tmp/fcgi-resp.sock",
"bin-path" => "/usr/lib/shibboleth/shibresponder",
"check-local" => "disable",
"mode" => "responder"
)),
"/" => ((
"socket" => "/tmp/fcgi-auth.sock",
"bin-path" => "/usr/lib/shibboleth/shibauthorizer",
"check-local" => "disable",
"mode" => "authorizer"
)),
Melynek nyomán az alábbi részbe be kellett illesztenünk Ezek után - s az sslitt nem részletezett [[Shib2SP|Shibboleth SP]] beállítás után -es direktívákat tartalmazó sorta rendszernek további beállítások nélkül működnie kellene. DEB_CONFIGURE_EXTRA_FLAGS += --libdir=/usr/lib/lighttpd --with-openssl \ --with-kerberos5 --with-pcre --with-bz2 \ --with-ldap --with-mysql --with-memcache \ --with-lua=lua5Ám '''kizárólag statikus tartalmat tud rendeltetésszerűen kiszolgálni, dinamikusat nem'''.1 --with-gdbm --with-attr \ --with-openssl --with-openssl-libs=/usr/lib \ --with-webdav-locks --with-webdav-props \ --with-fam
=== A HIBAJELENSÉG ===
Amennyiben használni akarunk "authorizer" modult (a shibbolethnél ez ugye kell, a másik modul, a "responder" típusú mellett), akkor ehhez a fastcgi beállításoknál meg kell adni egy gyökér pontot, amelyhez viszonyítva az összes vele egy szinten lévő, ill. alatta lévő hivatkozás esetén lefut az authorizer, és megmondja, hogy jogosult, tehát mehet tovább, vagy sem. Ez a gyökérpont a shibbolethes beállításoknál a "/" kell, hogy legyen, tehát minden esetben átfut az authorizer-en egy-egy kérés. Ez nem is lenne rossz, de a bug miatt, amennyiben a fastcgi beállításoknál az authorizer megadása után bármilyen (pl. php) respondert beállítunk, akkor az az authorizer által lefedett környezetben (esetünkben a "/" miatt mindenhol) a webszerver 403 hibát dob.
Csomagok elkészítése debuild -b[[Category: AAI]] [[Category: Shibboleth SP]] [[Category: HOWTO]]

Navigációs menü