Академический Документы
Профессиональный Документы
Культура Документы
DominandooIptables(parte2)
Autor:YgorThomaz<ygorthatgmail.com>
Data:06/10/2005
Iniciandonasregrasdoiptables
Vamosiniciarnossoestudodeconstruoderegraspensandonatabelafilter,ondetemostrschainsque
so:INPUT,OUTPUTeFORWARD,asquaisnopodemserapagadas.
QuandooIptablesinstalado,inicialmentenohaverregrasemquaisquerchains(INPUT,FORWARDe
OUTPUT)etodasaschainsteroapolticaACCEPT.Asoperaesparamanipularaschainsso:
1. N:Criarnovachain
2. X:Apagarumachainvazia
3. P:Mudarapolticadeumachainbuiltin(INPUT,FORWARD,OUTPUT)
4. L:Listarasregrasdeumachain
5. F:Apagartodasasregrasdeumachain(F)
6. Z:Zeraroscontadoresdepacotesebytesdetodasasregrasdeumachain.
Grandepartedasnossasatividadesvaiestarenvolvidacomamanipulaodasregrasdentrodaschains:
1. A:Adicionarumanovaregranachain
2. I:Inserirumanovaregraemalgumaposiodachain
3. R:Substituirumaregraemalgumaposiodachain
4. D:Apagarumaregraemalgumaposiodachain(D).
5. D:Apagaraprimeiraregraqueassocia(comalgumacondio)numachain.
Na prtica sempre estaremos usando os comandos para adicionar (A) e apagar (D) com muito mais
freqnciaqueosoutros.Aestruturadasregrasgeralmenteficaassim:
#iptables[ttabela][opo][chain][dados]j[ao]
Para melhorar nosso entendimento vamos usar nossa interface loopback (127.0.0.1), para responder ao
pingquevaienviarumICMP.Faamososeguinte:
#pingc1127.0.0.1
PING127.0.0.1(127.0.0.1)56(84)bytesofdata.
64bytesfrom127.0.0.1:icmp_seq=1ttl=64time=0.080ms
www.vivaolinux.com.br/artigos/impressora.php?codigo=3901 1/5
17/03/13 Dominando o Iptables (parte 2) [Artigo]
127.0.0.1pingstatistics
1packetstransmitted,1received,0%packetloss,time0ms
rttmin/avg/max/mdev=0.080/0.080/0.080/0.000ms
Verificamos que o ping que envia um nico pacote resolvido com sucesso. Agora vamos adicionar a
seguinteregra:
#iptablesAINPUTs127.0.0.1picmpjDROP
Atravs desta regra vamos fazer com que os pacotes enviados pelo ping sejam descartados. Veja que
adicionamos(A)chainINPUTumaregraespecificandoquepacotesvindosde127.0.0.1(s127.0.0.1)
comoprotocoloICMP(picmp)devemsermandadosparaDROP(jDROP).
Vamosapagararegradeduasformasdiferentes:
#iptablesDINPUT1
Paraapagararegranmero1nachainINPUT,nossanicaregra.
Oufazendodestaforma:
#iptablesDINPUTs127.0.0.1picmpjDROP
Verifiquequeanicamudanaemrelaoanossaprimeiraregrafoimudanapara"D".Estaexclusos
vaifuncionarsearegraestiverexatamenteigualspassadasporA(ouIouR).Casoocorradehaver
maisdeumaregraigual,aprimeiradalistaserapagada.
Outraopointeressanteincluirnovamentearegraacimaeentrarcomoseguintecomando:
#iptablesAINPUTs127.0.0.1picmpjDROP
#iptablesL
Chain INPUT (policy DROP)
target prot opt source destination
DROP icmp -- localhost anywhere
...
#~:iptablesF
Vejaquearegraentrada2fogesintaxecitadaacima.Elamostraasregrasemrigor.Jaregratrsapaga
todasasregras.Nonossocasotemosapenasuma.
Entendendoosparmetrosdefiltragem
Como vimos anteriormente, usamos dois parmetros para a filtragem dos pacotes, foram eles: "p" para
especificaroprotocoloutilizadoe"s"paraespecificaroendereodeorigem.NomanualdoIptablestemos
www.vivaolinux.com.br/artigos/impressora.php?codigo=3901 2/5
17/03/13 Dominando o Iptables (parte 2) [Artigo]
uma longa verso desta parte, que vou reduzir para facilitar a leitura, dividindo em tpicos, fazendo uma
pequenadescrioeincluindoumaregraexemploparamelhoraroentendimento:
Endereos
Usamosdoisparmetrosdiferentesparaespecificaroendereoorigemeoendereodestino.Soeles:
s,source,src:Origem
d,destination,dst:Destino.
muito importante conhecer as caractersticas de manipulao de valores aceitos pra estes parmetros.
Vejaabaixo:
#iptablesAFORWARDs10.38.11.10d10.38.5.100jDROP
Ospacotesdeorigemem10.38.11.10destinadosa10.38.5.100serodescartados.
#iptablesAFORWARDs10.38.11.0/24d10.38.5.100jDROP
#iptablesAFORWARDd!www.microsoft.com.brjACCEPT
Nestaregrausamoso"!"pararealizarumainversodestaformatodososendereosestoliberadosapenas
ositedaMicrosoftestarproibido.
Protocolos
Usamosoparmetro'p'(ou`protocol')paraespecificaroprotocoloenvolvido.Comoexemplotemos:
`TCP', `UDP' ou `ICMP', neste caso no faz diferena digitar 'UDP' ou 'udp'. Os protocolos podem ser
especificadostambmpeloseunmero,quevocencontraem/etc/protocols.Vejamos:
#iptablesAFORWARDptcpdport80jDROP
Nestaregratemosqueospacotesrelacionadoscomoprotocolo'tcp'edestinadosporta80devemser
descartados.Nosepreocupecomoparmetro'dport'.Nofuturoiremostratardelecommaisdetalhes.
EstaregramuitotilquandousamosumSquid,porexemplo,paraimpedirqueusurioacessewebsites
sem a configurao de proxy, obrigando ele ir pela porta 3128 (padro) do Squid para ter acesso a
websites.Vejaminhadicaemrelaoaissocommaisdetalhesnestelink:
www.vivaolinux.com.br/artigos/impressora.php?codigo=3901 3/5
17/03/13 Dominando o Iptables (parte 2) [Artigo]
Forandoousodoproxycomiptables
Interfaces
Usamosdoisparmetrosparamanipularofluxodosdadospelasinterfaces(eth0,eth1,etc)soeles:
i,ininterface:interfaceporondeospacotesvieram
o,outinterface:interfaceporondeospacotesestosaindo.
O i no pode ser utilizado com a chain OUTPUT, assim como o no pode ser utilizado com a chain
INPUT.ApenaspacotespassandopelachainFORWARDtminterfacesdeentradaesada.Vejamos:
#iptablesAFORWARDi!eth0jDROP
Nestaregratemosqueospacotesqueentrampelainterfaceeth0seroaceitos,omesmonovaiacontecer
com todas as outras interfaces. Fiquem atentos inverso "!". Quando queremos criar regras do Iptables
para interfaces que ainda no existem, como a ppp0, fazemos da mesma forma como para as existentes,
sendoqueasregrasscomearoafuncionarquandoainterfaceexistir.Podemostambmusaraopo
eth+paraaplicarasregrasemtodasasinterfacescomumanicalinhadecdigo:
#iptablesAFORWARDieth+jDROP
Nestaregratodosospacotesqueentrampelasinterfaces,eth0,eth1,eth2eetcseronegados.
Inverso
Muitas flags podem ter seus argumentos precedidos de "!" para associarse com partes diferentes aos
passados na opo. interessante compreender bem o uso do "!" pois, na prtica, ele bastante usado.
Paraevitardvidasnacompreensodescriptsfirewallgrandes,semprecomenteseucdigo,poisdetalhes
assimpodemconfundiroutroadministradorderedesmaisdesatento.
Terminandoereferncias
Nestesegundoartigocomeamosatrabalharcomosparmetrosquetrabalhamcomosdadosnasregras,
conhecemosseusconceitosealgumasregrasprticas.NoprximoartigoiremostratardeextensesTCPe
www.vivaolinux.com.br/artigos/impressora.php?codigo=3901 4/5
17/03/13 Dominando o Iptables (parte 2) [Artigo]
continuardesenvolvendonossoconhecimentonaconstruodefirewallcomIptables.
Referncias
Linux2.4PacketFilteringHOWTO
FirewallLinuxIptables
IptablesTutorial1.1.19
http://www.vivaolinux.com.br/artigo/DominandooIptables(parte2)
Voltarparaosite
www.vivaolinux.com.br/artigos/impressora.php?codigo=3901 5/5