• Nenhum resultado encontrado

Aula 09 - Firewalls com IPTABLES

N/A
N/A
Protected

Academic year: 2021

Share "Aula 09 - Firewalls com IPTABLES"

Copied!
56
0
0

Texto

(1)

Sejam bem vindos...

SEGURANÇA DA INFORMAÇÃO

Firewalls

(2)

CARACTERISTICAS DO

IPTABLES

●Especificação de portas/endereço de origem/destino;

• Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens icmp);

• Suporte a interfaces de origem/destino de pacotes; • Manipulação de serviços de proxy na rede;

• Tratamento de tráfego dividido em chains e tráfego redirecionado;

(3)

CARACTERISTICAS DO

IPTABLES

• Muito rápido, estável e seguro;

• Possui mecanismos internos para rejeitar automaticamente pacotes duvidosos ou mal formados;

• Suporte a módulos externos para expansão das

funcionalidades padrões oferecidas pelo código de firewall;

• Suporte completo a roteamento de pacotes, tratados em uma área diferente de tráfegos padrões;

(4)

CARACTERISTICAS DO

IPTABLES

● Permite especificar exceções para as regras ou parte das regras;

• Suporte a detecção de fragmentos;

• Permite enviar alertas personalizados ao syslog sobre o tráfego aceito/bloqueado;

• Redirecionamento de portas; • Masquerading;

• Suporte a SNAT (modificação do endereço de origem das máquinas para um único IP ou faixa de IP’s);

(5)

CARACTERISTICAS DO

IPTABLES

• Suporte a DNAT (modificação do endereço de destino das máquinas para um único IP ou faixa de IP’s);

• Contagem de pacotes que atravessaram uma interface/regra; • Limitação de passagem de pacotes/conferência de regra

(muito útil para criar proteções contra DoS, syn flood, ping flood, etc);

(6)

NOTAS

DoS (Deny of Service) é um ataque de negação de serviço, também conhecido como DoS Attack, sendo uma tentativa em tornar os recursos de um sistema indisponíveis para seus utilizadores.

SYN flood ou ataque SYN é uma forma de ataque de negação de serviço, na qual o atacante envia uma sequência de requisições SYN para um sistema-alvo visando uma sobrecarga direta na camada de transporte e indireta na camada de aplicação do modelo OSI.

Ping flood é um ataque de negação de serviço simples no qual o atacante sobrecarrega o sistema vítima com pacotes ICMP Echo Request (pacotes ping). Este ataque apenas é bem sucedido se o atacante possui mais largura de banda que a vitima. Como a vitima tentará responder aos pedidos, irá

(7)

TRABALHANDO COM IPTABLES

O iptables possui 5 tabelas da qual 2 são

mais comuns:

Filter: Controla o conteúdo de um pacote

analisando IP, Portas, TCP, UDP e ICMP,

permitindo ou negando conexões.

Nat: Compartilhar e redirecionar pacotes para

(8)

TRABALHANDO COM IPTABLES

As regras no Iptables sempre são iniciadas

apontando sua tabela.

Exemplo:

# iptables -t filter ...

# iptables -t nat ...

(9)

TRABALHANDO COM IPTABLES

Após definir a tabela, será necessário definir a

chain.

Chains Filter:

INPUT: Regras para entrada de pacotes.

OUTPUT:Regras para saída de pacotes.

(10)

TRABALHANDO COM IPTABLES

Chains Nat:

PREROUTING:

Regras

que

serão

processadas antes do roteamento dos

pacotes nas interfaces do firewall.

POSTROUTING:

Regras

que

serão

processada pós roteamento dos pacotes nas

interfaces do firewall.

(11)

TRABALHANDO COM IPTABLES

Após definir a tabela, será definido a chain

como no exemplo abaixo.

Exemplo Filter:

# iptables -t filter -A INPUT

# iptables -t filter -A OUTPUT

# iptables -t filter -A FORWARD

(12)

TRABALHANDO COM IPTABLES

Exemplo Nat:

# iptables -t nat -A POSTROUTING

# iptables -t nat -A OUTPUT

(13)

TRABALHANDO COM IPTABLES

(14)

TRABALHANDO COM IPTABLES

(15)

TRABALHANDO COM IPTABLES

Após definir a tabela, e a chain como no

exemplo abaixo, é definido os parâmetros de

interface, IP, protocolo e portas.

Exemplo Filter:

# iptables -t filter -A INPUT -p tcp -s

192.168.0.1 ...

(16)

TRABALHANDO COM IPTABLES

# iptables -t filter -A INPUT -p tcp -s

192.168.0.1 –sport 1024:65535 --dport 80 …

#iptables -t nat -A POSTROUTING -o eth0 ...

(17)

TRABALHANDO COM IPTABLES

Alvos do Iptables.

OBS: Para apontar os alvos utilizamos a flag

-j.

(18)

TRABALHANDO COM IPTABLES

Após definir a tabela, e a chain como no

exemplo abaixo, é parâmetros de interface, IP,

protocolo e portas, apontamos o ALVO.

Exemplo Filter:

# iptables -t filter -A INPUT -p tcp -s

192.168.0.1 -j DROP

(19)

TRABALHANDO COM IPTABLES

Após definir a tabela, e a chain como no

exemplo abaixo, é parâmetros de interface, IP,

protocolo e portas, apontamos o ALVO.

Exemplo Filter:

# iptables -t filter -A INPUT -p tcp -s

192.168.0.1 -j DROP

(20)

TRABALHANDO COM IPTABLES

# iptables -t filter -A INPUT -p tcp -s

192.168.0.1 –sport 1024:65535 --dport 80 -j

ACCEPT

#iptables -t nat -A POSTROUTING -o eth0 -j

MASQUERADE

(21)

TRABALHANDO COM IPTABLES

(22)

VERIFICAR CONTEÚDO DA

TABELA EM MEMÓRIA

(23)

VERIFICAR CONTEÚDO DA

TABELA EM MEMÓRIA

1- Verificar conteúdo da tabela filter.

# iptables -t filter -L

2- Verificar conteúdo da tabela nat.

# iptables -t nat -L

(24)

LIMPAR REGRAS EXISTENTES

NA TABELA

(25)

VERIFICAR CONTEÚDO DA

TABELA EM MEMÓRIA

1- Limpa conteúdo da tabela filter.

# iptables -t filter -F

2- Limpa conteúdo da tabela nat.

# iptables -t nat -F

(26)

DEFININDO POLITICA DE

FILTRAGEM PADRÃO

(27)

IMPLEMENTAÇÃO PRÁTICA

1- Definir Politica de Negativa padrão.

# iptables -t filter -P INPUT DROP

# iptables -t filter -P OUTPUT DROP

# iptables -t filter -P FORWARD DROP

OBS: Antes colocar as regras de DROP

padrão, teste o acesso com PING.

(28)

IMPLEMENTAÇÃO PRÁTICA

2- Definir Politica de permissão padrão.

# iptables -t filter -P INPUT ACCEPT

# iptables -t filter -P OUTPUT ACCEPT

# iptables -t filter -P FORWARD ACCEPT

OBS: Antes colocar as regras de ACCEPT

padrão, teste o acesso com PING.

(29)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(30)

IMPLEMENTAÇÃO PRÁTICA

Ip's de origem são setados coma flag -s de

--source, e IP's de destino são setados

pela flgs -d de --destination.

Exemplos:

# Aceitar pacotes que tenham como origem a rede.

# iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT # NEGAR pacotes que tenham como origem a rede.

(31)

IMPLEMENTAÇÃO PRÁTICA

Exemplos:

# Aceitar pacotes que tenham como origem a rede 192.168.0.0/24 que tenha como destino seu firewall.

# iptables -t filter -A INPUT -s 192.168.0.0/24 -d 192.168.0.254 -j ACCEPT

# Negar pacotes que tenham como origem a rede 192.168.0.0/24 que tenha como destino seu firewall.

(32)

EXEMPLOS DE REGRAS PARA

FILTRAGEM - EXTRA

IP DE ORIGEM E DESTINO

Utilizando inversão “!”

(33)

IMPLEMENTAÇÃO PRÁTICA

Utilizamos a inversão para indicar endereços diferentes do escrito em uma regra.

Exemplos:

# Aceitar pacotes que tenham como origem qualquer rede menos a a rede 192.168.0.0/24.

# iptables -t filter -A INPUT ! -s 192.168.0.0/24 -j ACCEPT

# Negar pacotes que tenham como origem qualquer rede menos a a rede 192.168.0.0/24.

(34)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

PROTOCOLOS DE TRANSPORTE

E MENSAGENS

(35)

IMPLEMENTAÇÃO PRÁTICA

Os protocolos são setados com a flag -p

de protocol.

Exemplos:

# Aceitar pacotes com a flag tcp.

# iptables -t filter -A INPUT -p tcp -j ACCEPT # Negar pacotes com a flag tcp.

(36)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

PROTOCOLOS DE TRANSPORTE

E MENSAGENS

TCP/UDP/ICMPP

Utilizando inversão “!”

(37)

IMPLEMENTAÇÃO PRÁTICA

Utilizando a inversão a regra irá tratar

protocolos não especificados na regra,

Exemplos:

# Aceitar pacotes com a flag udp e icmp.

# iptables -t filter -A INPUT ! -p tcp -j ACCEPT # Negar pacotes com a flag udp e icmp.

(38)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(39)

IMPLEMENTAÇÃO PRÁTICA

A comunicação pode ser tratada nas

interfaces de rede, utilizando as flags -i de

--input e -o de --output.

Exemplos:

# Aceitar pacotes que tenha como entrada e saída a interface eth0.

# iptables -t filter -A INPUT -i eth0 -j ACCEPT # iptables -t filter -A OUPUT -o eth0 -j ACCEPT

(40)

IMPLEMENTAÇÃO PRÁTICA

Exemplos:

# Aceitar pacotes que tenha como entrada e saída qualquer interface.

# iptables -t filter -A INPUT -i eth+ -j ACCEPT # iptables -t filter -A OUPUT -o eth+ -j ACCEPT

# Aceitar pacotes que tenha como entrada e saída qualquer interface menos a eth0.

(41)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(42)

IMPLEMENTAÇÃO PRÁTICA

Quando criamos uma regra com apenas o protocolo tcp, automaticamente as suas extensões são setadas.

Exemplos:

# iptables -t filter -A INPUT -p tcp -j ACCEPT # iptables -t filter -A OUPUT -p tcp -j ACCEPT

(43)

IMPLEMENTAÇÃO PRÁTICA

Veja as opções que pode serem tratadas ao TCP. --sport ou --source-port : Porta de origem.

--dport ou --destination-port : Porta de destino. Exemplo:

#iptables -t filter -A INPUT -p tcp --sport 80 --dport 1024:65535 -j ACCEPT

(44)

IMPLEMENTAÇÃO PRÁTICA

Veja as opções que pode serem tratadas ao TCP.

--tcp-flags : Trata as flags do TCP SYN, FIN, ACK, RST, PSH, URG.

Exemplos:

#iptables -t filter -A INPUT -p tcp ! --tcp-flags ALL RST -j DROP

(45)

IMPLEMENTAÇÃO PRÁTICA

Outra opção que pode ser tratada é utilizando a opção --syn, que trata diretamente apenas as flags

bidirecionais do TCP “SYN/ACK e RST”. --syn : Trata as flags do TCP bidirecionais. Exemplo:

(46)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(47)

IMPLEMENTAÇÃO PRÁTICA

Quando criamos uma regra com apenas o protocolo udp, automaticamente as suas extensões são setadas.

Exemplos:

# iptables -t filter -A INPUT -p udp -j ACCEPT # iptables -t filter -A OUPUT -p udp -j ACCEPT

(48)

IMPLEMENTAÇÃO PRÁTICA

Veja as opções que pode serem tratadas ao UDP. --sport ou --source-port : Porta de origem.

--dport ou --destination-port : Porta de destino. Exemplo:

#iptables -t filter -A INPUT -p udp --sport 53 --dport 1024:65535 -j ACCEPT

(49)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(50)

IMPLEMENTAÇÃO PRÁTICA

Quando criamos uma regra com apenas o protocolo icmp, automaticamente as suas extensões são setadas.

Exemplos:

# iptables -t filter -A INPUT -p icmp -j ACCEPT # iptables -t filter -A OUPUT -p icmp -j ACCEPT

(51)

IMPLEMENTAÇÃO PRÁTICA

Existem várias mensagens do tipo icmp, mas as mais comuns é do tipo 8 código 0 e tipo 0 código 0.

As mensagens do tipo 8 é o echo request, o tipo 0 echo reply.

Exemplo:

# iptables -t filter -A OUTPUT -p icmp --icmp-type 8/0 -j ACCEPT

# iptables -t filter -A INPUT -p icmp --icmp-type 0/0 -j ACCEPT

(52)

EXEMPLOS DE REGRAS PARA

FILTRAGEM

(53)

IMPLEMENTAÇÃO PRÁTICA

Os módulos do iptables são setadas com a opção -m, temos alguns módulos interessantes para o dia-a-dia, como o mudulo limit.

limit : Esse modulo deve ser especificado com -m limit, é utilizado para suprimir a taxa de pacotes e mensagens de log, fazendo um controle por tempo..

São 2 tipos:

(54)

IMPLEMENTAÇÃO PRÁTICA

--limit-burst: Especifica um número de pacotes para entrada antes de tornar o limite valido.

Exemplos para ICMP:

#iptables -t filter -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT

#iptables -t filter -A INPUT -p icmp --icmp-type 8 -m limit --limit-burst 4 -j ACCEPT

(55)

IMPLEMENTAÇÃO PRÁTICA

Para zerar o contador basta executar o comando: #iptables -Z

(56)

IMPLEMENTAÇÃO PRÁTICA

Outro modulo interessante, é o de MAC -m mac, mas com um detalhe, onde só poderá ser utilizado com as chains INPUT e PREROUTING.

#iptables -t filter -A INPUT -d 0/0 -m mac –mac-source AA:BB:CC:11:22:33 -j DROP

Referências

Documentos relacionados