2. http://portaltic.com/
Prof. Alcyon Junior24/03/12 2 / 51
Alcyon Junior é CSO do Estado-Maior do Exército e professor
da faculdade IESB.
Apaixonado por tecnologia e software livre.
Graduado em 3 diferentes cursos de Tecnologia de
Informação, com ênfase em redes de computador.
Possui também certificação internacional CNAP, título de
Especialista em Redes de Computador pela CISCO e MBA em
Governança de TI.
Mestrando em Gestão do Conhecimento e da Tecnologia da
Informação pela Universidade Católica de Brasília.
Apresentação - Quem sou eu!
3. http://portaltic.com/
Prof. Alcyon Junior24/03/12 3 / 51
Email - alcyon@portaltic.com
PortalTIC – http://portaltic.com
Facebook – Alcyon Junior
Twitter - @alcyjones
LinkedIN - http://br.linkedin.com/in/alcyon
Google Plus - http://gplus.to/alcyjones
Como falar comigo
4. http://portaltic.com/
Prof. Alcyon Junior24/03/12 4 / 51
Agenda
Principais tipos de ataques e os pontos fracos das organizações
Técnicos
Humanos
Organizacionais
Modelo de segurança
Firewall
IDS
Política de Segurança
Comparação quantitativa e qualitativa de soluções
IPTables
Teoria
SQUID Proxy PLUS
Teoria
Perguntas e Respostas
6. http://portaltic.com/
Prof. Alcyon Junior24/03/12 6 / 51
Ataque interno é o mais fácil de ser praticado, não existe
necessidade de grandes conhecimentos
Cavalo de Tróia I Love You, The Quota Trojan
Sniffers Captura de pacotes (modo promíscuo)
Spoofing de IP Autenticação por falsificação de IP
DDoS (Denial of Service) Visa travar ou parar serviços
Principais tipos de Ataques
8. http://portaltic.com/
Prof. Alcyon Junior24/03/12 8 / 51
Qual o objetivo de uma invasão ?
Prejudicar!
Obtenção de informações privilegiadas (principalmente
se não for detectado)
Destruição de dados
Paralisação de serviços ou funcionalidades da
empresa
Prejuízo financeiro
Vingança
9. http://portaltic.com/
Prof. Alcyon Junior24/03/12 9 / 51
Fonte: site da Módulo
www.modulo.com.br
60% das empresas fazem Planejamento de Segurança, sendo que 27%
possuem Planejamento para até 1 ano.
A área de Tecnologia (49,5%) continua sendo a principal responsável pelo
gerenciamento da Segurança da Informação nas empresas, seguida pela
área específica, Security Office, com 25,5%.
Pelo terceiro ano consecutivo, antivírus (90%), sistemas de backup (76,5%)
e firewall (75,5%) foram apontados como as três medidas de segurança
mais implementadas nas empresas.
60% afirmam que os investimentos de suas empresas em Segurança para
2011 vão aumentar.
Alguns números
10. http://portaltic.com/
Prof. Alcyon Junior24/03/12 10 / 51
Análise da Pesquisa
Podemos facilmente identificar os pontos fracos
Técnicos
Organizacionais
Humanos
Vamos tratar aqui os dois maiores
Técnicos Ambiente Seguro (Fw, IDS, etc.)
Organizacionais Analise de Risco e Política de
Segurança
12. http://portaltic.com/
Prof. Alcyon Junior24/03/12 12 / 51
Analisando os Riscos
Primeira pergunta Corremos riscos ?
Resposta é sempre SIM
Existe: SIM e sim
Muitos fatores influenciam na análise do risco e na modelagem de
uma solução de segurança
Presença na WEB com servidor próprio
Riscos de informações confidenciais (ramo de atividade)
Escritórios regionais (necessidade de VPN ou Link Privado)
Solução de EXTRANET
Política de RH (problema do bom senso)
Históricos da empresa e do setor
13. http://portaltic.com/
Prof. Alcyon Junior24/03/12 13 / 51
Uma Solução! nada é 100% seguro
Firewall nível de rede
Filtro de Pacotes
Facilidade de uso / gerenciamento Menor TCO
Menor exigência de hardware
Firewall de Gateway de Aplicativo
IDS (intruder detection system)
Scanner / TripWire / Nagios
Inventário de Hardware e Software
Política de Segurança (PDSI)
14. http://portaltic.com/
Prof. Alcyon Junior24/03/12 14 / 51
Firewall Nivel de Rede
Devem trabalhar em conjunto com os roteadores
Roteadores previnem contra IP implementados no RFC
Roteadores trabalham com access-lists
ICMP
Os firewalls devem restringir a passagem das
portas/protocolos mais perigosas
Monitoramento por IDS até das portas fechadas
Bom senso: certas portas podem ser
necessárias para serviços vitais para a empresa
15. http://portaltic.com/
Prof. Alcyon Junior24/03/12 15 / 51
As Portas mais comuns
Executar o bloqueio de endereços forjados
("spoofed" addresses)
Pacotes originários do mundo exterior com origem de
redes privadas (endereços internos previstos na RFC
1918 e rede 127) devem ser bloqueados.
Serviços de Login
telnet (23/tcp), SSH (22/tcp), FTP (21/tcp), NetBIOS
(139/tcp), rlogin (512/tcp até 514/tcp)
16. http://portaltic.com/
Prof. Alcyon Junior24/03/12 16 / 51
As Portas mais comuns
X Windows
Range de portas de 6000/tcp até 6255/tcp
Serviços de DNS
Bloqueio de DNS (53/udp) para todas as máquinas que não são
servidores de DNS, transferência de zona (53/tcp) exceto de
servidores de DNS secundários. Bloqueio do serviço de
armazenamento de diretórios LDAP (389/tcp e 389/udp)
Mail
SMTP (25/tcp) para todas as máquinas que não são relays
externos, POP (109/tcp e 110/tcp) e IMAP (143/tcp)
17. http://portaltic.com/
Prof. Alcyon Junior24/03/12 17 / 51
Web
Bloqueio de HTTP (80/tcp) e SSL (443/tcp) exceto para servidores que
provem serviços web para acesso externo. Outro bloqueio considera as
portas altas utilizado por serviços HTTP como Proxy (8000/tcp,
8080/tcp,8888/tcp etc.)
"Small Services“
Portas abaixo da 20/tcp e 20/udp e serviço time (portas 37/tcp e 37/udp)
Miscellaneous
TFTP (69/udp), finger (79/tcp), NNTP (119/tcp), NTP (123/tcp), LPD
(515/tcp), syslog (514/udp), SNMP (161/tcp e 161/udp, 162/tcp e 162/udp),
BGP (179/tcp) e SOCKS (1080/tcp)
As Portas mais comuns
18. http://portaltic.com/
Prof. Alcyon Junior24/03/12 18 / 51
ICMP
Bloqueio de requisições de echo request (ping e
Windows traceroute), bloqueio de saída de echo
replies, time exceeded, e mensagens do tipo
unreachable.
RPC e NFS
Portmap/rpcbind (111/tcp e 111/udp), NFS (2049/tcp e
2049/udp), lockd (4045/tcp e 4045/udp)
NetBIOS no Windows NT
Portas 135 (tcp e udp), 137 (udp), 138 (udp), 139 (tcp).
No Windows 2000 adicionar porta 445(tcp e udp)
As Portas mais comuns
19. http://portaltic.com/
Prof. Alcyon Junior24/03/12 19 / 51
O “Problema” P2P
É uma mudança de paradigmas
Acaba a visão de cliente / servidor
É sem dúvida uma tendência realidade
Messenger, Kazaa e etc.
É um tormento para qualquer CSO (chief security
officer)
Esses sistemas usam portas específicas, porém buscam
portas comuns como 80 (HTTP)
Uma boa saída é através da PDSI (Plano Diretor
de Segurança da Informação)
Inventário de Hardware e Software
20. http://portaltic.com/
Prof. Alcyon Junior24/03/12 20 / 51
IDS
Tem a função de detectar tentativas de invasão
Funcionam por monitoramento das portas dos
servidores vulneráveis
Existem excelentes soluções implantadas com
open source (LINUX), como por exemplo o
SNORT com auxílio do ACID
SNORT SNARF Gerenciador de Log
Usar sempre um banco de dados para
armazenamento do monitoramento, estatística
21. http://portaltic.com/
Prof. Alcyon Junior24/03/12 21 / 51
Existem problemas
Falsos Alarmes
Falso Negativo
Falso Positivo
Erros de interpretação
Muitos logs para serem analisados
O dia-a-dia
Manter as regras atualizadas
IDS
22. http://portaltic.com/
Prof. Alcyon Junior24/03/12 22 / 51
Inventário
O princípio básico da segurança é conhecer as
necessidades e vulnerabilidades
É muito importante ter um inventário de hw e sw
Software não só para licenciamento, mas também
para buscar programas “suspeitos” inclusive P2P
Existem soluções para todos os mundos
23. http://portaltic.com/
Prof. Alcyon Junior24/03/12 23 / 51
Plano Diretor de Segurança da Informação
Tem sido a grande vedete e também a grande vilã
Existem problemas legais que precisam ser resolvidos e não
dependem apenas da comunidade tecnológica
Um empresa que “pensa” segurança precisa ter ao menos
um “rascunho”
Regras: “melhor ter algumas, por pior que sejam, do que não ter
nenhuma”
Simples e objetivo factível
A regra para elaboração de um PDSI é bom senso
Auxílio de quem já fez é sempre positivo
PDSI
25. http://portaltic.com/
Prof. Alcyon Junior24/03/12 25 / 51
Sumário
Características do iptables
Conceitos básicos
Diagramas de tabelas e cadeias
Principais comandos
Principais filtros
Principais ações
Referências
26. http://portaltic.com/
Prof. Alcyon Junior24/03/12 26 / 51
Iptables
A implementação de filtro de pacotes nos kernels 2.4 e 2.6
é realizado pelo iptables (projeto netfilter)
O iptables é o programa capaz de gerenciar a
configuração do netfilter
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
27. http://portaltic.com/
Prof. Alcyon Junior24/03/12 27 / 51
Conceitos básicos
regras: são instruções dados para o
firewall, indicando o que ele deve fazer.
cadeias: 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é uma regra ser
atingida. As seguintes são ignoradas.
Regras com erro são ignoradas.
Se nenhuma regra é atingida, usa-se a
regra da política padrão.
Regra 1
Regra 2
Regra 3
Regra n
...
Cadeia
...
Nenhuma regra atingida.
Usa a política da cadeia
Regra
atingida
Analise a cadeia
28. http://portaltic.com/
Prof. Alcyon Junior24/03/12 28 / 51
Conceitos básicos
tabelas: o iptables organiza o seu fluxo de pacotes em
tabelas, cada uma com um conjunto de cadeias pré-
definidas:
Tabela filter: é a tabela padrão, com três cadeias
INPUT
OUTPUT
FORWARD
Tabela nat: tabela usada para NAT (gera outras conexões)
PREROUTING
OUTPUT
POSTROUTING
29. http://portaltic.com/
Prof. Alcyon Junior24/03/12 29 / 51
Conceitos básicos
Tabelas do iptables (continuação):
Tabela mangle: permite alterações nos pacotes (TOS, TTL, etc)
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING
Tabela raw: marca pacotes para rastreio posterior
30. http://portaltic.com/
Prof. Alcyon Junior24/03/12 30 / 51
Organização das tabelas do iptables
PROCESSO LOCAL
FORWARD
INPUT OUTPUT
Roteamento Roteamento
interface
de saída
Tabela filter e suas cadeias
interface
de entrada
31. http://portaltic.com/
Prof. Alcyon Junior24/03/12 31 / 51
Salvando e restaurando regras no iptables
Pode ser feito com um arquivo de script ou usando os
comandos iptables-save e iptables-restore
iptables-[save|restore] executam a operação em um só
passo, de maneira mais segura (sem brechas
temporárias) e rápida.
Salvando:
sudo iptables-save > arquivo_de_regras
Restaurando:
sudo iptables-restore < arquivo_de_regras
É possível salvar os contadores com -c
32. http://portaltic.com/
Prof. Alcyon Junior24/03/12 32 / 51
Formato geral das regras do iptables
iptables [-t table] comando [filtro] [-j ação]
Especifique a tabela
que deseja usar. A
tabela filter é a
tabela default.
O que será feito:
adicionar uma regra,
remover, etc. Deve
vir no início.
Detalhamento que
irá permitir a
filtragem do pacote.
IPs de origem, taxas,
portas, etc.
Ação a ser tomada.
Por exemplo, DROP,
ACCEPT, pular para
outra cadeia, etc.
33. http://portaltic.com/
Prof. Alcyon Junior24/03/12 33 / 51
Principais comandos de manipulação de
cadeias no iptables
Sempre maiúsculo seguido do nome da cadeia:
-P: configura a política padrão da cadeia (DROP ou ACCEPT)
iptables -P OUTPUT ACCEPT
-N: cria uma nova cadeia
iptables -N internet
-F: apaga as regras da cadeia
iptables -F INPUT
-X: apaga uma cadeia vazia
iptables -F internet; iptables -X internet
-Z: zera todos os contadores da cadeia
iptables -Z INPUT
34. http://portaltic.com/
Prof. Alcyon Junior24/03/12 34 / 51
Principais comandos de manipulação de
cadeias no iptables
-A: adicionar uma regra no final da cadeia
iptables -A INPUT --dport 80 -j DROP
-L: listar regras da cadeia (adicione -n para não resolver nomes e
--line-numbers para ver o número das regras)
iptables -L -n --line-number
-D: apagar uma regra da cadeia. Pode usar também a linha
iptables -D INPUT --dport 80 -j DROP
iptables -D INPUT 5
-R: trocar uma regra por outra
iptables -R INPUT 2 -s 10.0.1.2 -j DROP
-I: insere uma regra em um ponto específico da cadeia
iptables -I INPUT 1 --dport 80 -j DROP
35. http://portaltic.com/
Prof. Alcyon Junior24/03/12 35 / 51
Principais filtros no iptables
-p <protocolo>: especifica o protocolo. Por exemplo, udp, tcp ou icmp.
Pode ser negado também. Para tudo menos tcp, faça: com “-p ! tcp”
iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p ! tcp -j DROP
-s <endereço>: especifica o endereço de origem. Aceita IPs, redes,
IP/máscara, IP/nn (notação CIDR) e também a negação com “!”.
iptables -A INPUT -s 10.1.1.1 -j ACCEPT
iptables -A INPUT -s ! 10.1.1.0/24 -j DROP
-d <endereço>: especifica o endereço de destino (mesmas regras do -s)
iptables -A OUTPUT -d uol.com.br -j ACCEPT
36. http://portaltic.com/
Prof. Alcyon Junior24/03/12 36 / 51
Principais filtros no iptables
-i <interface>: especifica a interface de entrada do pacote. Use “!” para
negar e “+” como curinga. “-i eth+” significa todas as interfaces eth. Válida
em INPUT, PREROUTING e FORWARD.
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i ppp+ -j DROP
-o <interfaces>: especifica a interface de saída. Válida em OUTPUT,
POSTROUTING e FORWARD. Usa as mesmas regras de -i.
iptables -A OUTPUT -o ppp+ -j ACCEPT
37. http://portaltic.com/
Prof. Alcyon Junior24/03/12 37 / 51
Principais filtros no iptables
--sport <porta>: especifica a porta de origem. Pode ser dado em forma de
faixa também, como em “--sport 80:123” ou mesmo “--sport 1023:” (todas
acima de 1023). Precisa ter tcp ou udp especificado como protocolo.
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 1:1023 -j REJECT
iptables -A INPUT -p tcp --sport 1024: -j ACCEPT
--dport <porta>: especifica a porta de destino. Mesmas regras do --sport.
iptables -A OUTPUT -p tcp --dport 23 -j DROP
38. http://portaltic.com/
Prof. Alcyon Junior24/03/12 38 / 51
Principais filtros no iptables
(TCP, -p tcp necessário)
--tcp-flags <máscara> <set>: Permite casar por flags do TCP. Primeiro se
diz quais serão examinados, depois os que devem estar setados. Flags:
SYN, ACK, URG, FIN, RST e PSH. ALL e NONE também pode ser usados
para simplificar a seleção dos flags
iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN -j DROP
iptables -A INPUT -p tcp --tcp-flags ! SYN,FIN,ACK SYN -j DROP
--syn: Uma abreviação para selecionar pacotes que estejam relacionados
com um processo de abertura de conexão. Poderia ser escrito também
como: “--tcp-flags SYN,RST,ACK SYN”
iptables -A INPUT -p tcp --syn -j DROP
39. http://portaltic.com/
Prof. Alcyon Junior24/03/12 39 / 51
Referências
Pagina PortalTIC
http://portaltic.com/
O iptables tutorial, do Oscar Andreasson, é imperdível:
http://www.frozentux.net/documents/iptables-tutorial/
O guia Viva o Linux:
http://vivaolinux.com.br/
A página do projeto netfilter (com alguns docs em PT_BR):
http://www.netfilter.org/documentation/
41. http://portaltic.com/
Prof. Alcyon Junior24/03/12 41 / 51
O que é isso ?
Squid é um software especializado em fazer a operação
de proxy de web e ftp, completamente free e com
excelente suporte para operação em servidores Linux.
Com o Squid você pode instalar um servidor Linux com
acesso à Internet, e fazer com que outras máquinas
clientes (usando Linux, Windows ou outro sistema
operacional) acessem páginas web e sites ftp através do
servidor Linux, mesmo que estas máquinas clientes não
tenham conexão direta com a internet - tudo que elas
precisam é o acesso ao próprio servidor onde está
rodando o Squid.
42. http://portaltic.com/
Prof. Alcyon Junior24/03/12 42 / 51
Como Utilizar?
A única configuração necessária na máquina cliente é feita
no próprio browser: você precisa definir qual o endereço
do servidor proxy. Esta é uma operação bastante simples,
disponível nos menus do Netscape, do Internet Explorer e
dos demais browsers em geral.
Mas não confunda as coisas: o squid dá acesso a serviços
como http, https (web segura) e ftp, mas não dá acesso a
outros serviços como ICQ, e-mail e IRC.
43. http://portaltic.com/
Prof. Alcyon Junior24/03/12 43 / 51
Caracteristicas
Proxy e cache para HTTP, FTP e outros protocolos
baseados em URL
Proxy para SSL
Cache Hierárquico
suporte para Proxy transparente
Políticas de controle de acesso extremamente Flexíveis
SNMP
Logs Avançados
DNS Cache
44. http://portaltic.com/
Prof. Alcyon Junior24/03/12 44 / 51
Recursos
O recurso que mais atrai atenção no squid é o cache de
páginas. Como em geral o link entre as máquinas clientes e o
servidor proxy é de alta velocidade (rede local ethernet ou
similar) e o link entre o proxy e a web é mais lento, é bastante
interessante a possibilidade que o squid oferece de armazenar
localmente as últimas páginas acessadas, de forma a não ter
que buscar novamente na internet uma página que tenha sido
recentemente vista por outro usuário da mesma rede.
Naturalmente você pode configurar o tempo de
armazenamento de cada página no cache, e o protocolo HTTP
tem recursos suficientes para reconhecer páginas que não
devem ser guardadas no cache, precisando ser buscadas
novamente a cada requisição.
45. http://portaltic.com/
Prof. Alcyon Junior24/03/12 45 / 51
Configurando
A configuração do squid é feita editando seu arquivo de
configuração, o squid.conf. Na instalação do RPM ele estará
no/etc/squid/. Use seu editor preferido para configurar o arquivo. O
arquivo de configuração e muito bem explicado, as configurações
padrão vem comentadas facilitando o entendimento.
O squid trabalha "Escutando" uma porta TCP determinada, os
clientes que querem acessar uma pagina Web, ftp, ssl fazem
requisições nesta porta informando o servidor e o protocolo que
querem utilizar e o squid faz a requisição na porta certa. A porta
padrão do squid e a porta 3128 isto pode ser alterado com uma
diretiva do squid.conf http_port, vamos usar a porta 8080 inserindo
a seguinte linha no squid.conf:
http_port 8080
46. http://portaltic.com/
Prof. Alcyon Junior24/03/12 46 / 51
Configurando
Temos que decidir também onde será o diretório de cache e o
tamanho do mesmo. Por padrão o squid está configurado para o
diretório de cache ficar em /var/spool/squid, por questões de
performance, segurança e gerenciabilidade é melhor que ele fique
instalado em uma partição separada.
Montaremos então a partição de cache no diretório /cache e
configuraremos para que o cache fique lá. Para mudar o diretório do
cache procure a linha cache_dir no squid.conf, provavelmente ela
estará assim:
#cache_dir ufs /var/spool/squid 100 16 256
47. http://portaltic.com/
Prof. Alcyon Junior24/03/12 47 / 51
Configurando
Bem vamos entender os parâmetros. O primeiro diz respeito ao
formato do cache, melhor não mudar isso, a outra opção e asyncufs
que não esta compilada no RPM e ainda é instável. A segunda
opção informa o diretório do cache, como resolvemos que o cache
ficará no diretório /cache este valor deve ser mudado para /cache. O
terceiro parâmetro e o tamanho do cache em Mega bytes, tendo um
disco de 9GB, separados uns 20% para um overhead do linux mais
o squid podemos selecionar 7GB. Os outros parâmetros dizem
respeito a configuração dos diretórios do squid, não e necessário
muda-los. Então nossa linha fica sendo:
cache_dir ufs /cache/ 7000 16 256 (Note que não tem mais o # na
frente)
48. http://portaltic.com/
Prof. Alcyon Junior24/03/12 48 / 51
Criando o Cache
Agora que já esta configurada a área de cache, primeiro e
preciso assegurar que o squid terá direito de escrita no
diretório de cache, o squid não roda como o root, ele usa
um usuário definido no parâmetro do squid.conf,
cache_effective_user, a distribuição da conectiva vem com
o squid rodando com o usuário nobody, para fazer o squid
rodar com outro usuário (o usuário squid por exemplo),
troque o valor do parâmetro no arquivo de configuração.
lembre-se que o usuário terá de ter acesso de leitura e
escrita nos diretórios de cache e log.
E hora de criar o cache. Digite na linha e comando:
# squid -z
49. http://portaltic.com/
Prof. Alcyon Junior24/03/12 49 / 51
“- aquele que conhece o inimigo e a si mesmo, lutará cem
batalhas sem perigo de derrota;
- para aquele que não conhece o inimigo, mas conhece a si mesmo,
as chances para a vitória ou para a derrota serão iguais;
- aquele que não conhece nem o inimigo e nem a si próprio, será
derrotado em todas as batalhas.”
Sun Tzu (A arte da Guerra)
Conclusão