Você está na página 1de 28

Sistemas informatizados

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 9 !egra $ !egra :

!egra atingida

...
!egra n Cadeia

/en7uma regra atingida. ;sa a poltica da 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+

P!=!,;0I/> ,;0P;0 P,.0!,;0I/>

Conceitos bsicos

0abelas do iptables )continuao+4

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

Organizao das tabelas do iptables

0abela filter e suas cadeias

!oteamento

!oteamento

-,!<A!D
interface de entrada interface de sada

I/P;0

,;0P;0

P!,C=.., ?,CA?

Organizao das tabelas do iptables

0abela nat e suas cadeias

!oteamento

!oteamento

P!=!,;0I/>
interface de entrada

P,.0!,;0I/>
interface de sada

,;0P;0

P!,C=.., ?,CA?

Organizao das tabelas do iptables

0abela mangle e suas cadeias

!oteamento

!oteamento

P!=!,;0I/>
interface de entrada

-,!<A!D

P,.0!,;0I/>
interface de sada

I/P;0

,;0P;0

P!,C=.., ?,CA?

Organizao das tabelas do iptables

0abelas ra5 e suas cadeias

!oteamento

!oteamento

P!=!,;0I/>
interface de entrada

P,.0!,;0I/>
interface de sada

,;0P;0

P!,C=.., ?,CA?

Organizao das tabelas do iptables

0abelas filter1 nat1 mangle e ra5 e suas cadeias


ra5 mangle nat )D/A0+

!oteamento

filter mangle

!oteamento

mangle nat )./A0+

P!=!,;0I/>
interface de entrada

-,!<A!D

P,.0!,;0I/>
interface de sada

I/P;0

filter mangle

,;0P;0

filter mangle nat )D/A0+ ra5

P!,C=.., ?,CA?

Salvando e restaurando regras no iptables

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

sudo iptables8sa3e D ar6ui3oEdeEregras sudo iptables8restore F ar6ui3oEdeEregras

!estaurando4

G poss3el sal3ar os contadores com 8c

Formato geral das regras do iptables

iptables @8t tableB comando @filtroB @8* aoB


Ao a ser tomada. Por e2emplo1 D!,P1 ACC=P01 pular para outra cadeia1 etc. =specifi6ue a tabela 6ue dese*a usar. A tabela filter ' a tabela default. , 6ue ser feito4 adicionar uma regra1 remo3er1 etc. De3e 3ir no incio.

Detal7amento 6ue ir permitir a filtragem do pacote. IPs de origem1 ta2as1 portas1 etc.

Principais comandos de manipulao de cadeias no iptables

.empre maiHsculo seguido do nome da cadeia4

8P4 configura a poltica padro da cadeia )D!,P ou ACC=P0+

iptables 8P ,;0P;0 ACC=P0

8/4 cria uma no3a cadeia

iptables 8/ internet 8-4 apaga as regras da cadeia

iptables 8- I/P;0 8I4 apaga uma cadeia 3a(ia

iptables 8- internetJ iptables 8I internet 8K4 (era todos os contadores da cadeia


iptables 8K I/P;0

Principais comandos de manipulao de cadeias no iptables

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

iptables 8I I/P;0 9 88dport LM 8* D!,P

Principais filtros no iptables

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

iptables 8A I/P;0 8p icmp 8* D!,P iptables 8A I/P;0 8p P tcp 8* D!,P

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

8d FendereoD4 especifica o endereo de destino )mesmas regras do 8s+

Principais filtros no iptables

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.

iptables 8A I/P;0 8i et7M 8* ACC=P0 iptables 8A I/P;0 8i pppS 8* D!,P

8o FinterfacesD4 especifica a interface de sada. Tlida em ,;0P;01 P,.0!,;0I/> e -,!<A!D. ;sa as mesmas regras de 8i.

iptables 8A ,;0P;0 8o pppS 8* ACC=P0

Principais filtros no iptables

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

88dport FportaD4 especifica a porta de destino. Mesmas regras do 88sport.

Principais filtros no iptables ( CP! "p tcp necessrio#

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

iptables 8A I/P;0 8p tcp 88sYn 8* D!,P

Principais filtros no iptables (icmp#

/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

iptables 8A I/P;0 8p icmp Zicmp8tYpe ec7o8re6uest 8* ACC=P0

Principais filtros no iptables (filtros e$pl%citos#

=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 iprange 88src8range 9M.M.M.989M.M.M.$M

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

Principais a&es no iptables

ACC=P04 aceita o pacote

iptables 8A I/P;0 8p tcp 88dport $$ 8* ACC=P0 iptables 8A I/P;0 8p tcp 88dport $: 8* D!,P

D!,P4 descarta o pacote

!=U=C04 re*eita o pacote1 informando ao 7ost de origem. Tlida em I/P;01 ,;0P;0 e -,!<A!D.

iptables 8A I/P;0 8p tcp 88dport $: 8* !=U=C0

?,>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

Principais a&es no iptables ('(S)*+,(-+#

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

\ ec7o 9 A sudo tee RprocRsYsRnetRip3%RipEfor5ard ] ec7o 9 D RprocRsYsRnetRip3%RipEfor5ard


fire5all internet
et7M et79

intranet

Principais a&es no iptables (S.( #

./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

Principais a&es no iptables (,+-I,+C #

!=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

/a configurao do s6uid1 use a seguinte lin7a4

pro2YSf5 4:9$L
et79

cliente intranet
Acesso a internet na porta LM

Principais a&es no iptables (-.( #

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

<<<

Principais a&es no iptables (redirecionando cadeias#

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.

iptables 8/ internet iptables 8A I/P;0 8p tcp 88dport LM 8* internet


I/P;0 !egra 9 8* internet !egra : !egra 9 !egra $ !egra : !egra no atingida4 aplica poltica padro da cadeia e retorna se poss3el internet

...
!egra n

...
!egra m

,efer/ncias

, iptables tutorial1 do ,scar Andreasson1 ' imperd3el4

7ttp4RR555.fro(entu2.netRdocumentsRiptables8tutorialR

, guia foca ?inu21 como sempre4

7ttp4RRfocalinu2.cipsga.org.brRguiaRa3ancadoRc78f58iptables.7tml

A pgina do pro*eto netfilter )com alguns docs em P0EB!+4

7ttp4RR555.netfilter.orgRdocumentationR