| Autor |
Mesaj |
Ionut_z_z
Junior 2

Data inscrierii: 21/Ian/2009 Mesaje: 44
|
|
Firewall-ul in Linux |
|
Firewall-ul in Linux
In Linux firewall-ul este implementat printr-un sistem de "chain-uri". Exista trei chain-uri default: input, output si forward. Prin aceste chain-uri se considera ca trec pachetele, chain-urile continand suite de reguli prin care pachetul poate fi acceptat sau nu sa treaca prin acel chain. In kernel-ul 2.2.x absolut orice pachet care vine pe o interfata spre linux trece prin chain-ul input. Indiferent ce pachet care pleaca pe o interfata trece prin chain-ul output. In plus, pachetele care tranziteaza un router catre o alta destinatie trec prin chain-ul forward. In kernelul 2.4.x pachetele care nu sunt menite routerului sau care nu sunt originate de router nu trec prin chainurile INPUT si OUTPUT, ci doar prin FORWARD. Se observa faptul ca in kernelul 2.4.x chainurile au numele modificat in majuscula.
In cele două cazuri, pachetele trec prin chain-uri. Chain-urile contin o suita de perechi regula-actiune si cate o regula default. La inceput chain-urile nu au decat regula default care este ACCEPT, deci toate pachetele sunt acceptate. In chain-uri se pot adauga diferite regului bazate pe informatii din headerul pachetului (IP, port, etc) si interfata pe care a venit/pleaca. Fiecare regula contine o conditie si o decizie pentru pachetele care se potrivesc ("fac match") pe acea regula. Regulile se parcurg in ordine de catre fiecare pachet, in cazul in care un pachet nu a "facut match" pe nici o regula, i se aplica regula default. De exemplu un firewall care nu accepta nici o conexiune TCP/IP venita din Internet (pe interfata eth0) are o singura linie:
 |
 |
ipchains –I input –i eth0 –p tcp –y –j DENY |
De fapt regula spune ca pentru pachetele TCP care au bitul sYn (de cerere deschidere conexiune) setat sa se ia decizia de DENY (adica pachetul se DROP-eaza). Exista probabilitatea sa se trimita o avertizare despre filtrare sub forma unui ICMP "admin filter" inlocuind DENY cu REJECT. Celelalte pachete (de exemplu pachetele SYN care pleaca in exterior) nu vor face match pe aceasta regula si vor intra in regula default (ACCEPT). Daca dorim ca totusi de la adresa 193.226.52.1 sa se poata face o conectare ssh (pe portul 22) catre masina locala (193.226.51.54) se va insera (folosind "-I") o regula inaintea celei de mai sus:
 |
 |
ipchains –I input –i eth0 –p tcp –y –s 193.226.52.1 –d 193.226.51.54 22 -l -j ACCEPT |
Se observa folosirea obtiunii "–l" prin care se face log-area headerului pachetelor care fac match pe aceasta regula pentru urmarirea accesului. Pachetele de SYN cu sursa 193.226.52.1 si destinatia 193.226.51.54 port 22 vor face match pe aceasta regula si vor fi acceptate, nemaifacand match pe urmatoarea regula care le-ar fi DROP-at. Adaugarea unei reguli la sfarsitul sirului de reguli se face inlocuind –I cu –A (append).
Cu acest firewall nu se poate incerca nici un atac TCP impotriva serverului decat pe portul de ssh (22) de la adresa 193.226.52.1. Serverul va continua insa sa raspunda la ping (pachete ICMP) si mai este totusi vulnerabil la atacuri catre servicii bazate pe pachete UDP (nameservere, portmap, nfs). Pe cat posibil aceste servicii nu se vor starta sau vor fi protejate de firewall.
Trebuie avut in vedere ca daca intr-un firewall se da DENY la toate pachetele care vin pe interfata din Internet, atunci nu vor putea veni nici pachetele de rapuns la cererile din interior. Solutia este deci sa se filtreze pachetele SYN (dintr-o conexiune singurul pachet care are bitul SYN setat este pachetul de deschidere a conexiunii). Filtrarea in cazul UDP-urilor este mai complexa, ar necesită stabilit de UDP-uri sunt necesare (de obicei doar acces DNS pe portul 53 al nameserverelor).
Firewall-ul curent poate fi vizualizat cu "ipchains –L –n" sau cu "ipchains –L –n –v" (cu informatii suplimentare, de exemplu numarul de match-uri facute pe fiecare regula). Firewall-ul se poate goli cu comanda "ipchains -F". Atentie, un chain gol nu va permite trecerea pachetelor daca are politica default DENY, de aceea este recomandat ca in loc de schimbarea politicii default sa se appendeze la sfarsitul sirului de reguli o regula de DENY pentru orice:
 |
 |
ipchains –A input –j DENY |
Cum s-a observat deja, in loc de ACCEPT, DENY, REJECT pot exista si alte decizii mai speciale, de a masquarada conexiunea (-j MASQ) sau de a redirecta pachetul spre un port local (-j REDIRECT <numar_port>). Mai multe informatii despre configurarea firewall-ului cu ipchains se pot afla din manualul sau ("man ipchains"). Configurarea cu iptables este asemanatoare, dând in plus si alte facilitati.
|
|
| 22/01/2009 14:44 |
|
 |
tabernaculum
Junior

Data inscrierii: 30/Iun/2012 Mesaje: 1 Localitate: Uganda |
|
|
|
This information is unbelievable! I really cannot believe it is true!
|
|
| 20/07/2012 13:57 |
|
 |
|
|
Nu puteti crea un subiect nou in acest forum Nu puteti raspunde in subiectele acestui forum Nu puteti modifica mesajele proprii din acest forum Nu puteti sterge mesajele proprii din acest forum Nu puteti vota in chestionarele din acest forum
|
|
|