Sunteți pe pagina 1din 18

Administrarea sistemelor Linux

       Cursul 10
Configurarea serviciilor sistemului – partea III

Dragoş Acostăchioaie

http://www.adt.ro
dragos@adt.ro
Serverul Web Apache

­ server Web = daemon care accepta conexiuni conforme HTTP
­ HTTP = protocol de tip cerere­raspuns, bazat pe TCP/IP, destinat
transferurilor de informatii hipermedia
­ Apache = cel mai raspandit server Web din lume (70% din piata)
­ Apache are o structura modulara, fiind alcatuit dintr­un server si o serie
de module, incarcate in mod dinamic
­ serviciul corespunzator poarta numele de httpd
­ fisierul de configurare este /etc/httpd/httpd.conf
­ directivele din fisierul de configurare se refera la configurari globale
­ pentru a efectua anumite configurari doar pentru o anumita zona
(director) din cadrul serverului, directivele trebuie incluse in cadrul
sectiunilor:
Serverul Web Apache (continuare)

­ <Directory> ... </Directory> ­ grupeaza mai multe directive care vor face
referire la un anumit director
­ <Files> ... </Files> ­ grupeaza mai multe directive, care vor face referire la
un anumit fisier
­ <Location> ... </Location> ­ gruparea se va face pentru un anumit URL
de pe server
­ gruparea unor directive poate fi realizata si prin plasarea unui fisier cu
numele .htaccess in directorul in care se doreste configurarea serverului,
continand directivele dorite (va avea efect si asupra subdirectoarelor din
cadrul directorului)
Serverul Web Apache (continuare)

­ Directive pentru identificarea serverului
ServerName – numele serverului (ex. www.infoiasi.ro)
(daca nu este specificat, este numele masinii)
ServerAdmin – adresa e­mail pe care serverul o va introduce in
mesajele de eroare trimise clientului
­ Specificarea locatiilor fisierelor
ServerRoot – directorul principal in care se gasesc fisierele de
configurare si jurnalele serverului (ex. /etc/httpd)
DocumentRoot – directorul principal in care se gasesc documentele
HTML (ex. /var/www/html)
UserDir – numele directorului in care se afla paginile Web ale
utilizatorilor (ex. fenrir.infoiasi.ro/~lug), implicit public_html
sau uneori html
Serverul Web Apache (continuare)

­ procesele Apache
User – utilizatorul sub care va rula serverul (ex. apache sau httpd),
nu trebuie sa fie root sau sa detine fisiere, interpretor de comenzi
Group – similar cu User
MaxClients – numarul maxim de cereri simultane (256)
MaxSpareServers – numarul maxim de procese care sunt in asteptare
(10)
MinSpareServers – numarul minim de procese in asteptare (5)
StartServers – numarul de procese care vor fi lansate la pornire (5)
Serverul Web Apache (continuare)

­ Configurarea retelei
BindAddress – adresa IP pe care vor fi acceptate cereri
Port – portul pe care sunt asteptate cererile (80)
Listen – accepta cereri pe mai multe adrese IP si porturi:
[ adresa_IP : ] port

­ Configurarea jurnalelor
­ cereri de accesare: /var/log/httpd/access_log
­ erori: /var/log/httpd/error_log
CustomLog, TransferLog – stabilesc formatul si fisierul in care va fi
scris jurnalul (relativ la ServerRoot)
ErrorLog – numele fisierului in care va fi scris jurnalul
HostNameLookups – jurnalizeaza si numele masinilor de pe care provin
cererile (genereaza trafic suplimentar!)
Serverul Web Apache (continuare)
Controlul accesului

­ in multe cazuri este necesara restrictionarea accesului la anumite
documente, prin intermediul unor nume de utilizatori si parole sau in
functie de adresa clientului Web
­ lista utilizatorilor si parolele lor este memorata intr­un mod similar cu
/etc/passwd
­ numele bazei de date de utilizatori poarte in general numele .htusers
­ este de preferat stocarea acestui fisier intr­o locatie sigura, daca este
posibil in afara directoarelor continand documente HTML (de exemplu,
in directorul specificat de ServerRoot) 
­ fiecare linie din acest fisier contine numele utilizatorului, urmat de
caracterul “:” si parola criptata a acestuia
­ gestionarea acestor fisiere se realizeaza cu ajutorul comenzii htpasswd
Controlul accesului (continuare)

­ comanda htpasswd
htpasswd [ optiuni ] fisier_passwd nume_utilizator
­ optiuni:
­c – creaza fisierul de parole (daca nu exista)
­m – cripteaza parola cu algoritmul MD5
­s – cripteaza parola cu SHA
­ pentru a acorda drept de acces mai multor utilizatori, se poate defini un
fisier care specifica definitii de grupuri, similar cu /etc/group
­ fiecare linie contine numele grupului, urmat de caracterul “:”, apoi
lista de utilizatori care fac parte din grup, separati prin spatiu
­ daca unui utilizator nu i s­a atribuit parola de acces, nu i se va permite
accesul, chiar daca este membru al unui grup cu drept de acces
Controlul accesului (continuare)

­ Directive pentru controlul accesului:
Allow from – masinile carora li se permite accesarea unei zone
(nume de masina, un nume de domeniu, o adresa IP, un inceput
de adresa IP sau o pereche adresa IP/masca de retea. “all” semnifica
orice masina)
Deny – specifica masinile care nu au acces la o anumita zona
(“all” = nici o masina)
Order – ordinea in care sunt evaluate directivele Allow si Deny
AuthUserFile – numele fisierului care contine baza de date de
utilizatori, creat de htpasswd (daca nu incepe cu “/”, este considerat
relativ la ServerRoot)
AuthGroupFile – fisierul care defineste grupurile
Controlul accesului (continuare)

AuthName – descrie zona restrictionata (va fi afisata pe navigatorul
clientului)
AuthType – are in mod normal valoarea Basic
Require – utilizatorii care vor putea accesa zona (din baza de date de
utilizatori htpasswd):
Require user lista – lista de utilizatori
Require group lista – lista de grupuri
Require valid­user – toti utilizatorii din fisierul passwd sau toti
membrii grupurilor din fisierul group
­ Exemplu:
AuthName “Doar pentru studentii FII”
AuthType Basic
AuthFile .htuser
Require valid­user
Serverul Web Apache (continuare)
Gazduire virtuala

­ gazduirea virtuala reprezinta folosirea unui singur server HTTP pentru
a deservi mai multe domenii
­ gazduire virtuala bazata pe nume/adrese IP
­ directive:
NameVirtualHost – adresele IP pe care se asteapta cereri
­ sectiunea <VirtualHost *> ... </VirtualHost>
­ trebuie sa contina obligatoriu directivele:
ServerName – numele serverului Web (domeniul gazduit)
DocumentRoot – locatia documentelor HTML pentru domeniu
Sistemul de baze de date PostgreSQL

­ PostgreSQL, MySQL – sisteme relationale de gestiune a bazelor de date,
conforme standardului SQL
­ acestea permit conectarea locala sau de la distanta a utilizatorilor
­ o sesiune Postgres ese alcatuita din trei componente:
­ un proces supervizor de tip daemon, numit postmaster
­ unul sau mai multe servere, cate unul pentru fiecare conexiune,
denumite procese postgres
­ aplicatia care utilizeaza serviciile SQL (cum ar fi psql)
­ primele doua componente se regasesc pe aceeasi masina
­ un asemenea ansamblu gestioneaza o colectie de baze de date aflate pe
o masina, numita cluster (in general aflat in /var/lib/pgsql/data/)
­ la prima pornire a daemonului postmaster se creaza structura initiala a
clusterului
Sistemul PostgreSQL (continuare)

­ efectuarea de operatiuni asupra tabelelor din bazele de date prin
intermediul comenzilor SQL se poate face cu psql
psql [ optiuni ] [ baza de date [ utilizator ] ]
­ optiuni:
­h masina – numele masinii pe care se afla baza de date
­p port – portul la care daemonul PostgreSQL asteapta cereri
­U user – utilizatorul cu care se face autentificarea
­ interfata psql este asemanatoare cu cea a unui interpretor de comenzi
­ suporta si o serie de comenzi interne:
\connect baza_de_date – inchide conexiunea curent si face conectarea
la o alta baza de date
\d [ tabela ] ­ afiseaza coloanele din componenta tabelei specificate;
daca nu este specificata, sunt afisate tabelele din baza de date
\list – afiseaza bazele de date din componenta clusterului
Sistemul PostgreSQL (continuare)

\o fisier – redirecteaza rezultatele interogarilor catre un fisier
\q – paraseste programul psql
Sistemul PostgreSQL (continuare)

­ fisierul de configurare al daemonului Postgres se gaseste in directorul
de date si poarta numele postgresql.conf
­ fisierul de configurare este recitit atunci cand daemonul primeste
semnalul SIGHUP
­ optiuni:
fsync – daca este true, va fi apelat fsync() la fiecare scriere pe disc
pentru a se asigura ca datele sunt scrise pe disc; creste siguranta
datelor, incetinind insa sistemul (false)
max_connections – numarul maxim de conexiuni acceptate de server
(32)
port – portul pe care vor fi asteptate cereri (5432)
tcpip_socket – daca este On, serverul va accepta conexiuni TCP/IP
(se pot face conexiuni de pe alte masini)
Serverul PostgreSQL (continuare)

shared_buffers – numarul de zone­tampon de memorie partajata folosite
de server (o zona = 8 Kbytes) (64)
sort_mem – dimensiunea memoriei folosite pentru sortarile interne,
inainte de a folosi fisiere temporare (512 Kbytes)
syslog – modalitatea de jurnalizare (1 = sistemul syslog + iesirea standard,
2 = syslog, 0 = iesirea standard, implicit)
syslog_facility – clasa de jurnalizare utilizata de syslog (local0)
Serverul PostgreSQL (continuare)

­ utilizatorii PostgreSQL sunt separati de utilizatorii Linux, si sunt
memorati intr­o tabela numita pg_shadow
­ crearea de utilizatori: createuser sau CREATE USER...
(su ­c postgres “createuser root”)
­ stergerea de utilizatori: dropuser sau DROP USER...
­ crearea/stergerea de grupuri: CREATE GROUP, DROP GROUP
­ gestionarea privilegiilor (SELECT, INSERT, UPDATE, DELETE):
GRANT, REVOKE
­ autentificarea clientilor se face prin fisierul de configurare pg_hba.conf,
aflat in directorul de date:
local baza_de_date metoda_autentificare
host baza_de_date adresa_IP masca_retea metoda_autentificare
hostssl baza_de_date adresa_IP masca_retea metoda_autentificare
Serverul PostgreSQL (continuare)

­ metoda_autentificare poate fi:
trust – este permis accesul oricarui utilizator de pe masina client
reject – conexiunea nu este permisa
password – utilizatorul trebuie sa introduca o parola (dupa cuvantul
“password” poate fi specificat numele fisierului cu utilizatori ­
acesta se gaseste in directorul de date si poate fi gestionat cu
pg_passwd)
md5 – similar cu password, dar parolele sunt trimise criptat prin retea
Exemplu:
local all trust
host all 10.0.0.0 255.255.255.0 md5