Jump to content
pyth0n3

Iptables basics

Recommended Posts

iptables tables traverse

Aici voi descrie putin Iptables si cateva caracteristici importante

Va trebui intai sa intelegem ce este Iptables si la ce foloseste

Vom da prima definitie pt Netfilter

Netfilter este un component din kernel intrun sistem Linux care permite manipularea pachetelor care atraverseaza un computer

Deci asadar putem spune ca este un firewall pt ca ne permite sa efectuam diverse tipuri de setari care la randul lor pot fi foarte complexe

Continui sa precisez ca se pot efectua diverse filtrari pt aceste pachete care atraverseaza coputerul de tipul stateful sau diverse altre configurari de tipul NAT

Deci am inteles ce este Netfilter , vom merge in continuare pt a intelege ce este Iptables

Vom da urmatoarea definitie pt Iptables

Iptables este un tool (deci un program) cu care se poate configura Netfilter

Iptables permite sa facem anumite reguli pt pachetele care atraverseaza Netfilter

Asadar daca ne permite sa construim reguli pt filtre trebuie sa stim la ce layer (livel) lucreaza ,ma refer la ISO OSI

Aici putem da urmatoare definitie

Iptables lucreaza la urmatoarele layer

3 Network acest layer se concentreaza la adresa sursei si adresa destinatarului

4 Transport acest layer se concentreaza asupra protocoalelor TCP/UDP

Deci TCP/UDP folosesc un range de 16 bit pt numere porturilor care poate fi de la 0 la 65535

Iar sdresele ip se baseaza pe un numar de 32 bit

2 Datalink

Deci iptables poate sa fie folosit pt protocoalele ICMP si MAC

Aici este un tabel cu diverse Layer pt a intelege mai bine structura OSI

OSI-1.png

Acum vom vedea putin structura pt Iptables

Vom da o alta simpla definitie :

Iptables este compus din tabele care contin chains (lanturi) care contin reguli

Exista 3 tabele de default care nu pot fi sterse care cum am mai zis contin la randul lor chains care pot contine reguli pe care le scriem noi

Voi continua cu descrierea tabelelor

1 mangle care se ocupa cu alterarea pachetelor se ocupa cu TTL(time to live ) pt diverse protocoluri TCP/IP

2 NAT care sta pt Network Adress Translation permite sa schimbam anumite adrese ip in alte adrese ip de exemplu intre router si pc sunt doua adrese diverse , NAT ne permite sa putem efectua o conversatie intre ele

3 filter ne permite sa filtrem pachetele care trec prin computer

Cum am mai zis la randul lor aceste tabele contin anumite chains care contin reguli

Voi face o lista cu toate care sunt de default

Deci incepem cu primul tabel care va contine urmatoarele chains(lanturi)

1 mangle are ca chains : PREROUTING , INPUT,FORWARD,OUTPUT,POSTROUTING

2 NAT are ca chains : PREROUTING,POSTROUTING,OUTPUT

3 filter are ca chains : INPUT,FORWARD,OUTPUT

Pt a vedea aceste tabele impreuna cu chains pe care le contin se poate da urmatorul comand

iptables -L -t  nume_tabel

-L sta pt list

-t sta pentru a specifica un tabel

Aici mai vreau sa spun ca la randul nostru putem adauga cate chains vrem

Cunoscand aceste tabele si aceste chains va veti intreba ce putem face?

Putem defini un ACL (Access Control List ) , este o simpla lista care va da acces la computerul sau ma rog serverul nostru in modul in care vrem noi ,depinde cum o vom configura

Aici voi continua sa va spun ca orice fel de router de tipul CISCO sau altul functioneaza in acest fel , deci nu valoreaza nimic daca va cumparati un firewall care costa o gramada de bani si nu il configurati cum trebuie

Vom explica the syntax of ACL cum vin scrise si definite regulile noaste de acum inainte

Va trebui sa folosim comenzile pt iptables pt a scrie comenzi

Ele se structureaza in felul urmator:

1 va trebui specificat numele unui chain si ce vrem sa facem(adaugam ,punem )

2 va trebui specificat numele tabelului (nat,filter,mangle ,sau oricare altul pe care l-am facut noi personal)

3 trebuie sa folosim anumite functii a unui layer spre exemplu 3 (adresa sursei, adresa destinatarului ) pot fi specificate cu urmatoarele abreviatii

-s , -d

4 treabuie sa specificam ce fel de protocol vrem sa filtram (tcp/udp )nu e neaparat sa facem asta , de default regula va fi valabila pt toate protocoalele

se vor folosi comenzile -p ,--sport, --dport (port,source port, destination port )

5 va trebui sa adaugam un jump / target ,vom specifica aici ce sa faca cand primeste un pachet spre exemplu DROP, DENNY,ACCEPT,REJECT,LOG

se va folosi prescurtat -j

Aici vom scrie prima noastra regula

In exemplul urmator vom bloca adresa 89.45.169.55 in asa fel incat nu va putea comunica cu computerul nostru

iptables -A INPUT -s 89.45.169.55 -j DROP

-A append care va adauga la un chain care se chiama INPUT aceasta regula

-s source sursa , adresa de la care vin pachetele

-j e un fel de jump care spune ce trebuie facut cu pachetele , in cazul nostru DROP le va arunca , fara sa le sase sa treaca

Trebuie sa adaug ca de default vine folosita tabelul filter , bineinteles poate fi folosit oricare altul folosind optiunea -t si nume_tabel

Pt a vedea aceasta regula vom da urmatorul comand


iptables -L

Dupa ce vom face reboot aceasta regula nu va mai fi de aceea este bine sa le salvam intrun file si sa le incarcam cand vrem noi ,acum vom vedea cateva aspecte

Pt a sterge toate regulile pe care le-am facut vom da urmatorul comand


iptables -F

-F inseamna flush all the rules (de default )

putem specifica daca vrem ce fel de regula sa stergem si din care chain

Pt a salva regulile pe care le-am scris si nu vrem sa le pierdem vom folosi urmatorul comand

iptables-save > nume_file.txt 

Pt a incarca regulile dintrun file in iptables vom folosi urmatorul comand

iptables-restore < nume_file.txt

Dupa cum am vazut tabelul filter contine 3 chains de default , noi pana acum am folosit doar unul INPUT

Acest chain se refera la trefficul sau mai bine zis la pachetele care vin spre computerul nostru , pe care le putem lasa sa treaca , le putem bloca , putem lasa sa treaca doar ceea ce vrem noi ,si tot asa

La randul lui OUTPUT se va referi la pachetele care ies de la noi din calculator si la care putem face ve vrem noi , sa le blocam sau sa blocam doar anumite pachete care peaca spre anumite locuri

De default acesti chain au o anumita policy care este ACCEPT ALL inseamna ca toate pachetele pot intra si toate pot iesi ,deci asta ne permite sa navigam bine si fara probleme in internet

Urmatorul comand ne va permite sa vizualizam mult mai clar regulile noastre

iptables -L -n -v

-L list

- n ne va arata regulile numerotate in caz ca avem mai multe

-v verbose vom putea vedea si trafficul pe care il avem

Pana acum avem o regula deci ne va arata numarul unu

Sa zicem ca vrem sa mai adaugam niste reguli care sa fie puse in lista la ce numar vrem noi

Cu uratorul comand vom introduce o regula ca sa fie ca numarul 1 (prima regula) ,vom folosi protocolul tcp si nu vom permite la nimeni sa se conecteze la telnet la servarul nostru in afara de o singura adresa ip pe care vrem noi


iptables -I INPUT 1 -p tcp --dport 23 -s ! 192.168.1.2 -j DROP

-I insert intrun chain INPUT din tabelul predefinit filter am specificat ce numar vrem pt regula 1

-p protocolul in cazul nostru tcp

--dport destination port in cazul nostru 23 telnet

! no from este un operator ca in cazul nostru zice not from 192.168.1.2 deci toate pachetele care vor intra pe portul 23 la noi in server si care nu vor veni de la adresa care am specificat vor fi aruncate deoarece asa am specificat pt comandul jump

-j DROP

In acest caz ne putem conecta la servarul nostru telnet doar de la adresa 192.168.2

Cum sa stergem oregula sau sa o sostituim cu o alta regula

-D delete , -R replace

vom sterge regula numarul unu

iptables -D INPUT 1

Vom sostitui regula numarul unu

iptables -R INPUT  1 -p tcp --dport 23 -s   -j ACCEPT

Asadar toti se pot conecta la servarul nostru telnet

Source:Iptables basics

Edited by pyth0n3
  • Upvote 1
Link to comment
Share on other sites

Deci iptables poate sa fie folosit pt a filtra si pachete de tipul ICMP si MAC

daca imi zici un pachet de tip mac imi tai ...

P.S.: greu cu romana nu? sau mai bine zis gg Gugal Translate :)

P.P.S: din cate stiu eu cu iptables poti sa faci matching si dupa continut(layer 7 parca) nu numai dupa sursa/destinatie/caracteristicile pachetelor

Edited by Xander
Link to comment
Share on other sites

Trebuia sa scrii mai bine despre folosirea iptables:

- Crearea unui nou chain (-N)

- Stergerea unui chain gol (-X)

- Listarea regulilor dintr-un chain (-L)

- Stergerea tuturor regulilor dintr-un chain (-F)

- Readucerea la zero a contoarelor regulilor dintr-un chain (-Z)

- Atasarea unei noi reguli (-A)

- Inserarea unei noi reguli intr-o anume pozitie intr-un chain (-I)

- Inlocuirea unei reguli intr-o anume pozitie a unui chain (-R)

- Stergerea unei reguli (-D)

Specificarea tintelor:

- ACCEPT

- REJECT

- LOG

- RETURN

Cat despre limba romana, nu am nimic cu tine. Scrii ca dracu', dar atata timp cat scrii lizibil si se intelege, nu e nicio problema. Dar pentru orice eventualitate, asa se scrie corect:

"Mama, cat cacat poti sa mananci? Vreau sa fac un studiu pentru scoala."

Nu asa:

"Mama , cat cacat poti sa mananci ? Vreau sa fac un studiu pentru scoala . "

P.S. Daca nu ai observat, ma refeream la semnele de punctuatie.

Edited by Torvalds
Link to comment
Share on other sites

OK . nu am folosit nici un Google translate , asta e problema , scris de mine , dar se vede ca cu romana o cam duc rau , asta nu e pt ca o vreau eu , dar credema ca in limba romana numai pe acest forum mai scriu , in rest nu prea vorbesc aceasta limba

@xander pt icmp si MAC abia acum am observat greseala , iptables poate fi folosit si cu aceste protocoale

Incat pt layer 7 probabil va trebui incarcat modulul l7-filter kernel version in kernel nu sunt sigur ca il are de default si nici nu cred ca acest filtru mai vine updated de ceva timp , oricum se poate

In rest nimeni nu se supara atata timp cat vine corectat pt niste greseli

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...