Aplicatie Software Pentru Monitorizarea Sistemelor Linux

APLICAȚIE SOFTWARE PENTRU MONITORIZAREA SISTEMELOR LINUX

CUPRINS

CAP 1. INTRODUCERE

Context

Tema proiectului

CAP 2. TEHNOLOGII UTILIZATE

Generalități

Politici si Tehnici de securitate

Virtualizarea

Bash scripting

PHP

HTML

CSS

CAP 3. INSTALARE ȘI TESTARE

Instalarea si configurarea mediului de lucru

Securizarea serverului de monitorizare

Instalare intr-o incinta cu o topologie de retea de tip stea

CAP 4. CONCLUZII

Ce s-a realizat ?

Perspectiva dezvoltării

BIBLIOGRAFIE

CAP 1. INTRODUCERE

Context

Un sistem computerizat este constituit dintr-o placă de bază, processor, memorie și dispozitive de I/O. Într-un sistem de operare tipic Unix, utilizatorii se înregistrează pe sistem și rulează aplicații sau servicii planificate. Cateva aplicații rulează din scripturile RC, cateva din cron sau alt planificator de sistem. Majoritatea proceselor de sistem scriu în jurnalele de sistem. La fel ca orice sistem complex multe lucruri pot merge rău. De fapt primul lucru în monitorizare ar trebui să fie monitorizarea jurnalelor de sistem, dar aceasta este rareori sau extrem de rar facută cum trebuie.

Pentru un număr mare de sisteme este important pentru sănătatea administratorului să vadă situația în sistemele existente via unui panou central și a unui flux de alertă integrată. Deși monitorizarea nu este o soluție “one-size-fits-all” multe dintre sarcini pot fi standardizate în loc de a reinventa “roata” adoptată de la sisteme existente.

În cele mai mari organizații monitorizarea este departe de a fi rațională. Există multe infrastructuri de monitorizare infirme:

se foloseste un instrument scump care este mult prea complex pentru ca o organizație să il înteleagă cum trebuie, să il personalizeze și să il susțină. Aceasta este o situație destul de comună cu așa numitele “soluții-grele” cum este , CA Unicenter, Netcool, OpenView, etc. În acest caz un foarte complex și scump instrument oferă funcționalitatea unui shareware sau mai rău.

se folosesc multiple instrumente incompatibile pentru monitorizarea și depanarea diferitelor componente ale infrastucturii IT. De exemplu un instrument este folosit să monitorizeze servere, alte aplicații și JVMs, iar alt instrument specializat este folosit pentru Oracle și încă unul pentru monitorizarea dispozitivelor de rețea și încă unul pentru monitorizarea serverlor Unix. Aceasta este o situație tipică pentru multe corporații mari cand mana stangă nu știe ce face mana dreaptă iar infrastructura curentă este o adaptare a unui haos creat de achiziționări seriale. De multe ori asemenea unelte conțin componente redundante, scumpe care nu funcționează cum trebuie una cu alta.

Succesul unei soluții de monitorizare constă în alegerea unui nivel de complexitate ce este optim atat pentru administratorii de sistem cat și pentru fiecare componentă și parte a infrastructurii IT. Acest lucru este mai ușor de zis decat de făcut.

Dacă nivelul de complexitate depăsește limita de monitorizare sistemele devin de obicei stagnante iar oamenii sunt reluctanți în extinderea și adaptarea la noi sarcini. În loc de a fi o parte din soluție devine o parte din problemă monitorizarea. Aceasta este situație tipică pentru nivelul de complexitate pentru , Ca Unicenter or HP Open View. De exemplu, scrierea unor reguli pentru Tivoli TEC necesită cunoștințe de Prolog, limbaj prea putin utilizat de administratorii de sistem, cat si de Perl, destul de cunoscut printre aceștia. Adaptabilitatea înseamnă că sistemele de monitorizare open source ce folosesc doar Perl au multiple avantaje pe termen lung față de cele complexe deoarece Perl este limbajul pe care administratorii de sistem il folosesc în sarcinile de zi cu cu zi.

Se pot defini mai multe categorii de sisteme de monitorizare:

monitorizarea modificărilor de configurație ale sistemului. Această categorie include monitorizarea pentru schimbări la nivel hardware și în configurațiile software ce pot cauzate de upgrade-ul sistemului de operare, pachete aplicate sistemului, schimbări ai parametrului kernelului sau instalarea unei aplicații noi. Cauza rădăcină a problemelor sistemului poate fi de multe ori redusă la o schimbare nepotrivită a hardware-ului sau a configurației unui soft. De aceea, este importantă ținerea unor înregistrari ale acestor schimbări, pentru ca problema ce este cauzată de o schimbare poate rămane latentă pentru o perioadă lungă de timp înainte de a se manifesta. Adăugarea sau modificarea de dispozitive hardware neccesită de obicei ca sistemul să fie repornit, astfel modificările de configuratie pot fi urmărite indirect. Totuși, modificările de configurație software sau instalarea de aplicații noi nu sunt urmarite în acest fel.

monitorizarea erorilor de sistem. După asigurarea unei configurații corecte, primul lucru de monitorizate este starea globală a sistemului. Este sistemul “în picioare”? Poți “vorbi” cu el, să il ping-ui, să rulezi comenzi pe el, etc.? Dacă nu, este posibilă existența unei erori. Detectarea probemelor sistemului se întinde de la a determina dacă sistemul este “în picioare” pană la a determina dacă se comporta cum trebuie. Dacă sistemul nu este sus sau nu se comportă cum trebuie, atunci trebuie determinat care dintre componentele sistemului sau care dintre aplicații are vreo problemă.

monitorizarea utilizării resurselor sistemului. Pentru ca o aplicație să funcționeze corect are nevoie de anumite resurse de sistem cum ar fi cantitatea de CPU sau lătimea de bandă de I/O pe care aplicația trebuie să o folosească într-un anumit interval de timp. Alte exmple includ numărul de fișiere deschise sau socket-uri, segmente de mesaj, și semafoare de sistem pe care le are o aplicație. De obicei o aplicație precum și sistemul de operare are fixate limite pentru fiecare dintre aceste resurse, prin urmare monitorizarea lor este importantă. Dacă se epuizează sistemul poate să nu mai funcționeze corect. Alt aspect al utilizării resurselor este studierea cantității de resurse folosite de o aplicație. Probabil nu este dorită utilizarea a mai mult decat o anumită limită fixată de timp pentru CPU sau a unei limite fixate pentru spațiul de disc. Anumite unelte de administrare de resurse, cum ar fi quota, pot ajuta cu asta.

monitorizarea performanței sistemului. Monitorizarea performanței resusrselor sistemului pot ajuta în indicarea problemelor de funcționare ale sistemului. Gatuirile într-o anumită zonă de obicei afectează performanțele sistemului într-o altă zonă.CPU, memoria, și lățimea de bandă pentru I/O sunt resursele importante ce trebuie urmărite pentru gatuiri de performanță. A înțelege ce e “normal” ajută la identificarea momentului cand resursele sistemului sunt la minim, de exemplu în orele de “varf”. Sunt disponibile instrumente de administrare a resurselor ce pot ajuta în alocarea acestora aplicațiilor și utilizatorilor.

monitorizarea securității sistemului. Disponibilitatea sistemului poate fi afectată prin utilizare neautorizată. Performanța și controlul resurselor nu sunt de folos dacă sistemul este utilizat pentru scopuri greșite. Valoarea instrumentelor de securitate este de multe ori supraevaluată dar în doze mici pot fi utile și nu dăunatoare. De exemplu este ușor să monitorizezi pentru fișiere cu permisiuni de scriere globale și permisiuni greșite în directoarele de utilizator sau în directoare cheie pentru sistem.

monitorizarea jurnalelor de sistem. Aceasta este o zonă ce se suprapune cu fiecare dintre zonele descrise mai sus dar merită sa fie tratată separat. Jurnalele de sistem oferă o multitudine de informație despre sănătatea sistemului, dintre care majoritatea nu este folosită cum trebuie. De obicei monitorizarea jurnalelor este facută impreună cu integrarea unui flux de jurnalizare pe un server special de jurnalizare. Putini oameni înțeleg că fluxul mesajului către un server de jurnalizare central reprezintă un sistem de monitorizare distribuită decent și că în loc de a reinventa roata este posibilă dezvoltarea lui prin scrierea de sonde ce scriu mesaje către syslog. [www1]

Produsele de monitorizare scumpe și complexe au nevoie de personal dedicat iar investiția făcută în acest produs este foarte putin rambursată. Într-un fel vanzătorii dominanți s-au restricționat prin vinderea unor produse de o complexitate peste nivelul căruia ii poate face față un administrator normal.

Totuși aceste sisteme pot fi foarte scalabile, cum este de exemplu , în ciuda supra-complexării, dar flexibilitatea soluției și calitatea interfeței are de suferit mult. Și doar cu calitate mare și calificare a suportului tehnic acele sisteme pot fi menținute și răman stabile într-o intreprindere tipică cu sute servere de exemplu. Dar pentru o companie cu infrastructura IT medie o soluție astfel de complexă nu va avea succesul urmărit.

În orice organizație, utilitatea unui pachet monitorizare e limitată de abilitatea personalului să il aplice mediului. Pachetele cu o complexitate ce este mult deasupra posibilităților angajaților poate fi chiar dăunătoare.

Deoarece un training adecvat și foarte scump a acestor produse comerciale este adesea omis, nu este surprinzător că multe companii nu vor primi mai mult decat funcționalitățile de bază pentru un foarte scump și teoretic un foarte capabil produs. Iar o funcționalitate de bază este oferită mai bine de pachete gratuite.

Se poate vorbi de un paradox în monitorizarea sistemelor, și anume ca amandouă soluțiile, cea scumpă cat și cea ieftină de obicei oferă calitate foarte asemănătoare a monitorizării și amandouă oferă capabilități adecvate pentru o companie mare.

Păstrarea unui specialist de monitorizare bun este de asemenea o problemă deoarece odată ce acea persoană devine foarte bună în scriptare tind să meargă spre arii mai interesante.

Marii vanzători de sisteme de monitorizare nu doresc să investească în platforme de monitorizare bazate pe scripting simple, deoarece le-ar putea micșora profiturile. Dar trendul actual pe piață este că soluțiile de monitorizare bazate pe scripting devin din ce în ce mai puternice și dovedesc că pot fi competitive cu oferte complexe pre-compilate bazate pe Java.

Limbajele de scripting înving limbajul Java în aria produselor de monitorizare, deoarece majoritatea administratorilor cunosc aceste limbaje de scripting, informația este la îndemană, ceea ce înseamnă că training-urile nu se mai aplică, deci un avantaj. Depanarea produselor de monitorizare bazate pe script este mult mai simplă.[www2]

În acest context ideea dezvoltării unei aplicații software pentru monitorizarea sistemelor Linux a apărut din necesitatea găsirii unei soluții simple și personalizate unei companii mici, medii sau chiar a 2-3 sisteme legate între ele.

Definirea scopului și a obiectivelor proiectului s-a conturat în urma unei analize a contextului informațional aferent domeniului ales.

Principalele caracteristici ale acestei aplicații sunt următoarele:

simplitatea – ușurința în utilizare și depanare pentru un administrator cu cunoștințe de bază de scripting;

distribuirea – fiind dezvoltat pe o arhitectură de tipul client-server, aplicație permite monitorizarea de computere aflate în locații diferite;

vizibilitatea – vedere centralizată a întregii infrastructuri IT urmărite; informație statistică disponibilă printr-o interfață web;

cod customizabil – access total la codul sursă.

Este important pentru un sistem de monitorizare să funcționeze tot timpul și să ofere siguranța că face ceea ce a fost dezvoltat să facă, trebuie să nu fie invaziv.

Tema proiectului

Tema de proiectare aleasă este realizarea unei aplicații simple de monitorizare a sistemelor Linux. A ține evidența sistemului de fișiere Linux și a asigura că nu se umple este trivial, dar este un proces vital în administrarea de zi cu zi a sistemelor Linux.

Scopul unui administrator de sistem este să asigure că serverele sau diferitele sisteme functionează lin, să stie cat de incărcate sunt aceste sisteme/servere si cat de utilizate sunt acestea.

Ce urmărește această aplicație:

verifică daca sistemul este sus și funcționează

verifică dacă un serviciu funcționează

verifică dacă rulează procese

monitorizează resursele sistemului:

– încărcarea procesorului

– utilizarea spațiului de disc per sistem de fișiere

– utilizarea memoriei

– statusul pentru memoria de swap

Această monitorizare se va putea face în paralel pe mai multe sisteme Linux. Pentru fiecare dintre host-urile de Linux se vor inregistra informatii despre CPU, despre sistemul de fisiere si limitele sale de umplere, informatii despre memoria fizică si de swap a sistemului.

Accesul la informațiile oferite de sistemul de monitorizare se va face printr-o interfață web unde se vor afișa host-urile pentru care se face monitorizarea impreună cu un meniu de unde se poate selecta ce anume se dorește a vizualiza.

Colectarea datelor se va face la fiecare 1 minut de la host-urile monitorizate.

Toate aceste informații sunt obtinute prin intermediul comenzilor standard de Linux: vmstat, free, df, du, etc. adunate într-o serie de scripturi de bash.

Metrici folosite:

dimensiunea memoriei

utilizarea cpu-ului

dimensiunea spatiului pe disc

dimensiunea swap-ului

Fiind folosite pentru realizarea scripturilor comenzi ce se găsesc pe majoritatea sistemelor de UNIX, această aplicatie poate fi usor instalată si pe alte “arome" de Linux/Unix

Aplicația este imparțită astfel:

interfata web de vizualizare a tuturor host-urilor monitorizate;

scripturile distribuite pe host-urile ce vor fi monitorizate.

Rezultatul acestor shell scripturi, scripturi ce sunt dedicate fiecare in parte unui alt scop – pentru monitorizare memorie, cpu, spatiu pe disc, etc. – este preluat si transmis apoi către interfata web, si anume către partea ce interpretează aceste rezultate si le transformă in valori usor de citit de catre om.

Tehnologiile folosite pentru dezvoltarea acestei aplicații sunt:

bash scripting – programare de shell ;

php pentru interpretarea rezultatelor transmise de pe host-uri ;

pentru partea de manipulare a părții grafice, client-side, am folosit HTML, CSS.

Aceste tehnologii vor fi descrise în capitolul al doilea al acestei lucrări de licență.

Cerinte de sistem :

singura cerinta pentru aceasta aplicatie este ca ea sa fie instalata si rulata pe masini cu sisteme de operare Linux

de aseamenea pentru a putea interactiunea cu limbajul PHP, pentru a genera paginile de unde se pot vizualiza host-urile, trebuie configurat serverul de web Apache.

În continuare, în figura 1, se prezintă diagrama aplicației si interfata web :

Figura 1. Diagrama aplicatiei de monitorizare

CAP 2. TEHNOLOGII UTILIZATE

Generalități

Orice aplicație în care solicitantul acțiunii este un sistem de calcul (sau un proces) și executantul acțiunii este un alt sistem de calcul este o aplicație client / server.

Modelul client / server, figura 2, împarte aplicația de rețea în două părti: partea de client și partea de server. Prin definiție, partea de client a unei legături de rețea cere informații sau servicii de la partea de server. Partea de server a conexiunii răspunde cererilor clientului.

Figura 2. Model client/server

Tehnologia client/server pe care se bazează serviciul Web este de două tipuri :

pe două niveluri;

pe trei niveluri.

Arhitectura client / server [www4], figura 3, pe două niveluri împarte aplicația în două: clientul și serverul. Clientul este responsabil în primul rând cu prezentarea datelor către client, iar serverul este responsabil în primul rând de furnizarea serviciilor de date către client.

Figura 3. Arhitectura client / server pe două niveluri

Arhitectura client / server, figura 4, pe trei niveluri a apărut datorită complexității aplicațiilor care puteau fi desfășurate pentru terți sau mii de utilizatori.

Figura 4. Arhitectura client / server pe trei niveluri

Clientul este partea din această arhitectură care va iniția comunicarea. Este cel care va trimite o cerere către un server pentru a primi un răspuns, niște informații personalizate pentru cererea care tocmai a făcut-o, date în general. Clientul poate fi un browser de web care se conectează la un server web, poate fi un client de e-mail(gen Thunderbird sau Microsoft Outlook) care se conectează la un server de mail, trimite datele de autentificare pentru un cont de e-mail și cererea de primire a mesajelor noi, poate fi un client de FTP(gen Smart FTP sau Cute FTP) care va trimite unui server de FTP cererea de stocare pe acel server a unui fișier, urmat de fișierul în sine și va primi ca răspuns confirmarea primirii acestuia sau un mesaj de eroare corespunzător. Așadar clientul este cel care va acționa și va determină un întreg lanț de acțiuni din partea server-ului: inițiază cererea către server, așteaptă răspunsul de la server, primește răspunsul de la server și în final îl returnează utilizatorului posibil într-un mod formatat.

Un server, în general, este probabil cea mai pasivă, indolentă și comodă invenție de pe internet. Serverul nu are niciodată inițiativă, principala lui activitate este de a sta și de a aștepta. Serverul nu va acționa niciodată din cont propriu, nu va transmite date decât dacă este întrebat și decât dacă sunt urmate anumite reguli de comunicare. Cu toate acestea, odată “deranjat” un server va face tot posibilul să mulțumească cererea clientului. Când este pornit, un server va lua poziția de așteptare de conexiuni (numită mai tehnic: listening state), de regulă acesta ascultă pe un anume port primirea conexiunilor. La primirea unei astfel de conexiuni, deci implicit a unei cereri, el va face toate demersurile necesare pentru a returna rezultatul așteptat. Dacă este un server web, va întoarce clientului (browserul web) codul html al paginii care a fost cerută, dacă este un server de mail va returna clientului o listă cu toate email-urile pe care le-a primit de la ultima cerere, dacă este un server de MySQL va prelua interogarea SQL primită, o va executa și va returna setul de date rezultat. Așadar un server stă și așteaptă conexiuni pe care le va servi cererile de îndată ce au fost primite.

Nu trebuie înțeles că toate calculatoarele personale, laptopurile sau orice mașină folosită în mod frecvent de o ființă umană este un client și restul sunt servere. Noțiunea de client-server este întâlnită între oricare două mașini între care exista o cale de acces, o conexiune directă sau indirectă. De exemplu, să presupunem ca avem o mașină pe care ținem o bază de date MySQL, o mașină pe care o folosim ca web server (deci unde stocăm fișierele unui web site) și o mașină care va fi folosită drept client. Astfel, inițiem o cerere de la client către serverul web pentru a primi o anumită pagina în care vom vizualiza, de exemplu, produsele de pe un magazin online. [www3]

Un sistem de operare, prescurtat SO, reprezintă un produs de tip software care este parte componentă a unui sistem, echipament sau aparat computerizat, și care se ocupă de gestionarea și coordonarea activităților acestuia. Sistemul computerizat poate fi un computer, o stație de lucru (workstation), un server, un PC, un notebook, un smartphone, un aparat de navigație rutieră sau și un alt sistem cu "inteligență" proprie. Sistemul de operare joacă și rolul de gazdă pentru aplicațiile care rulează pe echipamentul (hardware-ul) respectiv.

Figura 5. Poziției sistemului de operare într-un sistem computațional

Exemple de sisteme de operare:

BSD

BS2000, BS3000

BeOS

DOS, PC-DOS, MS-DOS

Linux, AIX, HP-UX

Mac OS

OSEK-VDX

Solaris

Ubuntu

UNIX

webOS

Windows

z/OS

Nucleul (engleză: kernel) unui sistem de operare este componenta fundamentală a acestui sistem. Nucleul controlează accesul la diferitele resurse ale calculatorului și permite celorlalte componente — hardware și software — să interopereze.

Nucleul oferă mecanisme de abstractizare a resurselor hardware (materiale), în special în ceea ce privește memoria, microprocesoarelor, și transferurile de informație între programe și perifericele materiale. Nucleul autorizează de asemenea și alte abstracțiuni software și facilitează comunicațiile inter-proces.

Nucleul unui sistem de operare este el însuși un program, dar nu poate utiliza mecanismele de abstractizare pe care le oferă celorlalte programe utilizator. Diferite motive justifică această limitare. Printre alte cauze, gestiunea întreruperilor, a spațiului de adresă a memoriei virtuale. Rolul său central îi impune exigențe de performanță ridicate. Aceasta face din nucleu partea cea mai critică a unui sistem de operare și face ca și conceperea și implementarea sa să fie cât se poate de delicată.

Nucleul (kernel-ul) Linux este un nucleu monolitic. Cu toate acestea, spre deosebire de multe alte nuclee monolitice, driver-ii se pot încărca în memoria de lucru la utilizare, și se pot șterge de acolo ulterior, eliberând resursele utilizate, fără a necesita resetarea sistemului sau recompilarea nucleului. Facilitățile oferite de nucleu includ, printre alele,

multitasking real și complet,

suport pentru memorie virtuală,

distribuția executabilelor la scriere,

management avansat al memoriei,

suport avansat pentru TCP/IP (inclusiv rutare și filtrare),

până la un miliard de procese simultane,

sistem de sunet modularizat ( sau ALSA).

Nucleul este scris integral în C și poate fi compilat folosind compilatorul GCC.

GNU/Linux (prescurtat uneori doar ca „Linux”) este unul dintre cele mai cunoscute exemple de Software liber și dezvoltare de software Open source.

Software-ul liber (Open Source) e caracterizat de libertatea acordată utilizatorilor săi de a-l utiliza, copia, distribui, studia, modifica și îmbunătăți. Un avantaj direct al acestui mod de abordare, este dat de posibilitatea practic oricui de a consulta, corecta și îmbunătăți software-ul Open Source. Drept urmare, prin această metodă se produce în mod clar soft de o calitate mult mai bună decât cel comercial (după cum precizează și un raport recent al UN privind Open Source).

Termenul Linux se referă la nucleul Linux, dar este folosit în mod uzual pentru a descrie un întreg sistem de operare pentru calculatoare, compus din nucleul Linux, biblioteci software și diverse unelte. O "distribuție Linux" adaugă acestor componente de bază o mare cantitate de programe, organizate în „pachete”. Folosirea termenului „Linux” pentru întreg sistemul, deși foarte răspândită, este contestată de către Richard Stallman și Free Software Foundation (autorii Proiectului GNU, ale cărui produse sunt incluse în cea mai mare parte din distribuțiile Linux). Aceștia propun utilizarea termenului GNU/Linux ("GNU și Linux") sau GNU+Linux ("GNU plus Linux").

Nucleul Linux a fost dezvoltat inițial pentru microprocesorul Intel 386, dar în prezent rulează pe o mare gamă de microprocesoare și arhitecturi de calculatoare. Este folosit pe calculatoare de tip personal, pe supercomputere, dar și pe sisteme încapsulate (embedded ), cum ar fi unele telefoane mobile sau recordere video.

Inițial dezvoltat și utilizat de către programatori voluntari, Linux a câștigat suportul industriei IT și al marilor companii ca IBM, Hewlett-Packard, Dell, Sun Microsystems, Google, Novell sau Nokia, și a depășit ca folosire versiunile proprietare de Unix. Analiștii atribuie succesul sistemului faptului că este independent de furnizor, implementarea are un cost scăzut, iar securitatea și fiabilitatea sistemului sunt considerate de către specialiști drept foarte bune.

Dezvoltarea sistemului a fost începută de către inginerul finlandez Linus Torvalds, care inițial dorea să obțină un sistem similar cu Minix, dar fără limitările acestuia. Linux a fost dezvoltat sub Licența Publică Generală GNU GPL, astfel încât nu numai Linux însuși, dar și codul său sursă sunt disponibile tuturor celor interesați.

Sistemul Linux este un sistem de operare complet care conține practic orice tip de aplicație, de ex.:

Server – sistemul Linux conține un excepțional suport pentru rețea, oferind atat serviciile clasice: web, FTP, Mail cat și server de imprimante, server de fișiere (NFS) etc. Securitatea, fiabilitatea și stabilitatea acestui sistem confera acestuia posibilitatea de a fi utilizat pe servere High-end și in medii critice.

Personal – Linux ca sistem de operare pentru uz personal poate fi utilizat pentru redactare text, tiparire, navigare, mail, jocuri, chat, vizionare filme și audiție muzica, vizionare poze.

Servici – Linux folosit pentru serviciu (office), ofera o suita office (open office și altele), programe utile la web design, poate fi folosit ca unealta SEO, vizionare sau modificare poze, vizionare și modificare fișiere audio / video, o gama larga de instrumente pentru accesul la internet.

Educational – Linux folosit pentru domeniul educațional. EDUBUNTU – ofera multe aplicații pentru : pre-școlari, școlari, studenți, profesori. Este un sistem de operare care face din familia UBUNTU și este o alegere buna pentru copii, studenți, profesori și parinți.

Cele mai populare distribuții Linux sunt:

RedHat Linux – dezvoltat de RedHat Software – este cea mai raspandita distribuție de Linux, ce confera o mare ușurare de instalare și configurare. Programele (pachetele) se gasesc sub forma RPM (RedHat Package Management)

SuSE – dezvoltat de Novell Linux- este una dintre cele mai bune distribuții Linux. SuSE se folosește de YaST (Yet another system tool) și Sax, doua unelte de configurare foarte puternice.

Debian GNU/Linux – dezvoltat de Debian – este una dintre cele mai stabile distribuții de Linux. Distribuția Debian este recomandata numai utilizatorilor avansați de Linux, deoarece instalarea și configurarea necesita cunostințe de hardware și software avansate.

Slackware Linux – dezvoltat de Slackware Linux Project – ca și Debian este una din cele mai stabile distribuții de Linux. Aceasta distribuție ofera posibilitatea unei configurari puternice ale sistemului. Ca și Debian este recomandata utilizatorilor de Linux ce au cunoștinte avansate de Linux. In aceasta distribuție este foarte raspandita in lumea utilizatorilor de Linux.

UBUNTU Linux – Ubuntu este un sistem de operare construit de o echipa de dezvoltatori de experți la nivel mondial. Aceasta conține toate cererile care aveți nevoie: un browser web, Office, aplicații multimedia, mesagerie instant și multe altele. Echipat cu o interfața foarte prietenoasa și cu un design foarte frumos, aceasta distribuție de Linux este foarte ușor de instalat și conține foarte multe aplicații. Ubuntu este un open-source, alternativa la Windows și Office.

Specific sistemului de operare Linux, cat și celorlalte sisteme Unix, sunt shell-urile ( interpretoarele de comenzi ).

Parte integrantă a sistemului de operare UNIX, shell-ul este „un program special utilizat ca o interfață între utilizator și inima sistemului de operare UNIX, un program denumit “kernel”. În timp ce kernelul este încărcat în memoria calculatorului din momentul inițializării sale și până la oprirea sistemului, toate celelalte programe, inclusiv programele de tip shell sunt stocate pe disc.

Shell-ul este un program utilitar ce este pornit în momentul conectării utilizatorului la sistem, oferind posibilitatea utilizatorilor să interacționeze cu kernelul prin interpretarea comenzilor introduse fie direct de la tastatură, fie prin intermediul unui fișier de comenzi shell, numit fișier shell-script, sau, pe scurt, script.

În momentul conectării la sistemul UNIX shell-ul își ia „atribuțiile” în primire, îndeplinindu-și rolul de interpretor al comenzilor introduse de către utilizator și care trebuie „înțelese” de către kernel (este echivalentul interpretorului DOS command.com). În momentul introducerii unei comenzi, interpretorul de comenzi shell execută următorii pași:

(1) interpretează sintactic linia de comandă introdusă;

(2) interpretează metacaracterele, redirectările, mecanismele pipe și controlul

job-urilor și

(3) verifică existența comenzii/comenzilor introduse și dacă există, sunt executate.

Există posibilitatea utilizării shell-ului în două moduri: interactiv sau prin intermediul unui fișier script. La început, utilizatorii care învață comenzi și cum să folosească sistemul UNIX folosesc modul interactiv al shell-ului. Mai târziu, odată cu utilizarea unor comenzi în mod frecvent, se impune crearea unor fișiere de comenzi – acele fișiere shell-script. Execuția comenzilor prin intermediul unui shell-script înseamnă utilizarea shell-ului drept limbaj de programare. Prin analogie cu DOS/Windows, fișierele shell-script sunt fișiere de tip batch de comenzi, care în sistemul de operare DOS au extensia .bat.

Fișierele shell-script permit, pe lângă utilizarea mai multor comenzi ce se execută (de regulă) secvențial și facilități de programare avansată, structuri de decizie, ciclare, testare de fișiere, ș.a.. Printre programele utilitare existente în UNIX se află și grep, sed , instrumente deosebit de puternice pentru manipularea fișierelor și a rezultatelor comenzilor.

În UNIX există mai multe implementări ale interpretoarelor de comenzi, printre care:

Bourne Shell (sh) – AT&T shell

C Shell (csh) – shell

Korn Shell (ksh) – include shell-ul Bourne

Bourne Again Shell (bash – în Linux)

Toate aceste tipuri de shell se comportă aproximativ asemănător atunci când se lucrează în modul interactiv. Odată cu folosirea acestora ca limbaje de scripting (programare) apar o serie de deosebiri legate de sintaxă, eficiență etc. Dintre aceste tipuri de shell, shell-ul Bourne este shell-ul standard UNIX, de aceea vom prezenta pentru început caracteristicile shell-ului Bourne. De asemenea, majoritatea script-urilor scrise deja pentru administrarea sistemului (precum rc start și stop, shutdown) sunt shell-script-uri Bourne, iar când se lucrează în modul single-user (mod excepțional de lucru utilizat, de regulă, pentru refacerea sistemului) acesta este shell-ul utilizat de administratorul sistemului conectat ca root. Shell-ul Bourne a fost conceput de firma AT&T și el este rapid, concis și compact.

Politici si Tehnici de securitate

Securizarea server-ului Linux este foarte important pentru a protejarea datelor, clienților, proprietatea intelectuală, a timpului și nu în ultimul rând a banilor – de la mâinile unor crackeri (hackeri). Responsabil pentru securitatea sistemului Linux este Administratorul de sisteme.

#1: Criptați datele de comunicare

Toate datele transmise printr-o rețea este deschisă pentru monitorizare. Criptați datele transmise ori de câte ori este posibil, cu parola sau cu ajutorul certificatelor.

Utilizați SCP, SSH, rsync, sau SFTP pentru transferul de fișiere. De asemenea, este posibilă montarea la distanță a unu-i sistem de fișiere de tip server, sau propriul directoriu home folosind instrumente speciale ca sshfs.

GnuPG permite criptarea datelor, semnarea și comunicarea, dispune de un sistem flexibil de gestionare a cheilor, precum și module de acces pentru toate tipurile de liste publice cu chei.

Fugu este o interfață grafică pentru sistemul de comenzi Secure File Transfer Protocol(SFTP). SFTP este similar cu FTP, dar spre deosebire de FTP, întreaga sesiune este criptată, ce înseamnă că nici o parolă nu este transmisă sub formă de text clar și mult mai puțin vulnerabil la interceptarea unor terțe părți. O altă opțiune este FileZilla – un client cross-platform care acceptă FTP, FTP prin SSL/TLS (FTPS) și SSH File Transfer Protocol (SFTP).

OpenVPN este un soft popular eficient și ușor.

Lighttpd SSL (Secure Server Layer) Https instalare și configurare

Apache SSL (Secure Server Layer) HTTPS (mod_ssl) configurare și instalare

1.1: Evitați utilizarea FTP, Telnet și Rlogin/Rsh

În conformitate cu cele mai multe configurații de rețea, numele de utilizatori, parole, comenzile FTP/telnet/rsh și fișierele transferate pot fi capturate de oricine pe aceeași rețea folosind un sniffer de pachete. Soluție comună la această problemă este de a folosi fie OpenSSH, SFTP sau FTPS (FTP prin SSL), care adaugă criptare SSL sau TLS la FTP. Executați următoarea comandă pentru a șterge INS, rsh și alte servicii, deja depășite:

# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

# 2: Minimizează soft-turile pentru a minimiza vulnerabilitatea

Nu cred că ai nevoie de tot felul de servicii web instalate, așa că evitați instalarea software-ului pentru a nu cauza vulnerabilități inutile în software. Utilizați managerul de pachete RPM, cum ar fi yum sau apt-get și dpkg, up2date și yast, pentru a revizui toate seturile de pachete instalate în sistem. Șterge toate pachetele nedorite sau nefolosite.

# 3: Un serviciu de rețea pentru fiecare sistem sau VM

Pornește diferite servicii de rețea pe servere separate sau stații VM. Acest lucru limitează numărul altor servicii care pot fi compromise. De exemplu, dacă un atacator poate exploata cu succes un software, cum ar fi Apache, el/ea va primi acces la întregul server, inclusiv alte servicii cum ar fi MySQL, serverul e-mail ș.a.m.d.. Priviți cum se poate instala software de virtualizare:

* Instalarea și Setarea XEN Virtualization Software pe CentOS Linux 5
* Cum să setezi OpenVZ sub RHEL/CentOS Linux

# 4: Păstrați Nucleul Linux și Softul sa fie permanent reînnoit

Aplicarea patch-uri de securitate este o parte importantă în menținerea serverului. Linux oferă toate instrumentele necesare pentru a păstra sistemul actualizat, și de asemenea permite upgrade-uri între versiuni ușor de implimentat. Toate actualizările de securitate ar trebui să fie revizuite și aplicate cât mai curând posibil. Poți configura Red Hat/CentOS/Fedora Linux ca să trimită notificări despre sau cu ultimile actualizări prin e-mail. O altă opțiune este de a aplica toate actualizările de securizare printr-un cron job, automat. Sub Debian/Ubuntu Linux puteți utiliza apticron pentru a trimite notificări de securizare.

# 5: Utilizează Extensii Linux de securitate/Linux Security Extensions
Linux vine cu diferite patch-uri de securitate, care pot fi folosite pentru a protejarea împotriva greșelilor sau programelor compromise. Dacă e posibil, utilizează SELinux și alte extensii Linux de securitate pentru a impune limitări în rețea sau în alte programe. De exemplu, SELinux oferă o varietate de politici de securitate pentru kernel-ul Linux.

# 6: Conturile Utilizatorilor și Politica de Parole Puternice

Folosește comenzile useradd și usermod pentru crearea și menținerea conturilor de utilizatori. Asigurați-vă că aveți o politică de parole, buna  și puternică. De exemplu, o parolă bună include cel puțin 8 caractere lungime și amestec din alfabet cu litere mici și mari, cifre, caractere speciale. Cel mai important, alegeți o parolă care este ușor de reținut. Utilizează instrumente cum ar fi “John the Ripper” pentru a afla parolele slabe a utilizatorilor de pe server. Configurează pam_cracklib.so pentru a pune în aplicare politica de parole.

# 6.1: Îmbătrânirea parolelor

Comanda chage schimbă numărul de zile dintre modificările parolei și data ultimilor schimbări a acesteia. Această informație este utilizată de către sistem pentru a determina când un utilizator trebuie să  parola. Fișierul /etc/login.defs definește configurarea specifică pentru parolei, inclusiv configurarea de îmbătrânire a ei. Pentru a dezactiva imbatranirea parolelor, introduceți:

# chage -M 99999 NumedeUtilizator

Pentru a obține informațiile de expirare a parolei, introduceți:

# chage -l NumedeUtilizator

În cele din urmă, editați fișierul /etc/shadow în următoarele locuri:

{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:

Semnificații:

1. Minimum_days: numărul minim de zile necesare între modificările parolei, adică numărul de zile rămase după care utilizatorului să se permită schimbarea parolei.
2. Maximum_days: numărul maxim de zile a valabilității (după expirare, utilizatorul este forțat să schimbe parola).
3. Warn: numărul de zile înainte ca parola să expire, utilizatorul este avertizat că parola trebuie schimbată.
4. Expire: specificarea zilelor după care contul expiră și nu mai poate fi folosit.

Se recomandă comanda chage in loc de editare manuală a fișierului /etc/shadow:

# chage -M 60 -m 7 -W 7 NumedeUtilizator

# 6.2: Limitarea utilizării a parolelor anterioare

În Linux, puteți restricționa pentru toți utilizatorii să utilizeze sau reutilizeze aceleași parole vechi. Parametrul de memorizare a modulului pam_unix poate fi utilizat pentru a configura numărul de parole anterioare care nu mai pot fi refolosite.

# 6.3: Blocarea conturilor de Utilizator după câteva eșecuri de autentificare

Utilizați comanda faillog pentru a afișa înregistrările faillog sau să stabilliți limitele de autentificare eșuate. faillog formează conținutul a jurnalului de eșecuri din /var/log/faillog. De asemenea, el poate fi utilizat pentru controlul eșecurilor și limitelor. Pentru a vedea încercările de autentificare eșuate, introduceți:

#faillog

Pentru a debloca un cont, după eșecurile de autentificare, executați:

#faillog -r -u NumedeUtilizator

Aveți posibilitatea să utilizați comanda passwd pentru a bloca și a debloca conturile:

– lock account
# passwd -l numedeUtilizator
– unlock account
# passwd -u numedeUtilizator

# 6.4: Cum să aflu dacă conturile nu au parole?
Tastați următoarea comandă:

# awk -F: '($2 == "") {print}' /etc/shadow

Blochează toate conturile cu parole goale:

# passwd -l accountName

# 6.5: Asigurați-vă că nici un cont Non-root are UID setat la 0

Doar conturile root au UID 0 cu permisiuni complete de acces în sistem. Tastați următoarea comandă pentru a afișa toate conturile cu UID setat la 0:

# awk -F: '($3 == "0") {print}' /etc/passwd

Ar trebui să vedeți o singură linie:

root:x:0:0:root:/root:/bin/bash

# 7: Anulează autentificarea ca root

Niciodată nu vă autentificați ca root. Mai bine folosiți sudo când este necesar executarea comenzilor de nivel root. Sudo îmbunătățește securitatea sistemului fără a partaja parola de root cu alți utilizatori și administratori. Sudo prevede caracteristici de urmărire simple.

# 8: Securitate fizică a serverului

Trebuie să protejezi consola serverelor Linux de la acces fizic. Configurează BIOS-ul și anulează bootarea de pe dispozitive externe, cum ar fi DVD/CD/USB. Setează loader-ul grub în BIOS-ul cu parolă pentru a proteja aceste configurații. Toate serverele trebuie să fie încuiate în IDC (), precum și toate persoanele trebuie să treacă un fel de controale de securitate înainte de a accesa serverul. Vezi de asemenea și:

# 9: Dezactivează serviciile nedorite

Dezactivați toate serviciile inutile și daemon-urile (servicii care ruleaza pe fundal). De asemenea, alimină toate serviciile nedorite din sistemul start-up. Tastați următoarea comandă pentru a lista toate serviciile care sunt pornite în momentul boot-arii cu nivelul de execuție 3:

# chkconfig –list | grep '3:on'

Pentru a dezactiva serviciul, introduceți:

# service NumeServiciu stop
# chkconfig NumeServiciu off

# 9.1: Găsiți porturile ascultate de rețea

Utilizați următoarea comandă pentru a lista toate porturile deschise și programele asociate:

netstat -tulpn

sau

nmap -sT -O localhost
nmap -sT -O server.exemplu.com

Utilizați iptables pentru a închide porturile deschise sau a opri toate serviciile de rețea nedorite utilizând comenzile de mai sus,service și chkconfig.

# 10: Șterge X Windows

X Windows pe server nu este necesară. Nu există niciun motiv pentru a rula X Windows pe serverele dedicate mail și Apache. Puteți dezactiva și șterge X Windows pentru a îmbunătăți securitatea și performanța serverului. Editați /etc/inittab și setați nivelul de rulare la 3. În final, eliminați sistemul X Windows:

# yum groupremove “X Window System”

# 11: Configurează Iptables și TCPWrappers

Iptables este o aplicație pentru utilizator, care vă permite să configurați firewall-ul (Netfilter) propus de către nucleul Linux. Utilizați firewall-ul pentru a filtra și a permite numai traficul necesar. De asemenea, folosește TCPWrappers, un sistem de rețea ACL pentru a filtra accesul la Internet. Puteți preveni multe atacuri la servicii cu ajutorul Iptables:

# 12: Călirea nucleului Linux /etc/sysctl.conf

Fișierul /etc/sysctl.conf este utilizat pentru a configura parametrii nucleului. Linux citește și aplică setările din /etc/sysctl.conf în timpul bootării. Exemplu /etc/sysctl.conf:

# Controls IP packet forwarding
net.ipv4.ip_forward = 1
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

# 13: Separă partițiile discului

Separarea fișierelor sistemului de operare de la fișierele utilizatorului poate avea ca rezultat un sistem mai bun și sigur. Asigurați-vă că următoarele sisteme de fișiere sunt montate pe partiții separate:

/usr

/home

/var and /var/tmp

/tmp

Crează partiții separate pentru servere Apache și FTP. Editează fișierul /etc/fstab și asigură-te că există următoarele opțiuni de configurare:

1. noexec – previne executarea binarelor, dar permit scripturile
2. nodev – previne utilizarea dispozitivelor de fișiere, cum ar fi zero, sda etc.
3. nosuid –previne folosirea bitului setuid

/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2

# 13.1: Cotarea discului

Asigurați-vă că cotarea discului este activat pentru toți utilizatorii. Pentru a implementa cotarea pe disc, utilizați următorii pași:

1. Activează cotarea pe sistemul de fișiere prin modificarea fișierului /etc/fstab.
2. Remontă sistemului de fișiere.
3. Creați o bază de date a fișierelor cotate și generează tabelul de utilizare a discului.
4. Atribuie politici de cotare.

# 14: Dezactivarea IPv6

Internet Protocol versiunea 6 (IPv6) prevede un strat nou de Internet a protocoalelor TCP/IP, care inlocuieste versiunea Internet Protocol 4 (IPv4) și oferă multe beneficii. În prezent nu există instrumente de calitate care sunt capabile să verifice un sistem IPv6 pentru probleme de securitate. Atât timp cât configurarea rețelei nu are nevoie de el, dezactivează IPv6 sau configurează firewall-ul Linux IPv6:

# 15: Dezactivează binarele nedorite SUID și SGID

Toți biții SUID/SGID activate în fișiere pot fi utilizate în mod abuziv atunci când executabilii SUID/SGID are o problemă de securitate sau un bug. Toți utilizatorii locali sau de la distanță pot utiliza un astfel de fișier. Este o idee bună pentru a găsi toate fișierele respective. Utilizați comandă find:

# Vezi toate fișierele cu user id:
# find / -perm +4000
# Vezi toate fișierele cu grup id
# find / -perm +2000
# Sau combină ambele variante printr-o singură comanda
# find / ( -perm -4000 -o -perm -2000 ) -print
# find / -path -prune -o -type f -perm +6000 -ls

# 15.1: Fișiere World-Writable

Oricine poate modifica fișierele World-Writable ce rezultă ca problemă de securitate. Utilizați următoarea comandă pentru a găsi toate fișierele de acest gen:

# find /directoriu -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print

Este nevoie de investigat fiecare fișier raportat, de stabilit permisiunea corectă a utilizatorului și/sau a grupului de utilizatori, sau de eliminat fișierul.

# 15.2: Fișiere fără stăpâni

Fișierele care nu sunt deținute de către un oarecare utilizator sau grup pot cauza o problemă de securitate. Fișierele care nu aparțin unui utilizator sau grup valabil le găsești cu următoarea comandă:

# find /direcoriu -xdev ( -nouser -o -nogroup ) -print

Este nevoie de a investiga  fiecare fișier raportat și de atribuit unu-i utilizator, grup sau de de eliminat fișierul.

# 16: Folosește un Serviciu de Autentificare Centralizat

Fără un sistem de autentificare centralizat, datele de autentificare a utilizatorului devin incoerente, ceea ce poate conduce la  acreditări expirate și conturi uitate, care ar trebui eliminate în primul rând. Un serviciu centralizat de autentificare vă permite menținerea controlului central asupra conturilor și datelor de autentificare Linux/UNIX. Puteți să păstrați datele de autentificare sincronizate între servere. Nu utilizați serviciul pentru autentificare centralizat. Utilizați OpenLDAP pentru clienți și servere.

# 16.1: Kerberos

Kerberos face autentificarea ca un serviciu de încredere prin utilizarea de criptare secretă sub ipoteza că pachetele care călătoresc de-a lungul rețelei nesigure pot fi citite, modificate și insertate. Kerberos se bazează pe criptografia cu chei simetrice și necesită un centru de distribuție a cheilor. Puteți face autentificare de la distanță, copiere de la distanță, copierea fișierelor între sisteme și alte sarcini cu risc ridicat mai sigur și mai controlabil folosind Kerberos. Deci, atunci când utilizatorii se autentifică la serviciile din rețea folosind Kerberos, utilizatorii neautorizați care încearcă să adune parolele prin monitorizarea traficului de rețea sunt în mod eficient dezamăgiți. Vezi cum de setat și folosit Kerberos.

# 17: Securizează serverul OpenSSH

Protocolul SSH este recomandat pentru conectare de la distanță și pentru transfer de fișiere la distanță. Cu toate acestea, ssh este deschis pentru multe atacuri, motiv pentru care acesta trebuie securizat.

# 18: Instalează și folosește sistemul de detectare a intruziunilor nedorite

Un sistem de detectare a intruziunilor de rețea (NIDS) este un sistem de detectare a intruziunilor care încearcă să prevină activitățile rele, cum ar fi respingerea atacurilor asupra serviciului, scanarea de porturilor sau chiar încercări de pătrunde în computere prin monitorizarea traficului de rețea.

Este o practică bună de a verifica software-ul sistemului înainte de al elibera în mediul online. Dacă este posibil, instalează  software-ul AIDE înainte ca sistemul să fie conectat la orice rețea. AIDE este un sistem de detectare a intruziunilor care poate monitoriza și analiza computerul din interior.

Snort este un software de detectare a intruziunilor care este capabil să înregistreze pachetele și să analizeze traficul în timp real pe rețele IP.

# 19: Protejarea e-mail, fișierelor și a directoarelor

Linux oferă protecție excelentă împotriva accesului neautorizat la date. Permisiunile fișierului și MAC-ul previn accesul neautorizat la accesarea datelor. Cu toate acestea, setarea permisiunilor de Linux sunt irelevante în cazul în care un atacator are acces fizic la un calculator și poate muta pur si simplu hard disk-ul computerului la un alt sistem pentru a copia și analiza datele. Cu ușurință, puteți proteja fișierele și partițiile în Linux folosind următoarele instrumente:

* Pentru a cripta și decripta fișierele cu o parolă, utilizează comanda gpg.
* Parola Linux sau UNIX protejează fișierele cu openssl și alte unelte.
* ecryptfs.
* TrueCrypt este un software de criptare open-source pentru discurile cu Windows 7/Vista/XP, Mac OS X și Linux.

Virtualizarea

Virtualizarea este o tehnologie care partajeaza si aloca resursele hardware ale unui server in mai multe “masini virtuale”  (VM=virtual machine), operatiune care va permite sa aveti o rata de utilizare medie a resurselor fizice de 10 ori mai mare. Altfel spus, prin virtualizare hardware-ul se transforma in software si se creeaza posibilitatea rularii simultane a mai multor sisteme de operare pe un singur computer.

Astfel, salvati bani si timp, deoarece nu mai aveti nevoie de atatea echipamente hardware, lucru care se reflecta in scaderea bugetului IT aferent achizitionarii si operarii acestora si in reducerea platii facturilor la electricitate. In plus, managementul serverelor se va face centralizat. Virtualizarea creste exponential productivitatea angajatilor, permitand instalarea automata a softului si a aplicatiilor pe masinile virtuale, reactualizare si update dinamic, precum si reducerea la zero a timpului in care serverele sunt oprite pentru mentenanta.

Regulile de buna practica prescriu “o aplicatie per server”, deoarece mai multe aplicatii instalate simultan sunt in pericol de a se bloca, in cazul în care una are probleme. Pe termen lung, aceasta practica a rezultat in utilizarea a mai putin de 8% din capacitatea procesorului per server.

Aparitia virtualizarii a schimbat dramatic abordarea “traditionalista”. Astfel, in cazul in care o aplicatie inceteaza sa mai functioneze nu va antrena si caderea celorlalte, deoarece aplicatiile ruleaza pe masini virtuale independente, separate, chiar daca ele se afla pe acelasi spatiu fizic. Aditional, chiar daca serverul hardware se prabuseste, virtualizarea are functionalitatea de a trece virtual si in timp real toate informatiile pe un alt server.

Figura 6 Sistem Computational Fara si cu Virtualizare

Transforma-ti business-ul cu ajutorul virtualizarii!

Virtualizarea imbunatateste impresionant eficienta si disponibilitatea resurselor si aplicatiilor din organizatia Dumneavoastra.

Resursele interne sunt deseori subutilizate sub vechea abordare “un server = o aplicatie” si nu de putine ori, administratorii de sistem petrec prea putin timp pentru inovatie. Un data center automatizat, construit pe baza platformei VMware va ajuta sa performati mai rapid in piata si mult mai eficient decat ati facut-o vreodata. VMware livreaza resurse, aplicatii si servere exact la locul potrivit si la timpul potrivit.

Clientii VMware salveaza in general costuri de circa 50-70% din costurile IT prin consolidarea gamei de resurse si livrarea de masini cu disponibilitate ridicata.

Avantaje

Rulati mai multe sisteme de operare pe o singura masina (inclusiv Windows, Linux)

Rulati Windows virtual pe sistemul Mac pentru a va asigura rularea aplicatiilor Windows

Reduceti costurile totale prin cresterea eficientei consumului energetic, prin reducerea necesarului de hardware

Va asigurati ca aplicatiile dumneavoastra ruleaza cu o disponibilitate ridicata si cu performanta maxima

Asigurati planul de continuitate business prin solutii avansate de tip “disaster recovery”

Imbunatatiti sistemele de tip desktop control & management cu solutii de instalare rapida si prin reducerea numarului de incidente cauzat de incompatibilitatile software 

Cine este VMware?

VMware este liderul global al solutiilor de virtualizare. Compania si-a construit statutul prin valoarea adusa clientilor: reducerea costurilor operationale, asigurarea continuitatii afacerii si consolidarea securitatii mediului de business.

VMware are în prezent o baza de 170.000 clienti si se bucura de încrederea oferita de 98% din companiile în top Fortune 500, care si-au încredintat infrastructura de virtualizare platformei Vmware.
Începând cu 10 iunie 2009, Quartz Matrix a devenit partenerul oficial al companiei VMware, cu statut Enterprise, furnizând cu succes solutiile de virtualizare la un nivel înalt de competenta.

Cum functioneaza virtualizarea?

Platforma de virtualizare VMware este construita pe arhitecturi de tip business-ready. Utilizarea unui software WMware va ajuta sa transformati un calculator x86 intr-o unealta ce poate imparti resurse de tip CPU, RAM , HDD si  retea intre mai multe medii de operare. Fiecare masina virtuala contine un sistem complet, eliminand potentialele conflicte. Virtualizarea cu ajutorul VMware functioneaza prin introducerea unui nou layer software pe hardware-ul existent sau pe sistemul de operare existent. 

Reduceti costurile cu ajutorul infrastructurii virtuale!

Micsorati bugetul operational si imbunatati eficienta in operatiuni IT cu ajutorul produselor VMware. Consolidati infrastructura din compania dumneavoastra prin intermediul platformelor standardizate si cu ajutorul automatizarii. Clientii VMware au reusit sa inteleaga beneficiile acestei tehnologii si furnizeaza un mai bun management al capacitatilor IT, servicii de mai buna calitate si procese IT optimizate. VMware a dezvoltat un concept nou pentru toate acestea: Virtual Infrastructure. 

Ce este Virtual Infrastructure?

O infrastructura virtuala va ofera posibilitatea de a imparti resursele fizice ale mai multor computere in intreaga infrastructura IT. O masina virtuala va ofera sansa de a imparti resursele unui singur calculator chiar pentru mai multe masini virtuale, pentru o eficienta maxima. Puteti agrega intreaga infrastructura de servere x86 impreuna cu serviciile de tip retea si stocare intr-o baza larga de resurse care poate fi utilizata in comun de toate aplicatiile atunci cand trebuie si unde trebuie. Acest mod de alocare al resurselor ofera flexibilitate mare organizatiei dumneavoastra si va va micsora costurile operationale. 

 O infrastructura virtuala contine urmatoarele componente:

Bare-metal hypervisors (sisteme software instalate pe masinile fizice) ce permit virtualizarea oricarui calculator x86

Servicii de tip "virtual infrastructure" cum ar fi managementul resurselor sau backup consolidat pentru a optimiza resursele disponibile intre masinile virtuale

Solutii de automatizare care furnizeaza capabilitati speciale de a optimiza un proces IT cum ar fi cel de tip "disaster recovery" 

Beneficiile infrastructurii virtuale

Puteti beneficia de avantajele infrastructurii virtuale daca veti construi in medii productive infrastructuri bazate pe solutii VMware. VMware Infrastructure unifica resurse hardware pentru a crea o platforma dinamica impartita intre procesele ce necesita aceste resurse, cu sisteme incorporate de inalta disponibilitate si securitate pentru aplicatii. Suporta o gama variata de sisteme de operare si medii de aplicatie precum si infrastructuri de retea si stocare. VMware a realizat designul acestor solutii pentru a functiona independent de hardware-ul si software-ul utilizat.

Solutiile VMware ofera integrare hardware si software pentru toti furnizorii importanti de sisteme de management si pentru parteneri, pentru o plus valoare ce poate fi aplicata uniform pentru toate platformele de aplicatii si sistemele de operare. 

Obtineti mai mult de la platforma hardware existenta!

Clientii nostri raporteaza imbunatatiri exceptionale de cand au adoptat solutii de infrastructura virtuala incluzand si:

Rate de utilizare de 60-80% pentru servere x86 (fata de 5-15% pentru sisteme non-virtualizate)

Reduceri de cost de mai mult de 3 000$ pentru fiecare task major virtualizat

Abilitatea de a alimenta mediul de productie cu aplicatii noi doar in cateva minute, in loc de zile sau saptamani

85% imbunatatiri la reducerea timpului de non-functionare in cazul unor intreruperi neplanificate

Bash scripting

Interpretorul de comenzi al sistemului de operare Unix furnizeaza, pe langa posibilitatea de executare a comenzilor, un set de instrucțiuni care permite scrierea de programe asemanatoare celor scrise în limbaje de programare de nivel înalt. Firește, posibilitațile acestui limbaj sunt mult mai slabe decat cele ale unui limbaj ca C ori Pascal, dar exista aplicații în care efortul de programare este mult redus. Pe lînga comenzile "obișnuite", care apar în orice sistem de operare, Unix furnizeaza și o mulțime de utilitare, mai ales pentru fișiere text. Limbajul Shell este puternic și eficient pentru:

– aplicații a caror rezolvare implica mai multe operatii realizabile prin comenzi Shell;
– aplicații care manipuleaza date sub forma fișierelor text sau a liniilor de text;
– aplicații care cer consultarea directoarelor și parcurgerea sistemului de fișiere;

Nu în ultimul rand, atunci cand facem operații periodice care implica folosirea comenzilor Shell, putem sa ne automatizam munca prin crearea unui fișier de comenzi.

Vom numi fișier de comenzi orice secvența de comenzi memorata într-un fișier disc. Prin program Shell sau script vom întelege un fișier ce conține, pe lînga comenzi, structuri de control al execuției (insțructiuni repetitive și de decizie) și variabile.

Acest capitol prezinta cele mai importante concepte în programarea scripturilor sub Bourne Again Shell (BASH) , cel mai raspîndit în sistemul Linux. Pentru a programa sub alt shell, trebuie consultate documentațiile corespunzatoare, pentru a vedea care sunt diferențele.

Obiectele ce compun un script sunt:

– comenzi Linux;
– variabile:
– variabile definite de utilizator;
– variabile predefinite (sistem);
– variabile speciale;
– instrucțiuni de citire/scriere:
– read pentru citirea datelor;
– echo pentru afișarea datelor și mesajelor;
– instrucțiuni de decizie:
– if -instrucțiune de decizie simpla;
– case-instrucțiunea de decizie multipla;
– select-instrucțiune pentru crearea de meniuri simple;
– instrucțiuni iterative:
– for
– while
– until
– instrucțiuni de salt:
– break-ieșire forțata dintr-un ciclu
– continue-forțeaza continuarea unui ciclu pentru urmatoarea valoare a contorului

Dupa cum se observa nu exista o instrucțiune de salt necondiționat (goto), programele capatand astfel lizibilitate. Introducerea instrucțiunilor repetitive permite scrierea de programe structurate, spre deosebire de "limbajul" batch din sistemul de operare MSDOS.

Un script poate primi in linia de comanda argumente. De asemenea, se pot apela, din interiorul unui script, alte scripturi.

Scripturile pot fi scrise cu ajutorul unui editor de texte ca vi, ed, emacs. Apoi se stabilește dreptul de execuție a fișierului, numele sau putand fi folosit ca o comanda obișnuita. Shell-ul va executa fișierul comanda cu comanda.

Bash este un shell (interpretor de comenzi) specific sistemului de operare Linux, conceput sub auspiciile GNU. Denumirea este un acronim de la Bourne-Again Shell, după numele lui Steve Bourne, autorul shell-ului sh pentru UNIX, predecesorul bash-ului. Pentru sistemele de operare Linux, shellul implicit este bash Bourne Again Shell (bash) oferă o serie de facilități în plus față de shell-ul standard Bourne, atât la nivel de interpretor al liniei de comandă, cât și la nivel de limbaj de programare.

Printre altele, bash oferă istoric al comenzilor, alias-uri, auto-completarea comenzilor și a numelor de fișiere, editarea liniei de comandă, etc. Unele dintre aceste facilități sunt prezente și în shell-ul standard Bourne, însă proiectul GNU a extins shell-ul pentru a include un număr de noi facilități și pentru compatibilitate POSIX.

Odată cu realizarea variantei bash 2.x, au fost adăugate atât de multe funcționalități (unele din Korn shell și C shell), încât shell-ul bash reprezintă un shell complect funcțional atât la nivel de interpretor cât și la nivel de limbaj de programare.

Shell-ul bash s-a născut pe 10 ianuarie 1988 sub oblăduirea lui Brian Fox și a fost adoptat mai târziu de către Chet Ramey. Prima versiune a fost versiunea bash 0.99, iar cele mai importante îmbunătățiri au fost aduse odată cu versiunea 2.0. Toate versiunile sunt disponibile free sub licență publică GNU.

Pentru a vedea ce versiune de bash folosește, un utilizator poate folosi comanda bash –version sau poate afișa valoarea variabilei de mediu BASH_VERSION.

Următorul exemplu ne înfățișează o posibilă situație:

$ bash –version

GNU bash, version 2.04.11(1)-release (i386-redhat-linux-gnu)

Copyright 1999 Free Software Foundation, Inc.

$ echo $BASH_VERSION

2.04.11(1)-release

Pentru a scrie script-uri în Bash, este necesar sa dispuneți de un editor de text. Exemple: Gedit, Nano, MidnightCommander Edit. Un script în Bash trebuie obligatoriu să aibă prima linie de cod:#!/bin/bash deoarece trebuie să comunicăm sistemului de operare ce interpretor de comenzi utilizăm.
Bash este un limbaj de scripting compatibil cu comenzile de shell. El poate fi executat fie din input-ul standard, fie dintr-un fișier. Script-urile bash sunt de fapt niște fișiere text pe care le faci executabile, aceste fișiere putând fi editate cu orice editor de text. Aceste script-uri sunt folosite pentru a executa comenzi simple sau complexe.

PHP

PHP este un limbaj de programare. Numele PHP provine din limba engleză și este un acronim recursiv : Php: Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește în principal înglobat în codul HTML, dar începând de la versiunea 4.3.0 se poate folosi și în mod „linie de comandă” (CLI), permițând crearea de aplicații independente. Este unul din cele mai importante limbaje de programare web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de situri web și pe 1 milion de servere web. Este disponibil sub licenṭa PHP și Free Software Foundation îl considerã a fi un software liber.

PHP a însemnat inițial Personal Home Page. PHP a fost început în 1994 ca o extensie a limbajului server-side Perl, și apoi ca o serie de CGI-uri compilate de către Rasmus Lerdorf, pentru a genera un curriculum vitae și pentru a urmări numărul de vizitatori ai unui site. Apoi a evoluat în PHP/FI 2.0, dar proiectul open-source a început să ia amploare după ce Zeev Suraski și Andi Gutmans, de la Technion au lansat o nouă versiune a interpretorului PHP în vara anului 1998, această versiune primind numele de PHP 3.0. Tot ei au schimbat și numele în acronimul recursiv de acum, până atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski și Gutmans au rescris baza limbajului, producând astfel și Zend Engine în 1999. În mai 2000 a fost lansat PHP 4.0, având la bază Zend Engine 1.0.

PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft în aprilie 2002, apărând pe 9 din cele 37 milioane de domenii cercetate în studiu. De asemenea, există un grafic al creșterii folosirii PHP-ului pe site-ul oficial. Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor caracteristici :

• Familiaritatea : sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C;

• Simplitatea : sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale;

• Eficiența : PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul;

• Securitate : PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță;

• Flexibilitate : fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.;

• Gratuitate : este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.

PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca și C-ul, Perl-ul sau începând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinație a celor trei. Datorită modularității sale poate fi folosit și pentru a dezvolta aplicații de sine stătătorare, de exemplu în combinație cu PHP-GTK sau poate fi folosit ca Perl sau Python în linia de comandă. Probabil una din cele mai importante facilități ale limbajului este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2.

PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS X și poate interacționa cu majoritatea serverelor web. Codul dumneavoastră PHP este interpretat de serverul WEB și generează un cod HTML care va fi văzut de utilizator (clientului -browserului- fiindu-i transmis numai cod HTML).

Arhitectura tip LAMP a devenit populară în industria web ca modalitate rapidă, gratuită și integrată de dezvoltare a aplicațiilor. Alături de Linux, Apache și Mysql, PHP reprezintă litera P, deși unori aceasta se referă la Python sau Perl. Linux ocupă rolul de sistem de operare pentru toate celelalte aplicații, Mysql gestionază bazele de date, Apache are rol de server web, iar PHP are rol de interpretator și comunicator între acestea.PHP foloseste extensii specifice pentru fișierele sale: .php, .php3, .ph3, .php4, .inc, .phtml. Aceste fișiere sunt interpretate de catre serverul web iar rezultatul este trimis în formă de text sau cod HTML către browser-ul clientului. [Wel, 07]

Caracteristicile PHP sunt descrise sugestiv de figura 7:

Figura 7. Caracteristici PHP

HTML

HTML (HyperText Markup Language), creat în Elveția în anul 1989 este limbajul în care sunt scrise paginile World Wide Web (WWW).

Termenii "document HTML" și "pagina Web" sunt sinonime.

Hypertext reprezintă posibilitatea de a crea legături (în engleză – link) între diferite documente. Markup Language înseamnă "limbaj de etichetare". Multe din trăsăturile lui, cum ar fi independența față de platformă (un document poate fi afișat în mod asemănător de computere diferite), structurarea formatării și legăturile hipertext, fac din el un foarte bun format pentru documentele Internet și Web. Primele specificațiile de bază ale Web-ului au fost HTML, HTTP și URL.

Utilizarea HTML propune scrierea textului, tabelelor și referințelor la imaginile încadrate în pagina web, iar apoi se adaugă tag-urile HTML pentru a descrie amplasarea elementelor în pagină. Paginile Web pot fi vizionate prin intermediul unor programe speciale, numite browsere, care sunt capabile să interpreteze limbajul HTML. HTML dispune de un set predefinit de tag-uri, nu se pot crea tag-uri proprii.

Tag-urile HTML indică efectele aplicate diferitelor părți de pagină în browser (cum ar fi Netscape Navigator și Internet Explorer). Prima versiune HTML conținea mai puțin de 30 de tag-uri. Odată cu dezvoltarea web-ului, au apărut mai multe idei pentru îmbunătățirea acestuia. În cea mai recentă versiune sunt mai puțin de o sută de tag-uri de bază HTML. Implementarea efectelor dorite poate fi făcută și cu un numar mai mic decît acesta. Majoritatea tag-urilor HTML trebuie sa fie deschise <a>, apoi închise </a>.

HTML constă dintr-un standard de coduri care specifică în ce mod documentele vor fi afișate pe ecran de către navigatoare( limbajul de bază al WWW)

Limbajul prezintă o portabilitate deosebită, un document sursă HTML arătând identic pe orice tip de calculator și în orice tip de sistem de operare, sarcina interpretării sale revenind diferitelor navigatoare. De reținut că HTML este un limbaj în plină evoluție, astfel încât navigatoare diferite vor recunoaște seturi diferite de elemente HTML..

Hipertext înseamnă că orice cuvânt, frază, imagine sau alt element al documentului văzut de un utilizator (client) poate face referința la un alt document, ceea ce ușurează mult navigarea între multiple documente sau chiar în interiorul unui aceluiași document. Structurarea riguroasă a documentelor permite convertirea acestora dintr-un format în altul precum și interogarea unor baze de date formate din aceste documente.

CSS

CSS (Cascading Style Sheets) este un standard pentru formatarea elementelor unui document HTML. Stilurile se pot atașa elementelor HTML prin intermediul unor fișiere externe sau în cadrul documentului, prin elementul <style> și/sau atributul style.

In comparatie cu era anilor ‘90, cand controlul prezentării unei pagini se făcea prin tag-uri HTML, divizate între ele în mai multe fișiere, ce confereau o muncă enormă în cazul unei actualizări, CSS vine cu un nou standard, și anume că printr-un singur fișier ( o convenție între progamatori este să se folosească numele general 'style.css' ) – să fie controlat întreg aspectul proiectului WEB.

În acest moment, se pot folosi CSS-urile în două moduri, și anume interne sau externe.

Stilurile interne. Aceasa metodă înseamnă că veți plasa codul CSS în interiorul fiecărei pagini html pe care doriți să folosiți stilurile respective, între tagurile <head>…</head>. Folosind această metodă (stilurile interne), fiecare fișier (X)HTML va conține codul CSS folosit la stilizare. Asta înseamnă că atunci când doriți să faceți o schimbare de stil (mărimea fontului, culoare, etc) va trebui să operați modificarea în toate paginile ce conțin acel stil.

Stilurile externe. Un fișier CSS extern poate fi realizat cu orice editor simplu de text (Notepad, Wordpad, etc) sau cu editoare avansate gen Dreamweaver. Fișierul CSS nu conține sub nici o formă cod (X)HTML, ci doar cod CSS. Fișierul trebie salvat cu extensia .css. Inserarea fișierului extern în paginile (X)HTML se face foarte ușor, prin plasarea unui link (legătură) în secțiunea <head> </head> a fiecărei pagini pe care dorim să folosim stilul respectiv. Iată un exemplu de inserare a unui fișier extern .css într-o pagină (X)HTML: <link rel="stylesheet" type="text/css" href="Calea catre fisierul.css" />sau puteți folosi metodă de import după cum urmează:<style type="text/css">@import url( Calea catre fișierul.css )</style> .

Folosind metoda fișierelor CSS externe, toate paginile (X)HTML vor folosi același fișier de stil. Asta înseamnă că dca doriți să faceți o schimbare care să aibă efect în toate paginile, este de ajuns să modificați un singur fișier, și anume cel de stil (.css), și efectul se va observa pe toate paginile (X)HTML ce folosesc acel fișier

CAP 3. INSTALARE ȘI TESTARE

Instalarea si configurarea mediului de lucru

S-a instalat Fedora 17 ultimul release care va face obiectul mediului virtual si al serverului central de monitorizare totodata. Acesta va fi un server conectat la internet, dar si la reteaua locala in care se gasesc instalate serverele client si anume serverele monitorizate cu ajutorul softului nostru bazat pe scripturi. Acest server are si rol de server web deoarece vom instala Apache unde cu ajutorul unor scripturi in PHP vom configura o interfata grafica unde putem verifica statusul fiecarui server fara a fi nevoiti sa ne logam individual pe fiecare. Intr-un mediu cu mai putin de 10 servere, acest lucru nu impune probleme, dar cand numarul creste si avem cateva sute sau mii de servere, nu vrem sa facem acest lucru doar pentru ca am primit o alerta care poate fi o alerta falsa,temporara sau foarte putin importanta.

Dupa instalarea sistemului de operare Fedora pe serverul central , primul pas pe care il vom face este ca configuram SSH-ul pentru a ne putea conecta remote la linia de comanda.

Default, Fedora are serviciul de SSH disabled si inactiv. Vom schimba aceasta prin urmatoarele comenzi :

[root@centralmon /]# systemctl status sshd.service

sshd.service – OpenSSH server daemon

Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled)

Active: inactive (dead)

[root@centralmon /]# systemctl enable sshd.service

[root@centralmon /]# systemctl start sshd.service

Vom continua prin configurarea unui repository de care avem nevoie pentru instalarea pachetelor in mod automat si cu rezolvarea dependintelor. Yum este tool-ul pentru care se face repository si este folosit de foarte multe distributii de Linux bazate pe Redhat. Cei de la Novell care au dezvoltat Suse, au zypper ca tool pentru install-ul de pachete cu rezolvarea automata a dependintelor.

Cream un fisier de repository oficial de la Fedora:

[root@centralmon yum.repos.d]# cat /etc/yum.repos.d/fedora.repo

[fedora]

name=Fedora $releasever – $basearch

failovermethod=priority

#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

enabled=1

metadata_expire=7d

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

Dupa configurarea fisierului, trebuie sa ii dam enable sau sa facem update la yum .

[root@centralmon ~]# yum –enablerepo = fedora.repo

[root@centralmon ~]# yum update

Am instalat UltraVNC_1.0.9.5 pe laptopurile cu windows pentru a ne putea conecta la mediul grafic al server-ului nostru de monitorizare care este disponibil prin TigerVNC server. VNC-ul este Virtual Network computing si anume un tool care aduce interfata grafic prin retea catre orice calculator ce poate accesa serverul de VNC. Am avut nevoie de acesta pentru a putea scrie mai usor documentatia si a face printscreen-uri fara a fi nevoiti sa stam in fata serverului. Vrem ca totul sa se poata face remote pe acest server, de pe orice alt calculator conectat la Internet.

Pe server vom instala pachetul tigervnc-server pentru TigerVNC server si il vom configura. Avand repository configurat, pentru instalare trebuie doar sa rulam comanda de cautare a pachetului in repo si de instalare a lui.

[root@centralmon ~]# yum search vnc

[root@centralmon ~]# yum install tigervnc-server.i686

Trebuie de asemenea instalate fonturile in /usr/share/X11/fonts/misc pentru a putea accesa mediul grafic prin VNC.

[root@centralmon ~]# yum install xorg-x11-font*

Copiem fisierul de configurare care este dat ca exemplu la instalarea pachetului

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

Modificam sectiunea “Edit” a fisierului in felul urmator:

[Service]

Type=forking

# Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

ExecStart=/sbin/runuser -l monitor -c "/usr/bin/vncserver %i"

ExecStop=/sbin/runuser -l monitor -c "/usr/bin/vncserver -kill %i"

Setam o parola pentru userul “monitor” ce va accesa serverul prin VNC

[monitor@centralmon ~]$ vncpasswd

Password:

Verify:

Pornim serverul de VNC

[root@centralmon ~]# systemctl start vncserver@:1.service

Daca se fac modificari in fisierul de configurare, spre exemplu schimbam rezolutia, trebuie sa dam reload

[root@centralmon ~]# systemctl –system daemon-reload

Activam serviciul de vncserver pentru a porni automat la reboot vncserver@:1 pe portul 5901

[root@centralmon system]# systemctl enable vncserver@:1.service

ln -s '/etc/systemd/system/vncserver@:1.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:1.service'

Verificam daca serverul de VNC asculta pe portul 5901 care este portul 5900+numarul display-ului (1 in cazul nostru).

[root@centralmon ~]# netstat -ntl |grep 590*

tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN

Instalati Development Files for libcanberra Client Development pentru a scapa de eroarea

“Failed to load module pk gtk”

[root@centralmon ~]# yum install libcanberra-devel.i686

De pe orice server care are instalat UltraVNC Viewer ne putem conecta remote la Desktop-ul de Fedora folosind IP-ul 192.168.0.103 portul 5901 sau folosind IP-ul extern pe care il primeste routerul de la ISP.

Deoarece provider-ul de internet nu aloca IP-uri permanente , am folosit un serviciu free de DNS dinamic unde ne-am inregistrat domeniul hostname-ul serverului sub forma

linux-monitor.no-ip.info .

Configurand un router cu firmware custom de linux numit DD-WRT , am pornit serviciul DDNS catre NO-IP.com care va monitoriza orice schimbare de IP extern si va face update la la inregistrarea din DNS pentru linux-monitor.no-ip.info.

Fisierul de configurare este tinut pe router

root@DD-WRT:/tmp/ddns# cat /tmp/ddns/inadyn.conf

–background –dyndns_system custom@http_svr_basic_auth -u linux-monitor -p passwordM0nitor!@#$dnscheck -a linux-monitor.no-ip.info –update_period_sec 600 –forced_update_period 864000 –log_file /tmp/ddns/ddns.log –cache_dir /tmp/ddns –exec ddns_success –dyndns_server_name no-ip.com

La aceasta parte de configurare a router-ului am adaugat si forwarding de porturi , astfel incat anumite porturi accesate prin IP-ul transfera traficul catre serverul nostru central de monitorizare. Faptul ca serverul este in spatele unui router si numai anumite porturi sunt asignate catre el , il face sa fie mult mai sigur.

Astfel , pentru inceput vom face forward la porturile 4433 catre 22 pentru a ne conecta prin SSH la linia de comanda si la portul 5901 pentru a ne conecta folosind XVnc la interfata grafica.

Majoritatea serverelor ruleaza in runlevel 3, adica fara mediu grafic.

Restul configurarilor o sa le facem din command line folosindu-ne de Putty, un tool ce ajuta la conectarea prin protocolul SSH pe portul 22 la server.

Incepem instalarea vmware player pentru configurarea mediului virtual in care vor fi clientii monitorizari. Incepem prin instalarea dependintelor necesare comilarii modulelor volosite de vmware in linux.

# yum -y install make patch gcc kernel-headers kernel-devel

Installed:

gcc.x86_64 0:4.7.0-5.fc17

kernel-devel.x86_64 0:3.3.7-1.fc17

kernel-headers.x86_64 0:3.3.7-1.fc17

patch.x86_64 0:2.6.1-12.fc17

# yum -y install build-essential linux-headers-`uname -r`

Descarcam ultima versiune de player de masini virtuale de la vmware si anume VMware-Player-4.0.3-703057.x86_64.bundle. Acest bundle trebuie facut executabil pentru a putea rula.

# chmod +x VMware-Player-4.0.3-703057.x86_64.bundle

# ./VMware-Player-4.0.3-703057.x86_64.bundle

Avand ultimele versiuni de VMware si de Fedora Linux , trebuie sa aplicam patch-uri pentru a putea rula cu succes compilarea modulelor de vmware player.

Ne dam seama de acest lucru din urmatoarele erori :

“Unable to start services. See log file /tmp/vmware-root/mdconfig-23331.log for details“.

Se pot vedea mai multe detalii in log-uri.

[root@centralmon OS images]# grep -i failed /tmp/vmware-root/modconfig-5308.log | tail -3

2012-06-10T16:26:00.007+02:00| vthread-3| I120: Failed to find /lib/modules/preferred/build/include/linux/version.h

2012-06-10T16:26:00.007+02:00| vthread-3| I120: Failed version test: /lib/modules/preferred/build/include/linux/version.h not found.

2012-06-10T16:26:21.671+02:00| vthread-3| I120: Failed to compile module vmnet!

Scoatem fixul(patch-ul) , dezarhivam si rulam scriptul ce va comlila si modulele automat.

# wget http://webupd8.googlecode.com/files/vmware802fixlinux320.tar.gz

# tar -xvf vmware802fixlinux320.tar.gz

# cd /vmware802fixlinux320; ./patch-modules_3.2.0.sh

Sa rulam acum VMware Player pe Fedora si sa cream niste masini virtuale in care vom instala tot linux, dar RedHat Enterprise Server Linux sau CentOS care este copia RedHat-ui oferita gratis de catre o comunitate de iubitori ai Linux-ului ce au preluat kernel-ul (nucleul sistemului de operare Linux) si l-au modificat.

# vmplayer &

Se creeaza scheletul masinii virtuale unde se va instala sistemul de operare.

Acestea sunt configurarile unui dintre sistemele virtuale. Ele sunt identice :

1CPU – 1GB RAM – 8GB HDD – 1 DVD ROM – 1 NIC pe bridge (IP prin DHCP de la router la fel ca si serverul central, pentru a fi in aceeasi subretea. Deci nu vmware asigneaza IP folosind NAT asa cum este setat default).

Pornim cele 2 servere virtuale si le lasam sa ruleze in VMware player.

Mai facem o configurare pe router la serviciul de DHCP pentru a ne asigura ca IP-urile ce le asigneaza atat serverului central cat si clientilor, sunt permanente. Facem acest lucru prin memorarea de catre acesta a MAC-urilor placilor de retea pentru cele 3 sisteme.

Dupa ce sistemele ce vor fi monitorizare sunt „up and running”, continuam cu configurarea serverului de monitorizare prin instalarea unui LAMP server (Linux Apache MySQL PHP).

# yum install httpd php php-common

Installed:

httpd.x86_64 0:2.2.22-4.fc17 php.x86_64 0:5.4.3-1.fc17

php-common.x86_64 0:5.4.3-1.fc17

Dupa instalare , pornim serverul de Apache si anume serviciul httpd si configuram sa porneasca automat dupa reboot.

# systemctl start httpd.service

# systemctl enable httpd.service

Instalam modulele de PHP pentru Fedora 17 , de asemenea din repository-ul oferit de download.fedoraproject.org

# yum install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

Verificam serverul apache si instalarea corecta a php-ului cu un mic test si anume crearea unui script scurt in php care sa ne dea informatii despre versiunea de PHP folosita:

#vi /var/www/html/info.php  

<?php

phpinfo();

?>

Salvam fisierul, deschidem un browser de pe server si accesam unul din urmatoarele link-uri:   http://localhost/info.php

http://127.0.0.1/info.php

Dupa cum se poate observa in imaginea de mai jos, totul este pregatit pentru monitorizarea grafica intr-o pagina web.

In urmatorul screenshot s-a verificat functionarea unei pagini simple html cu o singura linie.

Acum incercam si din Internet deoarece am configurat pe router sa facem forward portului 8080 de pe linux-monitor.no-ip.info catre portul 80 al server-ului centralmon pe IP-ul 192.168.1.103.

Pentru a putea rula scripturile , serverul central trebuie sa se conecteze automat la clienti pentru a putea copia logurile pe care le parseaza cu ajutorul scripturilor php si bash.

Vom face acest lucru utilizand chei de SSH.

Pe serverul cetral vom genera chei cu criptare RSA , o cheie privata si una publica. Pe cea publica o vom transmite serverelor monitorizate si o vom salva in fisierul ~/.ssh/authorized_keys .

[root@centralmon servmon]# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is: 8b:93:9c:cc:9d:43:9a:28:81:da:3b:b5:6d:ab:5f:67 root@centralmon The key's randomart image is: +–[ RSA 2048]–-+ | | | | | | | . | |. . S | |.. ..= O o | |. o..o@ * E | | .o. oo + | | …+o. | +––––––+

[root@centralmon servmon]# ssh-copy-id -i ~root/.ssh/id_rsa.pub client1

root@client1's password:

Now try logging into the machine, with "ssh 'client1'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.

[root@centralmon servmon]# ssh-copy-id -i ~root/.ssh/id_rsa.pub client2

root@client2's password:

Now try logging into the machine, with "ssh 'client2'", and check in: ~/.ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.

Deorece nu avem un server de DNS configurat , vom introduce urmatoarele linii in fisierul /etc/hosts pe fiecare server :

client1

client2

servermon

Acest lucru face posibila comunicarea serverelor folosind hostname si nu IP.

Incepem prin pregatirea clientilor si punem folderul servermon in home-ul userului root care va executa scripturile. Aceste scripturi nu pot fi rulate decat cu userul “root” sau cu un alt user ce are aceleasi privilegii dar numai folosind si sudo (Superuser do)

[root@centralmon servmon]# rsync –avzr servermon root@client1:~root/

[root@centralmon servmon]# rsync –avzr servermon root@client2:~root/

Modificam permisiunile scripturilor pentru a le face executabile

[root@client1 /]# for i in `ls ~root/servermon/scripts/ |grep sh ` ; do chmod +x $i ; done

Acum testam pe unul din clienti sa vedem ca scriptul functioneaza si ne da rezultatul dorit.

[root@client1 /]# sh ~root/servermon/status.sh

[root@client1 /]# cat ~root/servermon/status/client1.status

Statusul obiectelor pe 11 Jun 2012 ora 06:26

Filesystem /data is not mounted

Filesystem / is over the limit(10%)

Time is not synchronized!

Object http is not running!

Dupa cum se vede, avem un status asupra serverului. Acum trebuie sa configuram serviciul cron sa ruleze acest script in fiecare minut pentru un status “up to date”. Cu urmatoarea comanda ediatam cron-ul pentru userul root.

[root@client1 /]# crontab -e

* * * * * /bin/sh /root/servermon/status.sh

Trebuie sa resetam demonul de cron pentru ca modificarile sa fie facute instant.

[root@client1 /]# /etc/init.d/crond restart

Am observat ca data si ora nu sunt sincronizate. Sa pornim serviciul de NTP care se conecteaza la serverele de NTP de la RedHat si sa il facem persistent dupa reboot:

0.rhel.pool.ntp.org

1.rhel.pool.ntp.org

2.rhel.pool.ntp.org

[root@client1 status]# /etc/init.d/ntpd start

[root@client1 status]# chkconfig ntpd on

[root@client1 status]# ntpq -np

remote refid st t when poll reach delay offset jitter

91.216.151.2 80.96.120.253 2 u 42 64 1 21.313 -107950 0.001

93.190.144.28 80.96.120.252 2 u 41 64 1 12.102 -107950 0.001

89.149.54.18 131.107.13.100 2 u 40 64 1 12.934 -107950 0.001

127.127.1.0 .LOCL. 10 l 39 64 1 0.000 0.000 0.001

Repetam aceeasi procedura si pentru sistemul client2 .

Continuam cu configurarea scripturilor pe partea de server central.

In /var/www/html/servmon vom avea scripturile in PHP si BASH . Cel care ne intereseaza cel mai mult sa ruleze si sa preia date de pe servere este getstatus.sh pentru care vom creea o intrare in cron.

[root@centralmon ]# crontab –e

* * * * * /bin/sh /var/www/html/servmon/getstatus.sh

[root@centralmon ]# systemctl restart crond

[root@centralmon ]# systemctl enable crond

Acum sa verificam overview si statusul serverelor folosind pagina web.

Cu un click pe unul din host-uri, ne sunt afisate mai multe detalii legate de erori.

Securizarea serverului de monitorizare

Doar serverul de pe care se va face monitorizarea tuturor celorlalte sisteme Linux trebuie securizat deoarece este singurul spre care se realizeaza accesul din internet folosind politici de port-forwarding setate pe router. Vrem ca in orice moment un administrator de sistem sa se poata conecta pentru a verifica situatia serverelor din administrare. Deoarece legatura la internet permite oricui sa incerce sa se conecteze la server sansele ca un intrus sa incerce sa patrunda in retea cresc iar pericolul ca date importante despre intreaga retea locala sa fie furate face ca o securizare cat mai eficienta sa fie un imperativ.

Pentru ca metodele de a securiza un server sunt numeroase, asa cum se arata in capitolul 2, subcapitolul 2.2 (Politici si Tehnici de securitate) si aplicarea acestora este un proces de lunga durata, in sectiunea de fata se va insista pe securizarea iptables, aceasta fiind mai dificil de inteles si cel mai puternic. Iptables este un firewall folosit pe linux si pe rutere pentru securizarea accesului.

Firewall-ul de pe serverul Central de Monitorizare este format dintr-o succesiune de comenzi iptables. Iptables este instrumentul care controleaza netfilter, firewall-ul din kernelul linux. Iptables este un firewall foarte puternic. Pe langa filtrarea dupa sursa/destinatia pachetului IP sau portul, el poate face si NAT (Network Address Translation), redirectionarea porturilor, modificarea headerului TCP/IP (mangle), sau chiar filtrare layer 7 folosind l7filter sau ipp2p.

Structura iptables este destul de greoaie si necesita cunoasterea principiului de functionare al acestuia.

Exista 3 tabele scrise cu litere mici iar pentru chain-uri se folosesc majuscule:

filter – tabelul cel mai folosit si cel implicit, cu el putem filtra pachetele IP dupa sursa/destinatie, numar port, etc…

Tabelul filter are 3 chainuri de filtrare:

o INPUT – pachetele destinate firewallului

o OUTPUT – pachetele care ies din firewall

o FORWARD – pachete care sunt destinate unei masini accesibile printr-o alta placa de retea a firewallului, cum ar fi o masina din reteaua locala

nat – aici se face … NAT, pentru partajarea unei conexiuni la internet sau alte configuratii mai complicate.

Tabelul nat are 3 chainuri de transformare:

o PREROUTING – adresele se translateaza inainte de routare, aici se face DNAT, schimbarea destinatiei pachetului IP

o POSTROUTING – adresele se translateaza dupa routare, aici se face SNAT, schimbarea sursei pachetului IP

o OUTPUT – folosit la chestii mai avansate

mangle – aici se pot modifica optiuni din headerul TCP/IP sau se pot marca pachetele pentru QoS sau alte scopuri.

Tabelul mangle are 5 chainuri:

o PREROUTING – aici intra pachetele inainte sa fie routate

o POSTROUTING – aici intra pachetele dupa ce au fost routate o INPUT – pachete care sunt destinate firewallului

o OUTPUT – pachete care ies din firewall

o FORWARD – pachete care sunt destinate unei masini accesibile printr-o alta placa de retea a firewallului, cum ar fi o masina din reteaua locala.

Diagrama fluxului de pachete prin netfilter

In cazul nostru, fisierul de configurare de firewall ar fi urmatorul:

# touch /etc/rc.d/rc.firewall

# chmod 755 /etc/rc.d/rc.firewall

# vi /etc/rc.d/rc.firewall

Vom incepe sa introducem principalele valori pentru ca acest fisier. In faza incipienta putem porni procesele necesare pentru functionarea in prealabil a server-ului nostru ca si router:

#!/bin/bash

Script de firewall

procesele pe care le dorim la pornirea server ului

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter

echo "0" > /proc/sys/net/ipv4/conf/all/arp_filter

echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all

echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "0" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

echo "0" > /proc/sys/net/ipv4/tcp_ecn

echo "1" > /proc/sys/net/ipv4/tcp_abort_on_overflow

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

Incepem seria de configurari a firewall-ului cu stergerea regulilor default pentru a putea seta numai ce dorim cu adevarat:

# iptables –F

# iptables –X

# iptables -t nat –F

# iptables -t nat -X

# iptables -t mangle –F # iptables -t mangle –X # iptables -t raw –F

# iptables -t raw –X

Incepem sa setam cateva reguli pentru ssh, pachete fragmentate, flood, etc:

iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP

# SSH protection

iptables -N ssh-protect

iptables -A INPUT -p TCP –dport 22 -j ssh-protect

iptables -A INPUT -p UDP –dport 22 -j ssh-protect

iptables -A ssh-protect -s 123.456.789.012 -j ACCEPT iptables -A ssh-protect -j DROP

# De retinut: 123.456.789.012 -> de inlocuit cu ip ul real de pe care doriti sa va puteti

# conecta pe ssh, orice alt ip va primi eroare la conectare ( puteti seta mai multe ip uri # repetand linia : “iptables -A ssh-protect -s 123.456.789.012 -j ACCEPT” de cate ori doriti, # cu cate ip # uri doriti sa aiba acces. atat din interior cat si din exterior.

verificarea pachetelor fragmentate si blocarea lor

iptables -A INPUT -f -j DROP

blocarea pachetelor invalide

iptables -A INPUT -m state –state INVALID -j DROP iptables -A OUTPUT -m state –state INVALID -j DROP iptables -A FORWARD -m state –state INVALID -j DROP

Blocarea anumitor porturi nedorite (porturi de flood, porturi prin care trec virusii, etc) Mai multe detalii pe site urile de specialitate si tutoriale pe net.

iptables -t mangle -I PREROUTING -i eth1 -p tcp –dport xxxx -j DROP

iptables -t mangle -I PREROUTING -i eth1 -p udp –dport $xxxx -j DROP iptables -I FORWARD -i eth1 -p tcp –dport xxxx -j DROP

iptables -I FORWARD -i eth1 -p udp –dport xxxx -j DROP iptables -I INPUT -p tcp –dport xxxx -j DROP

iptables -I INPUT -p udp –dport xxxx -j DROP

Aici puteti seta orice port de care doriti sa va dispensati.

Protejarea ip-urilor prin filtrarea mac urilor:

iptables -t filter -A FORWARD -d 10.10.10.0/24 -j ACCEPT

iptables -t filter -A FORWARD -s 10.10.10.2 -j ACCEPT -m mac –mac-source \ xx:xx:xx:xx:xx:xx

Cu aceasta filtrare, utilizatorul ip-ului 10.10.10.2 este protejat de eventualele tentative din partea vecinilor de retea, si chiar daca vor exista incercari, ip-ul nu va functiona decat daca trece de proba de filtrare a macului. Dupa ce ati terminat de adaugat toate aceste reguli in firewall, salvati, setati pentru fisierul rc.firewall

Instalare intr-o incinta cu o topologie de retea de tip stea

Se presupune ca incinta in care se doreste a fi instalata aceasta aplicatie de monitorizare are infrastructura de retea deja creata si este o topologie de tip stea. Asta inseamna ca toate sistemele/host-urile pot comunica intre ele in orice moment prin intermediul unui dispozitiv central de comunicare.

Aceste sisteme au setate diferite distributii de Linux ( CentOS, OpenSuse, Ubuntu, Fedora, etc. ).

Pe sistemele care se doresc a fi monitorizate se instaleaza aceleasi scripturi destinate monitorizarii de host-uri ce au fost instalate pe masinile virtuale mai sus amintite.

Pe sistemul ce l-ati ales ca fiind server de monitorizare:

se vor instala scripturile destinate centralizarii informatiilor obtinute de pe sistemele de monitorizat;

se va configura Apache si se vor adauga scripturile php ce genereaza interfata web de vizualizare host-urile;

daca se doreste ca si serverul de monitorizare sa se monitorizeze pe el insusi se vor adauga aceleasi scripturi ce au fost instalate pe host-uri, cu modificarile aferente.

Testarea presupune accesarea de pe serverul de monitorizare a interfetei web destinate vizualizarii informatiilor despre host-uri. Accesarea interfetei web se face prin intermediul unui browser, introducand in sectiunea de “Adresa” a acestuia acelasi URL mai sus amintit: http://localhost/servermon/index.php.

CAP 4. CONCLUZII

Ce s-a realizat ?

S-a realizat o aplicatie de monitorizare a sistemelor Linux, aplicatie ce consta in centralizarea pe un singur sistem ales ca server de monitorizare a urmatoarelor informatii critice despre host-urile monitorizate:

– depasirea limitei de umplere setate a unui sistem de fisiere;

– starea inactiva a unui proces monitorizat;

– incarcarea procesorului;

– utilizarea peste limita admisa a swap-ului;

Vizualizarea acestor informatii, furnizate sub forma de warning-uri, se va face prin intermediul unei interfete web. Functionalitatile acestei interfete vor fi strict de vizualizare.

Vizualizarea acestor informatii se face într-un mod mai familiar utilizatorului cât și într-un mod cât mai practic, administratorii netrebuind să știe cod pentru a manevra această interfata web. Ce vor trebui in schimb sa stie este semnificatie acestor informatii.

Comparație cu alte realizări similare

Analizand aplicatii existente asemanatoare s-a putut ajunge la anticiparea arhitecturii software a acestei aplicatii de monitorizare. Majoritatea aplicatiilor de acest gen sunt foarte complexe, scrise intr-un cod poate nefamiliar tuturor administratorilor, foarte greu de debugg-uit sau dezvoltat pe viitor de catre utilizator daca nu este obisnuit cu acel cod. Acele aplicatii sunt destinate de obicei pentru a monitoriza infrastructuri imense ale unei organizatii ce isi permite sa investeasca timp si bani in achizitionarea acesteia. Nivelul de cunostinte tehnice si investitia financiara nu se justifica pentru infrastructuri mici, unde simplitatea unui limbaj de scripting isi va face perfect treaba.

Avantajele oferite de aceasta aplicatie simplista in metoda de dezvoltare, dar nu simplista in ceea ce face, sunt :

in primul rand, faptul ca se economiseste timp, administratorul nu va mai trebui sa se conecteze pe fiecare sistem in parte pentru a vedea daca s-au depasit sau nu limitele normale de functionare ale sistemului ;

aplicatia scrisa intr-un limbaj familiar unui administrator, poate fi depanata usor ;

tot datorita acestui limbaj aflat la indemana oricui, functionalitati aplicatiei se pot dezvolta foarte rapid si usor, fiind vorba chiar de minute in unele cazuri ;

face exact ce a fost creata sa faca.

Perspectiva dezvoltării

Aplicatiei de fata i se pot adauga multe funcționalități dacă pe parcursul utilizării ei se ridică astfel de cereri pentru funcționalități adiționale.

Unul dintre lucrurile ce se pot imbunatati este legat de estetica: interfata web de vizualizare se poate infrumuseta dupa gust, deoarece la momentul de față scopul lucrării nu a fost impactul vizual al aplicației, ci impactul funcțional și utilitatea aplicației.

Se poate imbunatati de asemenea aspectul functional al interfetei web, si anume pe lange functia de vizualizare a host-urilor si a warning-urilor aferente lor sa se adauge si functii, pentru un host monitorizat, de adaugare de noi partitii ce trebuie monitorizate sau chiar procese noi, de asemenea se poate adauga in interfata web functie pentru adaugarea/stergerea pentru monitorizare a unui host. De asemenea accesul la interfata web se poate implementa sa fie bazat pe autentificare.

Se pot dezvolta module pentru informare prin intermediul email-ului, se poate dezvolta pentru a genera grafice de performanta, se poate dezvolta pentru a monitoriza pe langa ce ofera momentan si task-uri personalizate.

BIBLIOGRAFIE

[Wel, 07] Dezvoltarea aplicațiilor Web cu PHP și MySQL, L. Welling & L.

Thomson

INTERNET :

[www1] http://www.softpanorama.org/Admin/system_monitoring.shtml

[www2] http://www.sikh-history.com/computers/unix/perform.html

[www3] http://www.inphpwetrust.com/arhitectura-client-server/

BIBLIOGRAFIE

[Wel, 07] Dezvoltarea aplicațiilor Web cu PHP și MySQL, L. Welling & L.

Thomson

INTERNET :

[www1] http://www.softpanorama.org/Admin/system_monitoring.shtml

[www2] http://www.sikh-history.com/computers/unix/perform.html

[www3] http://www.inphpwetrust.com/arhitectura-client-server/

Similar Posts