!_30 Posted September 9, 2006 Report Posted September 9, 2006 Un mic tutorial celor nou veniti in acest domeniu , pe intelesul tuturor service iptables stop/restart/status/start ( respectiv stoparea , restartarea statusu ( ce scrie prin cele trei tabele de decizi ) si pornirea iptables , bineinteles daca le avem compilate , instalate prin kernel).Iptables sunt folosite pentur mai multe servici precum : translatare de adrese sursa sau destinatie (NAT) , port forwading sau pur si simplu rejectare sau forwadare de pachete .Iptables folosesc default trei tabele : FILTER ( default table) , NAT si MANGLE.FILTER : INPUT , OUTPUT , FORWARD.NAT : PREROUTING , POSTROUTING,OUTPUTMANGLE : PREROUTING , POSTROUTING , INPUT , OUTPUTargumente folosite in structura comenzilor iptables -t ( specifica tabelul folosit : NAT , MANGLE sau FILTER , daca nu este specificat nici un tabel se considera default FILTER).-j ( pentru punerea anumitor concluzi , etc de genu : ACCEPT , REJECT , DROP , TTL)-F ( sterge toate regulile din tabel),-L ( afiseaza toate reglule din tabel)-A ( apendeaza regula , adica o pune la sfarsitul chainului respectiv cu reguli , chain este per example INPUT din tabelul FILTER).-D ( sterge regula) -R ( modifica regula) , -I ( insereaza regula) , -Z ( reseteaza la zero counterele , cu erori , cu pachtete trimise , primite , etc) -N ( nou chain) , -X (sterge chain ),-E ( rename chain) , chain = un set de reguli -p procotocol ( tcp , udp , icmp), -s sursa , -d destinatie , -i interfata de intrare , -o interfata de iesirepentur a specifica un port sau o grupa de orturi de la un anumit protocol dintre cele specificate mai sus ( TCP, UDP , ICMP) -p tcp --sport 22 ( port sursa ) sau --dport 22 ( port destinatie) sau mai multe protocoale -p udp --sport 22:100 sau --dport 45:130 pentru detalii man iptables pentru salvarea regulilor iptables-save -c -t ( din ce tabel vrem sa salvam) > fisierpentru restore : iptables-restore -c < fisierPentru marcarea unei anumite adrese MAC :iptables -A INPUT -m mac --mac-source ....... ( match pachete cu sursa MAC denumita)DNAT : rescrie destinatia pachetului : iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to-destination 10.10.10.3aceasta are rolul de a retrimite toate datele care vin la 192.168.1.1 ( presupunem ca asta e serverul ) , care vin pe portul 80 ( HTTP ) , la IP-ul 10.10.10.3 , normla ca tot la portul 80 ( se schimba din header numai IP-ul destinatie nu si portul , TCP care este la Layer 4 ).SNAT : rescrie sursa IP pachetului : iptables -t nat -A POSTROUTING -p tcp -o eth0 - SNAT --to-source 195.13.12.1( este folosit atunci cand avem una sau mai multe adrese publice si dorim sa folosim mai multe computere odata pe Internet de cate IP-uri publice avem )P.S. daca la --to-source 193.1.1.1-193.1.1.4 avem mai multe IP-uri publiceun stream de pachete va avea mereu acelasi IP sursa , insa acelasi host , nu va avea de fiecare data aceasi adresa sursa translatata.SAME : rescrie sursa IP pachet :ceva de genu SNAT ( insa va incerca ca acelasi host , sa aiba mereu aceasi adresa sursa trasnaltata in afara , cu acelasi IP public , spre deosebire de SNAT),P.S. aceasta regula se pune in tabelul mangle.IPTABLES -t mangle -A PREROUTING -s 192.168.1.0/24 -j SAME --to 193.1.1.1-192.1.1.4 ( la fel ca la SNAT se pot translata cu unul sau mai multe IP-rui publice , IP-urile interne din reteaua privata).MASQUERADE : rescrie sursa IP pachet :tot ca SNAT , insa difera prin faptul ca SNAT , are de la inceput ''pe veci'' pana schimba regula --to-source un Ip sau mai multe . pe cand MASQUERADE se va uita mereu la configuratie sa vada cu ce IP sa faca transatarea ( procesul mai lent insa folsitor cand adresa publica cu care se face trasnalatarea se schimba des , si nu stam sa o schimbam si noi la fel de des , per example dial-up (PPP , SLIP ) , sau chiar DHCP )).iptabables -t nat -A POSTROUTING -p tcp -j MASQUERADENETMAP : rescrie sursa IP pachet :ceva de genu SNAT , insa de aceasta data NAT se face unu la unu , default avem atatea IP-uri publice , cat private , ( bine , bine o sa spuneti , dar de ce nu punem ip-uri publice direct, sa zicem ca avem o retea de 10.000 de insi , stam sa schimbam la fiecare IP-uir , mai bine facem NETMAP , si se schimba 1:1 fiecare IP intern cu unul Public , asociat lui -dinnou ca si la SAME , aceasta regula se pune in tabelul mangle :iptables -t mangle -A PREROUTING -s 192.168.1.0/24 -j NETMAP --to 193.1.2.0/24 REDIRECT : redirecteaza pachete primite pe un anume port de LOCALHOST ,catre al port de pe LOCALHOST , spre deosebire de DNAT , care redirectioneaza pachete primite pe un anume prt de server , pe acelasi port pe alta masina.iptables -t nat -A PREROUTING -p tcp -dport 80 -j REDIRECT --to-port 8080 ( redirectionaza toate pachetele primite de server e portul 80 pe portul 8080 de pe acelasi server ).-j REJECT diferit fata de -j DROP , REJECT trimite si mesaj de eroare pe cand DROP , arunca pachetul fara sa mai trimita nici un mesaj de eroare Daca aveti ISP-uri mai nesimtite , care vad ca folsoiti acelasi IP pe mai multe pc-uri ( dupa TTL stiti cand trece printr-un server , FW per example la noi care translateaza pachetele , schimba sursa sau destinatia pachetului se modifica TTL-ul default scade cu 1 ).iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64 / --ttl-dec n / --ttl-inc nprima regula modifa TTL-ul inapoi la 64 , cealalta scade TTL-ul cu n , si cealalta creste TTL-ul cu n Deasemenea pentru a scapa , cum alti zic ''pingul morti'' cand se trimite d la un terminal 65000 de bytes pe secunda , putem sa numai aceptam aceste pachete ase de mari , defualt un pachet normal are de la 1400 la 150 de bytes :iptables ... -m length --length 1400:1500 ( sunt aceptate numai pachete intre 1400 si 1500 de byte's).Toate exemplele sunt demonstratii , pentru o ma buna functionare a acestui procedeu , nu ma fac responsabil pentru anumite greseli . Bafta ! Quote