Administrarea sistemelor Linux Cursul 10 Configurarea serviciilor sistemului – partea III Dragoş Acostăchioaie http://www.adt.ro
[email protected]
Serverul Web Apache server Web = daemon care accepta conexiuni conforme HTTP HTTP = protocol de tip cerereraspuns, 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 dintrun 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)
... grupeaza mai multe directive care vor face referire la un anumit director
... grupeaza mai multe directive, care vor face referire la un anumit fisier
... 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 email 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 intrun mod similar cu /etc/passwd numele bazei de date de utilizatori poarte in general numele .htusers este de preferat stocarea acestui fisier intro 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 sa 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 validuser – toti utilizatorii din fisierul passwd sau toti membrii grupurilor din fisierul group Exemplu: AuthName “Doar pentru studentii FII” AuthType Basic AuthFile .htuser Require validuser
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
... 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 zonetampon 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 intro 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