Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo ao iptables
Marcelo Barros de Almeida marcelobarrosalmeida@gmail.com
Sumrio
Caractersticas do iptables Conceitos bsicos Diagramas de tabelas e cadeias Principais comandos Principais filtros Principais a es !efer"ncias
Iptables
A implementao de filtro de pacotes nos #ernels $.% e $.& ' reali(ado pelo iptables )pro*eto netfilter+ , iptables ' o programa capa( de gerenciar a configurao do netfilter Principais caractersticas
-iltragem sem considerar o estado do pacote -iltragem considerando o estado do pacote .uporte a /A01 tanto para endereos de rede ou portas -le23el1 com suporte a plugins
Conceitos bsicos
regras4 so instru es dados para o fire5all1 indicando o 6ue ele de3e fa(er. cadeias4 locais onde as regras podem ser agrupadas. As regras so processadas em ordem pelo fire5all. 0oda cadeia tem uma poltica padro1 definida pelo usurio. A cadeia ' percorrida at' uma regra ser atingida. As seguintes so ignoradas. !egras com erro so ignoradas. .e nen7uma regra ' atingida1 usa8se a regra da poltica padro.
Analise a cadeia
!egra atingida
...
!egra n Cadeia
Conceitos bsicos
tabelas4 o iptables organi(a o seu flu2o de pacotes em tabelas1 cada uma com um con*unto de cadeias pr'8 definidas4
0abela filter4 ' a tabela padro1 com tr"s cadeias I/P;0 ,;0P;0 -,!<A!D 0abela nat4 tabela usada para /A0 )gera outras cone2 es+
Conceitos bsicos
0abela mangle4 permite altera es nos pacotes )0,.1 00?1 etc+ P!=!,;0I/> I/P;0 -,!<A!D ,;0P;0 P,.0!,;0I/> 0abela raw4 marca pacotes para rastreio posterior
!oteamento
!oteamento
-,!<A!D
interface de entrada interface de sada
I/P;0
,;0P;0
P!,C=.., ?,CA?
!oteamento
!oteamento
P!=!,;0I/>
interface de entrada
P,.0!,;0I/>
interface de sada
,;0P;0
P!,C=.., ?,CA?
!oteamento
!oteamento
P!=!,;0I/>
interface de entrada
-,!<A!D
P,.0!,;0I/>
interface de sada
I/P;0
,;0P;0
P!,C=.., ?,CA?
!oteamento
!oteamento
P!=!,;0I/>
interface de entrada
P,.0!,;0I/>
interface de sada
,;0P;0
P!,C=.., ?,CA?
!oteamento
filter mangle
!oteamento
P!=!,;0I/>
interface de entrada
-,!<A!D
P,.0!,;0I/>
interface de sada
I/P;0
filter mangle
,;0P;0
P!,C=.., ?,CA?
Pode ser feito com um ar6ui3o de script ou usando os comandos iptables8sa3e e iptables8restore iptables8@sa3eArestoreB e2ecutam a operao em um sC passo1 de maneira mais segura )sem brec7as temporrias+ e rpida. .al3ando4
!estaurando4
Detal7amento 6ue ir permitir a filtragem do pacote. IPs de origem1 ta2as1 portas1 etc.
iptables 8K I/P;0
8A4 adicionar uma regra no final da cadeia iptables 8A I/P;0 88dport LM 8* D!,P 8?4 listar regras da cadeia )adicione 8n para no resol3er nomes e 88line8numbers para 3er o nHmero das regras+
iptables 8? 8n 88line8number 8D4 apagar uma regra da cadeia. Pode usar tamb'm a lin7a
iptables 8D I/P;0 88dport LM 8* D!,P iptables 8D I/P;0 N 8!4 trocar uma regra por outra
iptables 8! I/P;0 $ 8s 9M.M.9.$ 8* D!,P 8I4 insere uma regra em um ponto especfico da cadeia
8p FprotocoloD4 especifica o protocolo. Por e2emplo1 udp1 tcp ou icmp. Pode ser negado tamb'm. Para tudo menos tcp1 faa4 com O8p P tcpQ
8s FendereoD4 especifica o endereo de origem. Aceita IPs1 redes1 IPRmscara1 IPRnn )notao CID!+ e tamb'm a negao com OPQ.
iptables 8A I/P;0 8s 9M.9.9.9 8* ACC=P0 iptables 8A I/P;0 8s P 9M.9.9.MR$% 8* D!,P iptables 8A ,;0P;0 8d uol.com.br 8* ACC=P0
8i FinterfaceD4 especifica a interface de entrada do pacote. ;se OPQ para negar e OSQ como curinga. O8i et7SQ significa todas as interfaces et7. Tlida em I/P;01 P!=!,;0I/> e -,!<A!D.
8o FinterfacesD4 especifica a interface de sada. Tlida em ,;0P;01 P,.0!,;0I/> e -,!<A!D. ;sa as mesmas regras de 8i.
88sport FportaD4 especifica a porta de origem. Pode ser dado em forma de fai2a tamb'm1 como em O88sport LM49$:Q ou mesmo O88sport 9M$:4Q )todas acima de 9M$:+. Precisa ter tcp ou udp especificado como protocolo.
iptables 8A I/P;0 8p udp 88dport N: 8* ACC=P0 iptables 8A I/P;0 8p tcp 88sport 949M$: 8* !=U=C0 iptables 8A I/P;0 8p tcp 88sport 9M$%4 8* ACC=P0 iptables 8A ,;0P;0 8p tcp 88dport $: 8* D!,P
88tcp8flags FmscaraD FsetD4 Permite casar por flags do 0CP. Primeiro se di( 6uais sero e2aminados1 depois os 6ue de3em estar setados. -lags4 .V/1 ACW1 ;!>1 -I/1 !.0 e P.X. A?? e /,/= tamb'm pode ser usados para simplificar a seleo dos flags
iptables 8A I/P;0 8p tcp 88tcp8flags .V/1-I/1ACW .V/ 8* D!,P iptables 8A I/P;0 8p tcp 88tcp8flags P .V/1-I/1ACW .V/ 8* D!,P
88sYn4 ;ma abre3iao para selecionar pacotes 6ue este*am relacionados com um processo de abertura de cone2o. Poderia ser escrito tamb'm como4 O88tcp8flags .V/1!.01ACW .V/Q
/este caso1 precisa8se ter O8p icmpQ antes 88icmp8tYpe FtipoD4 filtra por tipo de pacotes ICMP. Por e2emplo1 L ' o ping1 mas Oec7o8re6uestQ poderia ser usado. Te*a a lista completa com Oiptables 8p icmp Z7elpQ
=2istem op es de filtragem 6ue e2igem a opo O8mQ1 em geral op es mais a3anadas ou relacionadas a plugins. A lista ' enorme. 8m iprange4 permite especificar fai2as de IPs para origem )88src8range+ e destino )88dst8range+
8m lengt7 88lengt7 Fmin4ma2D4 permite selecionar pacotes usando o seu taman7o como refer"ncia. 8m limit4 limita 6uantas 3e(es uma regra pode ser casada dentro de um inter3alo de tempo. Por e2emplo1 O8m limit 88limit :RsQ ou O8m 88limit 9MMMR7ourQ. G poss3el especificar limites de ra*adas *unto com88limit8burst. Por e2emplo O8m limit 88limit NRs 88limit8burst 9MQ. 8m mac 88mac8source 224224224224224224 filtra por MACs Isto ' sC um amostra1 e2istem muitas op es O8mQ
iptables 8A I/P;0 8p tcp 88dport $$ 8* ACC=P0 iptables 8A I/P;0 8p tcp 88dport $: 8* D!,P
!=U=C04 re*eita o pacote1 informando ao 7ost de origem. Tlida em I/P;01 ,;0P;0 e -,!<A!D.
?,>4 coloca no log informa es sobre o pacote. ;ma opo interessante ' o 88log8prefi2 OmensagemQ1 6ue permite a adio de um prefi2o. , log no interrompe o processamento1 fi6ue atento.
iptables 8A I/P;0 8p tcp 88dport $: 8* ?,> 88log8prefi2 O0entati3a de telnetQ iptables 8A I/P;0 8p tcp 88dport $: 8* D!,P
MA.[;=!AD=4 reali(a o /A01 alterando o endereo de origem. .imilar ao ./A01 mas sem op es de endereo de sada. Tlido em P,.0!,;0I/> somente1 tabela nat. Muito usado para implementar as regras de /A0 do fire5all.
iptables 8t nat 8A P,.0!,;0I/> 8o et7M 8* MA.[;=!AD= iptables 8t nat 8A P,.0!,;0I/> 8o pppS 8* MA.[;=!AD=
/o es6uea de 7abilitar o for5arding1 colocando 9 em em RprocRsYsRnetRip3%RipEfor5ard1 usando uma das formas abai2o4
intranet
./A04 reali(a o /A01 alterando o endereo de origem do pacote. Tlido em P,.0!,;0I/>1 da tabela nat. Pode usar a opo 88to8source FIPa8 IPbD para especificar uma fai2a de IPs.
iptables 8t nat 8A P,.0!,;0I/> 8o et7M 8* ./A0 88to8source $MM.$9M.9M.98$MM.$9M.9M.9M iptables 8t nat 8A P,.0!,;0I/> 8o et7M 8* ./A0 88to8source $MM.$9M.9M.98$MM.$9M.9M.9M49M$%4:$MMM
!=DI!=C04 permite o redirecionamento de portas. Possui a opo 88to8 ports para especificar a no3a portas )ou uma fai2a delas+. Tlida em P!=!,;0I/> e ,;0P;01 da tabela nat. ^til para pro2Y transparentes1 por e2emplo.
iptables 8t nat 8A P!=!,;0I/> 8i et7M 8p tcp 88dport LM 8* !=DI!=C0 88to88ports :9$L 7ttpEport :9$L transparent
pro2YSf5 4:9$L
et79
cliente intranet
Acesso a internet na porta LM
!=DI!=C04 permite o redirecionamento de portas. Possui a opo 88to8 ports para especificar a no3a portas )ou uma fai2a delas+. Tlida em P!=!,;0I/> e ,;0P;01 da tabela nat. ^til para pro2Y transparentes1 por e2emplo.
iptables 8t nat 8A P!=!,;0I/> 8i et7M 8p tcp 88dport LM 8* !=DI!=C0 88to88ports :9$L 7ttpEport :9$L transparent
pro2YSf5 4:9$L
et79
cliente intranet
Acesso a internet na porta LM
D/A04 reali(a o /A01 alterando o endereo de destino do pacote. Pode usar a opo 88to8destination FIPa8IPbD para especificar uma fai2a de IPs )load balancing+. Tlido somente em P!=!,;0= e ,;0P;01 tabela nat. Caso de uso tpico para criao de 3irtual ser3ers1 onde ' preciso regras para 6uem 3em de fora1 para m6uina na intranet e para o prCprio fire5all.
iptables 8t nat 8A P!=!,;0I/> 8p tcp 8d &N.9M.$M.:9 88dport LM 8* D/A0 88to8destination 9_$.9&.M.9M iptables 8t nat 8A P,.0!,;0I/> 8p tcp 8d 9_$.9&.M.9M 88dport LM 8* ./A0 88to8source 9_$.9&.M.9 iptables 8t nat 8A ,;0P;0 8p tcp 8d &N.9M.$M.:9 88dport LM 8* D/A0 88to8destination 9_$.9&.M.9M
fire5all internet intranet
&N.9M.$M.:9 $MM.$9M.9.$ 9_$.9&.M.9 9_$.9&.M.9M
cliente
<<<
Caso 3oc" ten7a criado uma cadeia1 pode usar o 8* para redirecionar a filtragem para ela4
8* FnomeEdaEcadeiaD
Ao terminar1 caso nen7uma regra ten7a sido acionada1 o flu2o 3olta para 6uem redirecionou e o processamento continua. Caso contrrio1 ' interrompido.
...
!egra n
...
!egra m
,efer/ncias
7ttp4RR555.fro(entu2.netRdocumentsRiptables8tutorialR
7ttp4RRfocalinu2.cipsga.org.brRguiaRa3ancadoRc78f58iptables.7tml
7ttp4RR555.netfilter.orgRdocumentationR