iptables na prática

47
Firewall profissional com IPTables Prof. Me. Allysson Steve Mota Lacerda www.aptans.com

Upload: aptans

Post on 24-Jan-2015

2.107 views

Category:

Technology


4 download

DESCRIPTION

Minicurso de IPTables

TRANSCRIPT

Page 1: IPTables na prática

Firewall profissional com IPTables

Prof. Me. Allysson Steve Mota Lacerda

www.aptans.com

Page 2: IPTables na prática

APRESENTAÇÃOPrazer em conhecê-los!

Page 3: IPTables na prática

Quem sou eu?

• Bacharel em Sistemas de Informação– UNIMONTES (2006)

• Mestre em Engenharia Elétrica– UFMG (2010)

Page 4: IPTables na prática

O que eu faço?

• Linhas de trabalho– Infraestrutura de TI

• Servidores Windows e GNU/Linux• Consolidação de servidores• Projetos de rede

Page 5: IPTables na prática

O que eu faço?

• Linhas de trabalho– Segurança da Informação

• Antivírus• AntiSPAM• Firewall• Proxy• VPN• Backup

Page 6: IPTables na prática

O que eu faço?

• Linhas de trabalho– Integração entre ambientes Windows e GNU/Linux

• Autenticação centralizada• Serviços de diretório

Page 7: IPTables na prática

Alguns clientes

Page 8: IPTables na prática

FIREWALLIntrodução

Page 9: IPTables na prática

O firewall

• Funções– proteger a máquina contra acessos indesejados– proteger a máquina contra tráfego indesejado– proteger serviços que estejam rodando na máquina– bloquear a passagem de coisas indesejadas

• conexões vindas da Internet para sua segura rede local

Page 10: IPTables na prática

O que proteger?

• Quais serviços proteger?• Que tipo de conexões eu posso deixar passar?• Que máquinas terão acesso livre?• Que serviços terão prioridade no processamento?• Que máquinas/redes NUNCA deverão ter acesso?• Qual o volume de tráfego que o servidor manipulará?• O que pode passar de uma rede para outra?

Page 11: IPTables na prática

Tipos de firewall

• Firewalls de aplicação– Proxies (SMTP, HTTP etc.)

• Firewalls baseados em estado– Tabelas de estados

• Firewalls de pacotes– Endereços e portas

Page 12: IPTables na prática

O IPTABLESVamos ao que interessa

Page 13: IPTables na prática

Histórico

• IPTables (Netfilter)– surgiu no kernel do Linux 2.4– substitui o ipchains– muita flexibilidade na programação de regras– mais opções para controle de tráfego– controle independente do tráfego da rede

• nova organização das etapas de roteamento de pacotes

Page 14: IPTables na prática

Características

• Especificação de portas/endereço de origem/destino• Suporte a protocolos TCP/UDP/ICMP• Suporte a interfaces de origem/destino de pacotes• Manipula serviços de proxy na rede• Tratamento de tráfego dividido em chains– melhor controle do tráfego

• Permite um número ilimitado de regras por chain

Page 15: IPTables na prática

Características

• Possui mecanismos internos para rejeitar pacotes– duvidosos ou mal formados

• Suporte a módulos externos– expansão das funcionalidades oferecidas

• Suporte completo a roteamento de pacotes• Suporte a especificação de tipo de serviço– priorizar o tráfego de determinados tipos de pacotes

• Permite especificar exceções

Page 16: IPTables na prática

Características

• Permite enviar alertas personalizados ao syslog• Redirecionamento de portas• Masquerading• Suporte a SNAT e DNAT• Contagem de pacotes que atravessaram uma regra• Limitação de passagem de pacotes– útil para criar proteções contra syn flood, ping flood, DoS...

Page 17: IPTables na prática

REGRASE lá vamos nós…

Page 18: IPTables na prática

O que são regras?

“Comandos passados ao iptables para queele realize uma determinada ação”

(Guia FOCA)

• As regras são armazenadas dentro dos chains e processadas na ordem que são inseridas

• As regras são armazenadas no kernel– são perdidas a cada reinicialização– devem ser gravadas em um arquivo

Page 19: IPTables na prática

O que são chains?

“Locais onde as regras do firewall sãoarmazenadas para sua operação”

(Guia FOCA)

• Existem dois tipos de chains– os embutidos (como os INPUT, OUTPUT e FORWARD) – os criados pelo usuário

• Os nomes dos chains– embutidos devem ser especificados sempre em maiúsculas– são case-sensitive (input é diferente de INPUT)

Page 20: IPTables na prática

O que são tabelas?

“Locais usados para armazenar chains e regrascom determinada característica em comum”

(Guia FOCA)

• Podem ser referenciadas com a opção -t <tabela>• Existem 3 tabelas disponíveis no iptables– filter– nat– mangle

Page 21: IPTables na prática

A tabela filter

• Esta é a tabela padrão, contém 3 chains padrões– INPUT: dados que chegam a máquina– OUTPUT: dados que saem da máquina– FORWARD: dados que são redirecionados

• INPUT e OUTPUT– somente são atravessados por conexões de localhost

Page 22: IPTables na prática

A tabela nat

• Usada para dados que geram outra conexão• Possui 3 chains padrões:– PREROUTING: quando os pacotes precisam ser

modificados logo que chegam– OUTPUT: quando os pacotes gerados localmente precisam

ser modificados antes de serem roteados– POSTROUTING: quando os pacotes precisam ser

modificados após o tratamento de roteamento

Page 23: IPTables na prática

A tabela mangle

• Utilizada para alterações especiais de pacotes• Possui 5 chains padrões:– INPUT: quando os pacotes precisam ser modificados antes

de serem enviados para o INPUT da tabela filter– FORWARD: quando os pacotes precisam ser modificados

antes de serem enviados para o FORWARD da tabela filter– PREROUTING: quando os pacotes precisam ser

modificados antes de ser enviados para o PREROUTINGda tabela nat

Page 24: IPTables na prática

A tabela mangle

• Utilizada para alterações especiais de pacotes• Possui 5 chains padrões:– POSTROUTING: quando os pacotes precisam ser

modificados antes de serem enviados para o POSTROUTING da tabela nat

– OUTPUT: quando os pacotes precisam ser modificados antes de serem enviados para o OUTPUT da tabela nat

Page 25: IPTables na prática
Page 26: IPTables na prática

MANIPULANDO CHAINSPare com a enrolação… eu quero ver rodando!

Page 27: IPTables na prática

Adicionando regras - A

• ping 127.0.0.1

• iptables -t filter -A INPUT \-d 127.0.0.1 -j DROP

• ping 127.0.0.1

Page 28: IPTables na prática

Listando regras - L

• iptables -t filter -L INPUT

• iptables -L INPUT –n

• iptables -L INPUT -n --line-numbers

Page 29: IPTables na prática

Apagando uma regra - D

• iptables -t filter -D INPUT 1

• iptables -t filter -D INPUT \-d 127.0.0.1 -j DROP

POR QUE NÃO USAR –D?

Page 30: IPTables na prática

Inserindo uma regra - I

• iptables -t filter -I INPUT 1 \-d 127.0.0.1 -j ACCEPT

POR QUE NÃO USAR –I?

Page 31: IPTables na prática

Criando um novo chain - N

• iptables -t filter -N internet

• iptables -t filter -A internet \-s 200.200.200.200 -j DROP

• iptables -t filter -A INPUT \-j internet

Page 32: IPTables na prática

Limpando as regras de um chain - F

• iptables -t filter -F INPUT

• iptables -t filter -F

Page 33: IPTables na prática

Apagando um chain do usuário - X

• iptables -t filter -X internet

• iptables -X

Page 34: IPTables na prática

Especificando a política de um chain - P

• iptables -L OUTPUT

• iptables -t filter -P OUTPUT DROP

• iptables -L OUTPUT

Page 35: IPTables na prática

OUTRAS OPÇÕES

Page 36: IPTables na prática

Especificando um endereço

• Origem e destino– -s | –src | –source– -d | –dst | –destination

• Opções– IP ou par rede/máscara: 10.0.0.1 ou 10.0.0.0/8– endereço fqdn: www.aptans.com

• iptables -A INPUT -s 10.0.0.0/24 \-j DROP

Page 37: IPTables na prática

Especificando a interface

• Origem e destino– -i | –in-interface– -o | –out-interface

Page 38: IPTables na prática

Especificando um protocolo

• Protocolo– -p | –protocol

• Opções– tcp– udp– icmp

• iptables -A INPUT -s 10.0.0.0 \-p UDP -j DROP

Page 39: IPTables na prática

Especificando portas

• Origem e destino– --sport | --source-port– --dport | --destination-port

• iptables -A OUTPUT -d 10.0.0.1 \-p tcp --dport :1023 -j DROP

Page 40: IPTables na prática

Especificando uma exceção

• iptables -t filter -A INPUT –p TCP \! -s 10.0.0.1 -j DROP

• iptables -A INPUT -s 10.0.0.1 \! -p TCP -j DROP

Page 41: IPTables na prática

Especificando um alvo

• Opções– -j ACCEPT– -j DROP– -j REJECT– -j LOG

• iptables -A INPUT -s 10.0.0.1 \-i eth0 -j REJECT

Page 42: IPTables na prática

A TABELA NATNetwork Address Translation

Page 43: IPTables na prática

Fazendo SNAT

• NAT de origem– -j SNAT

• iptables -t nat -A POSTROUTING \-s 192.168.1.0/24 -o eth0 \-j SNAT --to 200.200.200.40

Page 44: IPTables na prática

Fazendo IP Masquerading

• IPs dinâmicos– -j MASQUERADE

• iptables -t nat -A POSTROUTING \-s 192.168.1.2/32 -o ppp0 \-j MASQUERADE

Page 45: IPTables na prática

Fazendo DNAT

• NAT de destino– -j DNAT

• iptables -t nat -A PREROUTING \-s 200.200.217.40 -i eth0 \-j DNAT --to 192.168.1.2

Page 46: IPTables na prática

Redirecionamento de portas

• Proxies e programas externos– -j REDIRECT

• iptables -t nat -A PREROUTING \-i eth0 -p tcp --dport 80 \-j REDIRECT --to-port 8080

Page 47: IPTables na prática

OBRIGADO!Por hoje é só…

Allysson Steve Mota Lacerda

[email protected]