27-02-06 08:54
Autorizacija Apache web poslužitelja putem LDAP-a i RADIUS-a
piše IVAN RAKO
U prošlomjesečnom članku Autentikacija osnovnih servisa putem LDAP-a objasnili smo autorizaciju osnovnih servisa putem LDAP-a i RADIUS-a. Sada ćemo pokazati autorizaciju Apache web poslužitelja putem istih autentikacijskih i autorizacijskih mehanizama.
Apache web poslužitelj može koristiti autorizaciju korisnika preko RADIUS-a. Za to se koristi modul mod_auth_radius. Taj modul se nalazi u Debian paketu libapache-mod-auth-radius. Zato ga najprije instalirajmo:
# apt-get install libapache-mod-auth-radius
Zatim treba u konfiguraciju FreeRADIUS-a prijaviti tog poslužitelja kao klijenta:
# U nasem slucaju je klijent localhost client 127.0.0.1 { secret = neki_secret shortname = localhost
}
Ovaj secret treba prenijeti u konfiguraciju mod_auth_radius modula (kod nas je u /etc/apache/conf.d/mod-auth-radius.conf). Prilikom svake izmjene konfiguracijskih datoteka FreeRADIUS-a, potrebno ga je restartati:
# /etc/init.d/freeradius restart
Zatim u datoteku /etc/apache/conf.d/mod-auth-radius.conf upišemo sljedeće:
<IfModule mod_auth_radius.c> AddRadiusAuth localhost:1812 neki_secret 5:3 AddRadiusCookieValid 5
</IfModule>
neki_secret stavimo proizvoljno, i dobro je da je tajni. Brojevi 5:3 znače da je timeout 5 sekundi, te da je broj pokušaja 3, ali se ove vrijednosti mogu proizvoljno mijenjati.
<Location /ono-ste-zelimo-zastititi/> AuthType BasicAuthName "RADIUS authentication for localhost"
AuthAuthoritative off
AuthRadiusAuthoritative on
AuthRadiusCookieValid 5
AuthRadiusActive On
require valid-user
</Location>
Naravno, Location se mijenja ovisno o tome koji dio weba želimo zaštititi lozinkom.
Nakon svake izmjene datoteka unutar /etc/apache/conf.d/ direktorija treba restartati Apache:
# /etc/init.d/apache restart
Web stranici na adresi http://www.ustanova.hr/ono-sto-zelimo-zastiti/ može se pristupiti samo korisničkim imenom i lozinkom iz lokalnog LDAP-a, koristeći lokalni RADIUS.
Postoji i drugi način. Dovoljno je u /etc/apache/conf.d/ mod-auth-radius.conf staviti:
<IfModule mod_auth_radius.c> AddRadiusAuth localhost:1812 neki_secret 5:3
AddRadiusCookieValid 5
</IfModule>
Direktorij koji želimo zaštiti upišemo u datoteku .htaccess:
AuthType Basic
AuthName "RADIUS authentication for localhost"
AuthAuthoritative off
AuthRadiusAuthoritative on
AuthRadiusCookieValid 5
AuthRadiusActive On
require valid-user
I to je to!
|