Bine ați revenit, dragii mei greenhorn hackers!
Într-un tutorial recent despre Linux am demonstrat elementele de bază ale serverului web Apache. Deoarece Apache este cel mai utilizat server web din lume pe Internet, iar cu cât știm mai multe despre el și îl înțelegem cât mai bine, cu atât avem mai multe șanse la un hack de succes. În acest tutorial, vom examina elementele de bază ale modului în care este configurat serverul Apache. Ca aproape orice aplicație din Linux sau Unix, configurația se face cu un fișier de configurare. Apache nu este o excepție. Ca rezultat, ne vom concentra asupra fișierului apache2.conf din directorul /etc/apache2.
Pasul 1: Pornim Apache
Să începem prin a porni Apache2:
kali> service apache2 start
Aceasta pornește daemonul Apache2, iar serverul web ar trebui să trimită acum conținutul nostru pe Internet.
Pasul 2: Căutăm pe server
Pentru a verifica dacă serverul nostru Apache funcționează, introducem localhost sau 127.0.0.1 în browserul nostru. Dacă ne vedem pagina, știm că serverul funcționează corect!
Pasul 3: Deschidem fișierul de configurare
Pentru a configura Apache, trebuie să mergem în directorul /etc/apache2.
kali > cd /etc/apache2
Listăm acest director.
kali > ls -l
După cum putem vedea, există mai multe fișiere și directoare în acest director. Pentru noi, în momentul de față, cel mai important este apache2.conf, dar trebuie să ținem cont și de fișierul ports.conf și directorul sites_available, ce le vom folosi mai târziu în acest tutorial, plus alte câteva fișiere de configurare și directoare.
Putem deschide apache2.conf în orice editor de text. Eu folosesc Leafpad. Poate fi deschis prin simpla tastare a comenzii:
kali > leafpad /etc/apache2/apache2.conf
După cum putem vedea, aceasta deschide un fișier text simplu, cu toate informațiile de configurare pentru serverul nostru web Apache. Voi încerca să vă trec prin elementele cheie ale acestui fișier pentru a configura serverul.
Pasul 4: ServerRoot
O să dăm un scroll down prin toate comentariile și o să ajungem la linia # 70 unde începe secțiunea de configurare globală. Aici putem vedea unde este configurat ServerRoot. Acesta este partea de sus a arborelui de directoare în care serverul Apache păstrează toate fișierele legate de server. Linia # 84 definește ServerRoot. Putem pur și simplu să ,,decomentăm” lina, dacă dorim să setăm /etc/apache2 ca ServerRoot. Vă recomand să faceți asta.
Pasul 5: Timeout
În secțiunea următoare, avem variabilele care definesc Timeout, KeepAlive, MaxKeepAliveRequests și KeepAliveTimeout.
- Timeout: Acesta este momentul în care serverul trebuie să îndeplinească fiecare solicitare. Setarea implicită este 300, ceea ce înseamnă că serverul are 300 de secunde sau 5 minute pentru a îndeplini fiecare solicitare. Probabil că aceasta este prea lungă și probabil poate fi setată la aproximativ 30 de secunde
- KeepAlive: Acest lucru înseamnă că serverul este menținut pentru mai multe solicitări de la același client. Acesta este setat la “On” în mod implicit, ceea ce înseamnă că clienții nu trebuie să creeze o nouă conexiune cu fiecare cerere.
- MaxKeepAliveRequests: Acesta este numărul maxim de secunde dintre solicitările dintr-o conexiune stabilită. Dacă setăm această valoare la 0, atunci timpul este nelimitat.
- KeepAliveTimeout: Acesta este intervalul de timp dintre solicitările de menținere a conexiunii.
Vă sugerez să lăsați setările implicite la toate, cu excepția “Timeout-ului”. Fiecare situație este diferită și este posibil să fie nevoie să modificați aceste valori implicite pentru a adapta performanța la mediul vostru particular.
Pasul 6: Utilizatorul și grupurile Apache2
Sărim câteva linii în fișierul apache2.conf până când vom ajunge la linia # 177. Aici putem seta utilizatorul și grupurile Apache2. Observăm în comentariul din linia # 177 că putem seta aceste variabile în fișierul envvars (variabile de mediu). Vom lăsa lucrul acesta pentru un viitor ghid, dar reținem că atât utilizatorul, cât și grupul sunt variabile ce provin din fișierul /etc/apache2/envvars.
Mai departe, putem defini AccessFileName la linia # 187. Aceasta definește unde putem merge în fiecare director pentru a găsi directivele de configurare.
Această secțiune finală ce începe la linia # 193 este critică pentru securitatea Apache. Aceste linii asigură siguranța că clienții web nu pot accesa fișierele .htaccess sau .htpasswd.
Pasul 7: Înregistrări
Următoarea secțiune definește modul în care Apache gestionează înregistrările.
Ne uităm la HostNameLookups. Această directivă transmite către Apache2 dacă ar trebui să facă o căutare DNS atunci când înregistrează o conexiune. Prin păstrarea “off”, așa cum este implicit, Apache2 rulează mult mai bine.
Pasul 8: Site disponibil
Examinăm și directorul sites_available și, cel mai important, fișierul implicit de acolo. Acesta este adesea denumit Virtual Hosts. Deschidem acest fișier introducând:
kali > leafpad /etc/apache2/sites_available/000-default.conf
După cum putem vedea, există trei zone critice ale acestui fișier. Prima linie definește portul pe care îl ascultă serverul web. Aici este definit să asculte pe orice interfață de pe portul 80 (*: 80). A doua linie definește unde trebuie trimise email-urile atunci când există probleme la server. În mod implicit, este setat la webmaster @ localhost. Dacă suntem administratorul sistemului, putem să setăm acest lucru la adresa noastră de e-mail. Al treilea element ar putea fi cel mai important, DocumentRoot. Acesta definește unde va fi localizat conținutul pentru aceast host virtual, în acest caz, /var/www. Vă sugerez să o lăsați așa cum este definită aici.
Pasul 9: Porturi
Dacă navigăm până la linia # 248 a fișierului apache2.conf, observăm că există o linie “include ports.conf”. Această directivă transmite către Apache să meargă la fișierul ports.conf pentru a găsi porturile ce ar trebui să le asculte.
Dacă deschidem acel fișier, ports.conf, putem vedea că acesta este configurat să asculte pe portul 80 (linia # 9). Următoarea secțiune, pornind de la linia # 11, verifică dacă mod_ssl.cmodule este inclus și dacă este, deschide portul 443 (linia 17).
Dacă vrem să schimbăm porturile pentru HTTP sau HTTPS, putem face acest lucru prin înlocuirea numerelor de port din acest fișier.
Pasul 10: Resetarea serverului Apache
Acum, că avem modificări în configurația noastră Apache2, trebuie să repornim serverul pentru ca acestea să se producă.
kali > service apache2 restart
Continuați să reveniți pe Blackweb, dragii mei greenhorn hackers, pentru mai multe tutoriale despre hacking și despre elementele de bază ale Linux-ului, ce ar fi bine să le cunoașteți, în drumul vostru de a deveni niște hackeri talentați.
Până data viitoare, să ne citim cu bine! 🙂