Personal tools

Difference between revisions of "Configurare firewall in Ubuntu"

From linux360

Jump to: navigation, search
 
 
Line 50: Line 50:
  
  
Acum fiecare isi mai poate modifica firewall-ul in functie de cerintele de securitate si preferintele de securitate dorite - de exemplu desi eu nu am adaugat nici o regula pentru OUTPUT, unii dintre dumneavoastra se pot gandi sa adauge. Urmatorul pas ramane de a configura aceste reguli de fiecare data cand sistemul booteaza. Aparent in viziunea unora editarea /etc/rc.local poate fi suficienta intrucat acesta este ultimul script care va fi lansat de catre sistemul de operare atunci cand booteaza. Totusi aceasta abordare nu este suficienta intrucat serviciul de networking (reteaua fizica) impreuna cu serverele noastre apache, mysql, exim4 si sshd sunt deja pornite la momentul cand rc.local este executat.
+
Acum fiecare isi mai poate modifica firewall-ul in functie de cerintele de securitate si preferintele de securitate dorite - de exemplu desi eu nu am adaugat nici o regula pentru OUTPUT, unii dintre dumneavoastra se pot gandi sa adauge. Urmatorul pas ramane de a configura aceste reguli de fiecare data cand sistemul booteaza. Aparent in viziunea unora editarea /etc/rc.local poate fi suficienta intrucat acesta este ultimul script care va fi lansat de catre sistemul de operare atunci cand booteaza. Totusi aceasta abordare nu este suficienta intrucat serviciul de networking (reteaua fizica) impreuna cu serverele noastre apache, mysql, exim4 si sshd sunt deja pornite la momentul cand rc.local este executat, insemnand ca a fost un timp de cateva secunde cand nu a existat un firewall sa ne protejeze aplicatiile.
  
 
Astfel, cel mai bun moment de a seta firewall-ul, ramane inainte sau imediat dupa ce placile de retea fizic sunt configurate, dar inainte ca orice alt serviciu de retea sa fi fost pornit.
 
Astfel, cel mai bun moment de a seta firewall-ul, ramane inainte sau imediat dupa ce placile de retea fizic sunt configurate, dar inainte ca orice alt serviciu de retea sa fi fost pornit.

Latest revision as of 12:09, 10 February 2007

Si in cele din urma ai facut-o si pe asta. Ai un server Ubuntu (sau Debian) si vrei sa ii configurezi firewall-ul. Configuratia default pe care vom lucra este urmatoarea:

root@ubuntu-server:~# netstat -antl Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::80  :::* LISTEN tcp6 0 0 :::22  :::* LISTEN

Dupa cum se vede avem un server mysql care va trebui sa fie folosit doar local, un server exim4 care si el va fi tot local, iar serverele ssh si apache vor trebui sa fie disponibile public. De asemenea acesta este un server "de productie" si nu are si rol de router in acelasi timp.

Intai vom opri tot: root@ubuntu-server:~# iptables -P INPUT DROP root@ubuntu-server:~# iptables -P OUTPUT DROP root@ubuntu-server:~# iptables -P FORWARD DROP root@ubuntu-server:~# iptables -F root@ubuntu-server:~# iptables -L -n Chain INPUT (policy DROP) target prot opt source destination

Chain FORWARD (policy DROP) target prot opt source destination

Chain OUTPUT (policy DROP) target prot opt source destination

Dupa cum se vede tot traficul este in acest moment blocat. Evident daca sunteti conectat remote (e.g. prin ssh, miscarea de mai sus este kamikaze)

Apoi permitem serviciilor necesare sa poata comunica. Ca un "best practice" pe care l-am remarcat, regulile se pun cam intotdeauna preferential pe INPUT. Ideea e ca un eventual atacator sa nu trimita pachete pe care aplicatia noastra sa le proceseze - chiar daca raspunsul ei ar fi oprit - ci ele sa fie oprite direct la nivelul kernelului. Asta ne salveaza macar de niste timp de procesor inutil folosit.

root@ubuntu-server:~# iptables -A INPUT -j ACCEPT -p tcp --dport 80 root@ubuntu-server:~# iptables -A INPUT -j ACCEPT -p tcp --dport 22 root@ubuntu-server:~# iptables -A INPUT -j ACCEPT -p tcp --dport 25 -s 127.0.0.1 root@ubuntu-server:~# iptables -A INPUT -j ACCEPT -p tcp --dport 3306 -s 127.0.0.1 root@ubuntu-server:~# iptables -P OUTPUT ACCEPT root@ubuntu-server:~# iptables -L -n Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:25 ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306

Chain FORWARD (policy DROP) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination


Acum fiecare isi mai poate modifica firewall-ul in functie de cerintele de securitate si preferintele de securitate dorite - de exemplu desi eu nu am adaugat nici o regula pentru OUTPUT, unii dintre dumneavoastra se pot gandi sa adauge. Urmatorul pas ramane de a configura aceste reguli de fiecare data cand sistemul booteaza. Aparent in viziunea unora editarea /etc/rc.local poate fi suficienta intrucat acesta este ultimul script care va fi lansat de catre sistemul de operare atunci cand booteaza. Totusi aceasta abordare nu este suficienta intrucat serviciul de networking (reteaua fizica) impreuna cu serverele noastre apache, mysql, exim4 si sshd sunt deja pornite la momentul cand rc.local este executat, insemnand ca a fost un timp de cateva secunde cand nu a existat un firewall sa ne protejeze aplicatiile.

Astfel, cel mai bun moment de a seta firewall-ul, ramane inainte sau imediat dupa ce placile de retea fizic sunt configurate, dar inainte ca orice alt serviciu de retea sa fi fost pornit.

Dupa cum citim in manual (man 5 interfaces) putem sa lansam un script inainte sau dupa ce o interfata de retea este activata sau oprita. Vom folosi acest mecanism. Intai vom salva regulile firewall curente intr-un fisier, fie acesta /etc/iptables_rules.conf

root@ubuntu-server:~# iptables-save > /etc/iptables_rules.conf

Apoi vom edita fisierul /etc/network/interfaces si vom incarca regulile din firewall imediat inainte de activarea interfetei.

auto eth0 iface eth0 inet dhcp pre-up iptables-restore /etc/iptables_rules.conf # linia adaugata de noi.

Gata!

Putem merge afara sa mancam ceva.

--Raptor 11:07, 10 February 2007 (EET)