Acasă > Linux > Firewall şi comunicări în reţea-Mandriva Linux

Firewall şi comunicări în reţea-Mandriva Linux

Firewall-Linux

Despre Securitatea în Linux – Tehnologia de firewall din Linux.

În Mandriva Linux, există mai multe metode de a configura şi controla firewall-ul, dar toate interfeţele grafice şi de text de fapt controlează acelaşi program, numit iptables.

În articolul de față se va trata direct, configurarea acestuia din urmă (iptables), iar dacă un utilizator dorește să se folosească de orice altă aplicație, aceasta va rămâne la alegerea lui. Dar, înainte să ne apucăm de firewall trebuie să facem o mică, introducere în comunicări în rețea. Astfel, toate comenzile şi parametrii de la firewall vor fi mult mai ușor de înțeles:

Comunicarea în rețea (inclusiv Internet) se face pe protocolul TCP/IP și/sau UDP.

Sunt și alte tehnologii, dar acum ne vom rezuma la ce e mai important. Astfel comunicarea se realizează întotdeauna între 2 părți. Fiecare comunicare în parte are o sursă și o destinație. Evident, părțile pot realiza mai multe comunicări simultan pe baza unei reguli clare. Fiecare parte (sursă și destinație) are un identificator unic, o adresă unică, numită adresă IP. Mai mult, fiecare comunicare, în funcție de caracterul ei se desfășoară pe un port anume.

Pentru a înțelege mai bine ce se întâmplă, vom studia graficul următor:

Firewall Linux Mandriva

Pentru cineva care nu cunoaște rețele, cea mai bună analogie din viața reală se poate face cu poșta.

Fiecare calculator (dreptunghi albastru) reprezintă o casă (de expeditor sau destinatar) și fiecare port reprezintă o poartă prin care se poate intra în sau ieși din casa respectivă. Fiecare pachet trimis de la o casă la alta are o adresă (casa, adresa IP) și o poartă (portul).

Porturile pot fi de două feluri:

- porturi prin care se primește un pachet (adică o legătură nouă de rețea, o comunicare nouă, etc) sau
- porturi prin care se trimit pachete (se inițiază legături de rețea).

Ca să poți recepționa un pachet pe o poartă, trebuie cineva să stea în spatele ușii și să preia pachetul.

La fel este și cu rețelele, pentru a accepta o conexiune nouă, trebuie să existe un program care ascultă pe portul respectiv.

De exemplu, când vizionați o pagină web cu browserul vostru preferat, de fapt inițiați o legătură către portul 80 al unui server web. Acel server ascultă pe portul respectiv și vă va răspunde. Portul ce îl folosiți pe computerul propriu pentru a ”ieși” este primul port nefolosit.

Pe un computer exista 65536 (2^16) porturi pentru comunicări pe rețea. Acesta este numărul total și trebuie să deservească atât porturile pentru intrare, cât și cele pentru ieșire. Un port pentru intrare poate accepta mai multe conexiuni simultan, iar un port pentru ieșire poate deservi o singură conexiune la un moment dat.

După terminarea conexiunii, portul devine liber. În principiu, porturile între 0 și 1024 sunt destinate intrărilor, adică diferitelor aplicații care ascultă pe aceste porturi (de exemplu, ftp/21, ssh/22, http/80, share Windows sau samba/139, 140, etc.). Porturile peste 1024 sunt în principiu destinate ieșirilor.

Această regulă nu este însă bătută în cuie. Orice program poate fi setat să folosească un alt port (ex. ssh/12345 este valid), în aceste cazuri, sistemul va ști că portul este ocupat și nu va încerca să-l folosească pentru ieșire.

Un firewall nu face altceva decât permite utilizatorului un control asupra comunicării pe diferite porturi dinspre/către diferite adrese IP !

firewall

iptables – programul de firewall din Linux – lucrează cu 3 chain-uri (lanţuri) principale: INPUT (intrare), OUTPUT (ieşire) şi FORWARD (trimitere mai departe).

Fiecare chain are o regulă implicită: ACCEPT (permite) sau REJECT (interzice). Pentru setări mai sofisticate se pot defini chain-uri personalizate şi reguli auxiliare.

În Mandriva Linux, setarea implicită este ACCEPT pentru toate chain-urile. Adică se permite comunicarea pe toate direcțiile pentru toți și către oricine. Starea curentă a firewall-ului se verifică cu comanda:

# iptables -L

Dacă se dorește ca să nu se rezolve numele de domeniu se poate adăuga şi parametrul -n:

# iptables -L -n

iar rezultatul pentru un iptables cu setările implicite este următorul:

Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Pentru a introduce reguli folosiți comanda iptables cu opțiunea -A sau -I (i mare).

-A va adăuga regula la capătul listei, iar -I la începutul listei.

De ce este asta important !? Pentru că iptables parcurge listele de sus în jos și se oprește în momentul în care găsește o regulă ce este adevărată. În caz că nici o regulă nu este adevărată, se aplică regula implicită (cea de la ”policy” din exemplul de mai sus). Deja puteți intui mai multe logici principale de control al accesului de rețea.

Cele mai des folosite 3 logici sunt:

• implicit ACCEPT și reguli pentru interzicerea comunicării;
• implicit REJECT sau DROP și reguli pentru permiterea comunicării;
• implicit ACCEPT, reguli pentru permiterea comunicării și o ultima regulă ce să fie adevărată tot timpul și să interzică comunicarea.

Să presupunem că avem un calculator Linux ce este un server WEB, server mail şi SSH. O configurație de iptables, se face astfel:

iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 11.22.33.44 –dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp –dport 1:1024 -j REJECT

Haideţi să explicăm pas cu pas ce se întâmplă:

• presupunem regulă implicită ACCEPT.
• prima comandă permite accesul pe portul 80 (HTTP/WEB) pe placa de rețea eth0 de la orice sursă.
• a doua comandă la fel, pentru serverul de mail, port 25 (protocolul SMTP).
• a treia linie permite accesul către portul 22 (SSH) numai din partea computerului cu adresa IP 11.22.33.44
• ultima linie interzice accesul pentru toată lumea pe placa de reţea eth0 pentru toate porturile între 1 şi 1024

Când un calculator va încerca să se conecteze la computerul nostru, iptables parcurge lista de sus în jos și compară fiecare regulă cu noua conexiune.

Astfel, să zicem că cineva vrea să se conecteze prin SSH la computerul nostru. Prima regulă nu va corespunde, iptables merge mai departe, a doua regulă tot nu va corespunde, iptables merge mai departe, la a treia regulă se verifică adresa IP a celui ce vrea să se conecteze la noi prin SSH, dacă acest computer are IP-ul din regula noastră, se permite conexiunea și nu se mai face nici o altă verificare pentru conexiunea curentă. Dacă adresa IP este alta, se trece la ultima regulă, care este adevărată, și se refuză conexiunea. La fel se specifică și regulile pentru OUTPUT şi FORWARD.

Parametrii cei mai importanți pentru iptables sunt:

• -A specifica chain-ul dorit,
• -i interfaţa (placa) de reţea la care se referă regula,
• -p protocolul pentru care se aplică regula (tcp în exemplul nostru),
• –dport portul destinaţie al comunicării,
• –sport portul sursă al comunicării (nu apare în exemplu),
• -s adresa IP a sursei comunicării,
• -d adresa IP a destinatarului comunicării,
• -j acţiunea de luat.

Mai multe detalii puteți afla din manualul iptables. $ man iptables. Sursa: Mandriva Users România-Ghid Mandriva Linux.

Related posts:

  1. Folosirea aplicaţiei Wine pentru rularea jocurilor – Mandriva Linux
  2. Despre Ghidul de utilizare Mandriva Linux
  3. Actualizarea sistemului de operare Mandriva Linux
  4. TV online cu Linux Mandriva
  5. Configurarea mediilor de descărcare – Mandriva Linux
Categories: Linux Tags:
  1. Nici un comentariu momentan.
  1. Nici un trackbacks momentan.
*