Polazna | Networking | Mreže pod Linuxom | Apache Web Server (2)

Apache Web Server (2)

Veličina slova: Decrease font Enlarge font
image

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

HTML oznake, kojim se Web serveru navodi put i ime skripte koju treba izvršiti.

 

Pritiskom na taster "Šalji!" aktiviraće se slanje unetih podataka Web serveru, koje će on dalje proslediti prozvanoj CGI skripti na obradu (ukoliko je to omogućeno). Nakon procesiranja primljenih podataka i na osnovu preduzetih radnji, CGI skripta može po potrebi obavestiti klijenta o učinjenim promenama.

Ovde ćemo izneti korake koje je potrebno preduzeti kako bi se na Web serveru omogućilo pokretanje i izvođenje napisanih CGI skripti. Važno je pomenuti da inicijalna konfiguracija Apache Web Servera ne dozvoljava pokretanje CGI skripti, te da je potrebno modifikovati httpd.conf konfiguracionu datoteku ukoliko se to želi omogućiti.

Na samom početku valja definisati direktorijum u kojem će se smeštati CGI skripte koje se žele izvoditi. Taj direktorijum može da se nalazi bilo gde unutar sistema datoteke, nezavisno od DocumentRoot konfiguracionog parametra Apache Web Servera. Nakon toga, u httpd.conf datoteci je potrebno dodati deo pomoću koga će se Apache server obavestiti da se u tom direktorijumu nalaze CGI izvršni programi, koje u slučaju zahteva za tom URL adresom treba tako i tretirati.

Primer:

AllowOverride None
Options ExecCGI
SetHandler cgi-script
     

Ovim delom kôda Apache Web Server će znati da se unutar /var/www/cgi-bin/ direktorijuma nalaze CGI skripte, koje treba tretirati kao izvršne programe ukoliko se javi upit za URL adresom koja upućuje na navedeni direktorijum.

Ključni parametar u ovom delu konfiguracije je Options ExecCGI, kojim se dozvoljava pokretanje i izvođenje CGI skripti smeštenih u direktorijumu na koji se ovaj deo konfiguracije odnosi.

Uz ovakvu konfiguraciju Apache Web Servera, parametru ACTION unutar HTML

oznake potrebno je navesti ceo put do skripte koja se želi pokrenuti nakon pritiska na taster submit.

 

Uobičajena je praksa da se u konfiguraciji Apache Web Servera definiše alias, ime kojim će se omogućiti intuitivnije pristupanje CGI skriptama, pogotovo ukoliko se one nalaze negde duboko unutar sistema datoteke.
U tu svrhu potrebno je dodati sledeći red:
ScriptAlias /cgi-bin/ "/usr/local/apache/www/cgi-bin/"   

U ovom slučaju, svaki zahtev za URL adresom oblika http://www.ime_domena/cgi-bin/ime_skripte Apache će interpretirati kao zahtev za pokretanjem CGI skripte, koju će locirati unutar /usr/local/apache/www/cgi-bin alias direktorijuma.

Napomena: svakoj CGI skripti kojoj želimo da omogućimo pokretanje potrebno je chmod naredbom postaviti ovlašćenje i izvođenja (execute bit). Naime, budući da je Web server iz sigurnosnih razloga najčešće pokrenut pod nobody korisničkim imenom, potrebno je execute flegove postaviti na način kojim će se Web serveru omogućiti pokretanje željene CGI skripte (npr. chmod 755 ime_skripte, će sigurno zadovoljiti).

PHP

PHP je jedan od najpopularnijih i najčešće korišćenih skript jezika u svetu Web programiranja. Popularnost je stekao jednostavnošću, kvalitetom i  brojnim mogućnostima koje pruža.  U PHP-u se mogu naći elementi objektno-orijentisanog programiranja preuzeti iz Jave, C++-a, a takođe se može pronaći i niz drugih vrlo korisnih elementa nasleđenih iz Perla. Ali, posebna snaga PHP-a dolazi do izražaja u situacijama kada se javlja potreba za integracijom sa bazama podataka, budući da PHP poseduje vrlo kvalitetno programsko okruženje dizajnirano upravo za te svrhe.
Da bi se omogućilo pokretanje i izvođenje PHP skripta na Apache Web Serveru, prvi korak koji je potrebno preduzeti jeste nalaženje samog PHP programskog paketa (može se pronaći na www.php.net). Preporučuje se korišćenje što novije verzije ovog programskog paketa kako bi se osigurala potpuna kompatibilnost sa drugim delovima sistema (SQL, Apache ). PHP programski paket se može, između ostalih, dobiti i u tar.gz formatu, pa je u tom slučaju postupak instalacije sličan kao i kod ostalih tar.gz paketa.

Otpakivanje arhive može se obaviti u jednom koraku naredbom:
# tar -xzvf php.x.x.x.tar.gz      
Nakon toga potrebno je ući u novonastali php.x.x.x direktorijum i pokrenuti konfiguracionu skriptu. Potrebno je obratiti pažnju na parametre koji se prosleđuju toj skripti, budući da od njih zavisi kako će se PHP slagati sa ostalim komponentama sistema.

Na primer,
#./configure --with-apache=./apache_X.X.X –with-mysql=/usr/local/mysql     
naredba će pokrenuti konfiguraciju sa podrškom za integraciju sa bazom podataka MySQL, kao i Apache Web Serverom. Nije isključena mogućnost da će PHP programski paket jednako dobro raditi pokretanjem ./configure skripte bez parametara, ali se gore opisani postupak smatra regularnim i sigurnim.
Naredbom ./configure --help mogu se izlistati sve opcije koje se mogu proslediti ./configure skripti za konfiguraciju PHP programskog modula, pa ih je poželjno analizirati kako bi se na taj način uvidele sve mogućnosti konfiguracije ovog programa.

Posle toga sledi pokretanje “make” programa naredbama:
# make
# make install     
što će, ukoliko je sve uspešno prošlo, rezultovati instaliranim PHP programskim paketom.

Sledeći korak je konfiguracija samog Apache Web Servera, kako bi se na taj način omogućilo pokretanje i izvođenje PHP skripti. U tu svrhu potrebno je dodati sledeće linije u Apache httpd.conf konfiguracionu datoteku:
AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php .php
ScriptAlias /php3/ "/usr/local/bin/"
Action application/x-httpd-php3 "/php3/php/"     
čime će se omogućiti izvođenje PHP skripti instaliranih na računaru.

Ovim linijama Apache Web Serveru se omogućuje prepoznavanje i izvršavanje skripti u PHP jeziku. Definiše se tip aplikacije, lokacija gde će iste biti smeštene (/usr/local/bin) i interpreter koji će se pozivati pri njihovom izvršavanju.

Prijavite se na feed komentara Komentara (0 poslato):

Pošaljite komentar comment

Unesite kod sa slike:

  • email Pošalji prijatelju
  • print Verzija za štampu
  • Plain text Samo tekst
Više iz kategorije Mreže pod Linuxom
Previous
image
Linux mail serveri: Sendmail server
Nastavljajući priču o Linuxovim serverima u sledećih nekoliko brojeva govorićemo o često korišćenim mail serverima. Ovom prilikom opisujemo popularni Sendmail server ...
image
Samba i WINS server: Dogovor mrežu gradi
Kao što smo pričali u prvom delu ovog kursa, kad se neki NetBIOS računar spoji na mrežu, prvo šta mora da napravi je da registruje svoje ime. Sa obzirom da dva računara unutar iste grupe ne mogu imati isto ime, jedan od načina da se to osigura je korišćenjem NBNS servera (NetBIOS Name Server). Takođe, NBNS se može koristiti i za povezivanje NetBIOS imena sa IP adresama Pre početka korišćenja NBNS, povezivanje imena potpuno je izvođeno preko broadcasta. Ako je bila potrebna IP adresa nekog računara, njegovo ime je bilo slato na mrežu pomoću broadcasta i računar bi samo odgovorio koja je njegova IP adresa. Taj je pristup još uvek moguć. Ali problem s broadcastom je što ne radi dobro na mrežama koje se sastoje od više podmreža i nepotrebno zagušuje mrežu. Da bi se rešio taj problem razvijen je WINS server (Windows Internet Name Service), Microsoftova varijanta NBNS-a, server koji radi sa višestrukim podmrežama i koji Samba podržava. ...
image
Pokretanja Samba servera
Da bi programski paket Samba uspešno funkcionisao potrebno je pokrenuti dva deamon procesa - smbd i nmbd... ...
image
Samba server - 2. deo
Instalacija, konfiguracija... ...
image
Samba server (1)
Sve su češće situacije kada postoji potreba za deljenjem resursa između računara sa instaliranim Windows i Linux operativnim sistemima. Zato ćemo ovom prilikom opisati programski paket Samba, koji predstavlja skup programskih modula koji omogućavaju deljenje računarskih resursa između računara sa instaliranim različitim operativnim sistemima, međusobno umreženih. Na samom početku iznećemo osnovna načela funkcionisanja ovog programa i njegovu ulogu, dok ćemo u nastavku pisati o postupcima instalacije, konfiguracije i drugim detaljima koji mogu biti uzrok brojnim problemima tokom integracije u vaš sistem. ...
image
Apache 2.0
Ovde će biti navedene najvažnije novine vezane za rad i instalaciju 2.0 verzije Apache servera, a u odnosu na verziju 1.3. ...
image
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. ...
image
Apache Web Server
Apache web server je program kome je osnovni zadatak da pošalje web materijal korisniku kada se u njemu upiše adresa računara na koju se Apache odaziva. Usprkos nastojanjima velikih svetskih firmi, kao što su Microsoft ili Netscape, da mu preotmu primat na tržištu, Apache je još uvek dominantan. Istraživanja pokazuju da skoro 60% svih web servera na svetu koriste baš ovaj programski paket. ...
image
Korišćenje LinNeighborhood za kreiranje mrežnog okruženja pod Linuxom
Često je podešavanje računarskih mreža složen posao. Microsoft je napravio da konfigurisanje i korišćenje mreža bude relativno jednostavno za MS Windows korisnike. Jednom konfigurisan Windows računar u lokalnoj mreži (LAN), može da deli resurse na udaljenim računarima, kao što su direktorijumi, fajlovi, printeri i njima se može jednostavno pristupati kroz Windows Network Neighborhood... Podešavanje deljenja udaljenih resursa na Linux baziranim računarima nije tako jednostavno. Pravljenje mreža postaje još složenije kada su u lokalnu mrežu uključeni računari i sa Linux i sa Windows operativnim sistemima. ...
image
Prvi koraci
Što se tiče operativnog sistema, mreža može biti pod Windowsom ili Linuxom, a vrlo je čest slučaj i mešovitih struktura, gde klijenti rade pod Windowsom, a server pod Linuxom. U ovom serijalu pažnju ćemo usredsrediti na Linux mreže... ...
image
Linux mail serveri:Postfix
Postfix je e-mail server koji je zamišljen kao alternativno rešenje vrlo popularnom i moćnom, ali jednako tako i komplikovanom, Sendmail programskom paketu. Odlikuje se brzinom (brži je i do tri puta od konkurenata), robustnošću i jednostavnošću konfiguracije, pa se preporučuje svim korisnicima koji nemaju dovoljno iskustva ni znanja vezanih za Linux operativni sistem... ...
image
FTP serveri - 1. deo
Počinjući priču o ftp serverima, u ovom nastavku radimo s vrlo popularnim Proftpd- om, koji kao gotov paket ulazi u sve Linux distribucije... ...
image
FTP serveri - 2. deo
U prošlom broju bilo je reči o vrlo popularnom ftp serveru - Proftpd. Ovog puta obrađujemo Wu-ftpd, koji takođe kao gotov paket ulazi u sve Linux distribucije... ...
image
Download, backup => rsync
Rsync je program koji služi za prebacivanje fajlova na Unix sistemima, koristeći "rsync" algoritam koji obezbeđuje vrlo brzo kopiranje fajlova. Program to obavlja šaljući kroz mrežu samo razlike u fajlovima... ...
image
Bolje UPS nego: "Ups!"
Računar iz električne mreže očekuje napon od 220V i frekvencu od 50Hz. On može tolerisati neznatne promene ovih veličina, ali ukoliko te promene pređu dozvoljene granice može doći do neregularnog rada sistema. UPS (računarski neprekidni izvor napajanja - computer's uninterruptible power supply) generalno štiti sistem od previsokih ili preniskih napona, totalnog prestanka napajanja i neznatne promene frekvence napajanja. Mi ćemo ovde govoriti o besplatnom softwareu koji suživot jednog administratora i UPS-a čini mnogo lakšim....
Next
Tagovi
Oceni
0