Firewall: Redes Protegidas
III WTR do PoP-BAIbirisol Fontes Ferreira <[email protected]>PoP-BA: Ponto de Presença da RNP na Bahia
Todo o material aqui disponível pode, posteriormente, ser utilizado sob os termos da:
Creative Commons License: Atribuição - Uso não comercial - Permanência da Licença
http://creativecommons.org/licenses/by-nc-sa/3.0/
Sumário
Introdução
A Rede
O FireWall
Técnicas de processamento de pacotes
Quero usar o: iptables
Quero usar o: pfSense
Conclusão
Referências
Introdução
A partir do momento que uma rede interconectando computadores é posta em produção em uma instituição é necessário pensar em medidas que visem torná-la segura e confiável, dessa forma o dispositivo de segurança chamado FireWall é indispensável.
Introdução
De posse de conhecimento teóricos da área de segurança da informação tal como defesa em profundidade (Defense in depth), em que várias camadas de controle (defesa) são colocadas para garantir a segurança.
Fornece mais uma redundância na segurança de uma rede é necessário.
Introdução
Porém a segurança de uma rede e de seus serviços não resume-se ao uso de um Firewall.
Existem diversas formas de um uso autorizado inviabilizar ou até mesmo degradar a utilidade de uma infraestrutura de redes.
Outras ameças existem DDOS e SQL Injection.
Introdução
Com este proposito, este curso irá abordar o funcionamento e a forma de utilizar um Firewall para prover segurança em uma rede.
Existem diversos tipos de Firewall, mas será dado prioridade ao tipo filtro de pacotes.
Será usado para fins práticos duas aplicações que são FireWall's de redes o iptables (Linux) e o pfSense (FreeBSD).
A Rede
Uma rede de computadores possuí pelo menos 2 computadores interconectados para compartilhamento de recursos.
Para que esse computadores possam se comunicar usando protocolos um modelo é seguido, e o modelo que temos hoje na Internet é o Modelo de Referência TCP/IP.
A Rede: Protocolo
Define o formato e a ordem das mensagens trocadas entre dois ou mais computadores comunicantes.
E também como as ações realizadas na transmissão e/ou recebimento de uma mensagem ou outro evento (Podem estar em qualquer camada do modelo de referência).
A Rede: Camada de Enlace
Relaciona-se com a manutenção da interface de rede do sistema de um host.
Esta camada prepara os quadros com os dados da camada acima para serem transmitidos ao meio em que os equipamentos estão conectados.
Como exemplo, os quadros que estão preparados para uma Token Ring não funcionariam em uma rede Ethernet.
A Rede: Camada de Rede
É responsável pelo endereçamento e roteamento de pacotes IP na rede.
Alguns dos protocolos situados sobre esta camada incluem IP, ICMP e IGMP.
Esta camada também é responsável por garantir que os pacotes IP alcancem seus destinos.
A Rede: IP
Internet Protocol (IP) é o protocolo usado entre os hosts para encaminhamento de dados (pacotes).
É responsável pelo endereçamento e roteamento de pacotes IP na rede.
A Rede: ICMP
Internet Control Message Protocol (ICMP) é um protocolo da camada de Rede, que auxilia o IP na parte de controle e administração na rede.
Fonte: http://tools.ietf.org/html/rfc792
A Rede: ICMPv6
Internet Control Message Protocol (ICMP) é um protocolo da camada de Rede, que auxilia o IP na parte de controle e administração na rede.
Fonte: http://tools.ietf.org/html/rfc4443
A Rede: Camada de Transporte
É principal responsável por gerir a troca de dados entre as entidades comunicantes de uma rede (hosts). Na internet são dois os principais.
Entre os protocolos utilizados para este fim estão o TCP e UDP.
A Rede: TCP
Transmission Control Protocol (TCP) é um protocolo da camada de Transporte, que tem entre as suas funções a transmissão de forma segura e com baixo custo dos dados entre dois hosts em uma rede.
Características:
Manutenção de conexão (Fim-a-Fim)
Multiplexação
Controle de Fluxo
Confiabilidade
A Rede: TCP
O TCP utiliza o protocolo IP para realizar a entrega, razão a qual ele pode garantir o cumprimento das suas características mencionadas.
Fonte: http://www.ietf.org/rfc/rfc793.txt
A Rede: UDP
User Datagram Protocol (UDP) é um protocolo da camada de Transporte, porém o UDP não garante a entrega confiável dos pacotes (ao contrário do TCP).
Fonte: http://www.ietf.org/rfc/rfc768.txt
A Rede: Camada de Aplicação
É utilizada por programas (processos) para enviar e receber informações para outros programas através da rede.
Nesta camada são utilizados protocolos como SMTP (para email), FTP (transferência de arquivos), HTTP (para navegar na web).
Uma vez que os dados tenham sido processados pela camada de aplicação, eles são enviados para a aplicação (receptor) ou para a camada mais abaixo (remetente).
A Rede: Camada de Aplicação
Protocolos mais popularesAplicação Porta Protocolo Sobre
HTTP 80 TCP Hyptertext Transfer Protocol. Usado em aplicações como Firefox, Opera, Chromium e Internet Explorer.
HTTPS 443 TCP, UDP Usado para navegação Web segura
IMAP 143 TCP Aplicações de email entre as quais Evolution, Icedove, Eudora, Thunderbird e Outlook.
FTP 20 e 21
TCP File Transfer Protocol.
SSH 22 TCP Secure Shell protocol. Prove sessões seguras para login em maquinas remotas.
Telnet 23 TCP Used for remote server administration.
DNS 53 TCP, UDP Domain Name System protocol para converter nomes de domínios em endeço IP.
POP3 110 TCP Post Office Protocool. For receiving email.
SMTP 25 TCP Simple Mail Transfer Protocol, usado para envio de email na Internet.
A Rede: Quiz!?
Na camada de enlace qual é a unidade de transmissão de dados?
( ) Pacotes
( ) Programas
( ) Quadros
( ) Datagramas
A Rede: Quiz!?
Na camada de enlace qual é a unidade de transmissão de dados?
( ) Pacotes
( ) Programas
( X ) Quadros
( ) Datagramas
A Rede: Quiz!?
Que protocolo abaixo opera na camada de rede do modelo TCP/IP?
( ) IP
( ) ICMP
( ) IPv6
( ) Todos acima
A Rede: Quiz!?
Que protocolo abaixo opera na camada de rede do modelo TCP/IP?
( ) IP
( ) ICMP
( ) IPv6
( X ) Todos acima
A Rede: Quiz!?
Qual dos seguintes protocolos não são orientados a conexão?
( ) UDP
( ) FTP
( ) TCP
( ) SMTP
A Rede: Quiz!?
Qual dos seguintes protocolos não são orientados a conexão?
( X ) UDP
( ) FTP
( ) TCP
( ) SMTP
A Rede: Quiz!?
Quais das opções abaixo não corresponde a porta padronizada do respectivo serviço?
( ) HTTP porta 80
( ) HTTPS porta 443
( ) DNS porta 53
( ) SMTP porta 25
( ) SSH porta 23
( ) FTP porta 20 e 21
A Rede: Quiz!?
Quais das opções abaixo não corresponde a porta padronizada do respectivo serviço?
( ) HTTP porta 80
( ) HTTPS porta 443
( ) DNS porta 53
( ) SMTP porta 25
( X ) SSH porta 23
( ) FTP porta 20 e 21
A Rede: Quiz!?
Quantas portas são necessárias para estabelecer uma conexão com TCP?
( ) Duas portas
( ) Três portas
( ) Uma porta
A Rede: Quiz!?
Quantas portas são necessárias para estabelecer uma conexão com TCP?
( X ) Duas portas
( ) Três portas
( ) Uma porta
O Firewall
A Internet é um avanço tecnológico maravilhoso, que fornece acesso à informação, e a capacidade de publicar informações, de formas revolucionárias.
Porém também é um grande perigo que oferece a capacidade de poluir e destruir a informação de formas inimagináveis.
Enquanto publicações não técnicas são obcecadas com a Internet, as publicações técnicas mudaram e estão obcecados com a Segurança.
O Firewall
Quando você se conectar à Internet, você está colocando em risco três coisas:
Os seus dados: a informação que você mantem nos computadores
Os seus recursos: os próprios computadores
Sua reputação
O Firewall
Um firewall é uma forma de proteção que permite que uma rede conecte-se à Internet, mantendo um grau de segurança.
Basicamente um dispositivo de proteção. Se você está construindo um firewall, a primeira coisa que você precisa se preocupar é com o que você está tentando proteger.
Como uma barreira que impõe limites e controla todo o tráfego de dados entre um ou mais computadores e uma rede externa, onde essa rede externa pode ser a internet, como também diferente redes dentro de uma corporação, por exemplo.
O Firewall: Componentes
Chokes
Computadores ou dispositivos de comunicação que restringem o livre acesso de pacotes entre redes
Gates
Programas, dispositivos ou computadores dentro do perímetro de um Firewall que são responsáveis por encaminhar pedidos de conexões.
O Firewall: Componentes
Perimeter Network
Um técnica que separa a rede interna de usuário da rede interna de serviços.
Cria-se uma área protegida que delimita o acesso público.
Conhecida pelo nome DMZ (De-Militarized Zone)
O Firewall: Políticas
Default Permit
O administrador lista as regras que não são permitidas e então libera todas as outras.
Default Deny
O administrador permite a ocorrência de apenas algumas requisições, outras serão negadas.
source destination service interface action
external DMZ any wlan DROP
any any any any ACCEPT
source destination service interface action
internal any any lan ACCEPT
external DMZ HTTP wlan ACCEPT
any any any any DROP
O Firewall: Soluções
Baseados em Hardware e Software
Cisco ASA série 5500 Adaptive Security Appliances
Dispositivos de segurança de email Cisco IronPort
Barracuda Spam & Virus Firewall
Barracuda Web Filter
Barracuda Web Application Firewall
Barracuda NG Firewall
O Firewall: Soluções
Cisco ASA
Cisco IronPort
Fonte: http://www.cisco.com/web/BR/produtos/security/index.html
O Firewall: Soluções
Barracuda
Fonte: https://www.barracudanetworks.com/ns/products/
O Firewall: Soluções
Baseados em Software
Não é necessário nenhum hardware específico
Pode-se usar um computador comum para este fim
Fonte: http://www.netfilter.org/ http://www.ipfire.org/ http://www.pfsense.org/ http://www.smoothwall.org/
O Firewall: Tipos
Existem vários tipos de Firewall, que geralmente são apresentados em razão das suas funcionalidade entre elas:
Packet Filtering
Proxy
Circut Level Gateways
Bastion Host
O Firewall: Tipos
Packet Filtering
Este tipo de Firewall é responsável por realizar a filtragem de pacotes entre os hosts da rede interna e externa, sendo que essa filtragem deve seguir uma politica previamente decidida.
Na implementação de um firewall desse tipo é necessário conhecer os campos dos protocolos a serem filtrados, como por exemplo os campos do tcp, udp, ip e icmp.
Conhecido pelo nome de Screening Router (Tomada de decisão).
O Firewall: Tipos
Proxy Services
Servidores Proxy são programas especializados em verificar solicitações da rede interna para serviços em uma rede externa e permitir ou não que sejam realizadas.
Normalmente fazem cache das solicitações para que não realizem esforços duplicados.
Também podem ser transparente para os clientes (Proxy Transparente).
O Firewall: Tipos
Circuit-Level Gateways
Atua na camada de Transporte interpretando os handshaking entre os pacotes.
Não permite conexões TCP fim-a-fim.
Cria duas conexões para cada nova conexão.
Repassa os seguimentos TCP de uma conexão a outra sem examinar os conteúdo.
O Firewall: Arquitetura
Dual-Homed Host
O Firewall é disposto entre a rede externa e interna.
Tem o roteamento indireto em nível de aplicação.
Isola o tráfego externo do trafego interno.
O Firewall: Arquitetura
Screened Host
Combinação de um roteador, um Packet Filter e um Bastion Host.
O Screened Host é configurado de modo a apenas aceitar conexões oriundas do Bastion Host.
O Bastion Host é o único host por onde a rede externa poderá acessar a algum serviço da rede interna (Depois de passar pelo Packet Filter).
Nessa arquitetura há a divisão do problema, um dos host é responsável pela segurança na camada de aplicação (Bastion Host) e outro pela camada de Rede (Screening Router).
O Firewall: Arquitetura
Screened Subnet Firewall
Conhecida como DMZ (DeMilitarized Zone).
Adiciona-se uma área de perímetro a fim de proteger a rede interna.
Dois Firewalls do tipo Screened, um para proteção da rede interna (serve como Packet Filter) e outro para proteger a DMZ e rede interna da rede externa.
Um terceiro host (Bastion Host) serve como porta de entrada para os serviços internos (Camada de aplicação).
O Firewall: Quiz!?
Qual das funções abaixo não pertencem a um firewall?
( ) Filtragem de pacotes
( ) Proteção de uma rede
( ) Recuperação de conexões perdidas
( ) Filtragem de conteúdo
O Firewall: Quiz!?
Qual das funções abaixo não pertencem a um firewall?
( ) Filtragem de pacotes
( ) Proteção de uma rede
( X ) Recuperação de conexões perdidas
( ) Filtragem de conteúdo
O Firewall: Quiz!?
Quais das características abaixo pertencem a uma DMZ?
( ) Uma área (rede) onde geralmente são colocados desktops
( ) Uma zona desmilitarizada para colocar apenas Bastion Hosts
( ) Uma zona de rede onde são postos serviços para acesso externo
( ) Zona desmilitarizada onde ficam os computadores mais frágeis
O Firewall: Quiz!?
Quais das características abaixo pertencem a uma DMZ?
( ) Uma área (rede) onde geralmente são colocados desktops
( ) Uma zona desmilitarizada para colocar apenas Bastion Hosts
( x ) Uma zona de rede onde são postos serviços para acesso externo
( ) Zona desmilitarizada onde ficam os computadores mais frágeis
O Firewall: Quiz!?
Um Bastion Host serve para?
( ) Hospedar serviços Web para o público externo sem HTTPS
( ) Realizar balanceamento de carga entre dois roteadores
( ) Hospedar o minimo de aplicações, como por exemplo um servidor proxy, de forma a minimizar as brechas de segurança.
( ) Comprometer a segurança da organização com vulnerabilidades
O Firewall: Quiz!?
Um Bastion Host serve para?
( ) Hospedar serviços Web para o público externo sem HTTPS
( ) Realizar balanceamento de carga entre dois roteadores
( X ) Hospedar o minimo de aplicações, como por exemplo um servidor proxy, de forma a minimizar as brechas de segurança.
( ) Comprometer a segurança da organização com vulnerabilidades
O Firewall: Quiz!?
Quais das opções abaixo não são arquiteturas de firewall?
[ ] Host-Homed Firewall
[ ] Dual-Homed Host
[ ] Screened Base Station
[ ] Screened Host
[ ] Screened Subnet Firewall
[ ] Firewall Host Screened
O Firewall: Quiz!?
Quais das opções abaixo não são arquiteturas de firewall?
[ ] Host-Homed Firewall
[ X ] Dual-Homed Host
[ ] Screened Base Station
[ X ] Screened Host
[ X ] Screened Subnet Firewall
[ ] Firewall Host Screened
Técnicas de processamento de pacotes
Filtragem de pacotes
Tipo mais básico de processamento de pacotes.
Envolve o processamento em vários pontos do processamento de rede do sistema operacional.
Decisões sobre as manipulações dos pacotes, se irão ou não ser passado para os próximos estágios de processamento.
Pode realizar descarte do pacote, rejeitar o pacote (com aviso a fonte) e etc.
Técnicas de processamento de pacotes
Accounting
Envolve monitorar o número de pacotes que foram processados.
Contagem da quantidade de dados manipulada no processamento de cada pacote.
Serve para mensurar o volume do tráfego de rede.
Técnicas de processamento de pacotes
Rastreamento de conexão (Connection Tracking)
Fornece informações adicionais para rastreamento de conexões, que por algum motivo, podem não ter parâmetros constantes (uma conexão FTP).
É útil na aplicação de outras técnicas de processamento de pacotes, que precisem de um histórico do tráfego.
Técnicas de processamento de pacotes
Mangling de pacotes
Serve para modificar o conteúdo do pacote de forma a aplicar algum tratamento de priorização ou mesmo de adequação em uma rede.
Pode ser usado para trocar endereços de redes, portas e etc.
Técnicas de processamento de pacotes
Tradução de endereços de rede (NAT)
É um tipo de Mangling que é usado para modificar endereços de origem/destino e/ou número de porta.
Usa o rastreamento de conexão para manipular os pacotes.
Também pode ser usado com o termo SNAT (mudança no endereço e/ou porta de origem) e DNAT (mudança no endereço e/ou porta de destino).
Técnicas de processamento de pacotes
Masquerading (Mascaramento)
Um tipo de SNAT onde o computador que está encaminhando o pacote, reescreve o pacote de maneira que a solicitação aparente ser oriunda dele.
Usado para compartilhamento de conexões de Internet.
Técnicas de processamento de pacotes
Port Forwarding (redirecionamento de portas)
É um tipo de DNAT no qual os pacotes oriundos de uma rede externa e destinados ao endereço público de um conjunto de computadores é modificado para o endereço interno (real).
Também rescrever os pacotes de resposta de maneira a parecer que foram enviados pelo endereço público dos computadores.
Usa rastreamento de conexão.
Age como um proxy para os computadores externo.
Técnicas de processamento de pacotes
Balanceamento de Carga
Usado para distribuir conexões entre um conjunto de servidores de maneira a alcançar o maior aproveitamento de “banda”.
Pode ser usado com redirecionamento de portas de maneira a usar um política de escalonamento (como “Round-robin”).
Quero usar o: iptables
NetFilter
Um framework de filtragem de pacotes embutido no Kernel Linux.
É o sucessor melhorado do ipchains (Linux 2.2.x) e ipfwadm(Linux 2.0.x).
Possibilita a manipulação da pilha de rede.
Fonte: http://www.netfilter.org/
Quero usar o: iptables
NetFilter
Constrói firewalls stateful para filtragem de pacotes.
Usar NAT e masquerading para acesso à Internet pública.
Implementar proxies transparentes
Fazer um roteamento baseado em políticas e aplicando QoS.
Fazer manipulação adicionais em pacotes (mangling), alterando os campos TOS / DSCP / ECN do cabeçalho IP.
Quero usar o: iptables
NetFilter
Netfilter é uma série de hooks em vários pontos em uma pilha de protocolo (IPv4, IPv6 e etc).
Sua arquitetura pode ser mostrada pela sequência de andamento dos pacotes nos hooks:
PRE ROUTING
INPUT
FORWARD
OUTPUT
POST ROUTING
Quando um dos hooks é ativado pelo core de rede, o Netfilter pode ser mandado tomar alguma ação para manipulação do pacote.
Quero usar o: iptables
NetFilterACCEPT: continua a passagem pelas hooks.
DROP: descarta o pacote.
STOLEN: o pacote é capturado, mas seus recursos não são liberados.
QUEUE: Envia o pacote para o espaço de usuário (são fornecidas algumas bibliotecas para manipulação).
REPEAT: Passa o pacote novamente pelo hook.
Quero usar o: iptables
O iptables
É uma ferramenta de ambiente de usuário para manipulação as regras de filtragem de pacotes.
Inclui na sua distribuição o ip6tables para configurar a filtragem de IPv6.
Funcionalidades:
listagem do conteúdo do conjunto de regras de filtro de pacotes
adicionar / remover / modificar regras no conjunto de regras de filtro de pacotes
listando / zerar por regra contadores de o conjunto de regras de filtro de pacotes
Quero usar o: iptables
O iptables
Usado para manipular diretamente o Netfilter através do espaço de usuário.
Possui nomenclaturas próprias para cada parte do fluxo do pacote através da pilha de protocolo.
As modificações no tratamento de pacotes são realizadas com comandos.
Quero usar o: iptables
O iptables: Tabelas
NAT: Utilizada com o rastreamento de conexão para redirecionar conexões para tradução de endereços de rede.
Filter: Usada para estabelecer políticas para o tipo de tráfego permitido para dentro, trabés e para fora do computador (tabela de operação padrão).
Mangle: Utilizada para alteração especializada de pacotes, como modificações nas opções IP.
Quero usar o: iptables
O iptables: Chains
Todas as tabelas tem pelo menos uma, que estão inicialmente vazias.
As chains tem uma política padrão, que serve para realizar uma ação com os pacotes que alcançam seu fim sem combinar com uma regra.
Chains criadas pelo usuário tem uma política implícita RETURN.
Quero usar o: iptables
O iptables: Regras
São critérios (matching-criteria) que definem quais pacotes podem ser manipulados por uma determinada ação (alvo).
São mantidos contadores no sistema que registram os pacotes que combinaram com os requisitos da regra.
Número de pacotes coincidentes
Número de bytes que foram revertidos (tamanho dos pacotes)
Quero usar o: iptables
O iptables: AlvosACCEPT: Deixa o pacote passar completamente para o próximo estágio de processamento (muda de chain).
DROP: Descarta completamente o pacote e seus registros, não executando mais nenhuma regra em relação a chain ou outra tabela.
REJECT: Similar a drop, porém envia uma resposta ao remetente.
QUEUE: Diretamente ligado a hook QUEUE do netfilter.
RETURN: Retorna a chain de origem (caso seja uma chain criada pelo usuário) ou descontinua o processamento do pacote na chain embutida e aplica a política padrão.
Quero usar o: iptables
Netfilter Connection Tracking SNAT Logging
O IPTables/Netfilter não realiza o log das traduções SNAT.
Solução proposta NFCT-SNATLOG
Desenvolvida para solucionar um problema prático da UFBA.
Um dos produtos gerados pelo trabalho de conclusão de curso de Italo Valcy (PoP-BA).
Quero usar o: iptables
O iptables: Interfaces
FWBuilder
jRouter
Firewall Admin
Fonte: http://www.fwbuilder.org/ http://jrouter.sourceforge.net/ http://firewalladmin.sourceforge.net/
Quero usar o: pfSense
É uma distribuição personalizada do FreeBSD, de código aberto (open source) , adaptada para o uso como um firewall e roteador.
Além de ser uma poderosa plataforma de firewall e roteamento flexível.
Permitindo expansão através de extensões.
Foi iniciado em 2004 como um fork do projeto m0n0wall, mas com foco para as instalações em PCs.
Fonte: http://www.pfsense.org/
Quero usar o: pfSense
Funcionalidades
Firewall Stateful
Faz NAT
Tem esquema de redundância entre replicações
Balanceamento de carga
Pode ser usado para construção de VPNs
Geração de gráficos RRD
VLAN (802.1q)
Funciona como DHCP server e relay
Conclusão
Pode ser usado para ajudar a impedir que sua rede ou seu computador seja acessado sem autorização.
Evita que informações sejam capturadas ou que sistemas tenham seu funcionamento prejudicado.
Combate a malwares, já que podemos bloquear portas que eventualmente sejam usadas por estas ameaças ou então bloquear acesso a aplicações (serviços) não ofertados.
É possível evitar que os usuários (internos) acessem serviços ou sistemas indevidos, além de ter o controle sobre as ações realizadas na rede.
Proporciona maior eficiência e proporcionalidade no compartilhamento (uso) dos recursos da rede.
Referęncias
Linux iptables - pocket reference
Linux netfilter Hacking HOWTO
Linux - Controles de Redes
pfSense 2 Cookbook