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 aes

!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 instrues 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.
!egra 9
!egra $
!egra :
!egra n
...
Cadeia
...
/en7uma regra atingida.
;sa a poltica da cadeia
!egra
atingida
Analise a 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 cone2es+

P!=!,;0I/>

,;0P;0

P,.0!,;0I/>
Conceitos bsicos

0abelas do iptables )continuao+4

0abela mangle4 permite alteraes 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
P!,C=.., ?,CA?
-,!<A!D
I/P;0 ,;0P;0
!oteamento !oteamento
interface
de sada

0abela filter e suas cadeias


interface
de entrada
Organizao das tabelas do iptables

0abela nat e suas cadeias


P!,C=.., ?,CA?
P!=!,;0I/> P,.0!,;0I/>
,;0P;0
!oteamento !oteamento
interface
de entrada
interface
de sada
Organizao das tabelas do iptables
P!,C=.., ?,CA?
-,!<A!D P!=!,;0I/> P,.0!,;0I/>
I/P;0 ,;0P;0
!oteamento !oteamento
interface
de entrada
interface
de sada

0abela mangle e suas cadeias


Organizao das tabelas do iptables
P!,C=.., ?,CA?
P!=!,;0I/> P,.0!,;0I/>
,;0P;0
!oteamento !oteamento
interface
de entrada
interface
de sada

0abelas ra5 e suas cadeias


Organizao das tabelas do iptables
P!,C=.., ?,CA?
-,!<A!D P!=!,;0I/> P,.0!,;0I/>
I/P;0 ,;0P;0

filter

mangle

nat )D/A0+

ra5

filter

mangle

ra5

mangle

nat )D/A0+

mangle

nat )./A0+
!oteamento !oteamento
interface
de entrada

filter

mangle
interface
de sada

0abelas filter1 nat1 mangle e ra5 e suas cadeias


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

!estaurando4

sudo iptables8restore F ar6ui3oEdeEregras

G poss3el sal3ar os contadores com 8c


Formato geral das regras do iptables

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


=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.
Ao a ser tomada.
Por e2emplo1 D!,P1
ACC=P01 pular para
outra cadeia1 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

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

iptables 8A ,;0P;0 8d uol.com.br 8* ACC=P0


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

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

iptables 8A ,;0P;0 8p tcp 88dport $: 8* D!,P


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 opes de filtragem 6ue e2igem a opo O8mQ1 em geral opes


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 opes O8mQ


Principais a&es no iptables

ACC=P04 aceita o pacote

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

D!,P4 descarta o pacote

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.

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

?,>4 coloca no log informaes 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 opes 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 intranet
et79 et7M
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

/a configurao do s6uid1 use a seguinte lin7a4

7ttpEport :9$L transparent


pro2YSf5
4:9$L
intranet
cliente
Acesso a
internet na
porta LM
et79
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 88to8


destination 9_$.9&.M.9M
fire5all
internet intranet
<<< cliente
$MM.$9M.9.$ 9_$.9&.M.9M
9_$.9&.M.9 &N.9M.$M.:9
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


!egra 9
8* internet
!egra :
!egra n
...
I/P;0
...
!egra 9
!egra $
!egra :
!egra m
...
internet
... !egra no
atingida4 aplica
poltica padro da
cadeia e retorna
se poss3el
,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

Você também pode gostar