Apache Web Server (2)
U današnje vreme privatnost podataka vrlo je važna velikom broju korisnika, te je vrlo bitno da određene informacije budu dostupne samo onima kojima su namenjene. Upravo zbog toga ovog puta biće opisani postupci zaštite podataka pomoću Apache Web Servera.
Apache omogućuje zabranu gledanja sadržaja određenih direktorijuma svima, osim onima koji znaju pristupnu šifru. Mi ćemo pažnju fokusirati na postupak postavljanja osnovne autorizacije za određeni direktorijum ili Web stranicu.
Kao što se iz naziva može zaključiti, osnovna autorizacija je najjednostavnija metoda postavljanja zaštite. Koristi se vrlo često. Princip rada osnovne autorizacije je krajnje jednostavan: zasniva se na otvaranju prozora u koji se upisuje korisničko ime i šifra kada se u Web pretraživaču pozove zaštićena stranica. Ukoliko korisnik zna tačno korisničko ime i šifru može nastaviti sa učitavanjem stranice; u suprotnom Apache server mu to neće dozvoliti.

Konfiguracija autorizacije
Postoje dva načina na koji se ovakva autorizacija može ostvariti. Ako administrator postavlja autorizaciju, on može upisivati naredbe unutar httpd.conf datoteke, dok ostali korisnici uglavnom nemaju ovlašćenja za to. Zato za ostale korisnike postoji mogućnost stvaranja .htaccess datoteke unutar bilo kojeg direktorijuma koji se želi zaštititi.
Unutar .htaccess datoteke mogu se staviti i druge naredbe koje nisu vezane za autorizaciju već za konfiguraciju ponašanja Apache servera, ali ne sve (npr. ServerName). Najveća prednost u odnosu na pisanje naredbi unutar httpd.conf je što nakon pisanja naredbi u .htaccess datoteku Apache ne treba resetovati da bi novoupisane naredbe bile važeće. Potrebno je napomenuti da se naredbe upisane u .htaccess datoteku odnose na direktorijum u kom se ona nalazi, kao i sve poddirektorijume. Naime, Apache prilikom ulaska u direktorijum, pre nego što pošalje podatke Web browseru, traži datoteku .htaccess, pa u slučaju da je nađe sledi naredbe upisane u njoj, dok u suprotnom sledi naredbe upisane u httpd.conf. Da bi ovakav način ispravno funkcionisao u httpd.conf datoteci ne sme postojati linija:
Allow Override None
Navedenu liniju potrebno je izbrisati ili na nju postaviti komentar tako da postane nevažeća. U slučaju da navedena linija postoji Apache neće traži datoteku .htaccess; sve što je upisano u .htaccess neće važiti, pa stoga ni autorizacija neće raditi.
Pri postavljanju autorizacije prvi korak je stvaranje datoteke u kojoj će biti upisani korisnici koji imaju dozvolu pristupa zaštićenim dokumentima. Potrebno je napraviti direktorijum /usr/local/apache/passwd u kom će biti smeštena passwords datoteka.
# mkdir /usr/local/apache/passwd
Stvaranje nove datoteke izvodi se naredbom htpasswd. Treba se pozicionirati u direktorijum /usr/local/apache/bin i “otkucati”:
# ./htpasswd -c /usr/local/apache/passwd/passwords ime_korisnika
posle čega ćemo biti upitani za šifru i potvrdu šifre. Nakon pravilnog unosa šifre stvorena je datoteka passwords u kojoj su upisani ime korisnika i šifra u enkriptovanom (zaštićenom) obliku. Potrebno je napomenuti da opcija -c (od reči Create) znači stvaranje datoteke ukoliko datoteka ne postoji. Ukoliko već postoji, postojeća datoteka će biti prebrisana. Za dodavanje novog korisnika ponoviti opisani postupak, ali bez opcije -c. Datoteku sa smeštenim korisnicima potrebno je zaštititi od neovlašćenog pristupa. Ukoliko je Apache Web Server konfigurisan da se pokreće kao korisnik nobody i grupa nogroup poželjno je “otkucati”:
# chown nobody.nogroup /usr/local/apache/passwd/passwords
# chmod 640 /usr/local/apache/passwd/passwords
čime je dozvoljen pristup samo korisniku nobody i grupi nogroup, tj. Apache Web Serveru.
Sledeći korak je konfigurisanje Apache servera da koristi passwords datoteku. Konfigurisanje se izvodi sledećim naredbama:
AuthType - tip autorizacije koja se koristi (u ovom slučaju Basic)
AuthName - me autorizacije (ispisuje se na prozoru koji se pojavljuje)
AuthUserFile - lokacija datoteke sa šiframa korisnika
AuthGroupFile - lokacija datoteke sa šiframa grupe, ako se koristi
Require Zahtevi koji moraju biti ispunjeni da bi se zadovoljila autorizacija
Kako je već ranije rečeno, ove naredbe mogu se smestiti u datoteku .htaccess ili u httpd.conf pod sekcijom .
Navešćemo primer postavljanja osnovne autorizacije za direktorijum
/usr/local/apache/htdocs/privatno, upisivanjem u httpd.conf.
Primer:
AuthType Basic
AuthName "Samo za pozvane"
AuthUserFile /usr/local/apache/passwd/passwords
Require user pperic
U navedenom primeru koristi se osnovna autorizacija; ime autorizacije je "Samo za pozvane". Datoteka /usr/local/apache/passwd/passwords će biti korišćena za proveru identiteta korisnika, pa samo korisnik sa imenom pperic može da vidi sadržaj zaštićenog direktorijuma, naravno, ako zna ispravnu šifru.
Drugi način je stvaranje datoteke .htaccess u direktorijumu koji se želi zaštititi upisivanjem svih redova iz primera, osim redova koji u sebi sadrže . Potrebno je postaviti odgovarajuće ovlašćenje za pristup .htaccess datoteci i Web stranicama koje Apache treba prikazivati tako da on može da pročita njihov sadržaj.
Primer:
AuthType Basic
AuthName "Samo za pozvane"
AuthUserFile /usr/local/apache/passwd/passwords
Require user pperic
Moguće je postaviti da pristup bude odobren svim korisnicima upisanim u datoteku passwords naredbom Require valid-user. Ako se u direktorijumu nalazi datoteka index.html tada će ona biti učitana nakon odobrene autorizacije, tj. Web stranica se može zaštititi ako se postavi u zaštićeni direktorijum.
U praksi je često potrebno omogućiti pristup više osoba nekom direktorijumu i u tu svrhu se može definisati grupa. Ovakav način postavljanja pristupa je pogodan jer se bez promene konfiguracionih datoteka Apache servera može nekoj osobi dozvoliti ili oduzeti pristup, tako što se ta osoba postavi ili izbriše iz grupe kojoj je pristup dozvoljen. Grupa se postavlja stvaranjem datoteke /usr/local/apache/passwd/groups (može biti i drugde), kao i upisivanjem u nju:
Ime_grupe: ime_korisnika1 ime_korisnika2 ime_korisnika3
Takođe, korisnici moraju biti upisani i u datoteku passwords, a potrebno je dodati u httpd.conf ili u .htaccess linije
AuthGroupFile /usr/local/apache/passwd/groups
Require group Ime_grupe
Ovim je završeno postavljanje osnovne autorizacije.
Apache podržava i tzv. digest autorizaciju i autorizaciju pomoću baze podataka, ali one se koriste u izuzetno sigurnim sistemima i ne rade na svim Web pretraživačima, pa ih ovde nećemo opisivati.
CGI i PHP aplikacije
U ovom delu su ukratko opisani osnovni konfiguracioni postupci vezani za omogućavanje pokretanja i izvođenja CGI (engl. Common Gateway Interface), kao i PHP aplikacija na strani Apache Web Servera.
Kako pomenute aplikacije, uz ASP i ASP.NET, danas predstavljaju neizostavni element bilo kog Web servera koji se koristi za obavljanje ozbiljnijih i složenijih zadataka, pre ili kasnije ukazaće se potreba za omogućavanjem ovih servisa.
CGI
CGI (engl. Common Gateway Interface) je prilično star ali još uvek često korišćen alat, koji omogućava razmenu informacija između korisnika i Web servera.
CGI skripte mogu biti pisane u raznim programskim jezicima (najčešće Perl ili C) i kao takve predstavljaju aplikacije koje se na zahtev pretraživača, odnosno klijenta, izvršavaju na strani Web servera.
Tipični primer komunikacije između klijenta i Web servera je slanje korisničkih podataka serveru putem Web formi ugrađenih u HTML stranicu, na temelju kojih će CGI skripta pokrenuta na serveru obaviti za nju predviđene zadatke i rezultat vratiti klijentu.
Jednostavan primer Web forme, kojom će se pokrenuti CGI skripta na serveru, sa zadatkom da obradi podatke koje je korisnik uneo pomoću Web forme:
METHOD=POST>
Ime i Prezime :
Password:
U navedenom primeru ACTION atribut je naveden unutar




del.icio.us
Digg
Twitter
Facebook
Pošaljite komentar