48
Firewall - IPTABLES Tópicos em Sistemas de Computação 2015 Prof. Dr. Adriano Mauro Cansian [email protected] Docente auxiliar: Vinícius Oliveira Ferreira [email protected] Conceitos e Prática

Firewall - IPTABLESadriano/aulas/topicos/... · 2015. 11. 11. · IPTABLES –Firewall/IPTABLES •iptables-save: Este comando salva as regras atuais do sistema (ainda em Ram) para

  • Upload
    others

  • View
    48

  • Download
    0

Embed Size (px)

Citation preview

  • Firewall - IPTABLES

    Tópicos em Sistemas de Computação – 2015

    Prof. Dr. Adriano Mauro Cansian

    [email protected]

    Docente auxiliar: Vinícius Oliveira Ferreira

    [email protected]

    Conceitos e Prática

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!2

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!3

  • O que é ? – Firewall/IPTABLES

    • O que é ?

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!4

  • O que é ? – Firewall/IPTABLES

    • Um firewall é um dispositivo de filtragem

    de pacotes que serve como barreira de

    proteção entre duas ou mais redes.

    Através desta barreira trafega-se somente

    o conteúdo que foi previamente

    autorizado por um conjunto de regras.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!5

    • Para isso uma ferramenta de firewall deve ter a

    capacidade de inspecionar todos os pacotes que

    fluem entre as redes, geralmente uma rede local e a

    internet, e decidir se estes estão ou não habilitados a

    trafegarem por elas.

  • O que é ? – Firewall/IPTABLES

    • Onde devemos posicionar um Firewall

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!6

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!7

  • DMZ – Firewall/IPTABLES

    • Firewall – Conceito DMZ:– DMZ (DeMilitarized Zone ou Zona

    Desmilitarizada): a DMZ é uma pequena rede

    situada entre uma rede confiável e uma não

    confiável, geralmente entre a rede local e a

    Internet.

    – A função de uma DMZ é manter todos os serviços

    que possuem acesso externo em uma rede

    isolada, o que limita o potencial de dano à rede

    local em caso de comprometimento de algum

    destes serviços por um invasor.

  • • Firewall – Conceito DMZ:

    DMZ – Firewall/IPTABLES

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!10

  • Tipos de Firewall – Firewall/IPTABLES

    • Firewall Filtro de Pacotes

    – Classe de Firewall responsável por filtrar todo o tráfego

    direcionado ao próprio host Firewall ou a rede protegida pelo

    mesmo.

    • Firewall Nat

    – Esta classe possui o objetivo de manipular o endereço de

    origem e destino dos pacotes, tal como realizar

    Masquerading (nat), entre outras potencialidades.

    • Firewall Híbrido

    – Esta Classe de Firewall agrega tanto as funções de

    filtragem de pacotes quanto de Nat.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!11

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!12

  • netfilter – Firewall/IPTABLES

    • Funções de firewall são agregadas à

    própria arquitetura do Kernel (núcleo do

    sistema)

    • Tais funções são gerenciadas pelo

    módulo netfilter

    • netfilter tem como Front-End o

    IPTABLES

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!13

  • netfilter – Firewall/IPTABLES

    Estrutura netfilter

    • Pensar no netfilter como um grande Banco

    de Dados com quatro grandes tabelas.

    – Filter

    – Nat

    – Mangle

    – Raw (Está tabela não será abordada por ser de usomuito particular)

    • Cada uma destas tabelas armazenam regras

    direcionadas a seus objetivos.Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!14

  • netfilter – Firewall/IPTABLES

    Tabelas netfilter

    • Filter: Armazena todas as regras

    intrínsecas a um Firewall Filtro de

    Pacotes.

    • NAT: Armazena as regras direcionadas a

    um Firewall Nat.

    • Mangle: Armazena as funções mais

    complexas de tratamento de pacotes. Ex:

    TOS.Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!15

  • netfilter – Firewall/IPTABLES

    Tabelas netfilter

    • Todas as tabelas possuem situações de fluxos

    (entrada, saída, redirecionamento, e etc.) que

    lhes proporcionam a realização de seus

    objetivos.

    – Ex -Tabela Filter: Input, Forward, Output

    • Essas situações de fluxos são

    denominadas Chains.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!16

  • netfilter – Firewall/IPTABLES

    Tabelas netfilter

    • FILTER: A tabela filter é a tabela padrão do

    Iptables e trata das chains implementadas por

    um firewall filtro de pacotes. Estas chains são:

    – 1. INPUT: Tudo que entra no host firewall.

    – 2. FORWARD: Tudo que chega ao host, mas deve ser

    redirecionado à outra interface de rede.

    – 3. OUTPUT: Tudo que sai do host.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!17

  • netfilter – Firewall/IPTABLES

    Tabelas netfilter

    • NAT: A tabela Nat abrange as funções de NAT

    (Network Address Translation), as chains

    associadas a ela são:

    – 1. PREROUTING: Utilizada quando há necessidade de se

    fazer alterações em pacotes antes que os mesmos sejam

    roteados.

    – 2. OUTPUT: Trata os pacotes emitidos pelo host firewall.

    – 3. POSTROUTING: Utilizado quando há necessidade de

    se fazer alterações em pacotes após o tratamento de

    roteamento.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!18

  • netfilter – Firewall/IPTABLES

    Tabelas netfilter• Mangle: A tabela Mangle implementa alterações

    especiais em pacotes em um nível mais complexo, suas

    chains são:

    – 1. PREROUTING: Alteração em pacotes, antes que sejam roteados.

    – 2. INPUT: Alteração em pacotes recém chegados para o host

    Firewall.

    – 3. FORWARD: Alteração em pacotes a serem roteados a outros

    hosts.

    – 4. OUTPUT: Alteração em pacotes gerados pelo host firewall antes

    que sejam roteados.

    – 5. POSTROUTING: Alteração em pacotes após serem roteados.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!19

  • 20

    Fluxo dos pacotes

    pelo netfilter.

  • Agenda

    • Firewall, o que é ?

    • DMZ

    • Tipos de Firewall

    • netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!21

  • IPTABLES – Firewall/IPTABLES

    • Firewall padrão desde o Kernel 2.4

    • Front-end do netfilter

    • Função: Inserir regras nas tabelas do netfilter

    • Por estar incorporado ao kernel, a configuração

    do iptables não se dá por via de arquivos de

    configuração, pelo contrário sua manipulação é

    realizada por síntese digitada em Shell.

    – Dessa forma, as regras são armazenadas em

    memória volátil e permanecem ativas até que o

    computador seja desligado ou reiniciado.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!22

  • IPTABLES – Firewall/IPTABLES

    • iptables-save: Este comando salva as regras

    atuais do sistema (ainda em Ram) para um

    arquivo indicado.

    – Ex: iptables-save > /bin/rc.firewall

    Tal arquivo pode ser posto para iniciar juntamente com o

    sistema de forma automática com uso do init.d, dessa

    forma, ainda que as regras se percam em um

    desligamento do sistema elas serão restauradas

    novamente na inicialização

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!23

    Como então não perder minhas regras ?

  • IPTABLES – Firewall/IPTABLES

    • Funcionamento do netfilter/IPTABLES baseado

    na inserção e análise de regras.

    • Regras são predefinições aplicadas a fim de

    disciplinar todo o tráfego de dados em uma

    rede/host.

    • Todas as regras são associadas a uma

    determinada tabela e aplicadas a uma

    determinada chain.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!24

  • IPTABLES – Firewall/IPTABLES

    Sintaxe básica para se inserir uma regra no

    IPTABLES

    root@maq:~# iptables [tabela] [comando]

    [ação] [alvo]

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!25

  • IPTABLES – Firewall/IPTABLES

    • -t : flag responsável pela escolha da tabela,

    utilizamos essa opção para associar uma regra a

    uma tabela específica.

    EX:

    – # iptables –t filter

    – # iptables –t nat

    – # iptables –t mangle

    Na omissão do parâmetro –t é usada a tabela filter

    (tabela padrão do iptables)

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!26

    Tabelas

  • IPTABLES – Firewall/IPTABLES

    • -A : Adiciona (anexa) uma nova entrada ao fim da lista de

    regras– # iptables –A INPUT

    • -D : Apaga uma regra específica da lista– # iptables –D INPUT 2

    Apaga a regra número 2 referente a INPUT chain

    • -L : Lista as regras existentes na lista– # iptables –L FORWARD

    • -P : Altera a política padrão das chains– # iptables –P FORWARD DROP

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!27

    Comandos

  • IPTABLES – Firewall/IPTABLES

    • -F : Remove todas as entradas adicionadas a lista de

    regras do iptables– # iptables –F

    – # iptables –F OUTPUT

    • -I : Insere uma nova regra no início da lista de regras

    (oposto ao comando –A)– # iptables –I INPUT

    • -N : Cria uma nova chain na tabela especificada– # iptables –t filter –N internet

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!28

    Comandos

  • IPTABLES – Firewall/IPTABLES

    • -p : Especifica o protocolo aplicado a regra.

    • -i : Especifica a interface de entrada.

    • -o : Especifica a interface de saída.

    • -s : Especifica a origem do pacote, a origem pode ser um

    host ou uma rede.

    – -s 10.0.0.0/24

    – -s www.gnu.org

    • -d : Especifica o destino do pacote, sua utilização se dá

    da mesma forma que o -s.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!29

    Ação

  • IPTABLES – Firewall/IPTABLES

    • -j : Específica o alvo do pacote caso o mesmo se encaixe

    a uma regra.

    • ! – Exclusão e/ou exceção, utilizado quando se deseja

    aplicar uma exceção a uma regra

    – -s ! 10.0.0.3

    # Refere-se a todos os endereços possíveis com exceção do

    10.0.0.3

    • --sport : Específica a porta de origem do pacote.

    • --dport : Específica a porta de destino do pacote.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!30

    Ação

  • IPTABLES – Firewall/IPTABLES

    • ACCEPT: Permite a entrada/passagem do pacote em

    questão.

    • DROP: O pacote em questão é descartado sem aviso ao

    emissor

    • REJECT: O pacote é rejeitado e uma mensagem de erro

    é enviada ao emissor

    • LOG: Cria uma entrada de log sobre a utilização dos

    demais alvos (targets)

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!31

    Alvo

  • Agenda

    • Firewall, o que é ?

    • Tipos de Firewall

    • Netfilter

    • IPTABLES

    • Prática

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!32

  • Prática – Firewall/IPTABLES

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!33

    Executar o ‘Lab-Firewall’

  • Prática – Firewall/IPTABLES

    • Os endereços IP estão corretamente alocados

    às redes, no entanto, é preciso indicar que o

    Firewall será o gateway default para a Rede

    Monitorada.

    • Isso é feito com a criação de rotas.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!34

    Criando Rotas

  • Prática – Firewall/IPTABLES

    • Criar uma rota default em todos os hosts da

    Rede Monitorada para o Firewall

    – Esta rota significa que todo pacote que tenha como

    destino uma rede externa deverá ser encaminhado

    para a máquina Firewall.

    # route add default gw 192.168.0.1

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!35

    Criando Rotas

  • Prática – Firewall/IPTABLES

    • Precisamos executar algumas configurações

    especiais ao host Firewall para que ele seja

    capaz de desempenhar suas funções de

    Firewall.

    • O primeiro passo a ser feito é configurar o host Firewall

    para que ele possa comutar pacotes para outras

    máquinas, o que é feito através do comando:

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!36

    Configurando o host Firewall

  • Prática – Firewall/IPTABLES

    • Duas formas:

    1. Política ACCEPT: Todos os pacotes são liberados,

    exceto aqueles que combinam (match) com alguma

    regra.

    2. Política DROP: Não existe permissão para nenhum

    pacote externo trafegar pela rede, exceto aqueles

    que são permitidos por alguma regra.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!37

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    1. Política ACCEPT: Esta é a política padrão

    (Checar com ‘iptables –L’)

    O bloqueio do acesso à Rede Monitorada pela

    Rede Externa pode se dar pela seguinte regra:

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!38

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    iptables –A FORWARD#Utilizamos o –A para inserir uma regra na tabela filter (padrão) sob

    a chain FORWARD

    iptables –A FORWARD –s 192.168.1.0/24

    #Agora dizemos que todos os pacotes que forem

    provenientes (-s origem) da rede 192.168.1.0/24 ...

    iptables –A FORWARD –s 192.168.1.0/24 –j DROP

    #...deverão ser automaticamente descartados (-j indica a

    ação a ser tomada, e DROP trata-se da ação

    propriamente dita)

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!39

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    2. Política DROP: Para esta política será

    necessário modificar a política padrão de todas

    as chains da tabela ‘filter’

    – # iptables –P INPUT DROP

    – # iptables –P FORWARD DROP

    – # iptables –P OUTPUT DROP

    Podemos checar com ‘iptables –L’ a mudança da política

    padrão das chains para DROP. Dessa forma, TUDO que

    trafegar pelo firewall será descartado.Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!40

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    TUDO mesmo, até a comunicação entre processos

    fica impossibilitada. Logo, a primeira a coisa a ser

    feita quando se trabalha nesta política é aplicar a

    regra:

    iptables –A INPUT –i lo –j ACCEPT

    E assim liberar totalmente o tráfego de entrada da

    interface de Loopback (lo)

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!41

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    • O acesso à Rede Monitorada já esta bloqueado por

    padrão (devido a alteração das chains), vamos agora

    permitir que a Rede Externa tenha acesso a Rede

    Monitorada. Isso pode ser feito com a adição das

    seguintes regras:

    iptables –A FORWARD –s 192.168.1.0/24 –j ACCEPT

    iptables –A FORWARD –s 192.168.0.0/24 –j ACCEPT

    Regras com síntese muito semelhante a regra criada

    anteriormente, por isso não iremos detalhá-las aqui.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!42

    Restringindo o acesso a Rede Monitorada

  • Prática – Firewall/IPTABLES

    • Outro uso muito comum de um Firewall é o bloqueio

    de uma porta e consequentemente um serviço, isso

    pode ser feito pelos parâmetros ‘--dport’ ou ‘--sport’

    • Estes parâmetros funcionam somente sobre os

    protocolos UDP e TCP, logo o parâmetro –p se

    torna obrigatório ao se usar uma das regras acima.

    iptables –A FORWARD –d 192.168.0.0/24 –p tcp --dport 22 –j DROP

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!43

    Bloqueando uma porta ou serviço

  • Prática – Firewall/IPTABLES

    • Para isso faremos uso de recursos mais

    avançados do IPTABLES, os módulos.

    • Um módulo nada mais é que uma forma de se

    ampliar a funcionalidade da ferramenta

    IPTABLES, ou seja, uma forma de se fugir do

    convencional aplicando-se regras um pouco mais

    aprimoradas.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!44

    Bloqueando Ataques de Bruteforce

  • Prática – Firewall/IPTABLES

    • Nesta prática vamos aplicar dois módulos muito

    úteis na criação de várias regras, são eles:

    – recent: Permite a criação de uma Lista dinâmica de

    Endereços IP que pode ser usada em diferentes

    contextos.

    – state: Observa o estado de conexão de um pacote.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!45

    Bloqueando Ataques de Bruteforce

  • Prática – Firewall/IPTABLES

    1. # iptables -I FORWARD -p tcp --dport

    22 -i eth0 -m state --state NEW -m

    recent --set

    • Para maiores informações sobre as opções

    de um certo módulo:

    # iptables -m -help

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!46

    Bloqueando Ataques de Bruteforce

  • Prática – Firewall/IPTABLES

    2. # iptables -I FORWARD -p tcp --dport

    22 -i eth0 -m state --state NEW -m

    recent --update --seconds 60 --

    hitcount 4 -j DROP

    Estas duas regras em conjunto permitem apenas 3

    tentativas de conexão por minuto ao serviço que roda na

    porta 22 para um determinado endereço de origem.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!47

    Bloqueando Ataques de Bruteforce

  • Prática – Firewall/IPTABLES

    # iptables -I FORWARD -p tcp --dport 22 -i eth0 -m state

    --state NEW -m recent --update --seconds 60 --hitcount

    4 -j LOG --log-prefix "Anti SSH-Bruteforce: " --log-level

    6

    • Atenção quanto a precedência, regras que envolvem a criação de

    LOGs devem preceder as regras que realizam o ‘DROP’ ou

    ‘ACCEPT’ dos pacotes.

    • No Ubuntu os logs são armazenados no syslog, outras opções

    utilizadas em outras distribuições geralmente são:

    /var/log/messages ou em /var/log/kern.log.

    Administração de Serviços de Rede em

    Servidores Linux – Laboratório ACME!48

    Logando tentativas de Ataques de Bruteforce