SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Versão do Slide: (1.0)
Roteiro de apresentação
●   Prefácio                    ●    Ações
●   Firewall                    ●    Impasses e ordem de
                                     processamento
●   Firewall - iptables
                                ●    O retorno
●   Componentes
                                ●    IP FORWARD
●   Hardware Necessário
                                ●    Tabela NAT
●   Log
                                ●    Cadeias NAT
●   iptables
                                ●    Formato Geral das regras do
●   Conceitos                        iptables
●   Tabela FILTER               ●    Script para iptables
●   Opções de Filtragem         ●    Salvando e recuperando tudo
●   Chains                      ●    Exemplos de nat
●   Dados                       ●    Dicas para evitar BRONCA

                          IPTABLES                                 2
Prefácio
 Uma empresa/instituição possuí a sua intranet e
seus vários terminais com arquivos importantes...
          Como proteger essa Intranet?




                     IPTABLES                   3
USE UM FIREWALL!




     IPTABLES      4
Firewall
●   Firewall: Mecanismo constituído pela combinação de
    software e hardware, utilizado para dividir e controlar
    o acesso entre redes de computadores.
    ●   Separa a rede interna (intranet) da rede externa (internet)
        através do controle de trafego
    ●   Bloqueia tentativas de conexão não autorizadas (em
        ambos os sentidos)
●   Finalidade: Prevenção de ataques externos à
    intranet e seus equipamentos.
    ●   Opcionalmente pode ser utilizado para controlar o uso da
        rede pelos equipamentos internos
    ●   Proteção do próprio equipamento: Firewall pessoal.
                               IPTABLES                           5
Firewall - iptables
●   Iptables:
    ●   Código de firewall
    ●   Presente no kernel desde a versão 2.4 (Junho/Julho
        de 1999)(ipchains)




                             IPTABLES                    6
Componentes
●   Pacote: iptables
    ●   Iptables
    ●   Ip6tables
    ●   Iptables-save
    ●   Iptables-restore




                             IPTABLES    7
Hardware Necessário
●   Kernel compilado com suporte ao iptables (2.4+)
●   Requerimento mínimo de memória: igual ao do
    kernel 2.4 (4MB de RAM)             (dependendo do tráfego manipulado pelas interfaces pode
    rodar com folga)


●   Configurações residem no kernel, logo não é
    necessário espaço extra em disco para a
    execução do utilitário




                             IPTABLES                                                         8
Log
●   Trafego registrado pelo iptables fica
    armazenado por padrão no arquivo
    /var/log/kern.log




                         IPTABLES           9
Eu gostei! Onde eu acho?
●   #apt-get install iptables
    ●   Iptables + ip6tables




                               IPTABLES   10
iptables
●   Principais características:
    ●   Filtragem sem considerar o estado do pacote
    ●   Filtragem considerando o estado do pacote
    ●   Suporte a NAT, tanto para endereços de rede ou
        portas
    ●   Flexível, com suporte a plugins




                            IPTABLES                     11
Conceitos
●   Regras: são instruções dadas ao firewall
●   Cadeias (Chains): locais onde as regras podem
    ser agrupadas. As regras são processadas em
    ordem pelo firewall.
    ●   Toda cadeia tem uma política padrão, definida pelo
        usuário.
    ●   A Cadeia é percorrida até um regra ser atingida.
        Todas as restantes são ignoradas.
    ●   Regras com erro são ignoradas.
    ●   Se nenhuma regra é atingida, usa-se a regra de
        política padrão.
                            IPTABLES                       12
Conceitos
●   Tabelas: o iptables organiza o seu fluxo de
    pacotes em tabelas, cada uma com um conjunto
    de cadeias pré-definidas:
    ●   Tabela FILTER: tabela padrão com três cadeias
        –   INPUT
        –   OUTPUT
        –   FORWARD
    ●   Tabela NAT: tabela usada para NAT
        –   PREROUTING
        –   OUTPUT
        –   POSTROUTING
                           IPTABLES                     13
Conceitos
●   Tabelas: (continuação)
    ●   Além das tabelas MANGLE e RAW




                         IPTABLES       14
Esquema da tabela FILTER
       (default)




        IPTABLES           15
Tabela FILTER
●   Regras de Filtragem:
    ●   #iptables [-t tabela] [opção] [chain] [dados] -j [ação]
    ●   EX:
    ●   #iptables -P INPUT -j DROP
    ●   #iptables -A FORWARD -d 192.168.0.1 -j ACCEPT




                                IPTABLES                          16
Opções de Filtragem
●   -P →Policy(política). Altera a política da chain;
●   -A →Append(Anexar, Concatenar). Acresente
    uma nova regra a chain;
●   -D →Delete(apagar). Apaga uma regra.
●   -L →List(listar). Lista as regras existentes.
●   -F →Flush(esvaziar). Remove todas as regras
    existentes.



                         IPTABLES                       17
Chains
●   INPUT:
    ●   Refere-se a todos os pacotes destinados à máquina
        filtro;
●   OUTPUT;
    ●   Refere-se a todos os pacotes gerados pela máquina
        filtro.
●   FORWARD:
    ●   Refere-se a todos os pacotes que passam pelo filtro
        mas são destinados a ela.


                            IPTABLES                     18
Dados
●   Os elementos mais comuns para se gerar dados
    são os seguintes:
    ●   [!] -s → Source(Origem): Estabelece a origem do
        pacote;
    ●   [!] -d → Destination(Destino): Estabelece o destino do
        pacote;
    ●   [!] -p → Protocol(Protocolo): Especifica o protocolo a
        ser filtrado;
    ●   [!] -i → In-Interface(Interface de entrada): Especifica a
        interface de entrada a ser filtrada.


                               IPTABLES                             19
Dados
●   [!] -o → Out-Interface(Interface de saída): Especifica a
    interface de saída;

●   ! → Negação: Utilizado para excluir o argumento;

●   --sport → Source Port(Porta de Origem): Especifica qual a
    porta de origem;

●   --dport → Destination Port(Porta de Destino): Especifica
    qual a porta de destino.


                           IPTABLES                            20
Ações
●   ACCEPT → Aceitar;
●   DROP → Abandonar;
●   REJECT → Igual ao DROP, mas avisa a origem
    sobre o ocorrido;
●   LOG → Cria um log referente à regra, em
    /var/log/messages.




                        IPTABLES              21
Impasses e ordem de
                        processamento
●   Impasse de regras:
    ●   #iptables -A FORWARD -p icmp -j DROP
    ●   #iptables -A FORWARD -p icmp -j ACCEPT
●   Valerá:
    ●   #iptables -A FORWARD -p icmp -j DROP
●   Já entre as regras:
    ●   #iptables -A FORWARD -p icmp -j ACCEPT
    ●   #iptables -A FORWARD -p icmp -j DROP
●   Valerá:
    ●   #iptables -A FORWARD -p icmp -j ACCEPT
●   Obs.: Isso não se aplicará às regras terminadas com
    -j LOG.

                                 IPTABLES                 22
●   iptables -P INPUT DROP
●   iptables -A INPUT -s 10.0.0.1 -j DROP
●   iptables -A INPUT -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT
●   iptables -A INPUT -s 172.20.0.0/16 -j ACCEPT




                         IPTABLES                               23
●   iptables -P INPUT ACCEPT
●   iptables -A INPUT -s 10.0.0.1 -j DROP
●   iptables -A INPUT -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT
●   iptables -A INPUT -s 172.20.0.0/16 -j ACCEPT




                          IPTABLES                              24
O retorno
●   #iptables -P FORWARD DROP
●   #iptables -A FORWARD -s 10.0.0.0/8 -d
    172.20.0.0/16 -j ACCEPT
●   O correto seria:
    ●   #iptables -P FORWARD DROP
    ●   #iptables -A FORWARD -s 10.0.0.0/8 -d
        172.20.0.0/16 -j ACCEPT
    ●   #iptables -A FORWARD -d 10.0.0.0/8 -s
        172.20.0.0/16 -j ACCEPT


                           IPTABLES             25
IP FORWARD
●   O IP FORWARD, via kernel, pode ser ativado
    pelo comando:
    ●   #echo 1 > /proc/sys/net/ipv4/ip_forward
        ou
    ●   /etc/sysctl.conf:
        net.ipv4.ip_forward = 1




                              IPTABLES            26
Tabela NAT

                     Roteamento               Roteamento

        PREROUTING                                         POSTROUTING
 interface                                                           interface
de entrada                                                           de saída




                                              OUTPUT




                             PROCESSO LOCAL




                                   IPTABLES                               27
Cadeias NAT
●   3 cadeias usadas para NAT:
    ●   PREROUTING: regras a serem aplicadas sobre os
        pacotes logo que eles chegam à rede (usados para
        DNAT e redirecionamento de portas)
    ●   OUTPUT: regras a aplicar sobre os pacotes
        originados da própria máquina e antes de serem
        roteados (somente interfaces locais)
    ●   POSTROUTING: regras a serem aplicadas sobre os
        pacotes recebidos da rede (pós roteados) (usados
        para SNAT e mascaramento de IP)


                           IPTABLES                      28
Formato Geral das regras do
                          iptables
●    iptables [-t table] comando [filtro] [-j ação]
                                                               Ação a ser tomada.
                                                               Por exemplo,
                                                               DROP, ACCEPT,
                                                               pular para outra
                                                               cadeia, etc.
    Especifique a tabela
    que deseja usar. A
    tabela filter é a                             Detalhamento que
    tabela default.                               irá permitir a
                           O que será feito:      filtragem do pacote.
                           adicionar uma          IPs de origem,
                           regra, remover, etc.   taxas, portas, etc.
                           Deve vir no início.




                                     IPTABLES                                  29
Script para iptables
#!/bin/bash

# Apagando regras anteriores
iptables -F
iptables -t nat -F

# Política padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Libera loopback - REGRA OBRIGATÓRIA
iptables -A INPUT -i lo -j ACCEPT

# Libera   pacotes de   retorno.
iptables   -A INPUT     -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables   -A OUTPUT    -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables   -A FORWARD   -m state --state ESTABLISHED,RELATED -j ACCEPT



# Habilita encaminhamento de pacotes
echo "1" > /proc/sys/net/ipv4/ip_forward

                                               IPTABLES                  30
Salvando e recuperando tudo
●   As regras iptables poderão ser salvas com o comando:
    ●   #iptables-save > arquivo
●   A recuperação poderá ser feita pelo comando:
    ●   #iptables-restore < arquivo
●   Um típico exemplo de carregamento de regras de iptables, após
    a inicialização do sistema, seria:
    ●   #echo 1 > /proc/sys/net/ipv4/ip_forward
    ●   #iptables-restore < /etc/iptables.rules
●   Nada impede que as regras sejam colocadas diretamente dentro
    de um shell script.


                                 IPTABLES                      31
Exemplos de nat
iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.201-p tcp
–-dport 25 -j DNAT --to 172.16.3.24


iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT
--to 200.233.222.123


iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j
MASQUERADE


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




                          IPTABLES                            32
Dicas para evitar BRONCA
●   Atualize sempre o Iptables e o kernel;
●   NUNCA rode qualquer serviço, principalmente os remotos, como telnet e ftp, nas
    máquinas firewall. Mas...
●   ...Se tiver que administrar remotamente uma máquina firewall, utilize ssh. Nesse caso,
    o ssh não deverá permitir o login como root;
●   Nunca cadastre qualquer usuário na máquina Iptables, caso se trate de filtro isolado, a
    não ser os que irão administrar por ssh;
●   Utilize TCP Wrappers totalmente fechado (ALL:ALL em /etc/hosts.deny) em filtros
    isolados. Abra o ssh (em /etc/hosts.allow) apenas para os clientes que forem fazer
    administração remota;
●   Anule as respostas a ICMP 8 (echo reply) no filtro isolado, para evitar ataques de Ping
    of Death.
●   Não insira referências ao sistema de firewall no DNS;
●   Não deixe as máquinas firewall isolado com cara de firewall. Utilize nomes
    descaracterizados;
●   Faça log de ações suspeitas que estiverem ocorrendo na rede;
●   Teste, teste, teste novamente.
                                             IPTABLES                                    33
Referências

●   MORIMOTO, Carlos E., Linux Redes e Servidores 2º ed.
●   ALMEIDA, Marcelo Barros. Introdução ao iptables.
●   MENEZES, Oliver. Iptables, Firewall no linux.
●   DEFINIÇÃO de Firewall. Disponível em: <cartilha.cert.br/glossario/>
    Acesso em: 13 Dez. 2010
●   IPTABLES Br. Disponível em:
    <http://www.eriberto.pro.br/iptables/4.html> Acesso em: 13 Dez. 2010
●   NETFILTER/IPTABLES HOMEPAGE. Disponível em:
    <http://www.netfilter.org/projects/iptables/index.html> Acesso em: 13
    Dez. 2010




                                   IPTABLES                                 34
Recomendação
    http://www.eriberto.pro.br/iptables/3.html
●   Conteúdo relacionado à Iptables de boa
    qualidade, um ótimo ponto de partida para se
    aprofundar no assunto!




                         IPTABLES                  35
Dúvidas

●   Slides disponíveis em:
    <http://www.slideshare.net/matheusrn89>
●   Contato:
    ●   matheusrn89@hotmail.com
    ●   hugohenrique_2005@hotmail.com




                         IPTABLES             36

Más contenido relacionado

La actualidad más candente

Aula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAndrei Carniel
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFLuiz Arthur
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducaoedgluc2001
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timerMayara Mônica
 
Introdução ao Protocolo IPv6
Introdução ao Protocolo IPv6Introdução ao Protocolo IPv6
Introdução ao Protocolo IPv6Abivio Pimenta
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Thiago Oliveira
 
Multiplos links, multiplas rotas
Multiplos links, multiplas rotasMultiplos links, multiplas rotas
Multiplos links, multiplas rotasAndre Peres
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !William Felipe
 
Pic apostila
Pic apostilaPic apostila
Pic apostilamoschen
 
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lx
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lxConfigurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lx
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lxjrrsouzaj
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyElaine Cecília Gatto
 

La actualidad más candente (20)

Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 
Aula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela FilterAula 8.1 - Iptables tabela Filter
Aula 8.1 - Iptables tabela Filter
 
Apostila firewall-consulta
Apostila firewall-consultaApostila firewall-consulta
Apostila firewall-consulta
 
Segurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PFSegurança da Informação - Firewall OpenBSD PF
Segurança da Informação - Firewall OpenBSD PF
 
8085 Introducao
8085 Introducao8085 Introducao
8085 Introducao
 
Processador intel 4040
Processador intel 4040Processador intel 4040
Processador intel 4040
 
Spacewalk - Solisc
Spacewalk - Solisc Spacewalk - Solisc
Spacewalk - Solisc
 
Interrupts and the timer
Interrupts and the timerInterrupts and the timer
Interrupts and the timer
 
Introdução ao Protocolo IPv6
Introdução ao Protocolo IPv6Introdução ao Protocolo IPv6
Introdução ao Protocolo IPv6
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
8085 3
8085 38085 3
8085 3
 
8085 2
8085 28085 2
8085 2
 
Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051Aula 1 - Assembly - 8051
Aula 1 - Assembly - 8051
 
Multiplos links, multiplas rotas
Multiplos links, multiplas rotasMultiplos links, multiplas rotas
Multiplos links, multiplas rotas
 
Lab 2.1 revisao_ccna
Lab 2.1 revisao_ccnaLab 2.1 revisao_ccna
Lab 2.1 revisao_ccna
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
PHP e PostgreSQL - Dois Elefantes trabalham muito mais !
 
Pic apostila
Pic apostilaPic apostila
Pic apostila
 
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lx
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lxConfigurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lx
Configurando ambiente ltsp_4.2_com_mt1000_lx_ta2000lx
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 

Destacado

Palestra profissionalização de blogs e mídias sociais
Palestra profissionalização de blogs e mídias sociaisPalestra profissionalização de blogs e mídias sociais
Palestra profissionalização de blogs e mídias sociaisMatheus Araújo
 
Área de transferência do windows 7
Área de transferência do windows 7Área de transferência do windows 7
Área de transferência do windows 7Matheus Araújo
 
Como organizar arquivos digitais
Como organizar arquivos digitaisComo organizar arquivos digitais
Como organizar arquivos digitaisKenneth Corrêa
 

Destacado (7)

Palestra profissionalização de blogs e mídias sociais
Palestra profissionalização de blogs e mídias sociaisPalestra profissionalização de blogs e mídias sociais
Palestra profissionalização de blogs e mídias sociais
 
Aula V
Aula VAula V
Aula V
 
Área de transferência do windows 7
Área de transferência do windows 7Área de transferência do windows 7
Área de transferência do windows 7
 
Pastas e Atalhos
Pastas e AtalhosPastas e Atalhos
Pastas e Atalhos
 
Como trabalhar com arquivos e pastas
Como trabalhar com arquivos e pastasComo trabalhar com arquivos e pastas
Como trabalhar com arquivos e pastas
 
Como organizar arquivos digitais
Como organizar arquivos digitaisComo organizar arquivos digitais
Como organizar arquivos digitais
 
Aula gerenciamento de arquivos e pastas
Aula   gerenciamento de arquivos e pastasAula   gerenciamento de arquivos e pastas
Aula gerenciamento de arquivos e pastas
 

Similar a Workshop iptables uern_stacruz_14_dez2010_v1

SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall Carlos Melo
 
Firewall - Introducao.pdf
Firewall - Introducao.pdfFirewall - Introducao.pdf
Firewall - Introducao.pdfssusere0b5a8
 
Aula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAndrei Carniel
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceRicardo Rufino
 
Roteamento avançado em Linux - GTER
Roteamento avançado em Linux - GTERRoteamento avançado em Linux - GTER
Roteamento avançado em Linux - GTERHelio Loureiro
 
Rotas de Rede - RedeCASD 2012
Rotas de Rede - RedeCASD 2012Rotas de Rede - RedeCASD 2012
Rotas de Rede - RedeCASD 2012Victor Montalvão
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREFIBRE Testbed
 
Primeiros passos com servidor Linux - iptables
Primeiros passos com servidor Linux - iptablesPrimeiros passos com servidor Linux - iptables
Primeiros passos com servidor Linux - iptablesProfessor José de Assis
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)Tchelinux
 
Configuração de Interface de Rede no Linux por comandos
Configuração de Interface de Rede no Linux por comandosConfiguração de Interface de Rede no Linux por comandos
Configuração de Interface de Rede no Linux por comandosWellington Oliveira
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSLucasNogueira565696
 

Similar a Workshop iptables uern_stacruz_14_dez2010_v1 (20)

SENAI - Segurança firewall
SENAI - Segurança   firewall SENAI - Segurança   firewall
SENAI - Segurança firewall
 
Unidade3 seg perimetral
Unidade3 seg perimetralUnidade3 seg perimetral
Unidade3 seg perimetral
 
Firewall - Introducao.pdf
Firewall - Introducao.pdfFirewall - Introducao.pdf
Firewall - Introducao.pdf
 
Aula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e Scripts
 
Firewall no linux
Firewall no linuxFirewall no linux
Firewall no linux
 
Cisco ios
Cisco iosCisco ios
Cisco ios
 
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDeviceHackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
Hackeando um SmartBOX (com android) e instalando Linux & JAVA & OpenDevice
 
Roteamento avançado em Linux - GTER
Roteamento avançado em Linux - GTERRoteamento avançado em Linux - GTER
Roteamento avançado em Linux - GTER
 
Netfilter + Iptables
Netfilter + IptablesNetfilter + Iptables
Netfilter + Iptables
 
Firewall IPTABLEs
Firewall IPTABLEsFirewall IPTABLEs
Firewall IPTABLEs
 
Rotas de Rede - RedeCASD 2012
Rotas de Rede - RedeCASD 2012Rotas de Rede - RedeCASD 2012
Rotas de Rede - RedeCASD 2012
 
Projeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBREProjeto de Elasticidade e Evolução do Projeto FIBRE
Projeto de Elasticidade e Evolução do Projeto FIBRE
 
Eripi2018 p4 tutorial
Eripi2018 p4 tutorialEripi2018 p4 tutorial
Eripi2018 p4 tutorial
 
Primeiros passos com servidor Linux - iptables
Primeiros passos com servidor Linux - iptablesPrimeiros passos com servidor Linux - iptables
Primeiros passos com servidor Linux - iptables
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Performance tuning
Performance tuningPerformance tuning
Performance tuning
 
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)
Gerenciamento de Firewall com shorewall - Rafael Padilha da silva(DELETE)
 
Configuração de Interface de Rede no Linux por comandos
Configuração de Interface de Rede no Linux por comandosConfiguração de Interface de Rede no Linux por comandos
Configuração de Interface de Rede no Linux por comandos
 
Apresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OSApresentação Sobre Sistemas Operacionais com Orbis OS
Apresentação Sobre Sistemas Operacionais com Orbis OS
 
Ntop
NtopNtop
Ntop
 

Workshop iptables uern_stacruz_14_dez2010_v1

  • 2. Roteiro de apresentação ● Prefácio ● Ações ● Firewall ● Impasses e ordem de processamento ● Firewall - iptables ● O retorno ● Componentes ● IP FORWARD ● Hardware Necessário ● Tabela NAT ● Log ● Cadeias NAT ● iptables ● Formato Geral das regras do ● Conceitos iptables ● Tabela FILTER ● Script para iptables ● Opções de Filtragem ● Salvando e recuperando tudo ● Chains ● Exemplos de nat ● Dados ● Dicas para evitar BRONCA IPTABLES 2
  • 3. Prefácio Uma empresa/instituição possuí a sua intranet e seus vários terminais com arquivos importantes... Como proteger essa Intranet? IPTABLES 3
  • 4. USE UM FIREWALL! IPTABLES 4
  • 5. Firewall ● Firewall: Mecanismo constituído pela combinação de software e hardware, utilizado para dividir e controlar o acesso entre redes de computadores. ● Separa a rede interna (intranet) da rede externa (internet) através do controle de trafego ● Bloqueia tentativas de conexão não autorizadas (em ambos os sentidos) ● Finalidade: Prevenção de ataques externos à intranet e seus equipamentos. ● Opcionalmente pode ser utilizado para controlar o uso da rede pelos equipamentos internos ● Proteção do próprio equipamento: Firewall pessoal. IPTABLES 5
  • 6. Firewall - iptables ● Iptables: ● Código de firewall ● Presente no kernel desde a versão 2.4 (Junho/Julho de 1999)(ipchains) IPTABLES 6
  • 7. Componentes ● Pacote: iptables ● Iptables ● Ip6tables ● Iptables-save ● Iptables-restore IPTABLES 7
  • 8. Hardware Necessário ● Kernel compilado com suporte ao iptables (2.4+) ● Requerimento mínimo de memória: igual ao do kernel 2.4 (4MB de RAM) (dependendo do tráfego manipulado pelas interfaces pode rodar com folga) ● Configurações residem no kernel, logo não é necessário espaço extra em disco para a execução do utilitário IPTABLES 8
  • 9. Log ● Trafego registrado pelo iptables fica armazenado por padrão no arquivo /var/log/kern.log IPTABLES 9
  • 10. Eu gostei! Onde eu acho? ● #apt-get install iptables ● Iptables + ip6tables IPTABLES 10
  • 11. iptables ● Principais características: ● Filtragem sem considerar o estado do pacote ● Filtragem considerando o estado do pacote ● Suporte a NAT, tanto para endereços de rede ou portas ● Flexível, com suporte a plugins IPTABLES 11
  • 12. Conceitos ● Regras: são instruções dadas ao firewall ● Cadeias (Chains): locais onde as regras podem ser agrupadas. As regras são processadas em ordem pelo firewall. ● Toda cadeia tem uma política padrão, definida pelo usuário. ● A Cadeia é percorrida até um regra ser atingida. Todas as restantes são ignoradas. ● Regras com erro são ignoradas. ● Se nenhuma regra é atingida, usa-se a regra de política padrão. IPTABLES 12
  • 13. Conceitos ● Tabelas: o iptables organiza o seu fluxo de pacotes em tabelas, cada uma com um conjunto de cadeias pré-definidas: ● Tabela FILTER: tabela padrão com três cadeias – INPUT – OUTPUT – FORWARD ● Tabela NAT: tabela usada para NAT – PREROUTING – OUTPUT – POSTROUTING IPTABLES 13
  • 14. Conceitos ● Tabelas: (continuação) ● Além das tabelas MANGLE e RAW IPTABLES 14
  • 15. Esquema da tabela FILTER (default) IPTABLES 15
  • 16. Tabela FILTER ● Regras de Filtragem: ● #iptables [-t tabela] [opção] [chain] [dados] -j [ação] ● EX: ● #iptables -P INPUT -j DROP ● #iptables -A FORWARD -d 192.168.0.1 -j ACCEPT IPTABLES 16
  • 17. Opções de Filtragem ● -P →Policy(política). Altera a política da chain; ● -A →Append(Anexar, Concatenar). Acresente uma nova regra a chain; ● -D →Delete(apagar). Apaga uma regra. ● -L →List(listar). Lista as regras existentes. ● -F →Flush(esvaziar). Remove todas as regras existentes. IPTABLES 17
  • 18. Chains ● INPUT: ● Refere-se a todos os pacotes destinados à máquina filtro; ● OUTPUT; ● Refere-se a todos os pacotes gerados pela máquina filtro. ● FORWARD: ● Refere-se a todos os pacotes que passam pelo filtro mas são destinados a ela. IPTABLES 18
  • 19. Dados ● Os elementos mais comuns para se gerar dados são os seguintes: ● [!] -s → Source(Origem): Estabelece a origem do pacote; ● [!] -d → Destination(Destino): Estabelece o destino do pacote; ● [!] -p → Protocol(Protocolo): Especifica o protocolo a ser filtrado; ● [!] -i → In-Interface(Interface de entrada): Especifica a interface de entrada a ser filtrada. IPTABLES 19
  • 20. Dados ● [!] -o → Out-Interface(Interface de saída): Especifica a interface de saída; ● ! → Negação: Utilizado para excluir o argumento; ● --sport → Source Port(Porta de Origem): Especifica qual a porta de origem; ● --dport → Destination Port(Porta de Destino): Especifica qual a porta de destino. IPTABLES 20
  • 21. Ações ● ACCEPT → Aceitar; ● DROP → Abandonar; ● REJECT → Igual ao DROP, mas avisa a origem sobre o ocorrido; ● LOG → Cria um log referente à regra, em /var/log/messages. IPTABLES 21
  • 22. Impasses e ordem de processamento ● Impasse de regras: ● #iptables -A FORWARD -p icmp -j DROP ● #iptables -A FORWARD -p icmp -j ACCEPT ● Valerá: ● #iptables -A FORWARD -p icmp -j DROP ● Já entre as regras: ● #iptables -A FORWARD -p icmp -j ACCEPT ● #iptables -A FORWARD -p icmp -j DROP ● Valerá: ● #iptables -A FORWARD -p icmp -j ACCEPT ● Obs.: Isso não se aplicará às regras terminadas com -j LOG. IPTABLES 22
  • 23. iptables -P INPUT DROP ● iptables -A INPUT -s 10.0.0.1 -j DROP ● iptables -A INPUT -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT ● iptables -A INPUT -s 172.20.0.0/16 -j ACCEPT IPTABLES 23
  • 24. iptables -P INPUT ACCEPT ● iptables -A INPUT -s 10.0.0.1 -j DROP ● iptables -A INPUT -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT ● iptables -A INPUT -s 172.20.0.0/16 -j ACCEPT IPTABLES 24
  • 25. O retorno ● #iptables -P FORWARD DROP ● #iptables -A FORWARD -s 10.0.0.0/8 -d 172.20.0.0/16 -j ACCEPT ● O correto seria: ● #iptables -P FORWARD DROP ● #iptables -A FORWARD -s 10.0.0.0/8 -d 172.20.0.0/16 -j ACCEPT ● #iptables -A FORWARD -d 10.0.0.0/8 -s 172.20.0.0/16 -j ACCEPT IPTABLES 25
  • 26. IP FORWARD ● O IP FORWARD, via kernel, pode ser ativado pelo comando: ● #echo 1 > /proc/sys/net/ipv4/ip_forward ou ● /etc/sysctl.conf: net.ipv4.ip_forward = 1 IPTABLES 26
  • 27. Tabela NAT Roteamento Roteamento PREROUTING POSTROUTING interface interface de entrada de saída OUTPUT PROCESSO LOCAL IPTABLES 27
  • 28. Cadeias NAT ● 3 cadeias usadas para NAT: ● PREROUTING: regras a serem aplicadas sobre os pacotes logo que eles chegam à rede (usados para DNAT e redirecionamento de portas) ● OUTPUT: regras a aplicar sobre os pacotes originados da própria máquina e antes de serem roteados (somente interfaces locais) ● POSTROUTING: regras a serem aplicadas sobre os pacotes recebidos da rede (pós roteados) (usados para SNAT e mascaramento de IP) IPTABLES 28
  • 29. Formato Geral das regras do iptables ● iptables [-t table] comando [filtro] [-j ação] Ação a ser tomada. Por exemplo, DROP, ACCEPT, pular para outra cadeia, etc. Especifique a tabela que deseja usar. A tabela filter é a Detalhamento que tabela default. irá permitir a O que será feito: filtragem do pacote. adicionar uma IPs de origem, regra, remover, etc. taxas, portas, etc. Deve vir no início. IPTABLES 29
  • 30. Script para iptables #!/bin/bash # Apagando regras anteriores iptables -F iptables -t nat -F # Política padrão iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Libera loopback - REGRA OBRIGATÓRIA iptables -A INPUT -i lo -j ACCEPT # Libera pacotes de retorno. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Habilita encaminhamento de pacotes echo "1" > /proc/sys/net/ipv4/ip_forward IPTABLES 30
  • 31. Salvando e recuperando tudo ● As regras iptables poderão ser salvas com o comando: ● #iptables-save > arquivo ● A recuperação poderá ser feita pelo comando: ● #iptables-restore < arquivo ● Um típico exemplo de carregamento de regras de iptables, após a inicialização do sistema, seria: ● #echo 1 > /proc/sys/net/ipv4/ip_forward ● #iptables-restore < /etc/iptables.rules ● Nada impede que as regras sejam colocadas diretamente dentro de um shell script. IPTABLES 31
  • 32. Exemplos de nat iptables -t nat -A PREROUTING -i eth0 -d 200.200.200.201-p tcp –-dport 25 -j DNAT --to 172.16.3.24 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to 200.233.222.123 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 IPTABLES 32
  • 33. Dicas para evitar BRONCA ● Atualize sempre o Iptables e o kernel; ● NUNCA rode qualquer serviço, principalmente os remotos, como telnet e ftp, nas máquinas firewall. Mas... ● ...Se tiver que administrar remotamente uma máquina firewall, utilize ssh. Nesse caso, o ssh não deverá permitir o login como root; ● Nunca cadastre qualquer usuário na máquina Iptables, caso se trate de filtro isolado, a não ser os que irão administrar por ssh; ● Utilize TCP Wrappers totalmente fechado (ALL:ALL em /etc/hosts.deny) em filtros isolados. Abra o ssh (em /etc/hosts.allow) apenas para os clientes que forem fazer administração remota; ● Anule as respostas a ICMP 8 (echo reply) no filtro isolado, para evitar ataques de Ping of Death. ● Não insira referências ao sistema de firewall no DNS; ● Não deixe as máquinas firewall isolado com cara de firewall. Utilize nomes descaracterizados; ● Faça log de ações suspeitas que estiverem ocorrendo na rede; ● Teste, teste, teste novamente. IPTABLES 33
  • 34. Referências ● MORIMOTO, Carlos E., Linux Redes e Servidores 2º ed. ● ALMEIDA, Marcelo Barros. Introdução ao iptables. ● MENEZES, Oliver. Iptables, Firewall no linux. ● DEFINIÇÃO de Firewall. Disponível em: <cartilha.cert.br/glossario/> Acesso em: 13 Dez. 2010 ● IPTABLES Br. Disponível em: <http://www.eriberto.pro.br/iptables/4.html> Acesso em: 13 Dez. 2010 ● NETFILTER/IPTABLES HOMEPAGE. Disponível em: <http://www.netfilter.org/projects/iptables/index.html> Acesso em: 13 Dez. 2010 IPTABLES 34
  • 35. Recomendação http://www.eriberto.pro.br/iptables/3.html ● Conteúdo relacionado à Iptables de boa qualidade, um ótimo ponto de partida para se aprofundar no assunto! IPTABLES 35
  • 36. Dúvidas ● Slides disponíveis em: <http://www.slideshare.net/matheusrn89> ● Contato: ● matheusrn89@hotmail.com ● hugohenrique_2005@hotmail.com IPTABLES 36