Si iata si primul meu tutorial de pe rst, de mult tot am vrut sa scriu diferite tutoriale, am cateva neterminate, datorita lipsei de timp, dar pe acesta am reusit in sfarsit sa il termin. Astept sugestii si corecturi pentru a-l imbunatati. Varianta PDF -> http://cheater.shell.tor.hu/tutorial_securitate.pdf Tutorial cum securizam un server By Cheater, RST Nu multa lume stie acest lucru, dar serverul joaca un rol foarte important in securitatea si implicit in posibilitatea de a fi expluatat scriptul ce ruleaza pe acesta. Am vazut la multe firme considerate reper pe piata hostingului atat din romania cat si international ca securitatea serverelor este un domeniu taboo, de aceea m-am hotarat sa scriu acest tutorial. Am incercat sa scriu totul cat mai generic si sugestiv plecand din punctul in care serverul este deja configurat pentru a extinde aplicabilitatea informatiilor in cat mai multe distributii linux, dar am inclus si sugesti de tutoriale pentru configurarea serverului. Alegerea distributiei linux: 1. Alegem o distributie linux, foarte multi aleg Cent OS, o distributie RPM, in genul RedHat, Fedora, pentru ca este o distributie care consuma foarte putine resurse si este compatibila Cpanel. Personal, pot spune ca sunt fan Ubuntu, o distributie ce se trage din Debian, o consider mult mai stabila si mai eficenta decat altele. Dupa ce ati ales distributia cautati pe http://www.howtoforge.com “The perfect server Ubuntu” unde in loc de Ubuntu puteti scrie numele distributiei alese pentru tutorialul corespunzator de configurare a serverului. Sugesti la instalare: 1. Updateurile: La acest punct voi face cateva atentionar asupra unor specificatii din unele tutoriale, de exemplu veti gasi in acestea recomandari ca in timpul instalari sa alegeti “No automatic updates”, un factor important intr-un server secure sunt updateurile, deoarece in momentul in care este descoperita o greseala de securitate intr-un program va aparea un update prin care vulnerabilitatea va fi reparata. Dupa instalare: Primul lucru dupa instalare este un update, pentru a fi sigur ca incepem configurarea pe o baza cat mai noua si implicit eficienta si sigura. Apoi din motive de securitate recomand ca serverul mysql sau cel raspunzator de bazale de date sa ruleze numai pe localhost, acesta este o setare default numai ca uni sfatuiesc ca acesta sa fie configurat pentru a fi disponibil si pentru conexiuni externe, nu faceti acest lucru decat daca este neaparat nevoie, se poate verifica in fisierul my.conf locatia acestuia in distributiile bazate pe Debian este “/etc/mysql/my.conf”, linia: “bind-address = 127.0.0.1”, unde 127.0.0.1 este ip-ul generic pentru localhost. Un program care poate fi instalat pentru evitarea incercarilor brute-force este “fail2ban” care poate fi instalat din repository. De asemenea un lucru important este ca in configurarea serverelor de mail sa verificam si daca este cazul sa setem sa nu accepta trimiterea mailurilor daca userul nu este autentificat. Ideal este ca serverul nostru sa aibe instalat Saslauthd , la distributiile bazate pe Debian il putem instala prin “apt-get install libsasl2-2 libsasl2-modules libsasl2-modules-sql” 3. Apache: Dupa instalarea serverului apache recomand urmatoarele instalarea urmatoarelor module: mod_access, mod_auth, mod_dir, mod_log_config, mod_mime. Unele sunt instalate default. Un modul important in ceea ce priveste securitatea este: mod_security, il puteti descarca de pe siteul oficial http://www.modsecurity.org/ unde gasiti toate informatiile de care aveti nevoie, este un plugin care are scopul de a filrta informatiile cerute si procesate de apache in asa fel incat sa protejeze serverul de diverse atacuri. Mentionez ca unele scripturi pot fi blocate de acesta dar pot fi create reguli pentru ignorarea partiala sau totala a lor. De asemenea adaugarea urmatoarelor linii in httpd.conf sau apache2.conf, depinde de distributie “ResourceConfig /dev/null AccessConfig /dev/null” Este fosrte important sa nu dam dreptul userului sub care ruleaza apache sa execute comenzi in sistem, pentru a preveni exploatarea sistemului. 4. Chroot ( http://en.wikipedia.org/wiki/Chroot ) Pentru o mai buna securitate vom configura atat pureftpd cat si apache sa foloseasca chroot: Pentru pureftpd vom accesa fisierul de config care in mod obisnuit la distributile bazate pe Debian se afla in “/etc/default/pure-ftpd-common” unde vom modifica linia “VIRTUALCHROOT=false” in “VIRTUALCHROOT=true”. Pentru apache e recomandabil sa instalam Jailkit care il putem descarca de la adresa http://olivier.sessink.nl/jailkit/jailkit-2.5.tar.gz. 5. Alte programe: rkhunter – il puteam lua din repository, verifica constant impotriva rootkit-urilor. Snort – fiind un intrusion prevention and detection system. Il putem lua din repository. Daca instalarea se face manual din sursele disponibile pe siteul oficial atunci nu uitati sa luati si pachetul de reguli si sa configurati updateul conform instructiunilor disponibile pe site. 6. Antivirus Toti stiti probabil ca virusi nu sunt poroblema sistemelor de operare unix (linux, solaris, apple...) dar avand in vedere ca probabil vor circula prin serverul dvs. Diferite fisiere care pot fi malitioase pentru windows recomand instalarea unui antivirus, fiind vorba de ClamAV. ClamAV este un antivirus gratuit disponibil in repository. El va verifica atat mailurile cat si fisierele incarcate pe server. 7. phpMyAdmin Cum phpmyadmin este un script de administrare a bazelor de date foarte raspandit am doua mentiuni pentru a evita exploatarea unor probleme de securitate: 1. stergem fisierul htpasswd.setup, care la distributiile bazate pe debian in mod obisnuit se afla la “/etc/phpmyadmin/htpasswd.setup” 2. stergem directorul “config”, fiind in “/usr/share/phpmyadmin”. Firewall: Recomand de asemenea configurarea unor reguli stricte in firewall, pentru aceasta folositi iptables. NU lasati libere decat porturile utilizate de vreun program ex: (unul din motive fiind ca in cazul in care cineva patrunde in server altfel ar putea deschide porturi prin care sa exploateze serverul) http: 80 tcp (apache) https: 443 tcp (apache) ftp: 21 tcp (proftpd) ssh: 22 tcp (open ssh) pop3: 110 tcp (protocolul citire mail pop3) imap: 143 tcp (protocolul citire mail imap) imap secure: 933 tcp (protocolul citire mail imap cu conexiune ssl) smtp: 25 tcp (protocolul trimitere mail smtp) dns: 53 tcp&udp (raspunde de asocierea domeniu.tld , ex: rstcenter.com cu serverul pe cere este gazduit siteul, potrul trebuie deschis atat pe tcp cat si udp!) Alte porturi folosite de programe precum panoul de administrare hosting. Consider ca aceste setari ar trebui fi mai mult decat obligatorii la orice server, configurat astfel, teoretic, un script oricat ar fi de buggy si plin de gauri de securitate va fi imun la atacuri datorita serverului, astfel va fi protejat si serverul de posibilitatea de a fi exploatat plecat de la shelluri pana la rooting! Articolul este sugestiv si nu ofera nici o garantie in privinta securitatii serverului, de asemenea nu imi asum raspunderea pentru eventuale probleme, prejucii de orice fel cauzate in mod direct sau indirect de acest tutorial. .