Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Securizarea sistemului

linux


Securizarea sistemului

Orice masina conectata în permanenta la Internet este vizibila atât utilizatorilor care pot accesa resursele publice ale sistemului, cât si persoanelor rau-voitoare care pot încerca sa întreprinda actiuni nedorite, asa-numitii crackeri. Acest capitol prezinta atât tipurile de atacuri care pot fi îndreptate împotriva masinilor Linux, precum si metodele de prevenire a acestora. Subiectul fiind extrem de vast, acest capitol trebuie considerat ca un îndrumar continând idei generale, urmând a fi dezvoltat într-o lucrare viitoare.



1.1. Atacuri

Exista numeroase tipuri de atacuri care pot fi efectuate asupra sistemului. Acestea pot proveni de la distanta sau chiar de pe propria masina. Atacurile pot fi:

atacuri de tip DOS (Denial Of Service), care degradeaza sau dezafecteaza
anumite servicii ale sistemului;

atacuri în vederea obtinerii de privilegii asupra sistemului;

atacuri în vederea copierii sau distrugerii de informatii.

în cele ce urmeaza vom prezenta modalitatile principale de atac si solutii de prevenire si stopare a acestora.

Bomba e-mail

Un asemenea atac consta în trimiterea repetata a unui mesaj, eventual de dimensiune mare. Aceasta duce la enervarea destinatarului si la umplerea spatiului disponibil pe disc, precum si la încetinirea traficului prin retea.

Poate fi stopat prin introducerea în fisierul /etc/mail/access din cadrul sendmail a unei directive de refuzare a mesajelor provenite de pe masina respectiva. Aceasta solutie nu rezolva însa problema traficului prin retea.

Spam

Acesta nu este propriu-zis un atac, ci o modalitate de a trimite mesaje nesolicitate, în general continând reclame, foarte raspândita în ultima vreme, în general, adresa expeditorului este falsa (pentru a nu fi descoperit), astfel ca acest tip de atac poate fi prevenit dezactivând optiunea accept_unresolvable_domains în fisierul

/etc/mail/sendmail.mc.

Administrarea si configurarea sistemelor Linux

Daca adresa expeditorului este corecta, se poate încerca contactarea administratorului masinii de pe care a fost trimis mesajul sau introducerea unei directive de refuzare a mesajelor provenite de pe respectiva masina (în

/etc/mail/access).

înscrierea pe liste de discutii

Reprezinta înscrierea unei adrese e-mail pe una sau mai multe liste de discutii fara ca persoana careia îi apartine adresa sa fi cerut explicit acest lucru. Nu exista solutii rapide pentru stoparea acestor atacuri, ci doar trimiterea de cereri de dezabonare.

Programe de tip "cal troian"

Acestea sunt programe rau intentionate, care se "deghizeaza" sub forma unor executabile obisnuite, în prezent, cea mai cunoscuta forma a acestui gen de programe o constituie aplicatiile denumite black \vido\v ("vaduva neagra"), care sunt folosite pe WWW si care pot bloca sau deteriora browserele Web. De asemenea, profitând de bug-urile prezente în aceste browsere, aceste programe pot eventual sa copieze sau sa deterioreze informatii de pe calculatorul-client.

De asemenea, un alt tip de "cal troian" "la moda" este scriptul CGI prost proiectat, de multe ori intentionat. Astfel, scripturile CGI nu trebuie sa poata accesa informatii confidentiale de pe masina pe care ruleaza, administratorul trebuind sa verifice aceste scripturi.

Atacuri SYN flood

Reprezinta trimiterea unui volum foarte mare de cereri de conexiune catre o masina, ducând la supraîncarcarea traficului si imposibilitatea de a raspunde la alte cereri. Este cauzat de crearea unui numar mare de conexiuni deschise doar pe jumatate. Deoarece fiecare conexiune deschisa trebuie prelucrata pâna în starea sa finala (în acest caz, depasirea timpului maxim admis, timeout), sistemul va fi temporar blocat.

Poate fi prevenit compilând nucleul cu urmatoarea optiune activata:

| IP: TCP syncookie support (disabled per default)

Buffer overflow

Datorita unor erori de programare, se poate ca anumite programe sa aloce un spatiu predefinit de memorie pentru stocarea unor informatii. Atunci când apare o depasire a acestui spatiu de memorie, informatiile ce depasesc zona sunt stocate la o alta adresa. Prin manevrarea adreselor la care ajung, aceste date suplimentare pot produce executarea unor comenzi sub utilizatorul root.

Securizarea sistemului Linux

Acest tip de atac nu poate veni însa din afara masinii, ci din interiorul ei. Nu poate fi prevenit. Pe masura ce asemenea erori sunt descoperite, sunt generate actualizari ale programelor.

Scanarea retelei

Atacul consta în monitorizarea informatiilor care circula printr-o interfata de retea (e.g. cu tcpdump), pentru a detecta eventualele parole transmise necriptat prin retea. Conectarea prin serviciul telnet, spre exemplu, este nesigura, deoarece parolele nu sunt criptate, putând fi determinate cu usurinta chiar si de pe alta masina, legata în aceeasi retea.

1.2. Sfaturi privind securizarea sistemului

Idei generale

Siguranta fizica a sistemului

Prima regula pentru asigurarea securitatii sistemului o constituie instalarea masinii într-un loc sigur, unde sa nu fie expusa contactului cu persoane neautorizate. Acestea nu trebuie sa aiba posibilitatea sau timpul necesar pentru a înlatura carcasa, a modifica configuratia hardware, a opri si apoi reporni masina (eventual în mod single), a înlocui sau copia informatiile de pe discuri sau inocula programe rauvoitoare ("cai troieni"), în orice caz, administratorul nu trebuie sa uite sesiuni (terminale) deschise.

De asemenea, mediile de stocare a salvarilor de siguranta trebuie sa fie si ele stocate într-un loc închis, fara posibilitate de acces (e.g. un seif).

Sistemul poate fi protejat împotriva atacurilor de la consola (cum ar fi repornirea sistemului în mod single) prin stabilirea unei parole de pornire în cadrul încarcatorului de boot.

Salvarile de siguranta

Dupa cum mentionam si în partea II, cap. 11, se recomanda salvarea periodica cel putin a fisierelor importante si, daca este posibil, a întregului continut al sistemelor de fisiere:

fisierele de configurare ale sistemului;

imaginea nucleului Linux, precum si fisierul de configurare a acestuia

(.config);

fisierele-jurnal ale sistemului (directorul /var/iog, precum si altele, daca
este cazul);

mesajele utilizatorilor (/var/spool/maii);

Administrarea si configurarea sistemelor Linux

bazele de date (/var/lib/pgsql, /var/lib/mysql CtC.);

directoarele home ale utilizatorilor.

Drepturile de acces ale fisierelor importante

Trebuie acordata o atentie sporita drepturilor de acces la fisierele importante:

fisiere de configurare ale diverselor servicii instalate în sistem. Astfel,
eventualele persoane rauvoitoare nu vor putea vizualiza sau modifica
configuratia acestor servicii (cum ar fi, de exemplu, configurarile fire-
wo//-ului). A se consulta Anexa 2 pentru drepturile de acces sigure ale
acestor fisiere;

fisiere-jurnal (/og-uri). Utilizatorii cu gânduri "necurate" nu trebuie sa poata
consulta ftsierele-jurnal ale sistemului, cu atât mai mult a le modifica. Din
aceste fisiere pot fi determinate partile slabe ale unor servicii, putându-se
apoi profita de acestea;

executabile care nu trebuie sa poata fi apelate de catre utilizatorii obisnuiti,
precum si alte fisiere importante (spre exemplu, baze de date PostgreSQL,
MySQL etc.).

O atentie deosebita trebuie acordata executabilelor cu atributul SUID (care au alt proprietar/grup decât cele ale utilizatorului care le apeleaza).

Executia daemonilor

Se recomanda ca numai daemonii utilizati curent sa ruleze pe sistem. Mai multi daemoni înseamna o încarcare mai mare a sistemului, precum si un nivel de vulnerabilitate mai mare.

De asemenea, mare parte a daemonilor (care ofera diverse servicii) nu trebuie executati sub root, ci sub utilizatori speciali (de exemplu, daemonul HTTP ruleaza sub utilizatorul apache).

Scripturile CGI

Scripturile CGI nu trebuie executate ca root. Acestea trebuie plasate într-un singur director, în care nu se va permite accesul utilizatorilor, iar modificarile asupra scripturilor trebuie monitorizate.

Porturile

Anumite servicii pot fi accesate prin retea, de pe alte masini. Pentru aceasta, ele asteapta conexiuni pe anumite porturi (e.g. serverul HTTP pe portul 80). De asemenea, exista intefete grafice pentru configurare care primesc cereri pe un anumit port (e.g. samba-swat pe portul 901). Aceste porturi pot constitui puncte vulnerabile ale sistemului (datorita bug-urilor care pot exista în aceste programe), putând fi detectate de la distanta cu ajutorul scanerelor.

Securizarea sistemului Linux

Aceste porturi trebuie protejate fie prin configurarea respectivelor servicii sa accepte conexiuni doar de pe o anumita interfata de retea, considerata sigura (e.g. reteaua locala), fie prin configurarea unuifirewall care sa nu permita accesarea din exterior a porturilor în cauza.

Accesul utilizatorului root în sistem

Accesul utilizatorului root în sistem este permis numai de pe consolele specificate în fisierul /etc/securetty. Nu se recomanda permiterea accesului cu root decât de pe consolele sistemului (tty*). Accesul de la distanta (cu telnet sau ssh) poate fi facut cu un utilizator obisnuit, iar apoi folosita comanda su.

Siguranta parolelor

în primul rând, este recomandata utilizarea sistemului shadow si criptarea parolelor prin MD5. De asemenea, fisierele /etc/shadow si /etc/gshadow nu trebuie sa poata fi accesate de catre utilizatori, trebuind sa aiba urmatoarele drepturi de acces:

/etc/passwd

/etc/group

/etc/shadow .

/etc/gshadow

în al doilea rând, o cerinta importanta pentru pastrarea securitatii sistemului este ca toti utilizatorii sa aiba parola. Este obligatorie, de asemenea, stabilirea unei parole initiale pentru utilizator, care de preferinta va trebui sa fie schimbata de catre acesta la prima intrare în sistem.

în al treilea rând, pot fi modificate regulile pentru stabilirea parolelor (lungimea, complexitatea minima, timpul de expirare) prin intermediul PAM. Acestea trebuie sa fie cât mai stricte, iar utilizatorii trebuie obligati sa si le schimbe periodic. Verificarea dupa dictionar (/usr/share/dict) a parolelor este de asemenea importanta, pentru ca probabilitatea de a fi determinate cu un spargator de parole sa fie cât mai mica. Se recomanda folosirea periodica a unui spargator de parole pentru a verifica siguranta acestora. A se consulta si lista de reguli de stabilire a parolelor din partea II, cap. 6, care trebuie comunicate utilizatorilor de catre administratorul sistemului.

Utilizatorii

Lista utilizatorilor din sistem (/etc/passwd) trebuie verificata periodic, iar conturile neutilizate sterse. De asemenea, trebuie gestionati cu atentie utilizatorii speciali, cum ar fi cei pentru acces PPP. si parolele acestora trebuie sa urmeze regulile enumerate mai sus si nu trebuie sa aiba interpretor de comenzi.

Administrarea si configurarea sistemelor Linux

Accesul de la distanta

Chiar daca telnet se dovedeste a fi o metoda relativ sigura de accesare de la distanta a masinii, se recomanda utilizarea serviciului SSH, care foloseste un sistem sigur, bazat pe chei de criptare. Aceasta previne scanarea retelei (telnet trimite informatiile în clar prin retea, inclusiv parola utilizatorului) si interceptarea sesiunii telnet.

De asemenea, pentru transferul de fisiere între masini este bine sa se utilizeze tot SSH, în speta programul sftp, în loc de FTP, din aceleasi motive enumerate mai sus.

Trebuie evitata utilizarea sistemelor de acces privilegiate, daca aceasta este posibil:

acces privilegiat la nivel de masina - permite acordarea de încredere
anumitor masini, de pe care utilizatorii se pot conecta fara ca parola sa fie
solicitata, si se realizeaza prin intermediul fisierului /etc/hosts.equiv. Nu
este indicata folosirea acestui mod de acces datorita riscurilor la care masina
este expusa. De asemenea, acest fisier nu trebuie sa contina în nici un caz o
linie continând doar caracterul      "+", acesta acordând accesul privilegiat
oricarui calculator;

acces privilegiat la nivel de utilizator - permite acordarea de încredere
anumitor utilizatori, conectati de pe anumite masini, si se realizeaza prin
intermediul fisierului      .rhosts, plasat în directorul home a utilizatorului.
Accesul privilegiat nu trebuie utilizat niciodata pentru root, pentru care
trebuie întotdeauna solicitata o parola, în directorul utilizatorului root nu
trebuie sa existe fisierul .rhosts! Nu este indicata nici utilizarea acestui
mod de acces privilegiat, fiindca expune sistemul la riscuri suplimentare.
Administratorul va trebui sa monitorizeze periodic existenta acestui fisier în
directoarele utilizatorilor.

Firewall-uri

\Jnfire\vall este un sistem de filtrare a pachetelor de date care intra în / ies din calculator.

Masinile legate direct la Internet trebuie sa aiba configurat un firewall pentru a bloca accesul din exterior la serviciile care se doresc a fi protejate, acolo unde se poate. Trebuie avut în vedere însa faptul ca nu exista firewall perfect, precum si faptul ca un firewall nu previne atacurile din interiorul retelei sau de pe sistemul local. Modul de configurare a unui firewall este prezentat în capitolul urmator.

Scanerele

Recomandam folosirea periodica a unui program de scanare, pentru a depista eventualele puncte slabe ale securitatii sistemului. Un scaner este un program care "ataca" porturile si serviciile TCP/IP si înregistreaza raspunsul venit de la tinta.

Securizarea sistemului Linux

Daca s-a configurat unfîrewall, scanarea trebuie, evident, efectuata de pe o masina din afara retelei locale.

Scanerele care pot fi folosite sunt nmap (existent în distributia Red Hat), NSS (Network Security Scanner) sau SATAN. Vezi Anexa 4 pentru a afla locatiile de unde pot fi obtinute aceste programe.

Bug-uri în programe

Programele pot contine bug-uri (adica erori de proiectare, de programare etc.). Pot contine bug-uri atât nucleul, cât si daemonii, precum si toate celelalte programe de pe calculator. Bug-urile pot fi puncte slabe care pot constitui tinte pentru atacurile cracker-ilor.

Recomandam administratorului de sistem abonarea la liste de discutii privind securitatea (e.g. bugtraq) si urmarirea aparitiei de actualizari ale pachetelor de programe.

Serviciile oferite de catre sistem

Aceasta sectiune analizeaza modul de protectie a fiecarui serviciu de retea oferit de sistem.

SSH

SSH poate fi configurat sa primeasca conexiuni doar de pe o anumita
interfata de retea, prin intermediul parametrului ListenAddress;

daca nu se doreste posibilitatea de conectare din exterior la masina, portul
SSH (de obicei 22) trebuie protejat în cadrul firewall-u\u\;

utilizatorii care se pot conecta prin SSH pot fi stabiliti utilizând directiva
AllowUsers;

trebuie evitata utilizarea autentificarea prin .rhosts;

parametrii RSAAuthentication si PasswordAuthentication trebuie sa aiba
valoarea Yes;

parametrul PermitRootLogin trebuie setat pe No.

telnet Este bine ca serviciul telnet sa fie dezactivat sau, daca se doreste totusi utilizarea acestuia în cadrul retelei locale, sa fie protejat în cadrul firewall-u\u\.

FTP

nici folosirea serviciului FTP nu este indicata, decât daca trebuie oferit
serviciul de FTP anonim;

poate fi limitat sa primeasca cereri doar de pe o anumita interfata de
retea, prin intermediul optiunii daemonaddress;

trebuie acordata atentie sporita definirii de clase de utilizatori.
NFS Trebuie stabilita cu atentie lista de masini care pot monta sisteme de

fisiere, în /etc/exports.

Administrarea si configurarea sistemelor Linux

HTTP

porturile si interfetele de retea pe care serverul HTTP accepta conexiuni
pot fi configurate utilizând optiunile BindAddress, Port si Listen;

trebuie acordata o atentie sporita fisierelor sau directoarelor care nu
trebuie sa poata fi accesate de catre toti utilizatorii.

sendmail

optiunile accept_unqualified_senders si accept_unresolvable_domains nu
trebuie sa fie setate, pentru a oferi protectie împotriva atacurilor de tip
spam;

portul, respectiv interfata de retea de pe care sendmail va primi cereri pot
fi configurate cu ajutorul directivei DAEMON_OPTIONS.

Samba

masinile care pot accesa resursele SMB pot fi stabilite prin intermediul
directivei hosts allow;

interfetele de retea pe care sunt acceptate cereri SMB pot fi stabilite cu
ajutorul directivelor bind interfaces only si interfaces;

nu trebuie activat sistemul de autentificare tip .rhosts (optiunea use
rhosts trebuie sa fie No);

trebuie acordata atentia cuvenita configurarii utilizatorilor.
PostgreSQL, MySQL

daca nu sunt utilizate decât local, trebuie dezactivate conexiunile din
exterior;

daca sunt permise conexiuni din exterior, lista de masini de pe care
acestea sunt acceptate trebuie configurata cu atentie;

trebuie acordata o atentie sporita configurarii utilizatorilor.
xfs

daca serverul de fonturi xfs este utilizat doar local, directiva no-listen
trebuie sa aiba valoarea tcp;

portul pe care xfs accepta conexiuni (de regula 7100) trebuie protejat în
cadrul firewall-u\u\.

syslog

daca syslog nu trebuie sa jurnalizeze mesaje primite de la alte masini,
trebuie eliminat parametrul -r;

în cazul în care se doreste jurnalizarea mesajelor de pe alte masini,
trebuie configurat fîrewall-u\ pentru a limita ce masini au acces la
serviciile syslog (portul 514, utilizând protocolul UDP).

cron Continutul scripturilor, precum si utilizatorii sub care ruleaza acestea trebuie verificate cu atentie.


Document Info


Accesari: 1738
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )