Sunteți pe pagina 1din 47

10.

Servicii
Motivul pentru care tehnologia calculatoarelor a evoluat la stadiul n care se
afl n ziua de azi se datoreaz n mare parte facilitilor pe care aceasta a
putut s le ofere i datorit capacitii de distribuire a informaiilor la ct mai
muli utilizatori, ntr-un timp ct mai mic cu putin.
La baza acestor faciliti au stat serviciile, sau mai exact programele ce
ruleaz pe sistemele informatice, ce fac posibil oferirea unei game largi de
utiliti unor utilizatori. Datorit naturii serviciilor oferite, unde activitatea
principal este reprezentat de schimbul de informaii (de diverse tipuri),
marea parte a acestora se raporteaz dar nu se rezum exclusiv la
mediul de comunicare, sau mai exact la reele de calculatoare (printre care i
cea mai extins reea de calculatoare din lume, cunoscut sub numele de
Internet). Un bun exemplu de serviciu oferit deasupra infrastructurii de
comunicare existente l reprezint paginile web, care folosesc reeaua
internet pentru schimbul de informaii.
n orice serviciu oferit exist dou entiti principale: cea care ofer serviciul
(server) i cea care beneficiaz de serviciul oferit (client). n cazul exemplului
anterior, paginile web (cu care aproape orice utilizator de calculatoare este
familiar) sunt oferite de un calculator (numit server) printr-un protocol bine
stabilit (numit HTTP sau Hypertext Transfer Protocol), ctre un alt
calculator care a apelat serviciul respectiv (numit client).
Mai exact, att server-ul ct i client-ul nu sunt altceva dect nite
programe cu funcii bine stabilite, menite s comunice unul cu cellalt (de
regul printr-un protocol) pentru a oferi un serviciu n cazul precedent,
serverul este reprezentat de un server HTTP care are rolul de a transfera
pagina ctre client, care nu este altceva dect un web browser precum
Internet Explorer sau Mozilla Firefox.
Serviciile informatice nu se rezum la un singur sistem de operare, i de
regul clientul i server-ul sunt independente din punct de vedere al
platformei pe care ruleaz concret, dei marea majoritate a serverelor
HTTP ruleaz sub Linux, paginile web pot fi accesate i de ctre utilizatorii
de Windows sau MacOS; acest lucru este posibil datorit protocolului de
comunicare folosit, care este independent de sistemul de operare.
Serverele care ofer un serviciu (cunoscute i sub numele de daemons)
reprezint programe care ruleaz de regul n fundal, oferind un nivel de
interaciune local foarte sczut, spre deosebire de programele
convenionale. Acestea sunt menite s lucreze n mod autonom pe fundal, n
baza unor configuraii prestabilite, i s ofere un serviciu unui client n
momentul n care apare o cerere pentru acel serviciu. Serverul HTTP de
exemplu, ateapt cereri de la browsere web (de regul pe portul 80) i le
transfer acestora paginile web cerute.

Administrarea generala a serviciilor Linux


n cadrul sistemelor de tip Unix, programele de tip daemon au nume
specifice, astfel nct s fac identificarea lor uoar. De regul, acestea au
nume care se termin cu litera d (prescurtarea de la daemon): httpd
pentru serverul web, sau sshd pentru serviciul ce ofer posibilitatea
conectrii remote prin intermediul unui secure shell.
n ceea ce privete marea majoritate a serviciilor n medii de tip Unix,
printele proceselor ce reprezint daemon-urile este (de regul) procesul Init
(cu PID = 1). Procesele devin servicii n mod normal dup ce urmeaz
procedeul fork descris n capitolul aferent acestora, i dup ce printele lor
i termin execuia (fapt ce are ca efect adoptarea procesului de ctre Init),
principalul motiv pentru acest mod de funcionare fiind disocierea daemonului de o consol.
Sistemele Linux pornesc serviciile instalate odat cu procesul de boot, dat
fiind faptul c multe servicii au ca scop ndeplinirea unor funcii exclusiv
locale, precum programarea unor sarcini la anumite ore sau monitorizarea
dispozitivelor ataate.
n mod uzual, serviciile reduc interaciunea local cu utilizatorii sistemului la
minim (sau chiar deloc), astfel nct s se izole de factori externi, dar permit
schimbarea configuraiei acestora prin intermediul unor fiiere bine stabilite
de configurare. De regul, orice schimbare n fiserele de configurare ale unui
serviciu va intra n vigoare dup repornirea serviciului respectiv.
Listarea serviciilor i pornirea automat
Orice serviciu n Linux este de fapt un program care ateapt s primeasc
cereri (de regul prin intermediul protocolului TCP/IP), i crora le rspunde
n funcie de tipul de serviciu de care este responsabil.
Pe departe, cea mai simpl metod de gestiune a serviciilor sistemului poate
fi utilizat prin intermediul interfeei grafice, mai exact, prin intermediul
utilitarelor incluse n GNOME. Aceast abordare este n principiu util
indiferent de distribuia utilizat, fiind strict legat doar de utilizarea mediului
desktop GNOME.
n seciunea dedicat proceselor, am aflat mai multe despre directoarele ce
conin script-urile de iniializare pentru fiecare run-level n parte (/etc/rc*.d/).
Serviciile pot fi pornite automat, prin intermediul script-urilor de iniializare
menionate, sau pot fi pornite manual, prin executarea comenzii specifice
acelui serviciu.
Pornirea sau oprirea manual (sau orice alt modificare) a unui serviciu
implic de regul, folosirea unui script specific serviciului dorit, urmat de un
parametru ce reprezint starea n care se dorete acel serviciu. Marea
majoritate a script-urilor legate de servicii pot fi gsite n directorul
/etc/init.d/. Un exemplu bun este cazul n care se dorete repornirea (oprirea
urmat de pornirea imediat pentru rencrcarea fiierului de configuraie
de exemplu) serviciului responsabil de funcionarea n reea, prin executarea

comenzii /etc/init.d/networking restart. Similar, parametrul restart poate fi


nlocuit cu start sau stop.
Modificarea listei de servicii ce pornesc automat, odat cu sistemul, poate fi
realizat n mai multe feluri, ns, tradiional, cea mai comun implic
folosirea utilitarului update-rc.d. Acesta nu face altceva dect s elimine sau
s adauge legturi ctre serviciile dorite n directoarele rc*.d (realizabil i
manual). Ca alternativ n mod text, la utilitarul update-rc.d, utilizatorul poate
s instaleze i s utilizeze un program numit sysvconfig ce ofer o interfa
ceva mai uor de folosit.
Pentru a detalia mai bine modul n care trebuie folosit utilitarul update-rc.d,
putem lua exemplul serviciului cups (prescurtarea de la Common Unix
Printing System), care este responsabil cu tiprirea documentelor, fiind
instalat implicit i configurat s porneasc automat pe majoritatea
distribuiilor Linux. Dac ar fi s examinm toate script-urile responsabile cu
serviciul cups, am observa c acesta este prezent n mai multe locuri:

Legturi ctre script-ul responsabil cu serviciul cups se pot gsi n toate cele
5 run-levels, cu meniunea c cele al cror nume ncepe cu K (kill) se refer
terminarea serviciului, iar al cror nume ncepe cu S sunt responsabile
pentru pornirea serviciului respectiv. Dac dorim s excludem serviciul de la
iniializarea automat, odat cu pornirea sistemului, ar trebui s apelm
comanda update-rc.d -f cups remove (parametrul -f foreaz eliminarea,
cups reprezint numele serviciului int, iar remove specific eliminarea
serviciului din procesul de iniializare).

Pentru a reface schimbarea i a configura serviciul s porneasc automat,


odat cu sistemul, trebuie apelat comanda update-rc.d cups defaults.

Diferena este c script-ul a fost reconfigurat n mai multe locaii dect n


mod iniial. Aa cum am menionat anterior, numrul prezent n denumirea
script-ului de pornire sau oprire reprezint prioritatea sa de execuie (fiierele
fiind ordonate dup nume), iar prima liter (K sau S) simbolizeaz dac
scriptul este de oprire sau de pornire. Pentru a aduce configuraia la nivelul
la care era inital, trebuie analizat prima poz, n care observm ce tipuri de
script-uri erau i ce prioritate aveau. Comanda necesar este: update-rc.d
cups start 20 2 3 4 5 . stop 20 1 .

Comanda de mai sus poate fi explicat foarte simplu n modul urmtor: cups
reprezint numele serviciului, start 20 2 3 4 5 . simbolizeaz necesitatea
configurrii scriptului pentru pornire cu prioritatea 20 pe nivelele 2,3,4 i 5, iar
punctul simbolizeaz sfritul secvenei. Secvena urmtoare de parametru
este similar, dar se refer la script-uri de oprire, cu prioritatea 20 numai
pentru nivelul 1.
Dac utilitarul update-rc.d permite o configurare n detaliu al fiecrui serviciu
n parte, cel din modul grafic, inclus n suita GNOME este ceva mai simplu.
Acesta poate fi gsit n mediul grafic n meniul System -> Administration ->
Services.

Indiferent de metoda folosit, rezultatul ns trebuie s fie acelai mereu, iar


Linux se difereniaz de alte sisteme de operare prin gradul foarte mare de
libertate pe care l ofer. Specific multor utilitare de configurare din suita de
aplicaii GNOME, utilizatorul ar putea fi rugat s introduc parola de root
pentru a face schimbri importante n configuraia sistemului.
OBSERVAIE: Pe lng directoarele corespunztoare pentru fiecare runlevel, mai exist i script-ul /etc/rc.local, care este executat naintea oricror
altor script-uri, care poate fi folosit pentru executarea unor comenzi dorite,
indiferent de run-level. n continuare vom prezenta metodele de instalare i
configurare a serviciilor importante, inclusiv o serie de exemple. n cazul
exemplelor, se presupune c toate comenzile vor fi lansate cu privilegile
contului root.

Instalarea i configurarea serviciului DNS


DNS (Domain Name Server) este serviciul responsabil pentru rezolvarea
numelor de internet, uor de reinut de ctre utilizatori, n adrese IP, fcnd
astfel posibil comunicarea ntre toate dispozitivele conectate la o reea.
Sistemul funcioneaz folosind o structur ierarhic de nume, i asociaz
numele de domenii (de exemplu google.com) cu adrese binare de 32 de bii
(n cazul adreselor IPv4) sau de 128 de bii (dac este vorba de adrese
IPv6).
Sistemul DNS funcioneaz prin distribuirea responsabilitii asupra anumitor
domenii prin intermediul serverelor numite authoritative name servers
(ANS). Aceste servere sunt responsabile de nite domenii proprii i pot
transfera responsabilitatea asupra subdomeniilor ctre alte servere ANS.
Acest mecanism de funcionare a permis astfel descentralizarea serviciului
de DNS, un aspect foarte important n reelele foarte mari (cum este Internetul) i a consolidat calitatea serviciului printr-un sistem tolerant la defecte.
Structura spaiului de nume a fost organizat de la nceput ca un arbore.
Orice nume de domeniu este compus din mai multe pri numite etichete,
separate prin puncte. Eticheta cea mai din dreapta se numete top-level
domain n cazul domeniului www.google.com, domeniul de top este
.com. Continund n stnga, fiecare subdomeniu reprezint o subdiviziune a
domeniului precedent, teoretic acest proces de subdiviziune putnd s
suporte pn la 127 de nivele independente.

Root

.com
exemplu

.edu

.gov

.mil

.org

.net

.ro

Int

.de

.us

www

n desenul de mai sus se poate observa domeniul exemplu. Acesta aparine


domeniului .com i are la rndul su unul sau mai multe subdomenii www
n acest caz.
Datorit faptului c toate numele apartiand unui domeniu trebuie s fie unice,
ntregul sistem trebuie centralizat ntr-un singur punct, care s asigure
unicitatea tuturor subdomeniilor sale. Dei este foarte important existena
unei autoriti n privina asigurrii unicitii numelor dintr-un domeniu,
centralizarea ntregii baze de date coninnd informaii despre toate
domeniile i subdomeniile existente (sau doar cele de top-level) nu este
posibil din mai multe motive - ar fi foarte greu de gestionat o baz de date

att de mare, ar elimina caracterul tolerant la defecte al sistemului, iar


ntregul sistem ar trebui s aib o capacitate foarte de mare de lucru, astfel
nct s poat oferi acest serviciu tuturor utilizatorilor existeni.
Ca urmare a acestor necesiti, fiecare domeniu are un server DNS asociat,
care va rspunde la cererile pentru domeniul respectiv i n general va avea
i un administrator desemnat s gestioneze nregistrrile DNS din acel
server. Unul din avantajele acestei distribuii este c dei serviciul este oferit
prin intermediul foarte multor servere individuale, ntregul sistem are un
comportament unitar.
Comportamentul normal al unui server DNS poate fi simplificat la dou funcii
majore: tratarea cererilor de rezolvare a numelor n adrese IP de la programe
sau alte servere DNS. n momentul n care server-ul va primi o cerere,
acesta poate s rspund n 3 feluri diferite:
Va rspunde direct cu adresa IP cutat n cazul n care server-ul n
cauz are nregistrarea respectiv
Va demara un proces repetitiv prin care va ncerca s contacteze alte
servere DNS n tentativa de aflare a adresei IP, pn cnd va reui s
rspund cu adresa IP cutat.
Va eua cutarea fie printr-un rspuns cu adresa unui alt server, care
este mai probabil s conin mai multe informaii, fie pentru c numele
cutat nu exist.
Probabil cea mai important caracteristic a servelor DNS este fiabilitatea.
Datorit faptului c exist multe servere pentru fiecare nivel ar ierarhiei
menionate anterior, exist alternative n cazul n care unul dintre ele nu
funcioneaz.
O alt caracteristic important a unui server DNS este abilitatea de
caching, mai exact procesul prin care memoreaz temporar toate adresele
IP prelucrate n urma unei cereri. Timpul de memorare este stabilit de
atributul TTL (Time to Live), i este ataat n mesajul n care a primit IP-ul
respectiv.
n cadrul sistemelor Linux, cel mai rspndit server DNS se numete bind9
ce se poate instala n cadrul distribuiei Debian rulnd comanda: apt-get
install bind9
Odat instalat, server-ul va fi pornit automat. Din moment ce urmeaz s
configurm acest daemon, acesta va trebui oprit prin rularea comenzii:
/etc/init.d/bind9 stop
Observm c n urma instalrii daemon-ului, a fost creat script-ul de
iniializare n directorul /etc/init.d. Vom analiza n continuare att configuraia
server-ului bind ct i cteva exemple de configurare particularizat.
Server-ul bind i desfoar activitatea n baza fiierelor de configurare i a
fiierelor de zon. Fiierele de configurare conin parametrii generali care
descriu modul n care daemon-ul respectiv va funciona, pe cnd fiierele de
zon sunt folosite pentru descrierea domeniilor despre spaiile de nume.

Fiecare fiier de zon conine informaii folosite pentru atribuirea unor


identiti pentru sisteme individuale, i opional poate conine i directive.
S analizm unul dintre fiierele de zon implicite, folosite pentru
identificarea localhost-ului ce poate fi gsit n directorul de configurare (n
mod implicit acesta este /etc/bind/db.local):

Dup prima examinare, putem observa c fiierele de zon folosesc un


format bine stabilit pentru introducerea intrrilor. Se poate observa de
asemenea c exist mai multe tipuri de nregistrri cu diferite roluri:
Intrarea de tip SOA (Start of Authority) va fi prima nregistrare dintr-un
fiier de zon, i declarar informaii eseniale despre un spaiu de nume.
Formatul nregistrrilor de tipul Start of Authority este:
@

IN

SOA <server_nume> <email_hostmaster> (


<numr_serial>
<time-to-refresh>
<time-to-retry>
<time-to-expire>
<minimum-TTL> )
Fiecare dintre atributele specificate are un rol special: <numr_serial>
acioneaz ca un indicator al versiunii fiierului, astfel nct server-ul DNS s
tie c aceast zon trebuie actualizat n cazul n care a fost modificat;
<time-to-refresh> transmite tuturor serverelor slave timpul pe care trebuie
s l atepte nainte s ntrebe serverul master dac au intervenit schimbri
asupra zonei respective; <time-to-retry> transmite serverelor slave
intervalul pe care trebuie s-l atepte naintea unei noi cereri de refresh
(cmpul numr_serial este folosit de ctre serverele slave pentru a
determina momentul n care s cear informaii despre o zon); <minimumTTL> specific timpul minim pe care alte servere de nume trebuie s
memoreze zona respectiv.(intervalul este msurat n secunde).
Rolul unei nregistrri SOA este de a indica faptul c server-ul DNS pe care l
reprezint este ntr-adevr cea mai bun surs de informaii despre domeniul
n cauz. De asemenea, numele server-ului menionat n cadrul nregistrrii
SOA trebuie s figureze neaprat i cu o nregistrare de tip NS.

Intrarea de tip NS (sau Name Server) are rolul de a anuna serverele cu


autoritate pentru o anumit zon. Orice zon trebuie s aib neaprat cel
puin o nregistrare de acest tip, deoarece scopul su principal este
identificarea numelor serverelor DNS i prin urmare, disponibilitatea unor
nume de domenii. Formatul nregistrrilor de acest tip este:
(nume)
IN
NS (server_de_nume)
Intrarea de tip A este folosit pentru asocierea direct ntre o adres IP i
un nume. Formatul standard pentru acest tip de nregistrare este:
(nume)
IN
A
(adresa_ip)
n exemplul anterior, se poate vedea o asociere ntre adresa IP 127.0.0.1 i
numele localhost. n acest caz, caracterul @ folosit pentru definirea
conceptului de origine, n cazul de fa, numele zonei menionate n fiierul
de configurare n acest exemplu, numele de zon fiind localhost,
caracterul @ ar fi putut fi nlocuit cu numele localhost fr s existe nicio
diferen funcional, ns nu se recomand folosirea fr o nelegere bun
a directivei $ORIGIN.
Intrarea de tip CNAME (sau Canonical name) este folosit pentru
asocierea ntre dou nume cunoscute i drept alias. Un exemplu bun este
nregistrarea urmtoare
www
IN
CNAME server
care descrie crearea unui alias pentru numele server, mai exact alias-ul
www.
Intrarea de tip MX (sau Mail Exchange) este folosit pentru identificarea
locaiei unde ar trebui redirectate toate mail-urile ctre zona respectiv.
Formatul acestei intrri este:
(nume)
MX (prioritate) (nume_server_mail)
Un exemplu pentru acest tip de intrare ar fi:
@
MX 10 mail1.exemplu.ro
@
MX 20 mail2.exemplu.ro
n exemplul anterior, putem identifica dou intrri pentru dou servere de
email diferite, cu prioriti diferite. Valoarea specific prioritatea respectivului
server, cu alte cuvinte, intarile cu o valoare mai mic vor avea o prioritate
mai mare.
Fiierele ce conin informaii despre zone (precum /etc/bind/db.local) se
gsesc n mod normal n directorul de configurare bind9.Tot n aceast
locaie se recomand adugarea oricror fiiere de zon ulterioare, pentru
pstrarea unui ablon.
Dei fiierele de zon conin toate informaiile necesare pentru instantierea
unui nume de domeniu, server-ul bind9 ateapt includerea acestor fiiere
de zon (prin intermediul format clar) n fiierul destinat definirii zonelor
/etc/bind/named.conf.local (locaie implicit). Acest fiier este folosit pentru
adugarea oricror zone ulterioare. Pentru adugarea unui fiier de zon n

lista activ a server-ului, trebuie definit o nou zon n cadrul fiierului


menionat anterior, urmnd urmtoarea sintax pentru fiecare zon definit:
zone nume_zon {
type (tip);
file fiier_de_zon;
};
Fiecare zon definit n acest fel va trebui s aleag numele de zon identic
cu domeniul pe care l reprezint, i se recomand alegerea unui nume de
fiier de genul db.(nume_domeniu) pentru o eviden clar. Se poate alege
modelul de funcionare al server-ului bind9 (master sau slave) prin
specificarea atributului type.
Configuraia server-ului bind9 este foarte flexibil, acesta bazndu-se pe un
sistem n care se pot aduga oricte fiiere adiionale de configurare folosind
directiva include n cadrul fiierului principal de configurare
/etc/bind/named.conf. Acesta va include de obicei fiierele speciale
named.conf.options (ce descrie parametrii funcionali ai server-ului) i
named.conf.local (folosit pentru a descrie zonele adiionale), dar va defini i
o serie de zone speciale folosite pentru procesele de forwarding i reverse
look-up. Pentru informaii referitoare la toi parametri options consultai
pagina de manual: man named.conf.
Chiar i fr nicio zon definit, server-ul instalat va funciona ca un server
DNS normal; avnd lista de servere root acesta poate rezolva orice fel de
cerere va primi.
n continuarea celor prezentate anterior, vom parcurge un exemplu de
configurare al unui server DNS prin instantierea unui domeniu fictiv, numit
exemplu.ro.
Pasul 1. Crearea fiierului de zon se poate face n directorul recomandat
/etc/bind, lng celelalte fiiere de zon. n contextul exemplului curent, vom
realiza un fiier de zon relativ simplu, pentru o mai bun nelegere a
acestuia. Acesta poate fi creat de la zero, ns pentru a salva timp, se poate
crea o copie a unei zone deja existente, urmnd s o modificm pe aceasta.
n acest sens, vom modifica o copie a fiierului de zon db.local (prezentat
mai devreme): cp /etc/bind/db.local /etc/bind/db.exemplu.ro
Pasul 2. Modificarea fiierului de zon presupune actualizarea
nregistrrilor existente astfel nct zona nou createa s reflecte domeniul
exemplu.ro: mcedit /etc/bind/db.exemplu.ro
Dup modificare, fiierul db.exemplu.ro ar trebui s arate similar cu fiierul
prezentat n poza de mai jos:

n cadrul primei nregistrri (de tip SOA) putem observa c server-ul


ns.exemplu.ro a fost configurat ca fiind serverul de nume principal pentru
domeniul respectiv. De asemenea, n cadrul celei de-a dou nregistrri (de
tip NS) specificm c serverul DNS ns.exemplu.ro va fi principala autoritate
pentru @, mai exact pentru domeniul exemplu.ro. Urmtoarele dou
nregistrri de tip A specifica numele asociate domeniului exemplu.ro:
primul este @, i se refer chiar la domeniul exemplu.ro i ca urmare este
obligatoriu , iar al doilea descrie subdomeniul www al domeniului
exemplu.ro, asociand ambele nume cu adresa fictiv 192.168.2.100.
OBSERVAII: Fiierul trebuie neaprat s se ncheie cu o linie nou, goal,
pentru a fi valid. De asemenea trebuie observate punctele adiionale dup
numele de domeniu (exemplu.ro.) acestea sunt obligatorii, fiind folosite
pentru descrierea domeniului top-level root i nu reprezint o greeal.
Pasul
3.
Crearea
zonei
exemplu.ro
n
cadrul
fiierului
/etc/bind/named.conf.local. Pentru c noul fiier de zon creat s fie
considerat de ctre server-ul DNS, trebuie definit o nou zon caracteristic
pentru acesta, prin adugarea urmtoarelor linii n fiierul named.conf.local:
zone exemplu.ro {
type master;
file /etc/bind/db.exemplu.ro;
};
Sintaxa acestor linii trebuie respectat la caracter, altfel server-ul bind9 nu
va tii s le interpreteze, genernd un mesaj de eroare. Numele zonei (n
acest caz exemplu.ro) trebuie s fie identic cu numele domeniului pe care l
reprezint.
Pasul 4. Verificarea zonelor se poate realiza dup creare cu ajutorul
utilitarului inclus named-checkzone. Sintaxa acestuia este: namedcheckzone domeniu fiier_zon sau, n cazul exemplului de fa:
named-checkzone exemplu.ro db.exemplu.ro
Acesta va afia pe ecran orice erori va ntlni n cadrul fiierului de zon. n
contextul exemplului curent, am menionat n fiierul de zon, c server-ul
ns.exemplu.ro va reprezenta autoritatea pentru acest domeniu, ns n
urma executrii comenzii de mai sus, vom fi atenionai c acesta nu are nici
un fel de intrare de tip A. Corectarea acestei probleme se poate realiza prin
adugarea liniei

ns IN
A
192.168.2.100
prin care se va aduga i subdomeniul ns pentru domeniul exemplu.ro.
Pasul 5. Verificarea fiierelor de configurare dup modificarea lor, se
poate
realiza
cu
ajutorul
utilitarului
named-checkconf
(fiier_de_configurare). Acest pas poate fi srit, ns poate furniza indicii
importante n cazul n care server-ul bind9 nu mai poate s porneasc.
Pasul 6. Restartarea server-ului bind9 se poate face prin comanda:
/etc/init.d/bind9 restart
Aceast comand va fora recitirea fiierelor de configuraie, server-ul
ncrcnd astfel informaiile despre noul domeniu exemplu.ro.
Pasul 7. Testarea server-ului DNS se poate face n mai multe feluri: fie prin
includerea IP-ului staiei ce ruleaz daemon-ul n lista de servere DNS
(adugarea unei linii n fiierului /etc/resolv.conf de tipul nameserver
ip_server), fie prin utilizarea unor utilitare DNS lookup, precum dig sau
nslookup. n cazul de fa, vom testa server-ul cu ajutorul utilitarului dig:
dig @adres_server_DNS nume_domeniu [+short]
Comanda anterioar va ntreba serverul menionat prin parametrul
adres_server_DNS de toate nregistrrile referitoare la domeniul
nume_domeniu, pe care le va afia pe ecran, impartitie n seciuni de tipul
answer, question, etc. Parametrul opional +short va fora programul s
afieze doar adresa IP a numelui de domeniu cutat n cazul n care aceasta
poate fi determinat. Comanda necesar pentru exemplul curent n cazul
n care este rulat de pe acelai sistem ca i server-ul:
dig @localhost exemplu.ro +short
n acest moment, domeniul exemplu.ro va fi configurat i disponibil tuturor
utilizatorilor care au configurat ca server DNS, sistemul pe care server-ul
ruleaz.
n cazul n care se dorete configurarea domeniului exemplu.ro pentru a
suporta i reverse lookup (traducerea din adres IP n nume de domeniu),
mai trebuie urmai civa pai adiionali:
Pasul 8. Crearea zonei reverse se realizeaz prin adugarea urmtoarelor
linii n fiierului /etc/bind/named.conf.local:
zone 2.168.192.in-addr.arpa {
type master;
notify no;
file /etc/bind/db.192;
};
Numele zonei trebuie s respecte formatul de mai sus, mai exact s conin
primele 3 pri ale adresei IP asociate cu domeniul (n ordine invers), urmat
de in-addr.arpa. Se poate observa opiunea notify (cu valoarea no) care
semnalizeaz serverului DNS s nu ntiineze serverele slave n momentul
n care acesta primete o actualizare a fiierelor sale de zon.

Pasul 9. Crearea fiierului de zon trebuie s respecte anumite condiii,


precum stabilirea numele fiierului de zon. Acesta trebuie s nceap
(conform pasului anterior) cu db., urmat de prima parte a adresei IP, n cazul
de fa fiind vorba de db.192.

Fiierul de zon este oarecum similar cu cel pentru domeniul exemplu.ro, cu


deosebirea nregistrrilor PTR, folosite pentru procesul de reverse lookup.
Pentru fiecare nregistrare de tip A din fiierul db.exemplu.ro va trebui
creat o nregistrare de tip PTR.
Pasul 10. Verificarea reverse lookup se face tot cu utilitarul dig:
dig @localhost 2.168.192.in-addr.arpa. AXFR
Pentru mai multe informaii referitoare la configurarea i securizarea serverului bind9, consultai partea dedicat acestuia n seciunea de securitate.

Instalarea i configurarea serviciului HTTP


Serviciul HTTP este unul din cele mai rspndite servicii oferite n prezent
prin sistemele informatice. Un server web nu este altceva dect un serviciu
(daemon) care ofer coninut informatic sub forma paginilor web, prin
intermediul protocolului HTTP (Hypertext Transfer Protocol).
Rolul principal al oricrui server HTTP este acela de a pune la dispoziia
clienilor pagini web i coninutul ataat acestora fiiere adiionale sau
imagini. Clienii cei mai comuni ai acestui serviciu sunt programele de web
browsing care, n baza unei cereri specifice ctre server, va primi resursa
dorit.
Dei rolul iniial al serverelor web a fost acela de trimitere a informaiilor,
acestea au evoluat pentru o experien mai bogat a utilizatorilor, putnd s
i primeasc informaii de la acetia. Au aprut astfel dou tipuri de coninut
web: static i dinamic, acesta din urm putnd fi generat n timp real, att
local (javascript) ct i direct de ctre server, prin conceptul de server-side
scripting. Rolul serverelor web nu a rmas doar la nivelul transferului de
pagini web, ci a ajuns chiar s ofere interfee de configurare n dispozitive
dedicate precum imprimante i routere.
Printre cele mai folosite servere HTTP se numr i server-ul Apache, o
iniiativ Open-Source i unul dintre pionierii internet-ului, i este conceput s
ruleze att pe sisteme de tip Unix ct i pe Windows NT. Conform datelor
oficiale, peste 50% din toate paginile transferate din 1996 pn azi au fost
servite de ctre un server Apache (http://www.apache.org).
Apache a fost construit n jurul unei structuri modulare, prin care se pot
extinde funcii de baz precum faciliti de server-side scripting, securitate i
modele de autentificare. Putem meniona o serie de module mai comune
grupate pe categorii:
Module de autentificare: mod_access, mod_auth, mod_digest,
mod_auth_digest
Module de limbaje de programare: Perl, Python, PHP
Module de comunicare: mod_ssl, mod_proxy.
Apache ofer i posibilitatea implementrii conceptului Virtual Hosting,
care permite deservirea mai multor pagini web diferite simultan, de ctre o
singur instan a unui server.
Instalarea se poate face n mai multe feluri, ns se recomand (ca i n
cazul tuturor celorlalte programe) folosirea sistemului apt, pentru a rezolva
problema dependinelor i actualizrilor manuale. Instalarea prin intermediul
sistemului apt se poate face apelnd comanda:
apt-get install apache2 apache2-doc apache2-suexec
Pe lng pachetul apache2 (care va include automat toate pachetele
necesare), se recomand i instalarea pachetelor adiionale apache2-doc
(ce conine documentaia aferent, foarte util de altfel) i apache2-suexec
care ofer utilizatorilor de Apache posibilitatea rulrii programelor CGI i SSI

drept ali utilizatori, n scopul reducerii riscurilor de securitate. n urma


instalrii, utilizatorul va putea vizualiza mesajele de iniializare ale tuturor
modulelor incluse. n cadrul acestui ghid de instalare vom trata i cteva
module opionale extrem de utile (PHP, Ruby i Python) ce ofer suport
pentru o serie de faciliti precum paginile php. Dei acestea sunt opionale,
instalarea acestora este recomandat n baza necesitilor funcionale ale
utilizatorului.
Pentru instalarea modulului PHP trebuie executat urmtoarea comand:
apt-get install libapache2-mod-php5 php5 php5-common php5curl php5-dev php5-gd php5-idn php-pear php5-imagick php5imap php5-mcrypt php5-memcache php5-mhash php5-ming
php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite
php5-suhosin php5-tidy php5-xcache php5-xmlrpc php5-xsl
Aceast list de pachete (dei destul de lung) constituie o selecie din cele
mai importante module php5 disponibile, i unele dintre acestea asigur
funcii importante pentru script-urile ce vor rula pe server.
Pentru instalarea modulului Ruby vom executa comanda:
apt-get install libapache2-mod-ruby
Pentru instalarea modulului Python vom executa comanda:
apt-get install libapache2-mod-python
Odat instalate toate modulele adiionale, putem ncepe s analizm
structura configuraiei server-ului Apache. Urmnd o cale prin care se
ncearc pstrarea compatibilitii cu versiuni ale server-ului ceva mai vechi,
se pot schimba parametri prin fiierul /etc/apache2/httpd.conf ns fiierul
principal de configuraie este apache2.conf, localizat n acelai director.
Folosind acelai sistem de includere a mai multor fiiere de configuraie ntrunul singur, se poate centraliza totul, fcnd astfel configuraia ntregului
ansamblu mai flexibil. Un alt fiier important de configuraie este
/etc/apache2/ports.conf n care se specific port-urile TCP pe care serverul va atepta cereri (n versiunile mai vechi de apache, se folosea un singur
fiier httpd.conf care include toate directivele, inclusiv port-uri, servere
virtuale i ali parametri funcionali). n mod normal, se recomand stocarea
oricror configuraii particularizate n directorul /etc/apache2/conf.d, acest
director fiind automat inclus n configuraia global (prin directiva Include
/etc/apache2/conf.d ce poate fi localizat la finalul fiierului apache.conf),
asigurndu-se n acest fel un sistem prin care fiierele principale de
configurare rmn n mare parte nealterate.
Folosind directiva include pus la dispoziia utilizatorului, instanele de
apache mpart seciunea dedicat modulelor adiionale n dou directoare
separate: /etc/apache2/mods-available, respectiv /etc/apache2/modsenabled. Ori de cte ori utilizatorul va instala un modul adiional prin
intermediul sistemului apt, acesta va aduga unul sau dou fiiere n
directorului mods-available, pentru a marca ncrcarea modulelor

respective n instan server-ului. Aceste fiiere vor avea extensia .load i


vor specifica prin intermediul unor directive standard ncrcarea modulelor.
Opional, pot fi create i fiiere cu extensia .conf prin intermediul crora vor fi
specificai parametri adiionali.
Dup instalarea unor module adiionale, i implicit i crearea automat a
fiierelor n directorul mods-available, acestea nu vor fi active. Pentru a le
activa, utilizatorul va trebui s foloseasc
comanda a2enmod
[nume_modul]. Acest utilitar va crea legturi simbolice n cadrul directorului
mods-enabled, care vor arta spre fiierele corespunztoare (inclusiv
fiierul .conf dac acesta exist) din directorul mods-available. Pentru
continuarea instalrii modulelor necesare, utilizatorul va trebui s lanseze
comanda: a2enmod ssl rewrite suexec include dup care acesta va trebui
s restarteze server-ul apache: /etc/init.d/apache2 restart
Pentru dezactivarea anumitor module se poate folosi comanda:
a2dismod [nume_modul]
Din punctul de vedere al site-urilor pe care server-ul apache le va deservi,
utilizatorul trebuie s fie familiar cu dou directoare importante ce pot fi
localizate n directorul implicit /etc/apache2. Acestea sunt sites-available i
sites-enabled, n mod similar cu directoarele dedicate modulelor adiionale,
acestea conin fiiere de configurare pentru site-urile gzduite. Deoarece, ca
i n cazul modulelor available (disponibile) nu nseamn i enabled
(activate), utilizatorul trebuie s foloseasc alte dou utilitare incluse pentru
activarea, respectiv dezactivarea site-urilor:
a2ensite [nume_fiier_configurare] folosit pentru activarea unui
site, al crui fiier de configurare poart numele specificat c
parametru i poate fi gsit n directorul implicit /etc/apache2/sitesavailable. Similar cu utilitarul a2enmod, acesta va crea legturi
simbolice n directorul sites-enabled.
a2dissite [nume_fiier_configurare] folosit n mod similar,
pentru dezactivarea unui site.
n acest moment, instalarea server-ului apache, ct i activarea modulelor
adiionale este gata, acesta putnd fi testat printr-un browser web, folosind
ca adres, IP-ul sistemului (sau localhost)pe care ruleaz (pagina implicit
conine doar textul It works!). n continuare, vom analiza posibilitile de
configurare ale server-ului apache folosind i o serie de exemple. mprirea
configuraiei n mai multe fiiere mai mici permite o gestionare mai simpl i
mai rapid pe de alt parte, ct de mare ar fi fost fiierul de configuraie
dac ar fi coninut direct, i nu prin intermediul directivei Include toate
fiierele de configurare (ntregul coninut al tuturor fiierelor din directoarele
mods-enable, mods-available, conf.d i restul fiierelor de configuraie)?
Vom parcurge astfel, urmrind structura fiierelor de configurare, majoritatea
opiunilor importante. Este important de tiut c toate fiierele de configurare
apache folosesc o sintax destul de simpl, bazat pe directive, despre care
vom discuta n detaliu. Pentru o dezactivare mai uoar a anumitor directive,

fr tergerea acestora, se poate folosi sistemul de comentare, care


presupune adugarea caracterului # la nceputul liniei dorite. n urm
acestui proces, directiva respectiv va fi ignorat.
Fiierul ports.conf
Server-ul apache, ca orice alt server HTTP ateapt cereri n mod implicit pe
port-ul 80, acesta fiind port-ul standard pentru acest protocol. Apache nu
este ns limitat doar la acest port, i poate fi configurat s atepte conexiuni
n mod implicit pe alte porturi (poate chiar s asculte simultan pe mai multe
port-uri diferite).
Server-ul pus s atepte conexiuni pe un port folosind directiva Listen, dup
cum se poate observa n fiierul ports.conf:

Datorit configurrii implicite, site-ul de baz oferit este considerat un site


virtual. n poza anterioar putem observa folosirea a dou directive
importante: NameVirtualHost i Listen. Prima directiv poate fi folosit
pentru identificarea unui site virtual, ns poate semnala i o configurare
selectiv prin care se asociaz un site virtual cu un port n exemplul de
fa, directiva poate fi tradus astfel: toate site-urile virtuale (caracterul *)
vor fi accesibile pe port-ul 80. Directiva Listen este folosit pentru
configurarea server-ului astfel nct acesta s asculte pe un port anume. Se
pot folosi mai multe directive Listen pentru a face server-ul s atepte
conexiuni pe mai multe port-uri. Ca meniune, n cazul n care un site virtual
este configurat s fie disponibil pe un port anume, administratorul trebuie s
se asigure c server-ul este configurat la rndul su s accepte conexiuni pe
port-ul respectiv.
Ultima seciune delimitat prin tag-uri (structuri de tipul <nume_tag>
coninut </nume_tag>) reprezint o configurare selectiv a modulului
adiional ssl, responsabil pentru comunicrile securizate pe protocolul
HTTPS. Acesta este configurat n mod implicit s accepte conexiuni doar pe
port-ul 443.
OBSERVAIE: Site-ul implicit, care este configurat odat cu prima instalare
a server-ului apache are fiierul de configuraie n /etc/apache2/sitesenabled/000-default. Acesta este configurat s fie disponibil pe portul 80,
ceea ce foreaz administratorul (n cazul n care dorete s schimbe port-ul
implicit) s modifice att acest fiier (prin schimbarea portului din directiva de
pe prima linie - *:[port]) ct i fiierul ports.conf. O soluie mai elegant la
aceast problem este definirea port-ului exclusiv din cadrul fiierului de

configurare pentru un site acest proces implic comentarea directivei


NameVirtualHost *:80 din fiierul ports.conf prin adugarea caracterului #
naintea directivei dar i activarea portului respectiv printr-o directiv
Listen n fiierul ports.conf. Exemplul urmtor va sublinia schimbrile fcute
n fiierele 000-default, respectiv ports.conf pentru schimbarea port-ului
implicit din 80 n 801.

Schimbarea anterioar nu va deveni activ dect dup ce server-ul apache


va fi repornit prin comanda /etc/init.d/apache2 restart. n urma acestei
schimbri, site-ul implicit cu textul It works! va fi accesibil doar pe port-ul
801 al server-ului.
Fiierul httpd.conf va fi iniial un fiier gol. Acesta era folosit drept
principalul fiier de configurare n versiunile precedente de apache, n
prezent fiind pstrat din motive de compatibilitate. Administratorii pot aduga
directive suplimentare n acest fiier, fiind inclus n configuraia global prin
directiva Include.
Fiierul apache2.conf este principalul fiier de configurare, i conine
cteva din setrile eseniale ale server-ului. Acest fiier este folosit i pentru
includerea fiierelor secundare de configuraie, folosind directiva Include.
Fiierele incluse prin intermediul acestei directive sunt:
Toate fiierele din directoul mods-enabled
Toate fiierele din directorul sites-enabled
Toate fiierele din directorul conf.d
Fiierele httpd.conf i ports.conf
Pe lng includerea fiierelor de configuraie secundare, apache2.conf mai
are rolul setrii parametrilor server-ului apache, prin intermediul unor
directive speciale. n continuare vom prezenta pe scurt principalele directive
folosite pentru modificarea parametrilor server-ului:

Directiva ServerRoot (/etc/apache2) specific locaia fiierelor de


configurare ale server-ului apache. Directiva este case-sensitive.
Directiva Timeout (300) este folosit pentru specificarea timpului
(msurat n secunde) pe care server-ul l va atepta nainte s trimit un
mesaj de timeout.
Directiva KeepAlive (On/Off) specific dac server-ul ar trebui s
accepte conexiuni persistente, mai exact s permit primirea mai multor
cereri n intervalul unei singure conexiuni.
Directiva MaxKeepAliveRequests (100) numrul maxim de cereri
raportate la intervalul unei singure conexiuni persistente
Directiva KeepAliveTimeout (15) numrul de secunde pe care serverul l va atepta pentru urmtoarea cerere de la acelai client, n intervalul
unei conexiuni.
Directiva AccessFileName (.htaccess) menioneaz fiierul dup care l
s se uite server-ul n fiecare director pentru configurarea modului de
acces restricionat.
Directiva HostnameLookups (Off) - menioneaz dac server-ul va
include n jurnalizare numele (nu adresa IP) tuturor clienilor.
Directiva ErrorLog (/var/log/apache2/error.log) specific locaia
jurnalului de eroare
Directiva LogLevel (warn) specific nivelul de mesaje care vorfi
nregistrate n jurnal
Directivele Include (nume_fiier) sunt folosite pentru ncrcare
Crearea unui nou site
Pentru crearea unui nou site, utilizatorii trebuie s plaseze un fiier de
configurare specific site-ului pe care-l doresc (ai crui parametri i vom
discuta n continuare) i apoi s-l activeze. n continuare vom analiza att
principalele directive folosite pentru configurarea site-urilor virtuale, ct i
paii necesari. n scopul acestui exerciiu, vom parcurge un exemplu n care
vom configura un site virtual numit exemplu.ro (pentru care vom folosi
intrarea din DNS creat n seciunea anterioar), disponibil pe port-ul 2009.
La finalul exerciiului vom introduce i o seciune opional dedicat accesrii
cu modulul de autentificare.
Pasul 1. Crearea fiierului de configuraie este primul demers. Acesta va
fi alctuit exclusiv din directive apache, prin care vom descrie diferii
parametri funcionali. Structura fiierelor de configurare este una ierarhic,
bazat pe o serie de structuri. Server-ul apache instantiaza site-urile ntr-un
mod similar cu modulele: folosete dou directoare numite sites-available
respectiv sites-enable i dou script-uri pentru activarea i dezactivarea
acestora. Orice site trebuie s aib fiierul su propriu de configurare n
cadrul directorului sites-available, pentru a putea fi activat cu utilitarul
a2ensite [nume_fiier_configurare] (care va crea o legtur simbolic
ctre fiierul de configurare n directorul sites-enable).

Fiierul de configuraie al unui site nou poate fi creat de la zero, ns se


recomand folosirea unui ablon site-ul implicit. Fiierul de configuraie al
site-ului implicit poate fi gsit tot n directorul sites-available i poart
numele default. Pentru a-l folosi pe acesta ca ablon, trebuie creat o copie
pe care o vom modifica:
cp
/etc/apache2/sites-available/default
/etc/apache2/sitesavailable/www.exemplu.ro
Urmeaz s deschidem fiierul cu un editor de text pentru a face modificrile
necesare:
gedit /etc/apache2/sites-available/www.exemplu.ro
nc din momentul deschiderii fiierului respectiv, putem observa natura
ierarhic n care sunt organizate datele. Putem observa structuri ce ncep cu
directive compuse, al cror rol este gruparea unor directive ce se raporteaz
la grupul respectiv c un ntreg. Principala directiv compus se ntinde pe
tot coninutul fiierului i se numete <VirtualHost> - sfritul acetei directive
este marcat prin </VirtualHost>. Toate directivele coninute n aceast
structur se vor raporta n mod direct la host-ul virtual astfel definit. Se pot
observa o serie de alte structuri marcate prin directivele <Directory
(nume_director)> i </Directory>. Acestea sunt folosite pentru
restrngerea efectului directivelor coninute exclusiv la nivelul directorului
specificat i al subdirectoarelor sale n general aceast directiv se
folosete pentru configurarea directoarelor site-urilor conform unor cerine
specifice, de exemplu limitarea accesului sau includerea unor opiuni
speciale.
Pasul 2. Interpretarea fiierului de configurare se face de la prima linie,
progresiv pn la ultima, urmnd directivele apache:
<VirtualHost adres> </VirtualHost> se folosete pentru gruparea
directivelor ce vor specifica parametrii site-ului respectiv. n acest caz
adresa poate fi fie un nume de domeniu, fie o adres ip.
ServerAdmin adres_mail seteaz adresa administratorului site-ului
respectiv, adresa ce va fi inclus n orice mesaj de eroare.
DocumentRoot director stabilete locaia de unde server-ul apache va
putea servi fiierele ce alctuiesc site-ul. Acest director va reprezenta
directorul root al site-ului.
ErrorLog nume_jurnal ofer posibilitatea alegerii unui jurnal de erori
separat de cel implicit. Se folosete mpreun cu directiva CustomLog
Directivele Alias respectiv ScriptAlias permit folosirea unor resurse care
nu se afl n directorul specificat prin directiva DocumentRoot. n
general, se folosesc pentru activarea script-urilor de tip cgi i pentru
includerea unor resurse externe site-ului.
<Directory director> </Directory> grupeaz o serie de directive,
pentru restrngerea efectului acestora la nivelul directorului specificat. n
cadrul fiierului aferent exemplului, aceste structuri sunt folosite pentru
descrierea individual a setrilor fiecrui subdirector inclus n site.

Options este una dintre cele mai importante directive, prin intermediul
creia se poate controla disponibilitatea tuturor funciilor server-ului la
nivel de directoare. Directiva poate primi mai multe opiuni, separate ntre
ele prin spaii. Printre opiunile cele mai folosite se numr (acestea sunt
case-sensitive):
All - toate opiunile activate cu excepia Multiviews. Aceasta
este i setarea implicit a directivei Options.
FollowSymLink permite server-ului apache s urmeze
legturile simbolice n directorul curent.
ExecCGI permite executarea scripturilor CGI prin
intermediul modulului aferent.
Indexes - n cazul n care directorul la care se refer nu
conine nici un fiier de tip index (exemplu index.html), atunci
server-ul va genera o pagin al crei coninut va fi o list cu
toate fiierele directorului respectiv. Acest comportament va fi
activat numai dac fiierul index nu exist, iar URL-ul folosit
n cerere de ctre client nu se refer n mod direct la un fiier
din directorul curent.
AllowOverride tip atunci cnd server-ul gsete un fiier .htaccess n
directorul curent, aceast directiv i specific ce opiuni pot nlocui orice
directive precedente. Tipurile disponibile sunt:
None va duce la ignorarea fiierului .htaccess.
All orice directiv care se refer la directorul respectiv va
avea acces la fiierul .htaccess.
AuthConfig permite folosirea directivelor de autorizare
FileInfo permite folosirea directivelor ce controleaz tipul
documentelor
Indexes permite folosirea directivelor ce controleaz
procesul de indexare al directoarelor
Directiva Order specific ordinea n care vor fi interpretate directivele
Allow i Deny prin intermediul crora se poate stabili un sistem de acces
bazat pe trei iteraii. Opiunile posibile sunt:
Allow,Deny se ncepe prin evaluarea directivelor Allow
(dac orice cerere nu se potrivete cu nici o directiv, aceasta
va fi respins), urmate apoi de directivele Deny.
Deny,Allow se ncepe prin evaluarea directivelor Deny, iar
n cazul unei potriviri, cererea este respins.
Exemple:
Order Deny,Allow
Deny from all
Allow from www.exemplu.ro
n cazul anterior, toate cererile vor fi respinse, cu excepia
celor provenite de la domeniul www.exemplu.ro.
Order Allow, Deny
Allow from exemplu.ro
Deny from ns.exemplu.ro

n exemplul de mai sus, dei ultima directiv specific faptul c


tot ceea ce vine de la domeniul ns.exemplu.ro va fi respins,
datorit ordinii alese, directiva Allow va avea prioritate mai mare,
i va suprascrie directiva Deny, pentru ntregul domeniu
www.exemplu.ro (inclusiv subdomenii). Directivele Allow i
Deny pot lua ca parametri fie cuvntul cheie all, fie un nume de
domeniu, fie o adres ip.
Pasul 3. Modificarea fiierului de configurare al site-ului se poate face n
felul urmtor:
gedit /etc/apache2/sites-available/www.exemplu.ro
Modificarea acestui fiier trebuie reflecte site-ul pe care l vom crea i ca
urmare trebuie s satisfac urmtoarele condiii:
DocumentRoot-ul va fi directorul /var/www.exemplu.ro
Host-ul virtual se va numi 192.168.2.102 (adresa IP a server-ului, oricare
ar fi aceasta)
Fiierul de configurare al site-ului ar trebui s arate n felul urmtor dup
modificare:

Aceasta este o variant simplificat de site, care va avea coninutul propriuzis n directorul /var/www.exemplu.ro (este o practic comun pentru
adminsitratori s pstreze site-urile n directoare cu acelai nume pentru o
localizare mai uoar). A se observa c am redus numrul de directive fa
de fiierul original i c am configurat site-ul virtual s fie disponibil pe port-ul
2009.
Pasul 4. Crearea coninutului site-ului va fi un simplu fiier html, pentru
demonstrarea conceptului. Va trebui creat mai nti directorul corespunztor,
apoi adugat fiierul html:
mkdir /var/www.exemplu.ro
mcedit /var/www.exemplu.ro/index.html

Fiierul pe care l vom crea se va numi index.html i reprezint unul dintre


fiierele index implicite. Cnd server-ul va nregistra o cerere ctre adresa

sa, pe port-ul 2009, fr vreun fiier anume specificat n URL, acesta va


trimite ca rspuns fiierul index.html.
Coninutul acestui fiier va respecta standard-ul html i este la alegerea
utilizatorului, ns un exemplu elocvent este urmtorul:
<html>
<body>
Salut! Acesta este un site.
</body>
</html>
Pasul 5. Activarea server-ului pe port-ul 2009 este necesar din moment
ce am stabilit c noul site va fi disponibil pe acest port. Pentru acest fapt,
trebuie adugat directiva Listen 2009 n cadrul fiierului
/etc/apache2/ports.conf, conform pozei de mai jos:

Pasul 6. Activarea site-ului este un pas esenial, i poate fi realizat prin


executarea comenzii:
a2ensite www.exemplu.ro
Dup activarea efectiv a fiierului de configurare, i crearea automat a
legturii simbolice n directorul sites-enabled, trebuie executat comanda:
/etc/init.d/apache2 reload
pentru a fora server-ul apache s rencarce fiierele de configurare i
implicit i noul site. Dup procesul de rencrcare al fiierelor de configurare,
site-ul va fi accesibil la adresa IP a server-ului, pe portul 2009. Dac au fost
urmai i paii anteriori acestui exemplu, utilizatorul va putea observa c siteul virtual implicit (/etc/apache2/sites-available/default) este accesibil, ns
pe portul 801. n mod similar, server-ul poate fi configurat n aa fel nct s
deserveasc un site diferit pentru fiecare interfaa de reea de care
beneficiaz.
n continuare vom modifica noul site creat, pentru a limita accesul la acesta,
numai pe baza unei autentificri prealabile a clientului. O greeal comun
este concepia c autentificrile trebuie limitate numai n cadrul fiierelor
.htaccess, ceea ce este o greeal conform recomandrilor autorilor serverului apache. Prin urmare, vom aduga facilitatea de autentificare direct n
fiierul de configurare al site-ului.
Pasul 1. Crearea fiierului de parol se face prin intermediul utilitarului
inclus htdigest. Acest utilitar va folosi un fiier pentru a stoca parolele
individuale ale utilizatorilor, acetia putnd fi adugai sau teri din list.
Fiierul de parole, mpreun cu o prim nregistrare se poate crea apelnd
comanda:

htdigest c /etc/apache2/parole Zon restricionat user1


O locaie bun pentru stocarea fiierului de parole este un loc n care acesta
s nu fie accesibil prin server-ul de web (directorul /etc/apache/ este o
locaie potrivit). Parametrul c specific faptul c se dorete crearea
fiierului parole urmnd ca utilizatorul s introduc parola pentru contul
user1. Dac se dorete adugarea unui utilizator nou, ntr-un fiier de parole
deja existent, sintaxa este aceeai, dar va trebui omis parametrul c, i
evident, specificat numele utilizatorului n loc de user1. Penultimul parametru
(n acest caz Zon restricionat) se numete realm i este folosit pentru
identificare acesta trebuie s se potriveasc cu valoarea alea pentru
directiva AuthName.
Pasul 2. ncrcarea modulului de autentificare Digest se poate realiza
folosind comanda
a2enmod auth_digest
ncrcarea oricror module adiionale necesit de asemenea i repornirea
server-ului:
/etc/init.d/apache2 restart
Opional se poate folosi autentificarea de tip Basic n loc de Digest - va
trebui folosit utilitarul htpasswd (n loc de htdigest) pentru generarea
fiierului de parole i folosirea directivei AuthType Basic ns aceast
metod trimite parolele n clar, fr nici un fel de criptare, prin urmare nefiind
recomandat.
Pasul 3. Adugarea directivelor de autentificare se va face n structura
descris de directiva <Directory></Directory> pentru directorul n cauz.
Urmrind exemplul anterior, vom alege s implementm directivele de
autentificare n cadrul directorului /var/www.exemplu.ro. Vom modifica
aadar, coninutul fiierului /etc/apache2/sites-available/www.exemplu.ro
n felul urmtor:

Pasul 4. Repornirea server-ului este necesar i se face prin comanda


/etc/init.d/apache2 restart
n urma accesrii site-ului, clientul va fi rugat s introduc datele de
autentificare utilizator i parola. n configuraia actual, site-ul disponibil pe
port-ul 2009 va fi disponibil doar pentru utilizatorul user1. Se pot aduga noi
utilizatori separai prin spaii (de exemplu):

Require user user1 user2 user3 .


Pe lng includerea numelor utilizatorilor n cadrul seciunii de autentificare,
acetia vor trebui s fie adugai i n fiierul de parole, cu ajutorul utilitarului
htdigest.
Exemplul 2: Configurarea modulului UserDir
Modulul UserDir permite fiecrui cont de utilizator s poat avea o pagin
web predefinita. Sistemul funcioneaz prin traducerea URL-ului primit de la
client, n baza directivei UserDir, ntr-o adres local. Dac modulul UserDir
este ncrcat, fiecare utilizator va putea avea o pagin proprie de web, n
funcie de modul n care este configurat server-ul. Paginile individuale ale
utilizatorilor sunt accesibile prin urmtoarea metod de adresare:
http://adres_server:port/~nume_utilizator
Directiva UserDir poate fi inclus n cadrul fiierelor de configurare apache,
i are urmtoarea sintax:
UserDir adres
Adresa specificat va fi folosit pentru a traduce URL-ul utilizatorului
(~nume_utilizator) ntr-o cale local. Folosit fr cale absolut, se va referi
la calea menionat relativ la directorul home al fiecrui utilizator. Mai jos se
pot observa cteva exemple de folosire:
Exemplu
1:
date
fiind
directiva
UserDir
www,
calea
www.exemplu.ro/~user1/1.html
s-ar
traduce
automat
n
/home/user1/www/1.html
Exemplu 2: date fiind directiva UserDir /var/www, calea
www.exemplu.ro/~user1/1.html
s-ar
traduce
automat
n
/var/www/user1/1.html
Aceast directiv se raporteaz n mod implicit la toi utilizatorii cu cont din
sistem, ns la nevoie poate fi restrns prin intermediul opiunilor enabled i
disabled:
Exemplu 1: UserDir disabled user1 root ar dezactiva modulul pentru
utilizatorii user1 i root
Exemplu 2: UserDir disabled
UserDir enabled root user1
Secventa anterioar ar dezactiva modulul pentru toi utilizatorii, cu excepia
conturilor root i user1.
Vom ncerca n exemplul ce urmeaz s configurm modulul UserDir pentru
toi utilizatorii sistemului, astfel nct paginile individuale ale acestora s se
afle n directorul www din directorul home al fiecrui utilizator.
Pasul 1. Activarea modulului se face prin comanda:
a2enmod userdir
Pasul 2. Adugarea directivei UserDir poate fi fcut n orice fiier de
configurare, ns se recomand crearea unui fiier nou, n cadrul directorului
/etc/apache2/conf.d. n mod implicit toate fiierele de configuraie din acest

director vor fi ncrcate automat prin directiva Include. Pentru rezolvarea


cerinei, se va crea fiierul /etc/apache2/conf.d/userdir al crui coninut va
fi urmtorul:
UserDir www
Pasul 3. Repornirea server-ului este necesar deoarece a fost ncrcat un
modul nou. n urma repornirii, toi utilizatorii vor putea beneficia de pagini
web proprii, n directorul /home/(nume_utilizator)/www.
Pentru mai multe informaii referitoare la directivele apache, consultai
documentaia instalat, sau accesai httpd.apache.org/docs/2.2/.

Instalarea i configurarea serviciului de Email


Serviciul de pot electronic a revoluionat comunicarea cnd a aprut,
oferind o alternativ ieftin i foarte rapid de schimbare a mesajelor digitale
ntre utilizatori. Serverele ce ofer acest serviciu funcioneaz pe principiul
store-and-forward, adic acestea primesc mesajele i le stocheaz
individual pentru toate conturile existente n sistem. Utilizatorii acestui
serviciu nu trebuie dect s se conecteze la server-ul de email i s i
acceseze mesajele.
Dei original mesaje erau limitate doar la coninut text, suportul pentru
mesaje cu ataamente a fost extins prin intermediul standardului MIME
(Multipurpose Internet Mail Extensions). Orice mesaj email poate fi mprit
n dou seciuni: antetul mesajului, care conine informaii de control
(adresele destinatarului i receptorului, subiect, etc) i corpul mesajului care
reprezint coninutul efectiv al mesajului.
Unul dintre cele mai folosite servere de email la ora actual este Postfix, un
server liceniat conform standardelor GNU i a fost gndit de la nceput ca o
alternativ sigur, rapid i uor de instalat i configurat la server-ul
Sendmail. n cazul serviciului de email, exist mai multe entiti: MTA
reprezint un Mail transfer agent, adic un program care se ocup att de
recepionarea ct i de transmiterea mesajelor digitale, i reprezint serverul de mail. MUA (sau Mail user agent) este programul folosit pentru
interacionarea cu server-ul de mail i poate fi fie un client de email, fie chiar
un server de mail care are rolul de relay (adic transmite un mesaj mai
departe), ns de cele mai multe ori, cnd se menioneaz termenul
respectiv, se face referire la un client.
n continuare vom vedea paii necesari nlocuirii clientului implicit de mail ce
vine instalat cu distribuia Debian, procedura de instalare a server-ului
Postfix, dar i nite exemple de configurare a acestuia. De asemenea, vom
aduga o nregistrare de tip MX n cadrul server-ului DNS pentru a putea
identifica server-ul de mail n cadrul domeniului fictiv www.exemplu.ro. n
mod implicit, server-ul de mail instalat n cadrul distribuiei Debian 5.0 este
exim4, acesta urmnd s fie dezinstalat odat cu instalarea server-ului
Postfix (din moment ce nu pot exista dou servere de mail pe acelai
sistem).
Instalarea server-ului Postfix se face urmnd urmtorii pai:
Pasul 1. Adugarea intrrii MX n cadrul server-ului DNS se face
modificnd fiierul de zon ce reprezint domeniul exemplu.ro. n seciunea
dedicat instalrii i configurrii serverului bind9 am folosit server-ul
/etc/bind/db.exemplu.ro pentru a descrie domeniul respectiv. Pentru
adugarea intrrii MX, acesta trebuie modificat prin adugarea liniilor:
IN
MX 10 mail.exemplu.ro
@
IN
A
(adres_ip_server)
Amintim pe aceast cale, c fiierul de zon trebuie s se termine neaprat
cu o linie nou, goal. Adugarea celor dou linii de mai sus va avea ca

efect nregistrarea subdomeniului mail ca o intrare de tip MX, cu prioritatea


10, i asocierea subdomeniului mail.exemplu.ro cu adresa ip a server-ului.
Pasul 2. Repornirea server-ului DNS este necesar pentru forarea
rencrcrii zonei
/etc/init.d/bind9 restart
Pasul 3. Instalarea pachetului postfix se poate face folosind sistemul apt:
apt-get install postfix
n urma executrii liniei de mai sus, utilizatorul va fi atenionat c server-ul
implicit de mail (exim4) urmeaz s fie dezinstalat. Mai mult, utilizatorul va
urma un fel de wizzard pentru alegerea configuraiei de baz. Utilizatorul
poate naviga butoanele interfeei folosind fie tastele de direcie, fie butonul
tab, i poate confirma o selecie folosind Enter. Vom parcurge toate
ntrebrile pe care programul de instalare le va pune, pentru a clarifica orice
nenelegere ce poate s apar pe parcurs:
ntrebarea 1: Please select the mail server configuration type that best
meets your needs
Odat cu ntrebarea, sunt descrise pe scurt toate opiunile disponibile.
Vom presupune pentru acest exerciiu c vom alege configuraia Internet
Site prin care se certific faptul c server-ul va folosi protocolul SMTP
(Simple Mail Transfer Protocol).
ntrebarea 2: System mail name
Conform descrierii, mail name se refer la numele de domeniu care va fi
folosit pentru calificarea tuturor mesajelor primite. n exemplul de fa,
vom alege exemplu.ro. Este important ca server-ul DNS s funcioneze
n momentul instalrii, astfel nct domeniul ales s fie disponibil.
Pasul 4. Configurarea server-ului Postfix
n acest moment, server-ul Postfix este instalat, i ruleaz conform
configuraiei implicite. Fiierul de configurare pentru acesta este un fiier
text, i se poate gsi n directorul /etc/postfix/main.cf. Pentru alterarea
configuraiei, acesta trebuie deschis cu un editor text:
mcedit /etc/postfix/main.cf
Opiunile de configurare sunt prezentate n formatul opiune = valoare i
sunt relativ uor de interpretat (liniile care ncep prin caracterul # sunt
comentarii):
myorigin = nume reprezint numele de la care mail-urile locale vor
origina. Se pot folosi ali parametri deja definii n fiier folosind n loc de
valoarea propriu-zis textul $opiune. Dac am folosi myorigin =
$mydomain, atunci s-ar folosi valoarea opiunii mydomain.
mydomain = nume reprezint numele de domeniu al server-ului de
mail.
myhostname = nume reprezint numele de sistem al server-ului de
mail.

smtpd_banner = $myhostname ESMTP $mail_name reprezint textul


de salutare primit dup codul de confirmare 220 n cadrul protocolului
SMTP. Valoarea $myhostname trebuie specificat la nceputul liniei,
fiind o cerin specific a protocolului SMTP.
biff = valoare yes/no specific dac se dorete folosirea serviciului
local biff, care trimite notificrile de mesaje noi tuturor utilizatorilor care sau nregistrat folosind comanda biff y.
append_dot_mydomain = valoare yes/no n cazul mesajelor locale,
specific dac se va aduga textul $mydomain la adresele care nu
conin aceast informaie.
delay_warning_time = valoare h specific intervalul msurat n ore
dup care destinatarul va primi antentul mesajelor care nc ateapt.
Vom descrie pe scurt cteva din opiunile mai importante:
inet_interfaces = valoare se folosete pentru specificarea interfeelor
de reea ale sistemului pe care server-ul va primi mail. Valorea implicit
este all, ceea ce nseamn c server-ul va primi mesaje pe toate
interfeele configurate ale sistemului
mynetworks = list lista clienilor SMTP care vor avea privilegii sporite.
Mai exact, acetia vor putea folosi server-ul de mail pentru procesul de
mail relay.
smtpd_sasl_auth_enable = yes/no activeaz sau dezactiveaz
autentificarea de tip SASL n server-ul Posfix. n mod implicit, acesta nici
mcar nu folosete autentificare.
smtpd_sasl_security_options = valoare specific lista de opiuni de
securitate:
noplaintext interzice orice metod ce folosete parole n
clar
noactive interzice orice metod de atac activ
nodictionary interzice orice de metod de atac pasiv
noanonymous interzice orice metod de autentificare
anonim
forward_secrecy se folosesc doar metode care suport
forward secrecy
mutual_auth se folosesc doar metode care implic
autentificarea mutual.
smtpd_sasl_local_domain = valoare specific zona de autentificare
SASL a server-ului.
broken_sasl_auth_clients = yes/no asigur compatibilitatea ntre
clieni SMTP mai vechi care folosesc o variant depreciat de
autentificare.
smtpd_recipient_restrictions = list specific restricii pe care serverul le aplic comenzii RCPT TO.
home_mailbox = director specific calea opional ctre directorul de

mail, relativ la adresa home a utilizatorilor.


alias_maps = valoare baza de date de alias-uri folosit pentru
trimiterea local de mesaje.
relayhost = nume server-ul iteraiei urmtoare (n cazul mail-urilor
externe)
stmpd_recipient_limit = valoare specific numrul limit de recipieni
acceptai pentru fiecare mesaj.
Pentru familiarizarea n cadrul procesului de configurare a server-ului
Postfix, se recomand crearea unei copii de siguran a fiierului
/etc/postfix/main.cf.
Pentru mai multe informaii despre opiunile existente n cadrul fiierului de
configurare accesai www.postfix.org/postconf.5.html.
cp /etc/postfix/main.cf /etc/postfix/main.cf.backup
Unul din avantajele majore ale server-ului Postfix este flexibilitatea sa,
acesta mergnd n majoritatea cazurilor fr nici un fel de configurare
prealabil. Se recomand ns modificarea urmtoarelor dou linii pentru
asigurarea funcionalitii server-ului (pentru domeniul fictiv exemplu.ro):
myhostname = mail.exemplu.ro
myorigin = exemplu.ro
mydestination = exemplu.ro, staie.staie, localhost
Este bine de tiut c server-ul Postfix va respinge n mod automat orice fel
de mesaje al cror destinar sau expeditor nu poate fi determinat. Datorit
legturii strnse cu server-ul DNS ct i faptului c a fost legat de domeniul
exemplu.ro, server-ul va respinge orice mesaje n care adresa destinatarului
(sau expeditorului la trimitere) nu reprezint un nume de domeniu calificabil.
Prin urmare, pentru a oferi utilizatorilor posibilitatea folosirii att a numelui de
domeniu ct i a adresei IP a server-ului pentru trimiterea, respectiv primirea
mesajelor electronice, server-ul Postfix trebuie configurat s poat interpreta
domeniile numerice prin adugarea opiunii urmtoare n cadrul fiierului
/etc/postfix/main.cf:
resolve_numeric_domain = yes
Ca urmare a activrii acestei opiuni, server-ul va accepta ca adrese de
destinatar sau expeditor att adresele IP (nume_cont@adres_ip), ct i
adresele de tipul nume_cont@domeniu.
De asemenea, opiunea mydestionation trebuie s conin toate numele de
sistem pentru care server-ul Postfix se va considera ca adres final. n
cazul n care domeniul exemplu.ro nu ar fi inclus n lista de opiuni, server-ul
Postfix ar considera c toate mesajele electronice pe care le primete nu i
sunt destinate direct i prin urmare ar juca rolul de relay host (adic ar
ncerca s trimit mesajul mai departe). Acest mod de funcionare devine
evident atunci cnd server-ul nu este configurat ca un relay host, caz n
care expeditorul va fi refuzat, iar mesajul ntors.

Pasul 5. Instalarea server-ului IMAP/POP3


n momentul n care un utilizator trimite un mesaj electronic cu un MUA (Mail
user agent), sau mai exact client de mail, acesta este trimis prin protocolul
SMTP entitii MTA (server-ul). Acesta verific apoi adresa recipientului, face
o cerere ctre DNS-ul sau pentru a afla MTA-ul corespunztor domeniului
recipientului i n final transmite acelui server mesajul, tot prin intermediul
protocolului SMTP. n final, dup ce mesajul a ajuns la server-ul
corespunztor, utilizatorul i poate verifica mesajele folosind protocolul
POP3 sau protocolul IMAP.
Pentru a oferi o interfa de acces la directoarele de mail din sistem prin
protocolul IMAP sau POP3, trebuie instalat un server care s poat oferi
acest serviciu. Dovecot este un astfel de server, dezvoltat n mod special
pentru aceast facilitate i poate fi configurat s funcioneze n paralel cu alte
servere de mail tradiionale precum Qmail, Exim, sau n cazul nostru
Postfix. Server-ul Dovecot nu joac niciun rol n primirea efectiv a
mesajelor de la alte entiti MTA, ci doar ofer o metod prin care utilizatorii
pot accesa mesajele deja stocate pe server. Instalarea server-ului se face
prin comanda:
apt-get install dovecot-imapd dovecot-pop3d dovecot-common
Dup instalare, server-ul Dovecot trebuie configurat n vederea selectrii
protocoalelor IMAP i POP3 prin modificarea fiierului de configurare
/etc/dovecot/dovecot.conf i adugarea liniilor (sau decomantarea
acestora acolo unde este cazul):
protocols = pop3 imap
disable_plaintext_auth = no
pop3_uidl_format = %08Xu%08Xv
Dup reconfigurarea server-ului Dovecot, este necesar o repornire a
acestuia prin intermediul comenzii
/etc/init.d/dovecot restart
n acest moment, toate conturile de utilizator locale se vor putea conecta
folosind unul din protocoalele menionate mai sus pentru a primi sau a trimite
(local) mesaje electronice. Server-ul de email se poate testa folosind orice fel
de client de mail local sau extern (dar n cadrul aceleai reele) capabil s
comunice pe unul dintre cele dou protocoale menionate.
Dei avem de-a face cu un server de email perfect funcional, acesta este
momentan capabil s trimit i s primeasc doar mesaje locale. n cazul n
care se ncearc trimiterea unui mesaj ctre un server extern, utilizatorul va
primi urmtorul mesaj de eroare: Relay access denied. Pentru
remedierea acestei probleme, configuraia server-ului trebuie alterat pentru
a permite autentificarea prin protocolul SASL (Simple authentication security
layer).
Protocolul TLS (Transport Layer Security) este un protocol criptografic ce
ofer comunicaii sigure peste reele nesigure precum Internet-ul.

Combinaia SALS + TLS este foarte folosit, oferind o metod de


autentificare a utilizatorilor naintea trimiterii efective ctre servere externe.
Prin aceast implementare, se restricioneaz sensibil funcia de relay; este
esenial ca server-ul de email s fie protejat n acest fel, pentru a nu permite
accesul neautorizat la acesta.
Pasul 6. Instalarea modulului SASL se face prin intermediul comenzii:
apt-get install sasl2-bin libsasl2-2 libsasl2-modules
Dup instalarea modulelor necesare, fiierul de configurare al server-ului
Postfix trebuie modificat, pentru a implementa noul mediu. Pentru a
configura server-ul Postfix astfel nct acesta s suporte autentificarea
SASL, trebuie adugate urmtoarele linii n fiierul /etc/postfix/main.cf:
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = exemplu.ro
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_
destination
smtpd_sasl_security_options = noanonymous
Pasul 7. Ajustarea daemon-ului saslauthd astfel nct acesta s poat
comunica cu server-ul Postfix, care folosete un concept de securitate
foarte eficient numit chroot (mai multe detalii pot fi gsite n seciunea
dedicat securitii). Pentru a permite server-ului Postfix comunicarea cu
daemon-ul SASL, trebuie executate urmtoarele comenzi:
rm -r /var/run/saslauthd/
mkdir -p /var/spool/postfix/var/run/saslauthd
ln -s /var/spool/postfix/var/run/saslauthd /var/run
chgrp sasl /var/spool/postfix/var/run/saslauthd
adduser postfix sasl
cp /etc/sasldb2 /var/spool/postfix/etc/sasldb2
chmod a+r /var/spool/postfix/etc/sasldb2
Ultimele dou linii se refer la fiierul ce va conine datele de autentificare
pentru serviciul saslauthd. Postfix (rulnd implicit chrooted) nu va putea
accesa direct fiierul /etc/sasldb2. Ca urmare acesta trebuie copiat ntr-o
locaie unde server-ul Postfix s-l poat accesa. De asemenea, n momentul
crerii, acesta nu conine nicio nregistrare. Pentru a aduga utilizatori n
acest fiier, trebuie folosit utilitarul saslpasswd2 n felul urmtor:
saslpasswd2 f /var/spool/postfix/etc/sasldb2 u exemplu.ro a
smtpauth (utilizator)
Comanda anterioar poate fi interpretat astfel: parametrul f este folosit
pentru specificarea fiierului de parole (n acest caz sasldb2), -u se
folosete pentru specificarea domeniului iar -a se folosete pentru
specificarea numelui aplicaiei folosite. Ultimul parametru reprezint numele
contului de utilizator pentru care se va aduga nregistrarea. Dup
executarea comenzii, administratorul va fi rugat s introduc parola pentru
numele de cont specificat.

Pasul 8. Ajustarea server-ului Dovecot trebuie fcut pentru a specifica


socket-ul deamon-ului de autentificare. n acest scop trebuie modificat fiierul
/etc/dovecot/dovecot.conf prin localizarea liniei care ncepe cu auth
default i inserarea urmtoarelor linii naintea acesteia:
auth default {
mechanisms = plain login
passdb pam {
}

userdb passwd {
}

socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}

Sintaxa prezentat mai sus trebuie respectat la caracter, orice abatare


ducnd la incapacitatea server-ului Dovecot de a fi pornit.
Pasul 9. Repornirea tuturor componentelor ce alctuiesc sistemul
email: /etc/init.d/saslauthd restart
/etc/init.d/postfix restart
/etc/init.d/dovecot restart
Testarea serviciului de email presupune folosirea unui client de email
configurat corespunztor. Server-ul a fost configurat astfel nct s nu
permit trimiterea mesajelor electronice fr o autentificare n prealabil,
limitnd astfel posibilitatea ca acesta s fie folosit n moduri nedorite. Pentru
a putea autentifica un utilizator al sistemului, acesta trebuie neaprat s
posede o nregistrare n fiierul sasldb2 pentru a putea fi validat.
Fiind strns legat de funcionarea server-elor DNS, administratorul trebuie s
se asigure c domeniul de care rspunde este nregistrat corect i conine
cel puin o nregistrare de tip MX pentru identificarea server-ului de email, ct
i s fie localizabil prin procedura de reverse lookup. Multe servicii de email
cunoscute (precum Gmail sau Yahoo!) au serverele configurate astfel nct
s refuze orice fel de mesaje de la servere a cror adres nu o pot identifica
n mod corespunztor, n ncercarea de a limita trimiterea nesolicitata de
email-uri (spam).
De asemenea se recomand ca administratorul s supravegheze starea
server-ului Postfix prin intermediul fiierelor de jurnalizare (localizate n mod
implicit la adresa /var/log/mail.log), ct i starea cozii de mesaje a serverului. Coada de mesaje (n curs de trimitere) se poate vizualiza prin
executarea comenzii: postqueue p iar tergerea tuturor mesajelor din
acesta (n cazul n care acest lucru se dorete) se poate realiza prin
comanda: postsuper d ALL.

Instalarea unei platforme webmail


Opional, adminstratorul poate instala i un modul de webmail (oferind n
acest fel acces la server-ul de mail din orice locaie, prin intermediul
serviciului HTTP). Modulul webmail se numete SquirrelMail i este una
dintre cele mai populare platforme de acest gen. SquirrelMail folosete
tehnologia PHP (deci necesit un server web cu modulul PHP activat), cu
suport nativ pentru protocoalele IMAP i POP3. SquirrelMail este foarte
uor de configurat i ofer o gam larg de faciliti precum suport MIME,
agenda de contacte i suport pentru directoare. Un alt avantaj major al
platformei l reprezint posibilitatea extinderii funcionalitilor de baza prin
intermediul unor module adiionale (plugins).
Pasul 1. Instalarea aplicaiei SquirrelMail se poate realiza prin executarea
comenzii:apt-get install squirrelmail
Vom presupune c server-ul deja ruleaz o instan a server-ului web
apache2, avnd modulul php activat. n cazul n care server-ul web nu este
instalat, putei urma exemplul de instalare pentru serviciul HTTP, unde este
descris n detaliu ntregul proces.
n mod implicit, aplicaia poate fi accesat prin orice browser web la adresa:
http://www.exemplu.ro/squirrelmail/
Versiunile mai vechi de SquirrelMail necesitau includerea fiierului de
configuraie pentru server-ul apache2, ns n prezent aceast operaie nu
mai este necesar. n momentul instalrii se va crea o legtur simbolic n
directorul /etc/apache2/conf.d ctre fiierul /etc/squirrelmail/apache.conf,
iar aplicaia va fi accesibil prin intermediul host-ului virtual principal.
Pasul 2. Configurarea aplicaiei se poate realiza foarte uor prin
intermediul script-ului /usr/sbin/squirrelmail-configure. Acesta ofer o
interfa de consol destul de uor de utilizat, prin care se pot modifica
parametrii funcionali ai aplicaiei, de la titlu i logo pn la modulele
adiionale folosite (plugins). Dei aplicaia respect o serie de protocoale
standard i va funciona aproape sigur fr nici un fel de configurare
prealabil, se recomand modificarea unor parametri funcionali prin
intermediul script-ului squirrelmail-configure. Se va selecta din meniul
principal opiunea 2 (Server Settings), urmat de tast ENTER, dup care
se va selecta opiunea A (IMAP settings). n final se va alege opiunea 8,
prin intermediul creia se va specifica server-ul IMAP folosit, afindu-se pe
ecran o scurt descriere urmat de o list de servere IMAP cunoscute. n
cazul de fa utilizatorul trebuie s tasteze dovecot i s apese tast
ENTER pentru a selecta server-ul IMAP. Aceast procedur va asigura
compatibilitatea total cu server-ul IMAP folosit, eliminnd astfel o serie de
probleme ce pot s apar n timpul trimiterii i primirii mesajelor.
SquirrelMail este o platform cu destul vechime i foarte stabil, i ca
atare poate fi implementat pe sisteme n producie, ns se recomand o
configurare detaliat, n acest caz. Sistemul de jurnalizare va fi comun cu cel
al server-ului de mail, toate mesajele nregistrate putnd fi accesate n
fiierul implicit /var/log/mail.log.

Instalarea i configurarea server-ului de DHCP


DHCP (Dynamic Host Configuration Protocol) este un protocol folosit pentru
atribuirea dinamic a unor adrese IP unor dispozitive conectate ntr-o reea.
Serverele DHCP sunt folosite pentru automatizarea procesului de
desemnarea a parametrilor de reea mai multor dispozitive, fiind foarte uor
ca administratorul s adauge n timp foarte scurt noi sisteme n reea. Clienii
DHCP vor transmite o cerere server-ului DHCP i n final, vor primi
informaiile cerute. Server-ul este responsabil de o serie de adrese IP,
precum i informaii despre conexiune precum gateway, numele de
domeniu, servere DNS i aa mai departe, i, n urma unei cereri din partea
unui client, server-ul va desemna acestuia o adres IP (precum i alte detalii
necesare conexiunii subnet mask, gateway, servere DNS) precum i
durata autorizat (lease time). Avnd n vedere faptul c mare parte din
proces se ntmpl fr c clientul s aib stabilit o adres IP, acesta
ncepe de obicei imediat dup procesul de boot, pentru a putea permite
comunicaia bazat pe adrese IP ntre dispozitive. Serverele DHCP au dou
moduri funcionale principale: modul dinamic, n care clienii vor primi
adrese IP n baza unor cereri, din gama de adrese de care dispune server-ul
(n funcie de disponibilitate, sau preferenial, n funcie de adresa
precedent a clientului) i modul static n care clienii vor primi adresele IP
ntr-o manier semi-statica, bazat pe asocierea cu adresa MAC a clientului
(n acest mod, clienii configurai n mod explicit vor avea mereu aceeai
adres IP, furnizat de server n baza adresei MAC a clientului).
Alegerea unui server DHCP care s ruleze pe o platform Debian trebuie
aadar s in de o serie de factori: acesta trebuie s fie stabil, uor de
instalat i configurat, i nu n ultimul rnd s corespund cerinelor reelei n
care va rula.
Distribuia Debian 5.0 include n lista sa i pachetul dhcp3-server. Acesta
reprezint implementarea ISC (Internet Software Consortium) a server-ului
DHCP, i poate lucra cu mai multe interfee de reea simultan. Vom prezenta
n continuare procesul de instalare i configurare al unui server DHCP n
baza pachetului menionat anterior.
Pasul 1. Instalarea server-ului DHCP se poate realiza prin instalarea
pachetului menionat anterior, prin executarea comenzii:
apt-get install dhcp3-server
Instalarea pachetului se va realiza printr-o aplicaia de tip wizzard, i n mod
implicit va atentiona administratorul asupra ctorva faciliti de care server-ul
dispune. Primul mesaj specific faptul c server-ul ce urmeaz a fi instalat
este o versiune non-authoritive, adic server-ul va transmite tuturor
clienilor s nu mai utilizeze adrese pentru care acesta a primit o cerere din
partea unui client, i de care acesta nu rspunde.
Odat instalat, server-ul trebuie configurat prealabil pornirii sale, nefiind setat
s asculte cereri pe nicio interfa n mod implicit. Dac administratorul
ncearc s lanseze daemon-ul DHCP prin intermediul comenzii

/etc/init.d/dhcp3-server start, acesta va primi un mesaj de eroare conform


cruia este atenionat c serviciul DHCP nu a putut fi pornit. n general, este
recomandat vizualizarea jurnalelor unui serviciu n cazul n care
administratorul ntmpin dificulti cu acesta, iar server-ul DHCP nu este o
excepie, fiierul /var/log/syslog fiind locaia n care server-ul i va salva
toate mesajele de eroare sau avertizare.
Pasul 2. Configurarea server-ului DHCP
Configurarea server-ului poate fi realizat n mod similar cu alte servicii, prin
modificarea fiierului de configurare /etc/dhcp3/dhcpd.conf. Structura
acestuia este una cunoscut, fiind folosit o sintax strict pentru descrierea
parametrilor funcionali. Ca i n alte fiiere de configurare, liniile care ncep
cu caracterul # reprezint comentarii i vor fi ignorate din punct de vedere
funcional de ctre server. n continuare vom folosi un exemplu de fiier de
configurare de baz, parcurgnd toi parametrii funcionali eseniali pentru
funcionarea server-ului, ns nainte de orice modificare a fiierului de
configurare se recomand crearea unei copii de siguran a acestuia.
n scopul acestui exemplu, vom configura server-ul DHCP s rspund de
domeniul exemplu.ro, s cunoasc server-ele DNS incluse, s rspund de
o anumit gam de adrese IP i nu n ultimul rnd, s funcioneze i n
modul static pentru anumite adrese MAC. Astfel, trebuie adugat
urmtoarele linii de configurare n cadrul fiierul /etc/dhcp3/dhcpd.conf:

Liniile de mai sus vor descrie funcionarea server-ului dup cum urmeaz:
option domain-name exemplu.ro definete numele domeniului
curent; urmnd contextul prezentat pn n acest moment, vom folosi
domeniul exemplu.ro.
option domain-name-servers 192.168.2.102 definete serverele DNS
ce vor fi transmise clienilor pentru rezolvarea numelor de domenii n
adrese IP. n acest caz, singurul server DNS este 192.168.2.102, aceeai
adres folosit i la configurarea server-ului DNS n seciunile anterioare.
Aceast opiune permite niruirea mai multor servere, separate prin
virgule, acestea urmnd s fie folosite de ctre clieni n ordinea n care
apar: un exemplu bun pentru mai multe servere DNS ar fi option domainname-servers 192.168.2.102, 192.168.2.103;
option routers 192.168.2.1 specific care va router-ul folosit de ctre
clieni. La fel ca i n cazul precedent, pot fi specificate mai multe routere,
delimitate prin virgule, acestea urmnd s fie folosite n ordinea n care
sunt menionate.

default-lease-time 36000 specific durata de folosire (msurat n


secunde) pentru clienii care nu cer n mod specific o durat de nchiriere.
n acest caz, durata implicit este de 10 ore, sau 36000 secunde.
Aceste opiuni reprezint parametri globali, care de regul descriu detalii
generale, valabile pentru o organizaie ntreag (de exemplu servere DNS
sau numele de domeniu). n continuare vom examina i celelalte opiuni,
care se refer n mod specific la subretele individuale:
subnet 192.168.2.0 netmask 255.255.255.0 folosete o structur
delimitat prin acolade, pentru a descrie o subretea pe care server-ul o va
deservi. Adresa IP menionat este folosit pentru a permite server-ului s
determine dac o adres aparine sau nu unei subretele i pentru a
transmite clienilor configuraii particulare. n cazul de fa, am definit
subreteaua 192.168.2.* cu masca 255.255.255.0.
range 192.168.2.150 192.168.2.200 specific gama de adrese
disponibile pentru atribuirea automat de ctre server-ul DHCP, i n
cazul exemplului curent, opiunea este inclus n cadrul structurii subnet
menionate. Cele dou adrese IP menionate c parametri specific
adresa minim, respectiv adresa maxim de care server-ul DHCP va
rspunde pentru subreteaua actual. Astfel, server-ul va fi configurat s
atribuie adrese IP clienilor si, ncepnd cu adresa 192.168.2.150 i
terminnd cu adresa 192.168.2.200
OBSERVAIE: Sintaxa prezentat n poza anterioar trebuie respectat
ntocmai, mai ales n cazul caracterului ; folosit pentru a specifica sfritul
unei opiuni.
Pasul 3 (Opional). Configurarea adreselor statice se poate realiza n
cazul sistemelor mai importante unde se vrea totui o configuraie bazat pe
DHCP cazul unui server DNS local de exemplu dar cu o serie de adrese
statice. Pentru adugarea unor adrese statice trebuie adugate urmtoarele
linii n cadrul fiierului de configurare /etc/dhcp3/dhcpd.conf:

Liniile de mai sus definesc o nou entitate numit server, prin intermediul
directivei host. Ca i n cazul subretelelor, directiva host delimiteaz prin
acolade o structur ce va conine parametri funcionali pentru o entitate
specific.
hardware ethernet 00:0c:29:87:a3:4f specific adresa MAC a interfeei
de reea asociat cu sistemul server, ct i tipul de reea (ethernet /
token-ring).
fixed-address 192.168.2.199 specific o adres IP care va fi atribuit
unui client. Se pot meniona mai multe adrese separate prin virgule, din
care clientul va alege adresa potrivit n funcie de subreteaua din care
face parte. Putem afirma, drept concluzie, c am alocat adresa static

192.168.2.199 sistemului denumit server, ale crui interfee de reea are


adresa MAC 00:0c:29:87:a3:4f.
Pasul 4. Repornirea serviciului DHCP este necesar pentru c noua
configuraie s devin activ. Server-ul poate fi repornit prin intermediul
comenzii:
/etc/init.d/dhcp3-server restart
Respectarea sintaxei menionate n cadrul fiierului de configurare este
esenial, utilizatorul fiind atenionat n cazul n care server-ul a detectat o
eroare de sintax.

Instalarea i configurarea serviciului Lightweight Directory Access


Protocol (LDAP)
Protocolul LDAP este un protocol ct i o arhitectur de organizare a datelor
n directoare. Creat ca o iniiativ academic la nceputul anului 1995, este o
alternativ simplificat a protocolului DAP (Data Access Protocol) cu
avantajul de a putea rula pe protocolul TCP/IP. Principalul rol LDAP este
structurarea ierarhic a datelor referitoare la reele (dispozitive, aplicaii,
utilizatori, adrese i aa mai departe) ntr-o manier foarte bine definit, n
cadrul unor baze date optimizate pentru operaii de citire.
n contextul unui server Debian, vom studia n continuare procesul de
instalare i configurare al serviciului LDAP, folosind server-ul OpenLDAP.
Acesta este o implementare open-source a protocolului respectiv, i va fi
folosit pentru a oferi un punct central de autentificare a utilizatorilor - acetia
beneficiand de directoare home create ntr-o manier automat ct i
pentru a servi meta-date despre acetia. n cadrul procesului de instalare, nu
vom vorbi despre securizarea comunicrii prin protocolul LDAP, ns
administratorul trebuie s fie contient c n mod implicit datele sunt trimise
pe mediul de comunicaie necriptate.
Privit exclusiv din punct de vedere tehnic, un director LDAP este compus
dintr-un set de nregistrri organizate ierarhic, unde fiecare nregistrare
aparine unei clase i conine perechi de tipul cheie = valoare numite
atribute. Fiecare nregistrare va conine un identificator unic Distinguished
name (prescurtat DN), format dintr-o serie de componente delimitate prin
virgule, prin intermediul crora se va specifica adresa relativ (full path)
ctre nregistrarea respectiv, avnd ca punct de referin rdcina grafului.
Clasele, atributele, regulile ct i sintaxa sunt ncrcate n momentul
iniializrii server-ului LDAP din cadrul fiierelor tip schem.
Protocolul nu este asociat n mod direct cu conturile sau datele aleatoare
prezente pe un sistem, ci are ca scop stocarea informaiilor obinuite ce pot
fi gsite n cadrul sistemelor Unix, precum fiierele /etc/passwd sau
/etc/group, oferind astfel o interfa de autentificare centralizat ntr-o reea,
iar datele referitoare la conturile utilizatorilor vor fi asociate cu datele
prezente n arborele LDAP. Server-ul poate fi configurat astfel nct s
conin i parolele utilizatorilor pentru facilitarea procesului de autentificare a
utilizatorilor n vederea obinerii unor privilegii sporite. n momentul n care
un utilizator se conecteaz la server-ul LDAP pentru a vizualiza coninutul
directorului LDAP, parola pe care acesta o va furniza va fi folosit pentru a
determina att identitatea sa, ct i privilegiile de care acesta beneficiaz.
Pasul 1. Instalarea server-ului OpenLDAP se poate face prin executarea
urmtoarei comenzi:
apt-get install slapd libdb4.6
n urma acestei comenzi, utilizatorul va fi rugat s aleag o parol pentru
nregistrarea admin din directorul LDAP. Dac procesul de instalare decurge
n mod normal, serviciul LDAP va fi pornit la final, folosind configuraia
implicit.

Pasul 2. Configurarea server-ului OpenLDAP


Pentru a pstra un oarecare grad de consecvent cu celelalte servicii
prezentate pn n acest moment, vom considera instalarea serviciului
LDAP pentru domeniul exemplu.ro. Pentru configurarea server-ului vom
folosi una din facilitile oferite de aplicaia dpkg-reconfigure, care se ocup
de schimbarea configuraiei unui pachet deja instalat prin intermediul unui
wizzard. Procesul de reconfigurare trebuie lansat prin intermediul comenzii:
dpkg-reconfigure slapd
n continuare utilizatorul va trebui s furnizeze cteva informaii eseniale
pentru funcionarea serviciului:
Omit OpenLDAP server configuration No
DNS domain name exemplu.ro
Organization name exemplu.ro
Administrator password la alegerea utilizatorului
Confirm password la alegerea utilizatorului
Database backend to use BDB
Do you want the database to be remove when slapd is purged?No
Move old database Yes
Allow LDAPv2 protocol No
Aceste rspunsuri vor garanta funcionarea server-ului n condiiile n care
domeniul specificat este susinut de un server DNS. Parametrul BDB
specific faptul c se va folosi sistemul de cache Berkeley DB Cache, iar
ultima opiune va fora clienii s comunice folosind ultima versiune a
protocolului. Penultima ntrebare este folosit pentru crearea unui back-up n
cazul n care se reconfigureaz pachetul dup instalare, baza de date ct i
fiierele de configurare urmnd s fie mutate din directorul /etc/ldap.
Urmeaz editarea fiierului de configurare /etc/ldap/slapd.conf pentru
verificare ct i adugarea unor parametri adiionali. Administratorul trebuie
s se asigure c urmtoarele linii (care sunt folosite pentru includerea
fiierelor schem) exist:
include
/etc/ldap/schema/core.schema
include
/etc/ldap/schema/cosine.schema
include
/etc/ldap/schema/nis.schema
include
/etc/ldap/schema/inetorgperson.schema
n continuare, trebuie modificai urmtorii parametri:
loglevel 256 este folosit pentru determinarea cror mesaje de jurnal
vor fi nregistrate prin syslogd. Nivelul este stabilit ca o sum de puteri
ale lui 2, reprezentnd biii de configurare. Valoarea 256 specific c se
dorete jurnalizarea evenimentelor de tip conexiuni/operaii/rezultate.
Consultai man slapd.conf pentru mai multe detalii.
Localizarea liniei index
objectClass eq i inserarea liniei index
uid eq imediat dup acestea. Aceast modificare va permite
indexarea n vederea cutrilor. Pentru c noile schimbri de index s
devine active, trebuie executate urmtoarele comenzi:

/etc/init.d/slapd stop
slapindex
chown openldap:openldap /var/lib/ldap/*
/etc/init.d/slapd start
n acest moment, server-ul LDAP este configurat, i gata de a fi folosit;
acesta nu conine ns date importante, acestea urmnd s fie adugate.
Pasul 3. Testarea server-ului
Testarea server-ului LDAP se poate realiza prin efectuarea unor operaii de
citire, numite n terminologia protocolului LDAP search. Cutrile se pot
realiza folosind o serie de utilitare n linie de comand precum ldapsearch
sau slapcat. Diferena dintre cele dou este aceea ca ldapsearch (i restul
utilitarelor ce ncep cu ldap) efectueaz operaii n mod online, adic prin
intermediul server-ului OpenLDAP folosind protocolul specific, pe cnd
slapcat (i restul utilitarelor ce ncep cu slap) citesc fiierele locale motiv
pentru care trebuie rulate local pe sistemul care ruleaz server-ul LDAP cu
privilegii de root.
Pentru folosirea utilitarelor din gama ldap, trebuie instalat pachetul
apt-get install ldap-utils
i modificat fiierul de configurare specific tuturor clienilor LDAP cu un editor
text. Modificrile vor specifica o serie de parametri generali astfel nct
utilitarul s tie domeniul i server-ul pentru care urmeaz s realizeze
cutarea. n acest scop, trebuie adugate urmtoarele dou linii n cadrul
fiierului /etc/ldap/ldap.conf:
BASE
dc=exemplu, dc=ro
URI ldap://192.168.2.102
Domeniul este descris de prima linie, prin atribute de tipul dc (Domain
Component) unde fiecare subdomeniu este definit, iar adresa server-ului
LDAP este descris de cea de-a doua linie.
n final, trebuie lansat utilitarul:
ldapsearch x
Parametrul x specific faptul c se dorete o autentificare simpl n locul
metodei preferate (SASL):

Rezultatul va fi afiat pe ecran, utilizatorul putnd s identifice dou


nregistrri diferite, una pentru nivelul de top al arborelui LDAP, i una pentru
nregistrarea administratorului.
Pe lng ldapsearch, se mai poate folosi i comanda slapcat fr nici un
parametru, care va afia un rezultat de genul:

Diferena dintre cele dou utilitare devine aparent n urma examinrii


rezultatelor afiate: slapcat va afia i atribute pe care ldapsearch le va
omite, pe motive de securitate unul dintre acestea fiind cmpul
userPassword care nu ar trebui dezvlui utilizatorilor anonimi.
Pasul 4. Crearea structurii arborelui
Bazele de date LDAP sunt structurate ca arbori, avnd rdcina (elementul
de top al arborelui fiind de multe ori chiar numele domeniului pe care l
reprezint). Cobornd mai jos n ierarhia arborelului, organizaia poate fi
mprit n mai multe entiti precum oameni, grupuri, servicii, reele, etc. n
cazul exemplului de fa, vom crea dou entiti diferite numite Oameni i
Grupuri, cele dou avnd coresponden la fiierele tipice Unix /etc/passwd
respectiv /etc/group.
Comenzile i datele LDAP se schimba ntre client i server folosind un
format text numit LDIF, n care sunt incluse comenzile i datele aferente
comunicrii. n acest scop, vom crea un fiier temporar numit /var/tmp/ldap
care va avea urmtorul coninut:

dn: ou=Oameni,dc=exemplu,dc=ro
ou: Oameni
objectClass: organizationalUnit
dn: ou=Grupuri,dc=exemplu,dc=ro
ou: Grupuri
objectClass: organizationalUnit
Acest fiier va fi folosit pentru descrierea celor dou entiti Oameni i
Grupuri ce urmeaz a fi adugate n baza de date LDAP. Pentru c
schimbrile s fie activate, acest fiier va trebui ncrcat (folosind utilitarul
slapadd) dup ce server-ul a fost oprit:
/etc/init.d/slapd stop
slapadd c v l /var/tmp/ldap
/etc/init.d/slapd start
Seria de parametri pentru utilitarul slapadd sunt: -c, va fora ignorarea
erorilor, -v, va activa modul verbose iar l este folosit pentru specificarea
unui fiier de tip LDIF. Dup repornirea server-ului, este recomandat
executarea comenzii ldapsearch x pentru a verifica dac cele dou
nregistrri de mai sus au fost ntr-adevr adugate n baza de date.
Pasul 5. Crearea conturilor de utilizator
Crearea conturilor de utilizator se face n aceeai manier ca i crearea
entitilor precedente, prin intermediul fiierelor LDIF. Astfel, trebuie creat un
fiier temporar care va fi ncrcat n baza de date LDAP cu ajutorul utilitarului
ldapadd. Fiierul temporar n acest caz va fi /var/tmp/user i va conine
urmtoarele linii:
dn: cn=user10,ou=Grupuri,dc=exemplu,dc=ro
cn: user10
gidNumber: 5000
objectClass: top
objectClass: posixGroup
dn: uid=user10,ou=Oameni,dc=exemplu,dc=ro
uid: user10
uidNumber: 5000
gidNumber: 5000
cn: user10
sn: user10
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/user10
ncrcarea fiierului LDIF n directorul LDAP se va face cu ajutorul comenzii:
ldapadd c x D cn=admin,dc=exemplu,dc=ro W f
/var/tmp/user

Parametrii au urmtoarele semnificaii:


-c va fora continuarea chiar i n cazul erorilor
-x folosete autentificare simpl n loc de SASL
-D [text] folosete textul drept Distinguished Name
-W cere parol pentru autentificare n loc s fie specificat ca parametru
-f specific un fiier LDIF drept surs.
n cazul coninutului fiierului LDIF menionat anterior, putem identifica
urmtoarele tipuri de atribute:
cn common name
ou Organizaional Unit
dc domain component
sn surname
uid user ID
n final, trebuie creat o nou parol pentru utilizatorul user10 prin
intermediul utilitarului ldappasswd:
ldappasswd x D cn=admin,dc=exemplu,dc=ro W S
uid=user10,ou=Oameni,dc=exemplu,dc=ro
n urma executrii acestei comenzi, administratorul va trebui s aleag o
nou parol pentru utilizatorul user10, i n final s introduc parola pentru
admin.
OBSERVAIE: Crearea parolelor nu mai este necesar n cazul n care se
folosete Kerberos, din moment ce acesta va fi responsabil pentru stocarea
parolelor i autentificarea utilizatorilor.
Pasul 6. Instalarea i configurarea modulului NSS
Pentru a permite sistemului s recunoasc noul utilizator user10, trebuie
instalate urmtoarele pachete:
apt-get install libnss-ldap
Wizzard-ul de instalare va cere o serie de informaii referitoare la server-ul
LDAP, la care administratorul trebuie s rspund n felul urmtor:
LDAP server Uniform Resource Identifier ldap://192.168.2.102
adic adresa server-ului
Distinguished name of the search base dc=exemplu,dc=ro
adic componentele domeniului de care rspunde server-ul
LDAP version to use 3
Does the LDAP database require login No
Special LDAP privileges for root No
Make the configuration file readable/writeable by its owner only
No
Make local root Database admin No
Does the LDAP database require login No
Local crypt to use when changing passwords crypt

Modulul NSS trebuie configurat mai departe astfel nct s funcioneze


corespunztor prin adugarea liniilor urmtoare n fiierul /etc/libnssldap.conf (n cazul n care acestea nu exist deja):
base dc=exemplu,dc=ro
uri ldap://192.168.2.102
Dei v fi activ, modulul NSS nu va intra n mod implicit n aciune datorit
modului n care este configurat sistemul. Ca atare, trebuie modificat fiierul
/etc/nsswitch.conf pentru a schimba ordinea n care se verific sursele
pentru autentificare. n acest scop trebuie modificate urmtoarele dou linii
din cadrul fiierului nsswitch.conf:
passwd:
files ldap
group:
files ldap
n acest moment utilizatorul user10 este activ pentru sistem i poate fi
folosit. Verificarea se poate face prin comanda id user10 care ar trebui s
afieze informaii despre contul respectiv.
OBSERVAIE: Dac utilizatorul user10 nu este vizibil, motivul cel mai
probabil este serviciul nscd care ofer posibilitatea de caching pentru fiiere
precum passwd, group sau hosts. Pentru verificarea noului utilizator acest
serviciu trebuie oprit de regul temporar, prin executarea comenzii
/etc/init.d/nscd stop. n acest fel se va asigura citirea direct a fiierelor
importante.
Pasul 7. Instalarea i configurarea modulului PAM
Aa cum am menionat n seciunile anterioare, PAM (Pluggable
Authentication Modules) este n esen un mecanism de autentificare a
utilizatorilor. Problema principal a mecanismelor noi de autentificare este
aceea c toate daemon-urile care depind de acestea trebuie rescrise pentru
a suporta noile faciliti. PAM ofer o alternativ de dezvoltare a programelor
independent de modul de autentificare; aceste programe folosesc module
de autentificare pentru a ndeplini funciile acestora.
Instalarea modulului anterior a avut drept consecin imediat i instalarea
pachetului libpam-ldap, ns n cazul n care acesta nu a fost instalat din
diverse motive se poate instala folosind platforma apt. De asemenea, n
cadrul procesului de instalare, utilizatorul a trebuit s rspund la o serie de
ntrebri de configurare prin intermediul wizzard-ului de instalare acestea
sunt ultimele 3 ntrebri de la punctul anterior.
Pentru a asigura configuraia corect a modulului PAM, trebuie verificat
existena urmtoarelor dou linii n fiierul /etc/pam_ldap.conf:
base dc=exemplu,dc=ro
uri ldap://192.168.2.102
Liniile anterioare urmresc ideea de configurare prezentat pn n acest
punct. Vom modifica n continuare o serie de fiiere de configurare ale
modulului PAM cu atenie ns, pentru ca sintax este una foarte strict i
orice fel de greeal poate schimba radical configuraia. n acest scop,
trebuie modificate urmtoarele fiierele n modurile descrise:

Fiierul /etc/pam.d/common-account trebuie s arate n felul urmtor:


accountsufficient pam_unix.so
accountrequired pam_ldap.so
Fiierul /etc/pam.d/common-auth trebuie s arate n felul urmtor:
auth
[success=1
default=ignore] pam_unix.so
nullok_secure
auth
required pam_ldap.so
use_first_pass
auth
required pam_permit.so
Fiierul /etc/pam.d/common-session
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel

umask=0022

OBSERVAII: Modulul PAM necesit existena datelor despre un cont fie n


fiierul /etc/passwd fie n directorul LDAP, pentru ca procesul de
autentificare s poat fi finalizat. Reamintim pe aceast cale, faptul c prin
natura lor, conexiunile LDAP nu sunt criptate, deci pot reprezenta un risc de
securitate. Pentru securizarea procedurii de autentificare, consultai
seciunea dedicat de securitate. De asemenea, sistemele de operare
Microsoft, precum Windows XP/2000 nu vor ti s se autentifice folosind
altceva n loc de Microsoft Active Directory.
Exist posibilitatea configurrii staiilor ce folosesc MS Windows XP/2000
astfel nct acestea s poat folosi server-ul OpenLDAP pentru
autentificare, ns este nevoie de nlocuirea modulului de autentificare
nglobat n cadrul sistemului de operare (pentru fiecare staie n parte ce va
folosi protocolul LDAP pentru autentificare) prin urmrirea pasului urmtor.
Pasul 8. (OPIONAL) nlocuirea modulului de autentificare Windows
XP/2000
Acest pas se poate realiza folosind aplicaia pGina, cu site-ul disponibil la
adresa http://www.pgina.org. Arhitectura pGina este modular, fiind
folosite plug-in-uri pentru sarcini diferite. Administratorul va trebui s
descarce att programul pGina ct i colecia de plug-in-uri asociat i s
le instaleze n parte pe toate sistemele ce ruleaz Microsoft Windows ce vor
urma s foloseasc protocolul LDAP pentru autentificare. Pachetele
necesare
acestui
pas
pot
fi
descrcate
de
la
adresa
http://sourceforge.net/projects/pgina/files/ i sunt enumerate mai jos:
pGina Core -> pGina 1.8.8
Plugin Bundle -> Plugin Bundle 12-30-2006
La momentul scrierii acestui suport, versiunile pachetelor menionate anterior
erau ultimele versiuni oficiale. n cazul n care link-urile prezentate anterior
nu mai sunt valide, noile locaii de descrcare ale aplicaiei pot fi descoperite
accesnd site-ul principal. Dup descrcarea i instalarea pachetelor de mai
sus, folosind utilitarul pGina Configuration Tool vom configura plug-in-ul
ldapauth_plus.dll folosind urmtorii parametri:

LDAP Server adresa ip sau numele de sistem al server-ului LDAP


(conform scenariului urmrit pn acum aceasta va fi 192.168.2.102 sau
exemplu.ro).
Port 389 este port-ul standard
Admin user cn=admin,dc=exemplu,dc=ro
Admin pass parola utilizatorului admin de pe server
PrePend uid=
Append ou=Oameni,dc=exemplu,dc=ro
Dup configurarea tuturor parametrilor, trebuie bifat butonul Map Mode, i
apsat butonul OK. Odat cu repornirea sistemului pe care a fost instalat,
dialogul de autentificare normal va fi schimbat cu unul nou, care va permite
att autentificarea utilizatorilor locali ai sistemului, ct i conform
nregistrrilor din cadrul directorului LDAP. Este important de tiut ns c
aceast modificare va dezactiva procesul Fast User Switching i c
modulul original de autentificare al sistemului de operare poate fi restaurat
prin dezinstalarea aplicaiei pGina.

S-ar putea să vă placă și