Académique Documents
Professionnel Documents
Culture Documents
SEGURAN
A COM IPTABLES
A COM IPTABLES
Autor: Leonardo Stroyker Damasceno
Tpicos
O que iptables iptables?
Esquema de rede com
iptables
Chains
Tabelas
Sintaxe do iptables
Criando um chain
Renomeando um chain
Apagando um chain criado
Especficando um alvo
Regras
Adicionando
Listando
Apagando
Substituindo
Limpando
Parmetros
Fazendo IP Masquerade
Fazendo DNAT
Fazendo SNAT
TESTES
O que iptables?
Tem o objetivo de proteger a mquina contra
acessos indesejados
Muito rpido, estvel e seguro
Suporte a protocolos TCP/UDP/ICMP (incluindo
tipos de mensagens icmp)
Foi implantado na verso 2.4 do kernel
Esquema de rede com iptables
Chains
O que so?
Tipos de chains
Embutidos
Criados
Tabelas
FILTER
FILTER
INPUT
OUTPUT
FORWARD
NAT
NAT
PREROUTING
OUTPUT
POSTROUTING
MANGLE
MANGLE
INPUT
FORWARD
PREROUTING
POSTROUTING
OUTPUT
Tabela FILTER
Tabela FILTER
Descri
Descri
o:
o: a tabela padro, ela no precisa ser
especificada na sintaxe do iptables.
Chains:
Chains:
INPUT
INPUT
OUTPUT
OUTPUT Consultado para dados que saem da mquina
FORWARD
FORWARD Consultado para dados que so
redirecionados para outra interface de rede ou outra
mquina.
Exemplo:
Exemplo: iptables -A FORWARD -i eth0 -o eth2 -m pkttype --
pkt-type multicast -j DROP
Tabela NAT
Tabela NAT
Descri
Descri
o:
o: Usada para dados que geram outra conexo
(masquerading, source nat, destination nat, port forwarding,
proxy transparente so alguns exemplos).
Chain:
Chain:
PREROUTING
PREROUTING Consultado quando os pacotes
precisam ser modificados logo que chegam.
OUTPUT
OUTPUT
POSTROUTING
POSTROUTING
INPUT
INPUT - Consultado quando os pacotes precisam ser modificados
antes de serem enviados para o chain INPUT da tabela filter.
FORWARD
FORWARD - Consultado quando os pacotes precisam ser
modificados antes de serem enviados para o chain FORWARD da
tabela filter.
PREROUTING
PREROUTING - Consultado quando os pacotes precisam ser
modificados antes de ser enviados para o chain PREROUTING da
tabela nat.
POSTROUTING
POSTROUTING - Consultado quando os pacotes precisam ser
modificados antes de serem enviados para o chain POSTROUTING
da tabela nat.
OUTPUT
OUTPUT - Consultado quando os pacotes precisam ser
modificados antes de serem enviados para o chain OUTPUT da
tabela nat.
Sintaxe do iptables
Sintaxe:
iptables [
iptables [
-
-
t tabela] [op
t tabela] [op
o] [chain] [dados]
o] [chain] [dados]
-
-
j
j
[a
[a
o]
o]
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
A INPUT
A INPUT
-
-
d 127.0.0.1
d 127.0.0.1
-
-
j
j
DROP
DROP
Explicando:
Explicando: Bloqueia qualquer acesso indo ao
endereo 127.0.0.1, que nosso localhost.
Criando um chain
Criando um chain
Opo -N
iptables [-t tabela] [-N nomedochain]
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
N internet
N internet
Inserindo regra no novo chain internet:
iptables
iptables
-
-
t filter
t filter
-
-
A internet
A internet
-
-
s 192.168.0.102
s 192.168.0.102
-
-
j DROP
j DROP
iptables
iptables
-
-
t filter
t filter
-
-
A INPUT
A INPUT
-
-
j internet
j internet
Criando um chain
Criando um chain
Tabela de regras:
Explica
Explica
o:
o: Fizemos um redirecionamento ou o
conhecido pulo.
INPUT INTERNET
-s 192.168.0.97 -j DROP -s 192.168.0.102 -j DROP
-s 192.168.0.101 -j ACCEPT
-s 192.168.0.103 -j ACCEPT
-j internet
Renomeando um chain
Renomeando um chain
Opo -E
iptables [-t tabela] -E chain-antigo chain-novo
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
E internet teste
E internet teste
Apagando um chain criado
Apagando um chain criado
Opo -X
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
X [chain]
X [chain]
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
X teste
X teste
OBS.:
OBS.: Chains embutidos no podem ser apagados pelo
usurio
Especificando o alvo
Opo -j
Iptables [- tabela] [-A chain] [dados] -j [ALVO]
Tipos:
Tipos:
ACCEPT Aceita o pacote
DROP Dropa, ou simplismente no aceita o pacote
REJECT Rejeita o pacote, enviando uma mensagem
LOG Envia uma mensagem ao syslog caso a regra confira
RETURN Para o processamento do chain atual, e retorna
QUEUE Passa para o processamento de programas externos
Regras
O que so regras?
Exemplo:
Exemplo:
iptables
iptables
-
-
A INPUT
A INPUT
-
-
s 200.222.256.63
s 200.222.256.63
-
-
j
j
DROP
DROP
OBS.: As regras so armazenadas dentro dos chains e
processadas na ordem que so inseridas.
Adicionando regras
Adicionando regras
Op
Op
o
o
-
-
A:
A:
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
A [chain] [dados]
A [chain] [dados]
-
-
j [a
j [a
o]
o]
Op
Op
o
o
-
-
I:
I:
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
I [chain] [dados]
I [chain] [dados]
-
-
j [a
j [a
o]
o]
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
I INPUT
I INPUT
-
-
s 192.168.0.10
s 192.168.0.10
-
-
d
d
192.168.0.11
192.168.0.11
-
-
j DROP
j DROP
Listando regras
Listando regras
Opo -L
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
L [chain] [op
L [chain] [op
es]
es]
[opes]:
-v Exibe mais detalhes sobre as regras criadas nos chains
-n Exibe endereos de mquinas/portas como nmeros
-x Exibe nmeros exatos. Mostra a faixa de portas de uma regra
--line-numbers Exibe o nmero da posio da regra
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
L INPUT
L INPUT
--
--
line
line
-
-
numbers
numbers
Apagando uma regra
Apagando uma regra
Opo -D
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
D [chain] [posi
D [chain] [posi
o]
o]
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
D [chain] [dados]
D [chain] [dados]
-
-
j [a
j [a
o]
o]
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
D INPUT 1
D INPUT 1
iptables
iptables
-
-
t filter
t filter
-
-
D INPUT
D INPUT
-
-
d 127.0.0.1
d 127.0.0.1
-
-
j DROP
j DROP
Substituindo uma regra
Substituindo uma regra
Opo -R
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
R [chain] [posi
R [chain] [posi
o] [regra]
o] [regra]
-
-
j
j
[a
[a
o]
o]
Exemplo:
Exemplo:
iptables
iptables
-
-
R INPUT 1
R INPUT 1
-
-
d 127.0.0.1
d 127.0.0.1
-
-
p icmp
p icmp
-
-
j
j
DROP
DROP
Limpando regras
Limpando regras
Opo -F
iptables [
iptables [
-
-
t tabela]
t tabela]
-
-
F [chain]
F [chain]
Exemplo:
Exemplo:
iptables
iptables
-
-
F
F
iptables
iptables
-
-
t filter
t filter
-
-
F INPUT
F INPUT
Parmetros
Parmetros
Parmetro -s
Usado para especificar endereos de origem. Tambm
usado como --src ou --source
Parmetro -d
Usado para especificar endereos de destino. Tambm
usado como --dst e destination
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
A INPUT
A INPUT
-
-
s 192.168.0.104
s 192.168.0.104
-
-
d
d
192.168.0.102
192.168.0.102
-
-
p icmp
p icmp
-
-
j DROP
j DROP
Parmetros
Parmetros
Parmetro -i
Usado para especificar a interface de entrada.
Parmetro -o
Usado para especificar a interface de sada
Exemplo:
Exemplo:
iptables
iptables
-
-
t filter
t filter
-
-
A INPUT
A INPUT
-
-
s 192.168.0.104
s 192.168.0.104
-
-
i
i
ppp+
ppp+
-
-
j DROP
j DROP
Exemplo2:
Exemplo2:
iptables
iptables
-
-
A FORWARD
A FORWARD
-
-
i ppp0
i ppp0
-
-
o eth1
o eth1
-
-
j
j
DROP
DROP
OBS.:
OBS.: O sinal de "+" funciona como um coringa, assim a regra
ter efeito em qualquer interface de ppp0 a ppp9.
Parmetros
Parmetros
Parmetro -p
Usado para especificar um protocolo. Podem ser
especificados os procolos,
TCP
TCP,
UDP
UDP e
ICMP.
ICMP.
Exemplo:
Exemplo: iptables -A INPUT -s 192.168.0.104 -p icmp -j DROP
Parmetro dport
Especifica uma porta ou faixa de portas de destino.
Exemplo:
Exemplo: iptables -A OUTPUT -d 200.200.200.200 -p tcp --
dport :1023 -j DROP
Fazendo IP Masquerade
Fazendo IP Masquerade
Descri
Descri
o:
o: O IP Masquerading um tipo especial de
SNAT usado para conectar a sua rede interna a internet
quando voc recebe um IP dinmico de seu provedor (como
em conexes ppp).
Exemplo:
Exemplo: iptables iptables - -t nat t nat - -A POSTROUTING A POSTROUTING - -s 192.168.1.0/24 s 192.168.1.0/24 - -
o ppp0 o ppp0 - -j MASQUERADE j MASQUERADE
OBS.:
OBS.: Todas as opera Todas as opera es de IP Masquerading so realizadas es de IP Masquerading so realizadas
no chain POSTROUTING no chain POSTROUTING
Fazendo DNAT
Fazendo DNAT
Descri
Descri
o:
o: DNAT (Destination nat - nat no endereo de
destino) consiste em modificar o endereo de destino das
mquinas clientes. O destination nat muito usado para fazer
redirecionamento de pacotes, proxys transparentes e
balanceamento de carga.
Exemplo:
Exemplo: iptables -t nat -A PREROUTING -s 200.200.217.40 -i
eth0 -j DNAT --to 192.168.1.2
OBS.:
OBS.: Toda operao de DNAT feita no chain PREROUTING
Fazendo SNAT
Fazendo SNAT
Descri
Descri
o:
o: SNAT (source nat - nat no endereo de
origem) consiste em modificar o endereo de origem das
mquinas clientes antes dos pacotes serem enviados. A
mquina roteadora inteligente o bastante para lembrar dos
pacotes modificados e reescrever os endereos assim que
obter a resposta da mquina de destino, direcionando os
pacotes ao destino correto.
Exemplo:
Exemplo: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -
o eth0 -j SNAT --to 200.200.217.40-200.200.217.50
OBS.:
OBS.: SNAT faz a operao inversa do DNAT.
TESTES
TESTES
1.
1. Bloqueie qualquer acesso do protocolo ICMP para a
sua mquina
2.
2. Bloqueie pacotes que iro entrar na sua rede com o ip
de origem 192.168.0.15 na porta 22 (por ssh)
3.
3. Faa IP Masquerade da sua rede 192.168.1.0/24
4.
4. Bloqueie a passagem dos pacotes da interface eth1
para eth2