Jump to content
Cheater

[Tutorial] cum securizam un server

Credeti ca orice server ar trebui sa fie configurat asa cum sfatuieste tutorialul?  

104 members have voted

  1. 1. Credeti ca orice server ar trebui sa fie configurat asa cum sfatuieste tutorialul?

    • Obligatoriu!
    • In mare parte.
    • Prea multa securitate...
    • Si noi din ce mai traim daca toti au serverele secure?!


Recommended Posts

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
“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
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 (
)

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
.

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.

.

  • Upvote 1
Link to comment
Share on other sites

destul de bun, bravo si multumesc...

Personal, pot spune ca sunt fan Ubuntu, o distributie ce se trage din Debian, o consider mult mai stabila si mai eficenta decat altele.

*fiecare cu deprinderile lui :)

eu as fi de parerea ca o distributie rpm ar fi mult mai buna*

cei drept e mai greu de utilizat dar e o distributie mai mult "business"

redhat e destul de bun, dar comercial, optez pt centos ca e free si se lucreaza in mod deschis la inbunatatirea lui

PS: mai sunt si fan centos :D

Link to comment
Share on other sites

Daca tot ati inviat thread-ul, propun sa aruncati si un `ochi` peste port knocking (destinat serverelor ce nu se `arata` in public, dar interactioneaza cu adminii/userii w/e prin servicii ca SSH etc. ce necesita un port deschis pentru schimbul de date): New Security Features in HTML5 (punctul: 0x06 -- 0x06 Port Knocking Primer)

Un concept vechi, dar cu mult subestimat.

Deasemenea:

1] PORTKNOCKING - A system for stealthy authentication across closed ports. : ABOUT : summary

2] Port knocking - Wikipedia, the free encyclopedia

Link to comment
Share on other sites

1. Da si eu va recomand o distributie bazata pe RedHat , in mode deosebit CentOS / Fedora pt ca nu are librariile tinute la zi si sunt o groaza de exploituri care merg. Acelasi lucru si cu Ubuntu... :)

2. Mysql are optiunea --skip-networking, si merge doar cu mysql.sock (mult mai sigur) .

3. Apache, sunt o sumedenie de module care nu sunt folosite niciodata gen : mod_imap , mod_imagemap, mod_dav, mod_proxy ....

4,5,6 - Sa zicem ..

7. :)) Dale si config.inc.php...

In fine cel mai simplu este sa portniti toate serviciile , sa nu puneti firewall , sa nu faceti nici o setare speciala ci doar sa asteptati ca noi sa il testam. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...