ot mystical(11-12-2010)

reiting (56)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Osnovi na iptables

Sled versiia 2.4 na iadroto , GNU/Linux predstavi iztsialo nov softuer za obrabotka na paketi, narechen Netfilter. Instrumentut, izpolzvan za kontrolirane na Netfilter, iptables, e golemiiat brat na po- starata komanda ipchains, izpolzvana v iadrata ot versiia 2.2. iptables prilaga podredeni “verigi” ot pravila za mrezhovite paketi. Naborite ot verigi sustaviat “tablitsi” i se izpolzvat za obrabotka na opredeleni vidove trafik. Vuzmozhnite verigi sa INPUT, OUTPUT, FORWARD, PREPOUTING i POSTROUTING, a tablitsite sa filter, nat, mangle i raw.

Tablitsi i verigi na IPTABLES

Vsichki pravila v iptables imat osnoven sintaksis. Tozi sintaksis e:

iptables [-t tablitsa] komanda veriga spetsifikatsiia-na-pravilo [optsii]

Purvata chast ot sintaksisa na iptables e nezadulzhitelnata optsiia -t tablitsa. Podrazbirashtata se tablitsa na iptables se naricha “filter”. Verigite ot pravila v neia se izpolzvat za filtrirane na paketite na mrezhoviia trafik. Tablitsata filter sudurzha tri podrazbirashti se verigi – INPUT, FORWARD i OUTPUT. Vseki paket, koito se obrabotva ot iadroto, se propuska prez tochno edna ot tiah.

  • Pravilata vuv verigata INPUT se prilagat vurhu trafika, adresiran kum lokalniia host. Pri. - paketi, koito sa nasocheni samo kum rutera.

  • Pravilata vuv verigata OUTPUT se prilagat vurhu trafika, idvasht ot lokalniia host (lokalno generiranite paketi). Pri. - paketi, koito vodiat nachaloto si ot rutera. Neshta izprashtani ot rutera, kato syslog do otdalechen syslog survur, otgovor na ping (echo) zaiavki i dr.

  • Pravilata vuv verigata FORWARD se prilagat vurhu vsichki paketi, koito pristigat na mrezhoviia interfeis i triabva da se prenasochat kum drug. Pri. - paketi, koito vlizat v rutera i shte budat izprateni kum drugi ustroistva.

Da pomislim po tozi nachin... Ako iskam da kontroliram trafika mezhdu internet i potrebitelite, koito preminava prez ruter, togava shte triabva da izpolzvam FORWARD verigata, za da filtriram/upravliavam tozi trafik. Ako iskam da ogranicha tezi, koito mogat da se svurzhat s moia ruter, shte triabva da izpolzvam INPUT verigata. Ako iskam da upravliavam glavniia trafik, shte izpolzvam OUTPUT verigata. Pochti ne se sreshta da vidite goliam upravliavasht red v OUTPUT verigata, kato povecheto ot trafika, koito se svurzva s OUTPUT verigata e upravliaem ili chrez upravliavashtite nastroiki (naprimer konfigurirashti syslog survura) ili chrez kontrolirane na INPUT (bez da e nuzhno da ogranichavate echo otgovorite, ako prosto kontrolirate, ot kude mozhe da dopusnem da idvat echo zaiavkite). MNOGO E VAZHNO da ne mislite za tezi tri verigi, kato che li imat neshto obshto s posokata na trafika, kakto se otnasia kum mrezhata. Mnogo chesta greshka e da postavite uslovie v INPUT verigata, misleiki, che tova shte predotvrati trafika ot internet ot skaniraneto na kompyutrite na potrebitelite.

Tablitsata „nat” sudurzha verigi pravila za kontrol na Network Address Translation (tuk “nat” e imeto na tablitsata na iptables, a “NAT” e imeto na shemata za prevod na mrezhovi adresi). Tazi tablitsa se vzema v predvid samo kogato paketa, koito suzdava nova vruzka e neochakvano sreshtnat. Tablitsata nat se izpolzva za DNAT (Destination NAT), SNAT (Source NAT) i maskirane (masquerade). Tia implementira verigite:

  • PREROUTING (predi marshrutizirane, iztochnik; Destination NAT - za vlizashti paketi)

  • POSTROUTING (sled marshrutizirane, nasoka; Source NAT - za izlizashti paketi) i OUTPUT.

Tablitsata „mangle” sudurzha verigi, koito modifitsirat ili promeniat sudurzhanieto na mrezhovite paketi izvun konteksta na NAT i filtriraneto na paketi. Tia se izpolzva, kogato iskate da modifitsirate TOS (Type of Service) bitove ili da postavite vurhu paketa marker, koito netfilter mozhe da izpolzva za postaviane v opashka i na drugi neshta. Vupreki, che tia e mnogo polezna za spetsialni obrabotki na paketi, kato naprimer promianata na vremeto na zhivot na IP paketite , tia obiknoveno ne se izpolzva v povecheto proizvodstveni sredi.

Komandi i Optsii na iptables

-A (-append) dobaviane -Dobaviane na pravilo kum kraia na dadena veriga. Tazi komanda priema kato zadulzhitelni argumenti ime na veriga i spetsifikatsiia na pravilo

iptables -A INPUT -p tcp –dport 23 -j DROP

Tazi komanda dobavia uslovie v kraia na sistemata INPUT, koiato shte donese vsichkiia nasochen trafik kum rutera zapomnete za kakvo e INPUT sistemata) i e tcp paketa s nasokata port 23 (telnet).

-D (-delete) iztrivane - Iztrivane na pravilata ot dadena veriga. Tazi komanda priema kato zadulzhitelni argumenti ime na veriga i spetsifikatsiia na pravilo ili nomer na pravilo.

iptables -D INPUT 4

Tazi komanda bi iztrila 4-toto pravilo v INPUT verigata. Pravilata sa nomerirani, zapochvaiki ot 1 (ne 0).

-C (check) proverka - iziskvat se -s, -d, -p, -i . Tazi komanda priema kato zadulzhitelni argumenti ime na veriga i spetsifikatsiia na pravilo.

-I (-insert) vmukvane - Vmukvane na pravila v zadadena veriga. Razshirenie na -A, no spetsifikatsiiata na pravilo se postavia pred zadaden nomer na pravilo. Tazi komanda priema kato zadulzhitelni argumenti ime na veriga, nomer na pravilo, pred koeto se vmukva i spetsifikatsiiata na pravilo.

iptables –insert INPUT 2 -p tcp –dport 22 -j DROP

Tazi komanda vmukva pravilo vuv vtorata pozitsiia na verigata INPUT, koiato shte izpusne TCP trafika, predopredelen za port 22 (ssh). Praviloto shte bude postaveno mezhdu predishnite pravila v pozitsiia 1 i 2 (staroto pravilo nomer 2 shte stane nomer 3).

-R (-replace) zameniane - Zameniane na pravilo v zadadena veriga. Kombinatsiia ot Insert i Delete. Tazi komanda priema kato zadulzhitelni argumenti ime na veriga, nomer na pravilo i spetsifikatsiia na pravilo. Spetsifikatsiiata zamestva nomera v zadadenata veriga.

-F (-flush) izchistvane - Iztrivane na vsichki pravila v dadena veriga ili vuv vsichki verigi, ako ne e zadadeno ime na veriga.

-L (-list) spisuk - Izvezhdane na spisuk na vsichki pravila v dadena veriga ili vuv vsichki verigi, ako ne e zadadeno ime na veriga.

-z (-zero) nulirane - Nulirane na broiachite. Nulira broiachite v zadadena veriga ili vuv vsichki verigi, ako ne e zadadeno ime na veriga.
-N (-new)nova - Suzdavane na potrebitelski definirana veriga. Tazi komanda iziskva samo ime na verigakato zadulzhitelen argument.
-X Iztrivane na potrebitelski definirana veriga - Tazi komanda iziskva ime na veriga. Tazi veriga triabva da bude prazna. Podrazbirashtite se verigi ne mogat da budat izchisteni.
-P (-policy) politika - Zadavane na politika za dadena veriga. Tazi komanda priema kato zadulzhitelni argumenti ime na veriga i tsel
-E (-rename chain) preimenuvane na veriga - Tazi komanda priema kato zadulzhitelni argumenti staro ime na veriga i novo ime na veriga.
-h (-help) pomosht - Pomosht za sintaksisa na komandite..

TSeli (politiki) v iptables

Vsiako pravilo, koeto sustavia veriga, ima klauza “target” (tsel), koiato opredelia kakvo se pravi s otgovariashtite i paketi. Kogato niakoi paket otgovaria na dadeno pravilo, sudbata mu v povecheto sluchai e reshena okonchatelno, ne se izpolzvat dopulnitelni pravila. Vupreki che mnogo tseli sa definirani vutreshno v iptables, vse pak se pozvoliava kato tsel na pravilo da se podade druga veriga.

TSelite, nalichni za izpolzvane v pravilata na tablitsata filter, sa ACCEPT, DROP, REJECT, LOG, MIRROR, QUEUE, REDIRECT, RETURN i ULOG. Kogato praviloto vodi do izpolzvane na

  • ACCEPT – propuskane na paketite

  • DROP - othvurlia paketite tiho

  • REJECT - othvurlia paketite i vrushta ICMP suobshtenie za greshka

  • MASQUERADE - maskirane na paketa. Izpolzva se s POSTROUTING

  • LOG - dava prost nachin za proslediavane na paketite, koito otgovariat na pravilata

  • ULOG - predostavia po- razshireni dnevnitsi.

  • REDIRECT - otkloniava paketite kum proksi, vmesto da gi ostavi da produlzhat po putia si. Tazi funktsiia mozhe da se izpolzva, za da se prekara tseliia ueb trafik na saita prez ueb kesh, kakuvto e Squid.

  • RETURN - terminira definirani ot potrebitelite pravila i e analogichna na kontraktsiiata return pri izvikvane na podprotsedura.

  • MIRROR - razmenia IP adresite na iztochnika i destinatsiiata, predi da izprati paketa.

  • QUEUE - podava paketite na lokalni potrebitelski programi chrez modul na iadroto.


Optsii na IPTABLES
S izvesten broi optsii mozhete da izpolzvate znaka ! za obrushtane na znachenieto im.
-p [!] protokol - Tozi parametur svurzva protokola na paketa. Tova mozhe da e edin ot tcp, udp, icmp, or all, ili koito i da e protokol, izbroen v /etc/protocols ili prosto mozhete da polzvate nomera na protokola. Pulniiat spisuk ot protokolni nomera mozhe da bude nameren na  http://www.iana.org/assignments/protocol-numbers.

Toz primer priema vseki TCP paket

iptables -A INPUT -p tcp -j ACCEPT

Tozi primer priema OSPF (protokol nomer 89)

iptables -A INPUT -p 89 -j ACCEPT

Tozi trafik izpuska vseki paket, koito ne e NOT UDP

iptables -A INPUT -p !udp -j DROP

-s [!] (–source) adres - Adres na iztochnika. Mozhe da priema !, mrezhova maska ili port. Adresut 0/0 otgovaria na vsichki adresi i e podrazbirashtiiat se, ako ne zadadete optsiia -s.

-d [!] (–destination) adres - Adres na poluchatelia, posokata na IP adresa . Sushtite kriterii kakto za -s.
--sport [!] port[:port] - Validna e samo sle optsiia -r tcp ili -r udp. Zadava port na iztochnika ili diapazon ot portove ( diapazonite se zadavat chrez izpolzvane na znakovete - ili : za razdeliane na krainata i nachalnata stoinost na diapazona). Mozhete da ia izpolzvate s optsiiata -m multiport ( do 15 porta mogat da budat zadadeni). Eto niakoi primerni fragmenti ot pravilata:

-p tcp --sport 0:1023
-m multiport -p tcp --sport 25,110

--dport [!] port[:port] - Validna e samo sled niakoia ot optsiite -r tcp ili -p udp. Podobna e na optsiiata --sport, no zadava porta (portovete) na mestonaznachenieto.

-i [!] ime - Ime na vhodniia interfeis. Priema v imeto na interfeisa nastavka +, koiato oboznachava vsichki interfeisi ot suotvetniia tip; toest rrr+ oznachava vsichki RRR interfeisi (rrr0 - rrrN). Tazi optsiia mozhe da se otnasia samo kum vhodniia interfeis, taka che ne mozhe da bude izpolzvana vuv verigite OUTPUT ili POSTROUTING (ili vuv verigi, izvikani ot tezi verigi).
-o [!] ime - Ime na izhodniia interfeis. Podobna e na optsiiata -i, no se prilaga samo za izhodniia interfeis i suotvetnite verigi.
-j tsel - Deistvieto (tselta) za pravilnoto (ime na potrebitelski definirana veriga ili spetsialna stoinost), ako paketut otgovaria na nego. Spetsialnite stoinosti ACCEPT ( propuskane na paketa), DROP ( othvurliane na paketa), QUEUE ( predavane na paketa kum prostranstvoto na potrebitelia ) ili RETURN ( spirane na izpulnenieto na tazi veriga i produlzhavane ot sledvashtoto pravilo v predhodnata [izvikvashta] veriga ), zavurshvat verigata.
-n - Ukazva adresite i portovete da se izvedat kato chisla. Po podrazbirane iptables se opitva da gi preobrazuva.
-v - Rezhim na podrobno izvezhdane. Izvezhda interfeisniia adres , optsiite na pravilata (ako ima takiva), TOS maskite i broiachite na paketite i baitovete. Izpolzvaite -vv (2 v-ta) za izklyuchitelno podrobno izvezhdane.
-x Razshiriavane na chislata. Kogato broiachite na paketite i baitovete se vizualizirat, ne se izpolzvat sukrashteniiata K, M ili G, a se vizualizirat samo nuli.
[!] -f - Vtoriiat i sledvashtite fragmenti. Mozhe da bude predshestvana ot !.
--line-numbers - Izpolzva se pri izvezhdane na pravilata i pokazva nomerata na redovete predi spetsifikatsiite.
--tcp-flags [!] spisuk s flagove - Validna e samo sled optsiiata -r tcp. Tazi optsiia izsledva spisuka s flagove i dava suvpadenie samo ako te sa edinstvenite vdignati flagove. Vuzmozhnite flagove vklyuchvat: SYN, ACK, FIN, RST, URG, PSH i ALL NONE. Ako iskate da izsledvate flagovete SYN, ACK, RST i FIN, no da priemate samo tezi, koito sa s vdignati SYN i ACK flagove (otgovor za nova konektsiia), fragmentut ot praviloto shte izglezhda po sledniia nachin:
-p tcp --tcp-flags SYN,ACK,RST,FIN SYN,ACK
[!]--syn - Validna e samo sled optsiiata -p tcp. Ekvivalentna e na slednoto:
--tcp-flags SYN,RST,ACK SYN
--icmp-type [!]ICMP [pod]tip - Validna e samo s optsiiata -p icmp.
Sledvat validnite ICMP tipove i podtipove ( s otmestvane navutre pod glavniia tip):

echo-replay (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transmit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply

--mac-source [!]mac-adres - Validna samo sled optsiata -m mac. Polezna e vuv verigite INPUT ili PREROUTING. Fragmentut ot praviloto shte izglezhda po sledniia nachin:

-m mac --mac-source 00:00:ab:c0:45:a8

--limit skorost - Maksimalnata skorost na suvpadeniiata (sredna stoinost). Stoinostta po podrazbirane e 3/hour; vsichko pod tazi skorost se othvurlia. Ako vashata sistema ne mozhe da poddurzha poveche ot edna nova konektsiia za sekunda, mozhete da izpolzvate limit sus sledniia fragment ot pravilo

-p tcp --syn

za da predpazite vashiia survur ot pretovarvane, vupreki che tova obiknoveno se izpolzva s tselta LOG, za da predpazite dnevnitsite ot prekaleno burzo razrastvane. Skorostta mozhe da vklyuchva period ot vreme( podrazbirashtata se stoinost e /hour) - /minute, /second, /hour ili /day. Eto edin primeren fragment ot pravilo:

-m limit --limit 1/sec

--limit-burst broi - Maksimalniiat nachalen broi paketi, koito da suvpadat, predi da zapochne izpolzvaneto na predhodiashtoto --limit skorost. Tazi stoinost se uvelichava s edno vseki put, kogato predhodiashtoto uslovie --limit skorost ne e izpulneno. Podrazbirashtata se stoinost za --limit-burst e 5.
--port [port[,port]] - Validna e samo s optsiiata -p tcp ili -p udp i sle optsiiata -m multiport ( vizhte fragmenta ot praviloto, koito sledva).Suvpadenie ima samo ako adresut na iztochnika, i adresut na poluchatelia sa edni i sushti i suvpadat s optsionalno zadadeniia port ( pozvoleni sa do 15 razdeleni sus zapetai portove). Eto edin primeren fragment ot pravioto za mnozhestvo portove, koito suvpada samo s portovete 25 i 110:

-m multiport -p tcp -- port 25,110

--mark stoinost[/maska] - Suvpada s paketite s daden marker (stoinost bez znak). Tazi stoinost triabva da bude zadadena chrez tselta MARK.
--uid-owner uid -Validna e samo kogato se izpolzva vuv verigata OUTPUT. Identifitsira paketite, suzdadeni ot opredelen potrebitel, i dori togava raboti samo za niakoi lokalno suzdadeni paketi.

iptables -F veriga

iptables -P veriga_tsel

iptables -A veriga -i interfeis -j tsel

Purviiat format (-F) izchistva vsichki predishni pravila ot verigata. Vtoriiat format (-P) nastroiva podrazbirashtata se politika (ili oshte tsel) za verigata. Preporuchva se izpolzvaneto na DROP za podrazbirashtata se tsel na verigata. Tretiiat format (-A) dobavia tekushtata spetsifikatsiia kum verigata. Osven ako ne se konkretizira tablitsa s argument -t , komandite shte sa prilagat kum tablitsata filter. Parameturut -i prilaga pravilo kum imenuvan interfeis, a -j identifitsira tselta.


Podbral: mystical

Iztegli .odt variant

Izpolzvana literatura:

http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=programs&key=360886781#ss3.1

www.dhstudio.eu/iptables.odt

http://myfreesoft.net/phpBB2/viewtopic.php?t=346

http://itservice-bg.net/?p=53

http://mytech.bg/uroci/19/Unix/1396/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B8+iptables

http://megimg.info/mg/modules/booklists/knigi/Comp/Internet/NAT%20HOWTO.txt



<< Sigurno elektronno bankirane s Firefox i Linux | Maskirane na VPN tunel >>