Segurança de Dados e Informações - Aula 5 - Firewall | Iptables
-
Upload
vox-tecnologia -
Category
Education
-
view
561 -
download
1
Transcript of Segurança de Dados e Informações - Aula 5 - Firewall | Iptables
Professor Fagner Lima
ete.fagnerlima.pro.br
Curso Técnico de
Redes de Computadores
Segurança de Dados e
Informações
Aula 5
Firewall | Iptables
Conteúdo
• Conceitos e Terminologias
• Tipos de Firewall
• Limitações do Firewall
• Portas Mais Usadas
• Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 2
Conceitos e Terminologias
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Firewall
15/05/2016 Pág. 3
• Solução de segurança
• Combinação de hardware e software
• Análise do tráfego de rede
• Políticas de controle de acesso
• Regras ou instruções
Conceitos e Terminologias
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Topologia
15/05/2016 Pág. 4
Conceitos e Terminologias
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 5
• Princípios nas políticas de firewall:
• Todo o tráfego é permitido
• Exceção do que está bloqueado
• Todo o tráfego é bloqueado
• Exceção do que está autorizado
Tipos de Firewall
• Filtragem de pacotes
• Firewall de aplicação (proxy de serviços)
• Inspeção de estados
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 6
Tipos de Firewall
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Filtragem de Pacotes
15/05/2016 Pág. 7
• Lista de regras
• Estático
• Dados analisados apenas com base nas regras
• Não importando a ligação com outro pacote
• Dinâmico
• Correção das limitações do filtro estático
Tipos de Firewall
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Firewall de Aplicação (Proxy de Serviços)
15/05/2016 Pág. 8
• Intermediário entre duas redes
• Não permite a comunicação direta
• Regras de acesso a endereços externos
• Tarefas complementares:
• Registro do tráfego em arquivo de log
• Armazenamento de conteúdos em cache
• Liberação de recursos com autenticação
Tipos de Firewall
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Inspeção de Estados
15/05/2016 Pág. 9
• Evolução dos filtros dinâmicos
• Comparação entre o que acontece e o esperado
Tipos de Firewall
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Firewall Pessoal
15/05/2016 Pág. 10
• Firewall doméstico
• Não protege um segmento de rede
• Apenas o equipamento onde está instalado
• Deve ser utilizados por qualquer pessoa
Tipos de Firewall
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Firewall de Hardware
15/05/2016 Pág. 11
• Preparado para grandes volumes de dados
• Melhor preparado que um servidor convencional
Limitações do Firewall
• Comprometimento do desempenho da rede
• Revisão periódica das políticas
• Identificação de atividade maliciosa originada e
destinada à rede internet
• Identificação de atividade maliciosa que acontece
por descuido do usuário (ex.: links falsos)
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 12
Portas Mais Usadas
• 21/TCP - FTP
• 22/TCP,UDP - SSH
• 25/TCP,UDP - SMTP
• 53/TCP,UDP - DNS
• 80/TCP - HTTP
• 110/TCP - POP3
• 143/TCP,UDP - IMAP
• 443/TCP - HTTPS
• 1194/UDP - OpenVPN
• 5900/TCP - VNC
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 13
Iptables
• Firewall padrão do Linux
• Front end para o Netfilter
• Funções de firewall, NAT e log
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 14
Iptables
• Algumas aplicações:
• Construir firewalls com filtragem de pacotes
• Usar NAT para compartilhamento de internet
• Usar NAT para implementar proxies
transparentes
• Realizar encaminhamento de portas (DNAT)
• ...
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 15
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 16
• Tabela 1
• Cadeia 1
• Regra 1
• Regra 2
• Regra n
• Cadeia 2
• Regra 1
• Regra 2
• Tabela 1
• Cadeia 1
• Regra 1
• Regra 2
• Cadeia 2
• Regra 1
• Regra 2
• Regra n
Funcionamento
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 17
• Tabelas (Tables)
• Agrupamento de cadeias
• Determina o escopo das regras
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 18
• Tabelas (Tables)
• filter: tabela padrão para manipular pacotes,
usada para configurar políticas para o tráfego
que entra, atravessa ou sai do computador.
• Cadeias: INPUT, OUTPUT e FORWARD.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 19
• Tabelas (Tables)
• nat: Usada para alterar pacotes que criam uma
nova conexão e para redirecionar conexões
para NAT.
• Cadeias: PREROUTING, INPUT, OUTPUT e
POSTROUTING.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 20
• Tabelas (Tables)
• mangle: usada para tipos específicos de
alteração de pacotes, como a modificação de
opções do cabeçalho IP de um pacote.
• Cadeias: PREROUTING, INPUT, FORWARD,
OUTPUT e POSTROUTING.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 21
• Tabelas (Tables)
• raw: marca pacotes que não devem ser
manipulados pelo sistema de rastreamento de
conexões.
• Cadeias: PREROUTING e OUTPUT.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 22
• Tabelas (Tables)
• security: usada para regras de MAC
(Mandatory Access Control – Controle de
Acesso Obrigatório).
• Cadeias: INPUT, FORWARD e OUTPUT.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 23
• Cadeias (Chains)
• Conjunto de regras
• Pacote é verificado junto às regras
• Ação associada é executada
• Regras restantes não verificadas
• Se não encontrar, regra padrão (policy)
aplicada
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 24
• Cadeias (Chains)
• INPUT: aplica regras aos pacotes que chegam
ao servidor.
• OUTPUT: aplica regras aos pacotes originados
e que partem do servidor.
• FORWARD: aplica regras aos pacotes roteados
através do servidor (para outro servidor ou outra
interface de rede no mesmo servidor).
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 25
• Cadeias (Chains)
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 26
• Cadeias (Chains)
• PREROUTING: altera pacotes de rede quando
eles chegam e antes do roteamento. Usado
para DNAT (Destination NAT).
• POSTROUTING: altera pacotes de rede após o
roteamento. Usado para SNAT (Source NAT).
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 27
• Cadeias (Chains)
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 28
• Regras (Rules)
• Estrutura geral:
• iptables opção cadeia parâmetros ação
• Exemplos:
• iptables –A INPUT -s 192.168.0.5 -p tcp
-j ACCEPT
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 29
• Regras (Rules)
• Opções principais:
• -P: configura a regra padrão da cadeia.
• -A: anexa a regra no final da cadeia.
• -F: apaga todas as regras na cadeia.
• -L: lista todas as regras da cadeia.
• -h: mostra a ajuda.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 30
• Regras (Rules)
• Opções principais:
• -I: insere uma regra em uma posição.
• -D: apaga uma regra em uma posição.
• -N: cria uma nova cadeia.
• -X: exclui uma cadeia criada pelo usuário.
• -R: substitui uma regra
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 31
• Regras (Rules)
• Ações embutidas no iptables:
• ACCEPT: permitir pacote.
• DROP: descartar pacote.
• QUEUE: enviar o pacote ao userspace
(código fora do kernel).
• RETURN: descontinuar o processamento do
pacote e aplicar a regra padrão a ele.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 32
• Regras (Rules)
• Ações adicionais:
• REJECT: descarta o pacote e envia feedback
ao remetente.
• DNAT: reescreve o endereço de destino
(DNAT).
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 33
• Regras (Rules)
• Ações adicionais:
• SNAT: reescreve o endereço de origem
(SNAT).
• LOG: coloca no log informações sobre o
pacote.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 34
• Regras (Rules)
• Parâmetros:
• -t tabela: especifica a tabela.
• -t nat, -t mangle, -t raw
• A tabela filter é padrão, não precisa ser
especificada.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 35
• Regras (Rules)
• Parâmetros:
• -j AÇÃO: realiza a ação especificada.
• -j ACCEPT, -j DROP, -j REQUEST
• -p protocolo: especifica o protocolo.
• -p icmp, -p tcp, -p udp, -p all
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 36
• Regras (Rules)
• Parâmetros:
• -s IP: IP de origem do pacote.
• -s 192.168.0.1
• -s 192.168.0.0/24
• -s 0/0
• -d IP: IP de destino do pacote.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 37
• Regras (Rules)
• Parâmetros:
• -i interface: nome da interface de rede de
entrada do pacote.
• -i eth0, -i eth1
• -o interface: nome da interface de rede de
saída do pacote.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 38
• Regras (Rules)
• Parâmetros:
• --sport portas: portas de origem.
• -p tcp --sport 80, -p tcp --sport 443
• -p tcp --sport 5000:5050
• --dport portas: portas de destino.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Funcionamento
15/05/2016 Pág. 39
• Regras (Rules)
• Parâmetros:
• !: operador de negação.
• -i ! eth0
• --syn: identifica nova requisição de conexão.
• --icmp-type: tipo de mensagem ICMP.
• --icmp-type echo-request
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Rastreamento de Conexões
15/05/2016 Pág. 40
• Associação de pacotes com as conexões lógicas
às quais pertencem
• Progresso das conexões através do ciclo de vida
• Extensão conntrack
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Rastreamento de Conexões
15/05/2016 Pág. 41
Estado Descrição
ESTABLISHED A conexão já viu pacotes
trafegando em ambas as direções.
INVALID O pacote não pertence a nenhuma
conexão rastreada.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Rastreamento de Conexões
15/05/2016 Pág. 42
Estado Descrição
NEW O pacote está iniciando uma nova
conexão ou é parte de uma conexão que
ainda não teve pacotes trafegados em
ambas as direções
RELATED O pacote está iniciando uma nova
conexão, mas a nova conexão é
relacionada a uma conexão já existente.
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 43
• Servidor
• Duas interfaces:
• NAT
• Rede interna
• Clientes
• Uma interface:
• Rede interna
Topologia no VirtualBox
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 44
• man iptables
• Exibe o manual do iptables
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 45
• iptables -L
• Lista as regras atuais de todas as cadeias da
tabela filter
• iptables -S
• Lista as regras atuais de uma forma resumida
• iptables -L INPUT
• Lista as regras atuais da cadeia INPUT
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 46
• iptables -L -t nat
• Lista as regras atuais de todas as cadeias da
tabela nat
• iptables -L --line-numbers
• Lista as regras atuais de todas as cadeias da
tabela filter com suas posições
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 47
• modprobe iptable_nat
• iptables -A POSTROUTING -t nat -o eth0
-j MASQUERADE
• echo 1 > /proc/sys/net/ipv4/ip_forward
• Compartilhamento de internet
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 48
• iptables -P INPUT DROP
• Configura a regra padrão (policy) da cadeia
INPUT da tabela filter como DROP
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 49
• iptables -A INPUT -p tcp --dport 22 -j
ACCEPT
• Libera o acesso SSH por meio da porta 22
• iptables -A INPUT -p tcp --dport 80 -j
ACCEPT
• Libera o acesso web via HTTP
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 50
• iptables -A INPUT -p tcp --dport 443
-j ACCEPT
• Libera o acesso web via HTTPS
• iptables -I INPUT 1 -s 192.168.0.11 -j
DROP
• Bloqueia o tráfego de um IP específico
• Insere a regra na cadeia INPUT na posição 1
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 51
• iptables -D INPUT 1
• Remove a regra 1 da cadeia INPUT
• iptables -A INPUT -m mac --mac-source
01:23:45:67:89:AB -j DROP
• Bloqueia o tráfego de um MAC específico
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 52
• iptables -A INPUT -p icmp --icmp-type
echo-request -j REQUEST
• Bloqueia o ping (requisição) dos clientes para o
servidor e envia uma mensagem
• iptables -A INPUT -p icmp --icmp-type
echo-reply -j ACCEPT
• Libera o ping (resposta) do servidor para os
clientes
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 53
• iptables -A INPUT -s 192.168.0.11 -j
REJECT --reject-with
icmp-net-unreachable
• Bloqueia os pacotes vindos do IP especificado e
envia uma mensagem personalizada
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 54
• Alguns tipos de mensagens (--reject-with):
• icmp-net-unreachable
• icmp-host-unreachable
• icmp-port-unreachable
• icmp-proto-unreachable
• ...
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 55
• iptables -A INPUT -p tcp --dport
5100:5150 -j ACCEPT
• Libera uma faixa de portas para o protocolo
TCP
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras
15/05/2016 Pág. 56
• iptables -A PREROUTING -t nat -i eth1
-p tcp --dport 80 -j DNAT --to
192.168.0.1:80
• iptables -A FORWARD -p tcp -d
192.168.0.1 --dport 80 -j ACCEPT
• Redireciona as conexões TCP que chegam à
interface LAN com destino à interface WAN para
o servidor web local
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras na Inicialização
15/05/2016 Pág. 57
• Crie um arquivo no diretório /etc/init.d
• touch /etc/init.d/iptables.sh
• Edite o arquivo com o script das regras
• nano /etc/init.d/iptables.sh
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras na Inicialização
15/05/2016 Pág. 58
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Regras na Inicialização
15/05/2016 Pág. 59
• Dê permissão para o arquivo ser executado
• chmod +x /etc/init.d/iptables.sh
• Crie um link para o diretório /etc/rc2.d
• ln -s /etc/init.d/iptables.sh
/etc/rc2.d/S99iptables
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Script Exemplo
15/05/2016 Pág. 60
#!/bin/bash
# /etc/init.d/iptables.sh
start() {
echo "[ OK ] Firewall iniciando..."
# Limpeza e inicialização dos módulos
iptables -X
iptables -F
iptables -X -t nat
iptables -F -t nat
modprobe iptable_nat
# Políticas padrão
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Script Exemplo
15/05/2016 Pág. 61
# Compartilhamento de internet
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "[ OK ] Compartilhamento de internet ativado..."
# Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Servidor Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEP
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Script Exemplo
15/05/2016 Pág. 62
echo "[ OK ] Firewall ativado."
}
stop() {
echo "[ OK ] Desativando firewal..."
# Limpeza dos módulos
iptables -X
iptables -F
iptables -X -t nat
iptables -F -t nat
echo "[ OK ] Firewall desativado."
}
Iptables
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
Script Exemplo
15/05/2016 Pág. 63
case "$1" in
"start") start ;;
"stop") stop ;;
"restart") stop ; start ;;
*) echo "Use os parâmetros start, stop ou restart"
esac
Referências
• O que é firewall? - InfoWester
• http://www.infowester.com/firewall.php
• Firewall – Filipe Raulino
• https://docente.ifrn.edu.br/filiperaulino/disciplinas/gerencia-e-
seguranca-de-redes/aulas/Firewall%20-%20Introducao.pdf
• Firewall Iptables – Fábio Reis
• http://www.planetaunix.com.br/2014/12/firewall-iptables-parte-
01.html
• Firewall iptables no Linux – Bóson Treinamentos
• https://www.youtube.com/watch?v=LJlJlLgkNxg&list=PLucm8g_ezq
NoSuVhriGdoevNcMDECEsgl&index=12
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 64
Referências
• Escrevendo um Script de Firewall – Carlos E. Morimoto
• http://www.hardware.com.br/livros/linux-redes/escrevendo-script-
firewall.html
• Configurando o Iptables e Fazendo Regras Básicas – Thadeu Camargo
• www.tccamargo.com/linux/tutoriais/iptables.html
• Firewall iptables - Guia Foca GNU/Linux
• http://www.guiafoca.org/cgs/guia/avancado/ch-fw-iptables.html
Segurança de Dados e Informações: Aula 5 - Firewall | Iptables
15/05/2016 Pág. 65