0% acharam este documento útil (0 voto)
27 visualizações37 páginas

Aula 03

O documento resume as principais características e funcionalidades do IPTables, um firewall implementado no kernel Linux. O IPTables pode ser usado para filtrar pacotes, NAT, QoS, redirecionamento de portas e endereços, detecção de fragmentos e proteção contra ataques. Ele funciona comparando regras para determinar se um pacote pode ou não passar através de suas chains.

Enviado por

Projeto Polo 1.6
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia online no Scribd
Fazer download em pdf ou txt
0% acharam este documento útil (0 voto)
27 visualizações37 páginas

Aula 03

O documento resume as principais características e funcionalidades do IPTables, um firewall implementado no kernel Linux. O IPTables pode ser usado para filtrar pacotes, NAT, QoS, redirecionamento de portas e endereços, detecção de fragmentos e proteção contra ataques. Ele funciona comparando regras para determinar se um pacote pode ou não passar através de suas chains.

Enviado por

Projeto Polo 1.6
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PDF, TXT ou leia online no Scribd
Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1/ 37

FIREWALL – IPTABLES

TÉCNICO EM INFORMÁTICA

Prof. Edmilson Vieira


Aula 1
Introdução
• O IPTables é uma versão robusta, completa e tão
estável quanto seus antecessores IPFWADM e
IPCHAINS, implementados nos Kernels Linux 2.0 e
2.2 respectivamente.
• IPTables é um firewall muito conhecido na
comunidade Linux que foi incorporado ao mesmo
em 1999.
Introdução
• Principais características:
– Filtro de Pacotes
– NAT
– QoS sobre tráfego
– Redirecionamento de endereços e portas
– Detecção de fragmentos
– Bloqueio de ataques
– Entre outros.
Introdução

• Surgiu com o objetivo de proteger as máquinas


de acessos ou tráfego indesejado.
• Proteger serviços que estejam rodando na
máquina.
• Bloquear a passagem de algo que não deseja
receber (por exemplo: conexões vindas da
Internet).
Introdução

• Foi introduzido no kernel2.4 do Linux.


• É um firewall em nível de pacotes, com
funcionamento baseado em endereço e porta de
origem/destino, prioridade, entre outros.
• Seu funcionamento é baseado na comparação de
regras para saber se um pacote pode ou não
passar.
Introdução
• Pode ser usado para:
– Monitorar e/ou modificar tráfego de rede, efetuar NAT
(masquerading, sourceNAT, destinationNAT);
– Redirecionamento de pacotes;
– Marcação de pacotes;
– Modificação de prioridade dos pacotes de entrada/saída;
– Contagem de bytes;
– Divisão de tráfego;
– Proteção anti-spoofing (pacotes com IP falsificado);
– Proteção contra synflood (forma de negação de serviço);
– Proteção contra DoS (forma de negação de serviço);
– Etc.
PARA LEMBRAR

• Não funciona de forma automática, ou seja, somente


instalar e esperar que ele faça o resto.
• É necessário pelo menos conhecimentos básicos em
redes TCP/IP e roteamento e portas.
• Esses conhecimentos são necessários para criar
regras de segurança.
PARA LEMBRAR

• Lembre-se:
– A segurança do sistema depende do conjunto de
regras que serão criados por você;
– 95% das invasões de sucesso são devido a falhas
humanas na configuração;
• Trabalharemos principalmente com a função
Filtro de Pacotes que é a mais utilizada no
IPTables, bloqueando e permitindo serviços em
uma rede.
O que é iptables?
 Tem o objetivo de proteger a máquina contra
acessos indesejados

 Muito rápido, estável e seguro

 Suporte a protocolos TCP/UDP/ICMP


(incluindo tipos de mensagens icmp)

 Foi implantado na versão 2.4 do kernel


Esquema de rede com iptables
Chains
 O que são?
• Basicamente para filtragem de pacotes
existem basicamente três tipos de chains, são
elas:

 Tipos de chains
 Embutidos
 Criados
Tabelas
 FILTER
 INPUT
 OUTPUT
 FORWARD

 NAT
 PREROUTING
 OUTPUT
 POSTROUTING

 MANGLE
 INPUT
 FORWARD
 PREROUTING
 POSTROUTING
 OUTPUT
Tabela FILTER
• Descrição: É a tabela padrão, ela não precisa ser especificada
na sintaxe do iptables.
• Chains:
– INPUT → Consultado para dados que chegam a máquina
– OUTPUT → Consultado para dados que saem da máquina
– FORWARD → Consultado para dados que são redirecionados
para outra interface de rede ou outra máquina.
Exemplo: iptables -A FORWARD -i eth0 -o eth2 -m pkttype --pkt-
type multicast -j DROP
Tabela FILTER
Exemplo: iptables -A FORWARD -i eth0
-o eth2 -m pkttype --pkt-type
multicast -j DROP
Tabela NAT
• Descrição: Usada para dados que geram outra conexão
(masquerading, source nat, destination nat, port forwarding, proxy
transparente são alguns exemplos).
• Chain:
– PREROUTING → Consultado quando os pacotes precisam ser
modificados logo que chegam.
– OUTPUT → Consultado quando os pacotes gerados
localmente precisam ser modificados antes de serem roteados.
– POSTROUTING → Consultado quando os pacotes precisam
ser modificados após o tratamento de roteamento.
Exemplo: iptables -t nat -A POSTROUTING -s 192.168.1.2 -o eth0 -j
SNAT --to 200.200.217.40
Tabela NAT
Exemplo:
iptables -t nat -A POSTROUTING -s
192.168.1.2 -o eth0 -j SNAT --to
200.200.217.40
Tabela Mangle
• INPUT - Consultado quando os pacotes precisam ser modificados antes
de serem enviados para o chain INPUT da tabela filter.

• FORWARD - Consultado quando os pacotes precisam ser modificados


antes de serem enviados para o chain FORWARD da tabela filter.

• PREROUTING - Consultado quando os pacotes precisam ser


modificados antes de ser enviados para o chain PREROUTING da tabela
nat.

• POSTROUTING - Consultado quando os pacotes precisam ser


modificados antes de serem enviados para o chain POSTROUTING da
tabela nat.

• OUTPUT - Consultado quando os pacotes precisam ser modificados


antes de serem enviados para o chain OUTPUT da tabela nat.
Sintaxe do iptables
 Sintaxe: iptables [-t tabela] [opção] [chain] [dados] -j
[ação]
 Exemplo: iptables -t filter -A INPUT -d 127.0.0.1 -j DROP

Explicando: Bloqueia qualquer acesso indo ao endereço


127.0.0.1, que é nosso localhost.
Criando um chain
 Opção -N
 iptables [-t tabela] [-N nomedochain]

Exemplo: iptables -t filter -N internet


– Inserindo regra no novo chain “internet”:
iptables -t filter -A internet -s 192.168.0.102 -j DROP
iptables -t filter -A INPUT -j internet
Criando um chain
 Tabela de regras:
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

Explicação: Fizemos um redirecionamento ou o conhecido


“pulo”.
Renomeando um chain
 Opção -E
 iptables [-t tabela] -E chain-antigo chain-novo

 Exemplo: iptables -t filter -E internet teste


Apagando um chain criado
 Opção -X
 iptables [-t tabela] -X [chain]

Exemplo: iptables -t filter -X teste

OBS.: Chains embutidos não podem ser apagados pelo


usuário
Especificando o alvo
• Opção -j
– Iptables [- tabela] [-A chain] [dados] -j [ALVO]

• Tipos:
– ACCEPT → Aceita o pacote
– DROP → “Dropa”, ou simplesmente não 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 são regras?

Exemplo: iptables -A INPUT -s 200.222.256.63 -j DROP

OBS.: As regras são armazenadas dentro dos chains e


processadas na ordem que são inseridas.
Adicionando regras
 Opção -A:
 iptables [-t tabela] -A [chain] [dados] -j [ação]
 Opção -I:
 iptables [-t tabela] -I [chain] [dados] -j [ação]

Exemplo: iptables -t filter -I INPUT -s 192.168.0.10 -d


192.168.0.11 -j DROP
Listando regras
 Opção -L
 iptables [-t tabela] -L [chain] [opções]
[opções]:
-v → Exibe mais detalhes sobre as regras criadas nos chains
-n → Exibe endereços de máquinas/portas como números
-x → Exibe números exatos. Mostra a faixa de portas de uma regra
--line-numbers → Exibe o número da posição da regra

Exemplo: iptables -t filter -L INPUT --line-numbers


Apagando uma regra
 Opção -D
 iptables [-t tabela] -D [chain] [posição]
 iptables [-t tabela] -D [chain] [dados] -j [ação]

Exemplo: iptables -t filter -D INPUT 1


iptables -t filter -D INPUT -d 127.0.0.1 -j DROP
Substituindo uma regra
 Opção -R
 iptables [-t tabela] -R [chain] [posição] [regra] -j
[ação]

Exemplo: iptables -R INPUT 1 -d 127.0.0.1 -p icmp -j DROP


Limpando regras
 Opção -F
 iptables [-t tabela] -F [chain]

Exemplo: iptables -F
iptables -t filter -F INPUT
Parâmetros
• Parâmetro -s
– Usado para especificar endereços de origem. Também é usado
como --src ou --source
• Parâmetro -d
– Usado para especificar endereços de destino. Também usado
como --dst e –destination

Exemplo: iptables -t filter -A INPUT -s 192.168.0.104 -d


192.168.0.102 -p icmp -j DROP
Parâmetros
• Parâmetro -i
– Usado para especificar a interface de entrada.
• Parâmetro -o
– Usado para especificar a interface de saída
Exemplo: iptables -t filter -A INPUT -s 192.168.0.104 -i ppp+
-j DROP
Exemplo2: iptables -A FORWARD -i ppp0 -o eth1 -j DROP
OBS.: O sinal de "+" funciona como um coringa, assim a regra terá
efeito em qualquer interface de ppp0 a ppp9.
Parâmetros
• Parâmetro -p
– Usado para especificar um protocolo. Podem ser especificados
os procolos, TCP, UDP e ICMP.

Exemplo: iptables -A INPUT -s 192.168.0.104 -p icmp -j DROP


• Parâmetro –dport
– Especifica uma porta ou faixa de portas de destino.
Exemplo: iptables -A OUTPUT -d 200.200.200.200 -p tcp --dport
:1023 -j DROP
Fazendo IP Masquerade
• Descrição: O IP Masquerading é um tipo especial de SNAT
usado para conectar a sua rede interna a internet quando você
recebe um IP dinâmico de seu provedor (como em conexões
ppp).

Exemplo: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o


ppp0 -j MASQUERADE

OBS.: Todas as operações de IP Masquerading são realizadas no


chain POSTROUTING
Fazendo DNAT
• Descrição: DNAT (Destination nat - nat no endereço de
destino) consiste em modificar o endereço de destino das
máquinas clientes. O destination nat é muito usado para fazer
redirecionamento de pacotes, proxys transparentes e
balanceamento de carga.

Exemplo: iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0


-j DNAT --to 192.168.1.2

OBS.: Toda operação de DNAT é feita no chain PREROUTING


Fazendo SNAT
• Descrição: SNAT (source nat - nat no endereço de origem)
consiste em modificar o endereço de origem das máquinas
clientes antes dos pacotes serem enviados. A máquina roteadora
é inteligente o bastante para lembrar dos pacotes modificados e
reescrever os endereços assim que obter a resposta da máquina
de destino, direcionando os pacotes ao destino correto.
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.: SNAT faz a operação inversa do DNAT.
TESTES
• 1. Bloqueie qualquer acesso do protocolo ICMP para a sua
máquina
• 2. Bloqueie pacotes que irão entrar na sua rede com o ip
de origem 192.168.0.15 na porta 22 (por ssh)‫‏‬
• 3. Faça IP Masquerade da sua rede 192.168.2.0/24
• 4. Bloqueie a passagem dos pacotes da interface eth1 para
eth2

Você também pode gostar