0
SEGURANÇA COM IPTABLES Autor: Leonardo “Stroyker” Damasceno
Tópicos <ul><li>O que é  iptables ? </li></ul><ul><li>Esquema de rede com iptables </li></ul><ul><li>Chains </li></ul><ul>...
O que é iptables? <ul><li>Tem o objetivo de proteger a máquina contra acessos indesejados </li></ul><ul><li>Muito rápido, ...
Esquema de rede com iptables
Chains <ul><li>O que são? </li></ul><ul><li>Tipos de chains </li></ul><ul><ul><li>Embutidos </li></ul></ul><ul><ul><li>Cri...
Tabelas <ul><li>FILTER </li></ul><ul><ul><li>INPUT </li></ul></ul><ul><ul><li>OUTPUT </li></ul></ul><ul><ul><li>FORWARD </...
Tabela FILTER <ul><li>Descrição:   É a tabela padrão, ela não precisa ser especificada na sintaxe do iptables. </li></ul><...
Tabela NAT <ul><li>Descrição:  Usada para dados que geram outra conexão (masquerading, source nat, destination nat, port f...
Tabela Mangle <ul><li>INPUT  -  Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain...
Sintaxe do iptables <ul><li>Sintaxe:  iptables [-t tabela] [opção] [chain] [dados] -j [ação] </li></ul><ul><li>Exemplo:  i...
Criando um chain <ul><li>Opção -N </li></ul><ul><ul><li>iptables [-t tabela] [-N nomedochain] </li></ul></ul><ul><li>Exemp...
Criando um chain <ul><li>Tabela de regras: </li></ul><ul><li>Explicação:  Fizemos um redirecionamento ou o conhecido “pulo...
Renomeando um chain <ul><li>Opção -E </li></ul><ul><ul><li>iptables [-t tabela] -E chain-antigo chain-novo </li></ul></ul>...
Apagando um chain criado <ul><li>Opção -X </li></ul><ul><ul><li>iptables [-t tabela] -X [chain] </li></ul></ul><ul><li>Exe...
Especificando o alvo <ul><li>Opção -j </li></ul><ul><ul><li>Iptables [- tabela] [-A chain] [dados] -j [ALVO] </li></ul></u...
Regras <ul><li>O que são regras? </li></ul><ul><li>Exemplo:   iptables -A INPUT -s 200.222.256.63 -j DROP </li></ul><ul><l...
Adicionando regras <ul><li>Opção -A: </li></ul><ul><ul><li>iptables [-t tabela] -A [chain] [dados] -j [ação] </li></ul></u...
Listando regras <ul><li>Opção -L </li></ul><ul><ul><li>iptables [-t tabela] -L [chain] [opções] </li></ul></ul><ul><li>[op...
Apagando uma regra <ul><li>Opção -D </li></ul><ul><ul><li>iptables [-t tabela] -D [chain] [posição] </li></ul></ul><ul><ul...
Substituindo uma regra <ul><li>Opção -R </li></ul><ul><ul><li>iptables [-t tabela] -R [chain] [posição] [regra] -j [ação] ...
Limpando regras <ul><li>Opção -F </li></ul><ul><ul><li>iptables [-t tabela] -F [chain] </li></ul></ul><ul><li>Exemplo:  ip...
Parâmetros <ul><li>Parâmetro -s </li></ul><ul><ul><li>Usado para especificar endereços de origem. Também é usado como --sr...
Parâmetros <ul><li>Parâmetro -i </li></ul><ul><ul><li>Usado para especificar a interface de entrada. </li></ul></ul><ul><l...
Parâmetros <ul><li>Parâmetro -p </li></ul><ul><ul><li>Usado para especificar um protocolo. Podem ser especificados os proc...
Fazendo IP Masquerade <ul><li>Descrição:   O IP Masquerading é um tipo especial de SNAT usado para conectar a sua rede int...
Fazendo DNAT <ul><li>Descrição:   DNAT (Destination nat - nat no endereço de destino) consiste em modificar o endereço de ...
Fazendo SNAT <ul><li>Descrição:   SNAT (source nat - nat no endereço de origem) consiste em modificar o endereço de origem...
TESTES <ul><li>1.   Bloqueie qualquer acesso do protocolo ICMP para a sua máquina </li></ul><ul><li>2.   Bloqueie pacotes ...
<ul><li>Dúvidas? </li></ul>
Upcoming SlideShare
Loading in...5
×

Iptables Básico

5,779

Published on

Entendendo e dismistificando o iptables.

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,779
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
325
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Iptables Básico"

  1. 1. SEGURANÇA COM IPTABLES Autor: Leonardo “Stroyker” Damasceno
  2. 2. Tópicos <ul><li>O que é iptables ? </li></ul><ul><li>Esquema de rede com iptables </li></ul><ul><li>Chains </li></ul><ul><li>Tabelas </li></ul><ul><li>Sintaxe do iptables </li></ul><ul><li>Criando um chain </li></ul><ul><li>Renomeando um chain </li></ul><ul><li>Apagando um chain criado </li></ul><ul><li>Específicando um alvo </li></ul><ul><li>Regras </li></ul><ul><ul><li>Adicionando </li></ul></ul><ul><ul><li>Listando </li></ul></ul><ul><ul><li>Apagando </li></ul></ul><ul><ul><li>Substituindo </li></ul></ul><ul><ul><li>Limpando </li></ul></ul><ul><li>Parâmetros </li></ul><ul><li>Fazendo IP Masquerade </li></ul><ul><li>Fazendo DNAT </li></ul><ul><li>Fazendo SNAT </li></ul><ul><li>TESTES </li></ul>
  3. 3. O que é iptables? <ul><li>Tem o objetivo de proteger a máquina contra acessos indesejados </li></ul><ul><li>Muito rápido, estável e seguro </li></ul><ul><li>Suporte a protocolos TCP/UDP/ICMP (incluindo tipos de mensagens icmp) </li></ul><ul><li>Foi implantado na versão 2.4 do kernel </li></ul>
  4. 4. Esquema de rede com iptables
  5. 5. Chains <ul><li>O que são? </li></ul><ul><li>Tipos de chains </li></ul><ul><ul><li>Embutidos </li></ul></ul><ul><ul><li>Criados </li></ul></ul>
  6. 6. Tabelas <ul><li>FILTER </li></ul><ul><ul><li>INPUT </li></ul></ul><ul><ul><li>OUTPUT </li></ul></ul><ul><ul><li>FORWARD </li></ul></ul><ul><li>NAT </li></ul><ul><ul><li>PREROUTING </li></ul></ul><ul><ul><li>OUTPUT </li></ul></ul><ul><ul><li>POSTROUTING </li></ul></ul><ul><li>MANGLE </li></ul><ul><ul><li>INPUT </li></ul></ul><ul><ul><li>FORWARD </li></ul></ul><ul><ul><li>PREROUTING </li></ul></ul><ul><ul><li>POSTROUTING </li></ul></ul><ul><ul><li>OUTPUT </li></ul></ul>
  7. 7. Tabela FILTER <ul><li>Descrição: É a tabela padrão, ela não precisa ser especificada na sintaxe do iptables. </li></ul><ul><li>Chains: </li></ul><ul><ul><li>INPUT -> Consultado para dados que chegam a máquina </li></ul></ul><ul><ul><li>OUTPUT -> Consultado para dados que saem da máquina </li></ul></ul><ul><ul><li>FORWARD -> Consultado para dados que são redirecionados para outra interface de rede ou outra máquina. </li></ul></ul><ul><li>Exemplo: iptables -A FORWARD -i eth0 -o eth2 -m pkttype --pkt-type multicast -j DROP </li></ul>
  8. 8. Tabela NAT <ul><li>Descrição: Usada para dados que geram outra conexão (masquerading, source nat, destination nat, port forwarding, proxy transparente são alguns exemplos). </li></ul><ul><li>Chain: </li></ul><ul><ul><li>PREROUTING -> Consultado quando os pacotes precisam ser modificados logo que chegam. </li></ul></ul><ul><ul><li>OUTPUT -> Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem roteados. </li></ul></ul><ul><ul><li>POSTROUTING -> Consultado quando os pacotes precisam ser modificados após o tratamento de roteamento. </li></ul></ul><ul><li>Exemplo: iptables -t nat -A POSTROUTING -s 192.168.1.2 -o eth0 -j SNAT --to 200.200.217.40 </li></ul>
  9. 9. Tabela Mangle <ul><li>INPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain INPUT da tabela filter. </li></ul><ul><li>FORWARD - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain FORWARD da tabela filter. </li></ul><ul><li>PREROUTING - Consultado quando os pacotes precisam ser modificados antes de ser enviados para o chain PREROUTING da tabela nat. </li></ul><ul><li>POSTROUTING - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain POSTROUTING da tabela nat. </li></ul><ul><li>OUTPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain OUTPUT da tabela nat. </li></ul>
  10. 10. Sintaxe do iptables <ul><li>Sintaxe: iptables [-t tabela] [opção] [chain] [dados] -j [ação] </li></ul><ul><li>Exemplo: iptables -t filter -A INPUT -d 127.0.0.1 -j DROP </li></ul><ul><li>Explicando: Bloqueia qualquer acesso indo ao endereço 127.0.0.1, que é nosso localhost. </li></ul>
  11. 11. Criando um chain <ul><li>Opção -N </li></ul><ul><ul><li>iptables [-t tabela] [-N nomedochain] </li></ul></ul><ul><li>Exemplo: iptables -t filter -N internet </li></ul><ul><ul><li>Inserindo regra no novo chain “internet”: </li></ul></ul><ul><li>iptables -t filter -A internet -s 192.168.0.102 -j DROP </li></ul><ul><li>iptables -t filter -A INPUT -j internet </li></ul>
  12. 12. Criando um chain <ul><li>Tabela de regras: </li></ul><ul><li>Explicação: Fizemos um redirecionamento ou o conhecido “pulo”. </li></ul>
  13. 13. Renomeando um chain <ul><li>Opção -E </li></ul><ul><ul><li>iptables [-t tabela] -E chain-antigo chain-novo </li></ul></ul><ul><li>Exemplo: iptables -t filter -E internet teste </li></ul>
  14. 14. Apagando um chain criado <ul><li>Opção -X </li></ul><ul><ul><li>iptables [-t tabela] -X [chain] </li></ul></ul><ul><li>Exemplo: iptables -t filter -X teste </li></ul><ul><li>OBS.: Chains embutidos não podem ser apagados pelo usuário </li></ul>
  15. 15. Especificando o alvo <ul><li>Opção -j </li></ul><ul><ul><li>Iptables [- tabela] [-A chain] [dados] -j [ALVO] </li></ul></ul><ul><li>Tipos: </li></ul><ul><ul><li>ACCEPT -> Aceita o pacote </li></ul></ul><ul><ul><li>DROP -> “Dropa”, ou simplismente não aceita o pacote </li></ul></ul><ul><ul><li>REJECT -> Rejeita o pacote, enviando uma mensagem </li></ul></ul><ul><ul><li>LOG -> Envia uma mensagem ao syslog caso a regra confira </li></ul></ul><ul><ul><li>RETURN -> Para o processamento do chain atual, e retorna </li></ul></ul><ul><ul><li>QUEUE -> Passa para o processamento de programas externos </li></ul></ul>
  16. 16. Regras <ul><li>O que são regras? </li></ul><ul><li>Exemplo: iptables -A INPUT -s 200.222.256.63 -j DROP </li></ul><ul><li>OBS.: As regras são armazenadas dentro dos chains e processadas na ordem que são inseridas. </li></ul>
  17. 17. Adicionando regras <ul><li>Opção -A: </li></ul><ul><ul><li>iptables [-t tabela] -A [chain] [dados] -j [ação] </li></ul></ul><ul><li>Opção -I: </li></ul><ul><ul><li>iptables [-t tabela] -I [chain] [dados] -j [ação] </li></ul></ul><ul><li>Exemplo: iptables -t filter -I INPUT -s 192.168.0.10 -d 192.168.0.11 -j DROP </li></ul>
  18. 18. Listando regras <ul><li>Opção -L </li></ul><ul><ul><li>iptables [-t tabela] -L [chain] [opções] </li></ul></ul><ul><li>[opções]: </li></ul><ul><li>-v -> Exibe mais detalhes sobre as regras criadas nos chains </li></ul><ul><li>-n -> Exibe endereços de máquinas/portas como números </li></ul><ul><li>-x -> Exibe números exatos. Mostra a faixa de portas de uma regra </li></ul><ul><li>--line-numbers -> Exibe o número da posição da regra </li></ul><ul><li>Exemplo: iptables -t filter -L INPUT --line-numbers </li></ul>
  19. 19. Apagando uma regra <ul><li>Opção -D </li></ul><ul><ul><li>iptables [-t tabela] -D [chain] [posição] </li></ul></ul><ul><ul><li>iptables [-t tabela] -D [chain] [dados] -j [ação] </li></ul></ul><ul><li>Exemplo: iptables -t filter -D INPUT 1 </li></ul><ul><li>iptables -t filter -D INPUT -d 127.0.0.1 -j DROP </li></ul>
  20. 20. Substituindo uma regra <ul><li>Opção -R </li></ul><ul><ul><li>iptables [-t tabela] -R [chain] [posição] [regra] -j [ação] </li></ul></ul><ul><li>Exemplo: iptables -R INPUT 1 -d 127.0.0.1 -p icmp -j DROP </li></ul>
  21. 21. Limpando regras <ul><li>Opção -F </li></ul><ul><ul><li>iptables [-t tabela] -F [chain] </li></ul></ul><ul><li>Exemplo: iptables -F </li></ul><ul><li>iptables -t filter -F INPUT </li></ul>
  22. 22. Parâmetros <ul><li>Parâmetro -s </li></ul><ul><ul><li>Usado para especificar endereços de origem. Também é usado como --src ou --source </li></ul></ul><ul><li>Parâmetro -d </li></ul><ul><ul><li>Usado para especificar endereços de destino. Também usado como --dst e –destination </li></ul></ul><ul><li>Exemplo: iptables -t filter -A INPUT -s 192.168.0.104 -d 192.168.0.102 -p icmp -j DROP </li></ul>
  23. 23. Parâmetros <ul><li>Parâmetro -i </li></ul><ul><ul><li>Usado para especificar a interface de entrada. </li></ul></ul><ul><li>Parâmetro -o </li></ul><ul><ul><li>Usado para especificar a interface de saída </li></ul></ul><ul><li>Exemplo: iptables -t filter -A INPUT -s 192.168.0.104 -i ppp+ -j DROP </li></ul><ul><li>Exemplo2: iptables -A FORWARD -i ppp0 -o eth1 -j DROP </li></ul><ul><li>OBS.: O sinal de &quot;+&quot; funciona como um coringa, assim a regra terá efeito em qualquer interface de ppp0 a ppp9. </li></ul>
  24. 24. Parâmetros <ul><li>Parâmetro -p </li></ul><ul><ul><li>Usado para especificar um protocolo. Podem ser especificados os procolos, TCP , UDP e ICMP. </li></ul></ul><ul><li>Exemplo: iptables -A INPUT -s 192.168.0.104 -p icmp -j DROP </li></ul><ul><li>Parâmetro –dport </li></ul><ul><ul><li>Especifica uma porta ou faixa de portas de destino. </li></ul></ul><ul><li>Exemplo: iptables -A OUTPUT -d 200.200.200.200 -p tcp --dport :1023 -j DROP </li></ul>
  25. 25. Fazendo IP Masquerade <ul><li>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). </li></ul><ul><li>Exemplo: iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE </li></ul><ul><li>OBS.: Todas as operações de IP Masquerading são realizadas no chain POSTROUTING </li></ul>
  26. 26. Fazendo DNAT <ul><li>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. </li></ul><ul><li>Exemplo: iptables -t nat -A PREROUTING -s 200.200.217.40 -i eth0 -j DNAT --to 192.168.1.2 </li></ul><ul><li>OBS.: Toda operação de DNAT é feita no chain PREROUTING </li></ul>
  27. 27. Fazendo SNAT <ul><li>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. </li></ul><ul><li>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 </li></ul><ul><li>OBS.: SNAT faz a operação inversa do DNAT. </li></ul>
  28. 28. TESTES <ul><li>1. Bloqueie qualquer acesso do protocolo ICMP para a sua máquina </li></ul><ul><li>2. Bloqueie pacotes que irão entrar na sua rede com o ip de origem 192.168.0.15 na porta 22 (por ssh)‏ </li></ul><ul><li>3. Faça IP Masquerade da sua rede 192.168.1.0/24 </li></ul><ul><li>4. Bloqueie a passagem dos pacotes da interface eth1 para eth2 </li></ul>
  29. 29. <ul><li>Dúvidas? </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×