Escolar Documentos
Profissional Documentos
Cultura Documentos
* Este documento pode ser redistribudo livremente de acordo com a licena BSD
Agenda
Introduo
Necessidade de Segurana De onde vem o problema? Preciso de proteo? Identificando o que deve ser protegido Em quem voc confia?
Conceitos
Modelos
Preventivo Reativo
Preventivo + Reativo
Onde esto os ativos Pontos de vulnerabilidade Segurana Fsica Poltica de Segurana Atualizao de Sistemas
Preventivo + Reativo
Poltica de Segurana
Contedo
Tecnologias de Firewall
Filtragem de Pacotes Servios de Proxy NAT (Network Address Translation) VPN (Virtual Private Networks)
Arquiteturas de Firewall
Estratgias de Segurana
Opes Disponveis
Sistemas Operacionais
Firewalls
FreeBSD
IPFILTER
Leve Estvel Portado para outros sistemas Unix Curva de aprendizado baixa
PF e OpenBSD
Prximo Evento..
Hardware
Qualquer Pentium? 32, 64, 128MB de RAM.. 4GB de HD 2 ou mais interfaces de rede Melhor hardware = Maior estabilidade Qualidade dos componentes
Instalando o FreeBSD
sshd_flags=-4 syslogd_flags=-ss
Particionamento do disco
/ - 128MB Swap Por volta de 2 x a memria RAM /var 256MB /tmp 256MB /usr Restante do disco
Fontes em /usr/src/sys/i386/conf Arquivo de configurao padro: GENERIC Vamos criar nosso prprio arquivo:
cp GENERIC SERVER (nome da sua mquina) vi SERVER Localize a entrada ident GENERIC por ident SERVER
KERNCONF=SERVER
make buildkernel make installkernel make clean Espere 1 minuto, prximo slide por favor... shutdown -r now
IPFILTER
Configuraes no /etc/rc.conf
IPFILTER
IPFILTER
/etc/defaults/rc.conf
# vi /var/log/messages, acrescente:
security*.
/var/log/firewall_logs
security.none
/var/log/firewall_logs
Filtragem egressa (egress filtering) Interfaces: interna e externa Mltiplos critrios de filtragem in/out, block/pass, proto A palavra-chave quick Leitura das regras:
Top down First match wins (using quick) Arquivo de regras do IPFILTER: /etc/ipf.rules Arquivo de regras do IPNAT: /etc/ipnat.rules
/etc/ipf.rules
/etc/ipf.rules
Controlando as regras com a palavra-chave quick (first match wins) block in quick all pass in all
/etc/ipf.rules
/etc/ipf.rules
Interface + endereo IP
/etc/ipf.rules
Comportamento padro definido na compilao do kernel (block ou pass) Filtragem bi-direcional, palavrachave out
pass out quick on xl1 from 10.3.18.4/32 to any block out quick on xl1 from any to any
/etc/ipf.rules
pass out quick on xl1 from 10.3.18.0/24 to any block in log quick on xl1 from any to any
/etc/ipf.rules
Ao criar as regras, lembre-se, os pacotes entram (in) e saem (out) de cada interface Ainda temos mais alguns critrios para filtragem, at aqui filtramos por interface, por endereo e fizemos log.
/etc/ipf.rules
block in log quick on xl0 proto icmp block in log quick on xl0 proto udp
/etc/ipf.rules
block in quick on xl0 proto tcp from any to 10.3.18.30/24 port = 25 block in quick on xl0 proto udp from any to 10.3.18.0/24 port = 514
/etc/ipf.rules
Conjunto completo de regras stateless
in on xl0 from 10.3.18.0/24 to any out on xl0 from 10.3.18.0/24 to any in on xl1 from 10.3.18.0/24 to any out xl1 from 10.3.18.0/24 to any
/etc/ipf.rules
pass out quick on xl0 proto tcp from any to any keep state (agora sim, estamos stateful)
/etc/ipf.rules
Stateful UDP
Como se o UDP no orientado conexo? 60s na tabela de estados Servio de DNS Mesma idia
Stateful ICMP
pass out quick on xl1 proto icmp from any to any icmp-type 8 keep state
/etc/ipf.rules
Palavra-chave flags
pass in quick on xl1 proto tcp from any to 10.3.18.6/32 port = 22 flags S keep state Exceo: pacotes fragmentados Para resolver usamos keep frags
pass in quick on xl1 proto tcp from any to 10.3.18.6/32 port = 22 flags S keep state keep frags
/etc/ipf.rules
Ateno! Apenas para TCP, por isso precisamos da segunda regra block para descartar os pacotes UDP e ICMP connection refused ao invs de connection timed out
/etc/ipf.rules
block return-icmp(port-unr) in log quick on xl1 proto udp from any to 10.3.18.6/32 port = 111
/etc/ipf.rules
Problema, a regra anterior retorna o endereo IP do firewall! Para evitar isso usamos a seguinte sintaxe:
block return-rst-as-dest(port-unr) in log on xl1 proto udp from any to 10.3.18.6/32 port = 111
NAT e Proxies
NAT
Policy NAT
map tun0 from 10.3.18.0/24 ! to 200.1.2.0/24 -> 200.100.1.2/32 map tun0 from 10.3.18.1/32 port = 5555 to 199.2.6.1/32 -> 200.100.1.3/32
NAT
rdr xl1 200.1.2.3/32 port 80 -> 10.3.18.5 port = 80 tcp rdr xl1 200.1.2.3/32 port 22 -> 10.3.18.7 port = 22 tcp
em /etc/ipnat.rules: em /etc/ipf.rules:
pass in quick on xl1 proto tcp from any to 10.3.18.5/32 port = 80 flags S keep state
Proxies de Aplicao
rdr xl1 200.100.1.3/32 port 80 -> 10.3.18.6, 10.3.18.7 port 80 tcp round-robin
O utilitrio ipf:
-F<i,o,a> Flush (i, input; o, output; a, all) -f <nome do arquivo> -V verso do IPFILTER -l mostra as entradas da tabela NAT -C apaga as entradas NAT carregadas, exceto as que esto ativas -F apaga as entradas NAT carregadas -f <nome do arquivo>
O utilitrio ipnat:
Monitorando e Depurando
O utilitrio ipfstat:
Sem flags mostra informaes interessantes, estatsticas -i lista as regras de input -o lista as regras de output -h hit count -n nmero da regra -s dump da tabela de estados
Monitorando e Depurando
O utilitrio ipmon
Mostra o que est acontecendo em tempo real -o especifica qual dos logs ler (N NAT, S state log, I normal IPFilter) -a l todos os logs ao mesmo tempo, equivale a -o NSI
Checklist:
Quais as minhas interfaces de rede O que pretendo bloquear/liberar? Pretendo fazer mudanas nas regras com frequncia? Qual a carga que este equipamento suporta? Tenho muitos usurios?
pass in quick on xl0 from 10.3.18.0/24 to any keep state pass out quick on xl1 from 10.3.18.0/24 to any keep state
Mais segurana
Edite seu /etc/fstab (mas faa um backup antes cp /etc/fstab /etc/fstab.bkp) Todos as suas parties (exceto a de swap e /dev/acd0) devem estar rw READ/WRITE
Mais Segurana
ufs rw,nosuid rw,noexec,nosuid,nodev ufs ro ufs rw,noexec,nosuid ufs ro,nosuid ufs rw,noexec,nosuid
1 2 2 2 2 2
1 2 2 2 2 2
Observe que o layout das parties diferente ao sugerido no incio deste material, mas isso no impede que faamos uma configurao restritiva
Exerccios Prticos
Exerccios Prticos
Permita a sada do trfego nas interfaces locais (incluindo a de loopback) Permita a entrada de trfego SSH apenas para as mquinas sua esquerda e sua direita (quando aplicvel) Bloqueie o trfego para os demais Ips da mesma classe de endereos da sua Bloqueie o trfego para as redes de classes privadas (10.0.0.0/8)
Exerccios Prticos
Aps o tempo limite de criao de regras tente conectar-se qualquer mquina da rede via SSH, caso obtenha sucesso anote o endereo IP. Obtenha informaes (IP) a partir dos logs ou em tempo real das mquinas que esto tentando conectar-se sua, caso voc detecte falhas tente corrigilas em tempo real.
Exerccios Prticos
# pkg_install -r nmap
Digite nmap -h, leia com ateno as opes e faa as seguintes operaes nos endereos IP da sua rede:
Tente descobrir a verso dos programas em execuo na mquina remota Faa um scan do tipo Ping Faa scan de TCP connect(), TCP SYN Faa scan de portas UDP
Exerccios Prticos
Exerccios Prticos
Sugesto:
Use vrios terminais para agilizar suas operaes de scan e monitoramento Antes de tentar conectar-se outras mquinas certifique-se de que a sua est bem protegida Se estiver em dificuldades no trabalhe sozinho, procure ajuda