Fundatia Pestalozzi
http://www.pestalozzi.ro/dezvolta şi promovează programe şi servicii care să răspundă nevoilor persoanelor aflate în dificultate pe baza principiilor muncii sociale
Imobiliare Locato
Agentie imobiliara, vanzari, cumparari, inchirieri apartamente, case, vile , birouri Ploiesti, Prahova
http://www.imobiliare-locato.ro
| Firewall, routare linux. |
| Sisteme de Operare - Linux | |||
| Scris de Administrator | |||
| Marţi, 20 Mai 2008 09:53 | |||
|
sursa: http://www.linuxsoft.ro/wiki/servere/firewall_nat_dmz_linux_iptables?s=optiune#exemplu-de-firewall-stateful-simplu-cu-nat Exista multe confuzii si mituri despre firewalluri. Unii cred ca firewallul este un instrument magic pe care daca il pun, nu mai intra hackerii, virusii, etc. rupe tot... Ce este de fapt un firewall?
Un firewall
“normal”, numit şi “packet filtering firewall” este un filtru pentru
layer 3 şi 4 OSI, şi anume IP, TCP, UDP, etc. De exemplu, un firewall
ar putea fi folosit pentru a bloca toate pachetele IP din internet
către portul 80 al unui server web. Desigur, utilizatorii nu vor mai
putea sa vadă site-ul de pe acel server, dar el va fi 100% securizat! Exista si alte tipuri de firewalluri, asa numitele “proxy firewall” sau “application layer firewall” sau “layer 7 firewall” (termenii sunt sinonimi). Acest tip de firewalluri lucreaza la layer 7 OSI, numit si layerul aplicatie. Un astfel de firewall ar putea de exemplu sa preia el cererea unei pagini web destinata serverului, analizeaza cererea, vede daca cererea incearca sa se foloseasca de o gaura de securitate din server, si dupa caz, o blocheaza sau o dau mai departe serverului. Ce este iptables?Iptables este instrumentul care controlează netfilter , firewallul din kernelul linux. Iptables este un firewall foarte puternic. Pe lângă filtrarea simplă după sursa/destinaţia pachetului IP sau portul, el poate face şi NAT , redirecţionarea porturilor, modificarea headerului TCP/IP (mangle), sau chiar filtrare layer 7 folosind l7filter sau ipp2p . Structura iptables
Sintaxa iptables este destul de incalcita si necesita cunoasterea principiului de functionare al lui iptables. Exista 3 tabele, numele acestora se scriu cu litere mici iar pentru chainuri se folosesc majuscule:
Tabelul mangle are 5 chainuri:
Sintaxa iptablesPentru a putea configura iptables trebuie să fiţi administrator (root). Folosiţi su sau sudo pentru aceasta. In mare, sintaxa unei comenzi iptables este:
‘-t’ selecteaza unul din cele 3 tabele
In categoria chain avem urmatoarele optiuni: -N: (new)un nou chain este creat
-s, -d: adresã sursã/destinatie IP
--sport, --dport: porturi sursã/destinaþie Dacã ‘-p udp’ este specificat: --sport, --dport: porturi sursã/destinaþie Dacã ‘-p icmp’ este specificat: --icmp-type: rulati "iptables -p icmp --help" pentru o lista completa Mai multe extensii pot fi încarcate ca module folosind optiunea -m: Dacã '-m mac' este specificat:
-j: DROP, ACCEPT, LOG
iptables -A INPUT -p tcp --dport 139 -j DROP
Sa analizam pas cu pas fiecare optiune: iptables -t filter -A INPUT -p tcp --dport 139 -j DROP ‘-p tcp –dport 139’ - selecteaza pachetele, si anume, toate
pachetele folosind protocolul TCP, care au port destinatie 139, foarte
simplu. Iar dupa ce le-am selectat, ce facem cu ele? Strategii de filtrare a porturilorExista doua strategii de filtrare: exclusive si inclusive. Avem un server de web, mail si samba. Deci avem porturile TCP 80, 443 (http, https), 25, 995 (smtp, pop3s) si TCP/UDP 137, 138, 139 (samba) deschise. Noi vrem sa lasam http, smtp si pop accesibile din internet, dar sa blocam conexiunile din internet la samba din motive de securitate (cei din internet nu au ce cauta la samba, asta poate doar sa expuna inutil serverul la un pericol de securitate). Daca am avea un firewall exclusive, am proceda astfel: iptables -A INPUT -p tcp --dport 137 -j DROP Blocam toate pachetele pe porturile samba, si lasam restul. De ce este asta gresit? Pentru ca noi vom baga si nfs saptamana viitoare, si vom uita sa ajustam firewall-ul... Un firewall inclusive ar fi astfel: iptables -P INPUT DROP ‘iptables -P INPUT DROP’ - seteaza firewall-ul sa blocheze toate porturile TCP si UDP Noi vom permite DOAR serviciile la care internetul trebuie neaparat sa aiba acces. Daca instalam mai tarziu un server ftp, va trebui sa modificam regulile firewall-ului sa permitem accesul internetului la el. Evident, un firewall inclusive este mult mai secure, si usor de intretinut. Exemplu de firewall stateful simplu cu NATAcesta este un exemplu de firewall stateful simplu cu NAT, care poate fi adaptat atat pentru un server, cat si pentru desktop. Un firewall stateful va crea un “state” pentru fiecare conexiune TCP sau stream de date UDP, adica va stoca informatii gen ip sursa, destinatie, port, etc., pentru fiecare conexiune. Firewall-ul stateful cand primeste un pachet IP nou, nu va sta sa verifice toate regulile (care pot fi foarte multe), ci verifica intai daca pachetul face parte dintr-o conexiune deja stabilita si daca e, il trece automat, iar daca nu face parte din nici o conexiune, verifica regulile pe rand si stabilieste ce o sa faca cu el (DROP, ACCEPT, etc.). Astfel procesorul firewall-ului va fi mai putin incarcat, cel mai intensiv va lucra atunci cand se creaza conexiunea. Totusi, firewall-urile acestea sunt mai vulnerabile la atacuri Syn flood, unde atacatorul crează multe conexiuni, iar firewall-ul va face prea multe state-uri. Cu NAT se partajeaza o conexiune internet la mai multe calculatoare. Fiecare calculator din reteaua locala va avea un ip de genul 192.168.x.x si va “iesi” in internet cu ip-ul routerului. Ca sa pornim firewall-ul la fiecare bootare a sistemului si pentru a-l putea dezactiva usor cand este nevoie, trebuie sa punem toate regulile intr-un script de initializare. Aici voi descrie procedura pentru un sistem de init sys v, folosit de majoritatea distributiilor: red hat, debian, ubuntu, gentoo, suse, mandriva si multe altele. Daca aveti alt sistem de init, consultati documentatia distributiei dumneavoastra.
Daca vreti NAT, sau firewall-ul are si functie de router, trebuie sa activati ip_forward. Majoritatea distributiilor au utilitarul “sysctl”, deci puteti sa editati fisierul /etc/sysctl.conf si sa adaugati randul: net/ipv4/ip_forward = 1 Ca masuri aditionale de securitate, adaugati in sysctl.conf: net/ipv4/conf/all/rp_filter = 1 Daca nu aveti sysctl, adaugati urmatoarele comenzi in scriptul firewall-ului sau in scriptul de initializare local (/etc/rc.local de obicei): echo 1 > /proc/sys/net/ipv4/ip_forward
INTERNET="eth0"
chmod 744 /etc/init.d/firewall Acum scriptul este executabil, dar sistemul de init nu e setat sa-l ruleze la boot. Distributiile Red Hat şi derivatele (Fedora, Mandriva, ...) precum şi SUSE, folosesc utilitarul chkconfig pentru asta: chkconfig firewall on
update-rc.d firewall defaults Apoi, ca sa porniti sau sa opriti acest script: /etc/init.d/firewall start sau /etc/init.d/firewall stop
/etc/rc.d/rc.firewall start sau /etc/rc.d/rc.firewall stop
/etc/init.d/iptables start sau /etc/init.d/iptables stop Iar pentru a initializa serviciul iptables la start-up-ul sistemului vom utiliza: rc-config add iptables default
|
Stiri Linux Today
| Linux Today |
| Linux Today News Service |
|

