1. Disciplina
Segurança em Sistema
Operacional Livre
Prof: Hélio Marques Sobrinho
hmarx@linuxtech.com.br
(C) 2011 HMarx 1 / 98
2. Programa
s
§ Sistema de computação e segurança
Introdução
§ O ambiente operacional GNU/Linux
s
§ Planejamento, Instalação e Configuração
Instalação do GNU/Linux
§ O shell e seus comandos
s
§ Usuários e grupos
Administração do GNU/Linux
§ Sistemas de arquivos
§ Serviços
s
§ Firewall, VPN, SSL, ..
Segurança
§ Logs.
s Conclusões
(C) 2011 HMarx 2 / 98
3. Referências bibliográficas
§ Olaf Kirch, "Linux Network Administrator´s Guide", SSC, USA, 1994.
§ Simon Garfinkel & Gene Spafford, "Practical Unix & Internet Secutiry",
O´Reilly, USA, 1996.
§ Anonymous, "Maximum Linux Security", SAMS, USA, 2000.
§ "openSuSE Security Guide", Novell
§ "openSuSE Linux Administration and User Guide", Novell
§ ¶ www.cert.org (Computer Emergency Report Team)
Alguns sites:
¶ www.kernel.org ¶ www.gnu.org
¶ ¶
¶ ¶
www.nsa.org www.linuxsecurity.com
¶
www.sans.org www.rootprompt.org
§
pgp.mit.edu
e muito mais.
(C) 2011 HMarx 3 / 98
4. Agenda
s Conteúdo
ð
ð
Introdução e conceitos
ð
Utilização e Comandos básicos
ð
Instalação e configuração do Linux.
ð
Administração do Linux.
ð
Serviços de rede.
ð
Firewall, VPN, SSL.
ð
Logs e Avaliação
Feedbacks e conclusões.
(C) 2011 HMarx 4 / 98
5. Introdução
s Sistema de Computação
§ ð
Hardware, Software e Peopleware
ð
Processadores, memórias, dispositivos de E/S, ...
ð
Sistema operacional, utilitários e aplicativos
Engenheiros, projetistas, técnicos, analistas,
programadores, operadores e usuários
(C) 2011 HMarx 5 / 98
6. Segurança
s Conceitos - ISO 27001 e 27002
§ ð
Critérios de segurança
ð
Disponibilidade
ð
Integridade
ð
Confiabilidade
2
Privacidade
MTTF, MTBF, MTTR
s Componentes do sistema de computação
Exercício #1
Para cada um dos 3 componente do sistema de computação escolher um
elemento e exemplificar (se aplicável) causa e efeito para cada critério de
segurança acima.
(C) 2011 HMarx 6 / 98
7. Critérios de segurança
s DoD - U.S. Department of Defense
NSA - National Securiy Agency
NCSC - National Computer Security Center
TCSEC - Trusted Computer System Evaluation Criteria
CC - Common Criteria
s Classes
D Segurança mínima
C Proteção facultativa
B Proteção obrigatória
A Proteção verificada
(C) 2011 HMarx 7 / 98
8. Nova classificação
s CCITSE
ð
Common Criteria for Information Tecnology Security Evaluation
ð
CC - Common Criteria
EAL - Evaluation Assurance Level
EAL 1 : Testado funcionalmente
EAL 2 : Testado estruturalmente
EAL 3 : Metodicamente testado e verificado
EAL 4 : Metodicamente projetado, testado e revisado
EAL 5 : Projetado semi-formalmente e testado
EAL 6 : Projeto semi-formalmente verificado e testado
EAL 7 : Projeto formalmente verificado e testado
Red Hat Enterprise 5.3 EAL 4, dez/2009
SuSE Linux Enterprise 10 SP1 EAL 4, out/2007
VMWare ESX Server 2.5.0 EAL 2, set/2005
Microsoft Windows 2003 Server EAL 4, out/2006
(C) 2011 HMarx 8 / 98
9. Histórico do GNU/Linux
s Bell Labs, USA, 1960
§
§ ð Ken Thompson
Multics - GE 645
Unics => PDP-7
ð Dennis Ritchie,
ð Brian Kernigham GE-645
§ AT&T, SysV, Unix®
Multics
Ken Thompson
Dennis Ritchie
PDP-11
s
§ ð FSF- -GNUSoftwareUnix
MIT, USA, 1983
GNU is Not
ð
Free Foundation
Richard Stallman
s Helsinki, Finlândia,1991
§
Freax => Linux
Ä GNU / Linux
ð
Linux kernel dynamic duo
Linus Torvalds
(C) 2011 HMarx 9 / 98
10. Software Livre
s FSF - Free Software Foundation
§
§
GPL - General Public License
§
LGPL - Lesser General Public License
§
AGPL - Affero General Public License
FDL - Free Documentation License
Tim (O’Reilly) e Richard Stallman (FSF)
(C) 2011 HMarx 10 / 98
11. Distribuição
s Meio de distribuição
ð
ð
Kernel linux
ð
Utilitários e aplicativos GNU e outros
ð
Instalação, Administração e configuração
Pacotes RPM, TAR, DEB, ...
s Algumas distribuições
§ e muito mais !
s
§ SLES, RHEL e Oracle
Enterprise Linux
(C) 2011 HMarx 11 / 98
12. Instalação do GNU/Linux
s
§ ð Estaçãoda instalação servidor ? Grid/Cluster ?
Planejamento
Objetivo
ð Quais serviços ??Web ? Mail ? Banco de dados ?
de trabalho ou
§ ð Volumes ? Tamanhos ?disco(s)
Firewall ? VPN
Particionamento do(s)
Ä swap, /, /home, /boot, /var, ...
ð Ä swap,de arquivosreiserfs, xfs, ...
Sistema
§ ð Desenvolvimento de software? Entretenimento ?
ext2, ext3,
Pacotes de aplicativos
Editoração eletrônica ? Educacional ?
Geoprocessamento ? Aplicativos especiais ?
(C) 2011 HMarx 12 / 98
16. Do init aos processos
s Árvore de processos
(C) 2011 HMarx 16 / 98
17. Sessões
s Abertura de sessão / login
§
§ ð console, terminal (real ou emulado)
local ou remota (telnet, ssh, ...)
texto ou gráfica
ð XWindow
§ ð user id e group id
login e senha
ð Ä login : gid default a vários grupos
um usuário pode pertencer
ð Ä root : root
Super usuário
F
ð um usuário pode pertencer a vários grupos
uid 0, gid 0
§ ð usuário, grupoacesso a arquivos e diretórios : rwx
Permissões de
e outros: Read, Write, eXecute
s Fechar sessão / logout
ð exit ou Ctrl-D
(C) 2011 HMarx 17 / 98
18. Autenticação
s Arquivo
ð /etc/passwd e /etc/shadow
s Bases
ð NIS
ð LDAP
s PAM - Pluggable Autentication Modules
ð /etc/pam.conf ou /etc/pam.d/*
#%PAM-1.0
auth requisite pam_nologin.so
auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad]
auth include common-auth
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session
session required pam_lastlog.so nowtmp
session optional pam_mail.so standard
session optional pam_ck_connector.so
s Radius, Kerberos, Diameter, fingerprint, ...
(C) 2011 HMarx 18 / 98
19. Sistema de arquivos
s Estrutura hierárquica distribuída
Ä diretórios, arquivos, dispositivos
Ä root file system: /
§ Volumes locais e remotos
Ä Sistemas de arquivos diferentes
Ä Sistemas operacionais diferentes
F ext2, ext3, reiser, xfs, swap, fat, vfat, nfs, smb, ncp, ...
Ä Transparente para as aplicações
F Virtual File System - vfs
(C) 2011 HMarx 19 / 98
20. Linux VFS
s Camada de abstração do sistema de arquivos
(C) 2011 HMarx 20 / 98
22. Montagem
s ð /etc/fstab
Montagem durante o boot (init)
ð / (raiz)
ð Ä locais ou remotosarquivos
outros sistemas de
F (diskless workstations) Network File System
s Entradas no arquivo /etc/fstab
volume mount_point filesystem options dump fsck
/dev/sda3 / ext3 acl,user_xattr 1 1
server:/public /pub nfs acl,noauto 0 0
s Comando mount
mount [ -o opções ] volume mount_point
mount volume
mount mount_point }
Entradas definidas no /etc/fstab
(C) 2011 HMarx 22 / 98
23. Visão para as aplicações
w
Possibilidades
w Ä
Local
Remoto
w
NFS, SMB, ...
DRBD
(C) 2011 HMarx 23 / 98
24. Atributos dos arquivos
s Diretórios
ð nomes
§ ð atributos, permissões
Inodos
ð blocos de dados
s drwxrwxrwx
user group others
{
r : read
w: write
permissões x : execute
s,S : SUID, SGID
{
- : normal file
d : directory t ,T : Stick
c : character device
tipo b : block device
p : pipe
l : link $ ls -li dostextfile
s : socket 63677 -rw-rw---- 1 hmarx linuxtech 31 2011-03-19 19:13 dostextfile
inode user group
permissions size D&T filename
links
(C) 2011 HMarx 24 / 98
25. Permissões
s Representação numérica
§ ð ð
000 ð
Bits : suid sgid stick rwx
ð
0
1
F
0
1
0
1 111 ð
altera x p/ s, S, t ou T
} 0000
7777
s Alteração de permissões
§
§
chmod opções octal objeto ...
*
chmod opções {{ugoa}{+-=}{ugorwxst}, } objeto ...
s Alteração de dono
§
§
chown opções [ user ] [ : group ] objeto ...
chgrp opções group objeto ...
(C) 2011 HMarx 25 / 98
26. Exercícios
s Permissões de acesso
Exercício #2
Seja uma empresa com gerentes de diversas áreas. Um funcionário pode estar
subordinado a mais de uma área. Cada gerente disponibiliza documentos em um
diretório que só pode ser lidos por seus subordinados.
Como as permissões dos diretórios e arquivos devem ser estabelecidas para não
serem violadas a confiabilidade, a privacidade e integridade destes documentos ?
(C) 2011 HMarx 26 / 98
27. Hard links e soft links
s Estrutura dos diretórios
Ä
Ä
Dados do arquivo : inodo
§
Diretório: nome do arquivo
Hard links
$ ls -li arquivo.txt
63675 -rw-rw---- 1 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt
$ ln arquivo.txt arquivo.copia
$ ls -li arquivo.txt arquivo.copia
63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.copia
r
63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt
§
$
Soft links
$ ln -s arquivo.txt arquivo.atalho
$ ls -li arquivo.txt arquivo.atalho
64134 lrwxrwxrwx 1 hmarx linuxtech 11 2011-04-02 14:04 arquivo.atalho -> arquivo.txt
r
63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt
$
(C) 2011 HMarx 27 / 98
28. ACLs
s ACLs - Access Control Lists
Ä
ð
Controle granular das permissões rwx
Sistema de arquivos montado com opção acl
F
Ä
Exemplo: /dev/sdc2 on /work type reiserfs (rw,acl)
mount -oremount,acl sistema-de-arquivos
$ ls -l arquivo
-rwxrw---- 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo
$ setfacl -m u:diana:rw,g:www:r arquivo Note a diferença !
$ ls -l arquivo
-rwxrw----+ 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo
$ getfacl arquivo
# file: arquivo
# owner: hmarx
# group: linuxtech
user::rw-
user:diana:rw-
group::rw-
group:www:r--
mask::rw-
r
other::---
$
(C) 2011 HMarx 28 / 98
29. Exercício
Exercício #3
Compare o esquema de proteção padrão utilizando apenas os bits rwx com o uso
das ACLs. Que vantagens adicionais você consegue perceber ?
(C) 2011 HMarx 29 / 98
30. SELinux
s Security Enhanced Linux
§ ð
DoD - NSA - NCSC
TCSEC, TCB, CC
ð GPL em 2002, kernel Linux em 2003
ð Mandatory Access Control
ð Confinamento de usuários e serviços a privilegios mínimos
s Habilitando o SELinux
§ ð security=selinux selinux=1
parâmetros para o kernel
§ ð diretório /etc/selinux/*
configurações
§ ð diretóriostatus /selinux/*
controle e
virtual
(C) 2011 HMarx 30 / 98
31. A interface gráfica XWindow
s Componentes
§
§
desktop manager
window
§
manager
aplications
F Dependendo da velocidade do enlace,
a comunicação pode ser remota.
(C) 2011 HMarx 31 / 98
32. Componentes do XWindow
s X Server
ð xorg
s Desktop manager
§ ð xdm, gdm, kdm, ...
controle de sessões
X.org
s
§ ð fvwm,egnome, kde, enlightenment, afterstep,
Window manager
controle decoração de janelas
windowmaker, cdesim, ...
s X applications
§ ð
aplicações gráficas
xterm, xclock, kmail, firefox, gimp, openoffice,
digikam, wxcam, amarok, ...
locate ent
(C) 2011 HMarx 32 / 98
33. O kdm e o desktop KDE
openSuSE
kdm e KDE
(C) 2011 HMarx 33 / 98
34. Uma interface típica
botões de controle barra do título botões de controle
menu e sticky minimiza, maximiza,
ordem, fechar
menu texto
menu com icones
área do
aplicativo:
textos,
diálogos, barras de rolagem
botões,
canvas, ...
barra de status
KDE - kwrite
(C) 2011 HMarx 34 / 98
36. Padrão de interface gráfica
s CUA - Common User Access
§
§
Publicado pela IBM, 1987
Utilizado por Unix, Windows e Linux
§ Botões Ok, Cancel, Help, ...
§ Teclas de função (F1, F4, ...)
§ Teclas TAB, shift TAB, ESC, Enter, ...
Exercício #4
Quais são os elementos básicos que compõems uma interface gráfica de um aplicativo
qualquer ?
Porque a utilização de uma interface gráfica para administrar um servidor requer
maiores cuidados ?
(C) 2011 HMarx 36 / 98
37. O Bourne Again Shell - Bash
s Interpretador de comandos
s Linguagem de programação completa
§
scripts : comandos interpretados
s Sintaxe
§
No prompt:
Ä comando [ opções ] { [ argumentos ] }*
(C) 2011 HMarx 37 / 98
38. Ajuda on-line
s Aplicativos
§
§
comando --help
§
comando -h
§
man opções [ sessão ] comando
info opções comando
s Comandos do shell
§
help comando
s A internet
§
§
§
http://www.linuxquestions.org/
http://www.linuxmanpages.com/
...
!
it
(C) 2011 HMarx 38 / 98
39. Elementos da linguagem bash
s Variáveis
§ ð variável=valor
Atribuição NOME="Helio Marques"
echo $NOME
§ ð $variável
Valor da variável
s Variáveis padrão
§ ð PATH, PS1, PS2, PS3, HOME, USER, SHELL, LANG,
Alteráveis pelo usuário
§ ð 0,alteráveis!,pelo usuário
...
Não
1, ... 9, #, ?,@, $
(C) 2011 HMarx 39 / 98
40. Metacaracteres
s Sequência de caracteres especiais
§
São tratados pelo shell e substituidos antes de
§ ð Exemplos de conjunto
serem passados para o comando
* ? [ conjunto ] [ !conjunto ] ~
Ä a-z 0123456789 0-9 0-9ABCDEF 0-9A-F
$ echo ** ERRO **
** ERRO **
$ ls
chap1 chap2 chap3 programA programB1 programB2
$ ls *[1-3]
chap1 chap2 chap3 programB1 programB2
$ ls *[!1-3]
programA
$ ls *[AB]?
r
programB1 programB2
$
(C) 2011 HMarx 40 / 98
41. Usando Metacaracteres
s Comando echo
§
§
echo [ -n ] texto ...
Imprime na saída padrão os argumentos
Exercício #5
Sejam as variáveis PRODUTO, que contém o nome do ítem, e VALOR, que
contém o preço do ítem. Exemplo: PRODUTO="Caneta" e VALOR="14,95".
Que comando irá exibir o texto abaixo ?
O item Caneta custa R$14,95
(C) 2011 HMarx 41 / 98
42. Ambiente
s ~ é o diretório pessoal
§~jose é /home/jose
s conteúdo
§ ð .* "nomes ocultos" no ls
arquivos e diretórios pessoais
§ ð shell - logs e de aplicativos
configurações
scripts
Ä .bash_history, .bashrc, .bash_login, .bash_logout, .profile,
ð Ä .procmailrc,e-mail ...
.alias, ...
tratamento de
ð Ä ícones,aplicações gráficasde janelas, ...
.forward,
desktop e
menus, decorações
(C) 2011 HMarx 42 / 98
43. Comandos do Bash
s Comandos internos
ð alias, cd, fg, bg, echo, eval, exit, export, history,
if/then/else, while, until, for, case, pwd, set, shift, trap,
test, type, ulimit, umask, uname, ...
s Aplicativos externos
§ ð
scripts e executáveis
ls, ps, cp, rm, rmdir, ln, mv, df, du, diff, at, bc, bzip, tar,
ping, host, w, who, arp, ...
s Funções
ð Ex: Definindo o novo comando files para exibir o
diretório em 3 colunas
function files()
{
ls $* | pr -T --columns=3
}
(C) 2011 HMarx 43 / 98
44. Operadores do bash
s Separador de comandos
s ; $ date; pwd; uname -r
Sat Mar 19 19:30:19 BRT 2011
/home/hmarx
r
2.6.34.7-0.7-default
$
s Redirecionamento de E/S
§
0 : entrada padrão
> >> < >& <<texto i>&n { 1 : saída padrão
2 : saída de erros
$ cat << _END_ > Arquivo $ cat Arquivo
Uma linha
Outra linha
Mais uma linha ð Uma linha
Outra linha
r
Mais uma linha
r
_END_ $
$
(C) 2011 HMarx 44 / 98
45. Operadores do bash
s
§
Pipe
comando1 | comando2 | ...
$ echo "Maria da Silva" | rev
r
avliS ad airaM
$
s Agrupamento de comandos (subshell)
§
( comando1; comando2; ... )
$ pwd; (cd /usr/local/bin;pwd); pwd
/home/hmarx
/usr/local/bin
r
/home/hmarx
$
(C) 2011 HMarx 45 / 98
46. Operadores do bash
s
§
Substituição de comando
§
‘comando‘
$(comando)
$ echo "Estamos no ano $(date +%Y)."
r
Estamos no ano de 2011.
$
s Expressões aritméticas
§
(( expressão ))
$ (( I = 500 / 3 ))
$ echo "I = $I"
r
I = 166
$
(C) 2011 HMarx 46 / 98
47. Operadores do bash
s
§ ð operadores ]]
Expressões lógicas
[[ expressão
Ä
Ä
Ä
-eq -lt -gt -le -ge -ne
-e file -r file -w file
...
$ [[ 500 -gt 100 ]]; echo $0
0
0 é verdadeiro
1 é falso
!
$ [[ 500 -gt 1000 ]]; echo $0
r
1
$
F
!
Ver manual do comando test
(C) 2011 HMarx 47 / 98
48. Exemplos de comandos
s Comandos iterativos e condicionais
i=0
ð
0
while [[ $i -gt 5 ]] 1
do 2
echo $i 3
(( ++i )) 4
done
for i in uva pera caqui
do
echo A fruta é $i
done
ð A fruta é uva
A fruta é pera
A fruta é caqui
ð ?
if expr 5 > 3
Exercício #6 then
echo ERRADO
Porque ? else
echo CERTO
fi
(C) 2011 HMarx 48 / 98
49. Mais alguns comandos
$ ls
bash dostextfile foto.jpg image.gif image.png unixtextfile
$ file *
bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.4, stripped
dostextfile: ASCII text, width CRLF line terminators
foto.jpg: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
image.gif: GIF image data, version 89a, 100 x 100
image.png: PNG image data, 250 x 250, 8-bit/color RGB, non-interlaced
unixtextfile: ASCII text
$ ls | wc
r
5 5 50
$
A identificação do tipo do arquivo é pelo conteúdo e
não pela extensão do nome do arquivo !
!
(C) 2011 HMarx 49 / 98
50. GNU/Linux em Redes
s Topologias
§
barramentos, estrela, wireless, ...
s Arquitetura
§
internas, externas, locais, remotas, internet, VPNs,
§
...
A Internet
s Tecnologias
§
coaxial, ethernet, token-ring, wifi, wimax, ...
s Protocolos
§
§ ð
TCP/IP, SMB e NMB, NCP, AX25, ...
Parâmetros
ð
nomes, endereços
parâmetros de desempenho e segurança
s
(C) 2011 HMarx 50 / 98
51. IPv4
s Número de 32 bits
§ R H
formato x.y.z.w
Ä x, y, z, w ∈ [ 0 .. 255 ]
x y z w
F
§
R + H = 32
Classe x netid hostid networks IPs
ð A 1-126 x y.z.w 126 16.777.216
ð B 128-191 x.y x.w 16.384 65536
ð C 192-223 x.y.z w 2.097.151 256
ð D 224-239 multicast
ð E 240-247 reservado
§ Endereços especiais
Ä loopback: 127.0.0.0/8 (interface lo)
Ä network : hostid[*] = 0
Ä
Ä
broadcast: hostid[*] = 1
netmask : netid[*]=1, hostid[*] = 0
(C) 2011 HMarx 51 / 98
52. IPv4
s Blocks privados
}
Network Address Translation
§ A : 10.0.0.0/8
§ B : 172.16.0.0/12
§ C : 192.168.0.0/16
s Endereços especiais
§ loopback: 127.0.0.0/8
Finterface lo
gateway/firewall
§ network : hostid[*] = 0
§ broadcast: hostid[*] = 1
§ netmask : netid[*]=1, hostid[*] = 0
Exemplo
Classe C: 192.168.200.0/24
endereço de rede: 192.168.200.0
endereço de broadcast: 192.168.200.255
Total de 256 IPs
⇒ 254 disponíveis para os nodos
(C) 2011 HMarx 52 / 98
53. IPv4 - subclasses
R H
R + H = 32
x y z w R’ + H’ = 32
R’ = R + N
R’ H’ H’ = H - N
N
s
§
Rede R = x.y.z.w/R
R é o número de bits de netid
s Subclasses R’ Exemplo
§ ð 2N subclasses R’
x’.y’.z’.w’/R’
Subclasse C’: 192.168.200.0/28
endereço de rede: 192.168.200.0
endereço de broadcast: 192.168.200.15
máscara : 255.255.255.240 ou /28
ð 2H-N = 2H’ IPs Total de 16 IPs
⇒ 14 disponíveis para os nodos
(C) 2011 HMarx 53 / 98
54. Praticando ...
Exercício #7
Identifique para os endereços abaixo: a classe (A, B ou C), o número
de IPs disponíveis, os endereços de rede e broadcast, e a máscara no
formato /N ou x.y.x.w, conforme a fornecida.
a) 75.1.12.0 / 22
b) 200.200.200.128 / 26
c) 11.192.0.0, máscara 255.224.0.0
(C) 2011 HMarx 54 / 98
55. Roteamento
s Tabela de roteamento
§ ð destino gateway máscara métrica interface
route -n ou netstat -rn
§ ð Para com entradadestino DST
Pacote
cada
IP de
Ä DST & máscara == destino ?
Ä Envia p/ o gateway a interface
ð Ä destino 0.0.0.0, máscara 0.0.0.0
Rota default
F X & 0 é sempre 0 !
(C) 2011 HMarx 55 / 98
57. Práticando ...
s Cálculo de sub-redes
Exercício #8
Considere um provedor detentor do bloco 190.180.128.0/17.
Ele quer fornecer subclasses com 16 IPs fixos para seus clientes.
a) Quantos clientes ele pode atender com o bloco ?
b) Exemplifique com algumas subclasses fornecidas.
c) Cite algumas consequências de configurações inadequadas
ou erradas de parâmetros de redes em termos de segurança.
(C) 2011 HMarx 57 / 98
58. IPv6
s Números de 128 bits
§
§
representados em hexadecimal
bits de mais alta ordem : prefixo
Tipo de endereço Prefixo Fração do espaço
de endereçamento
reservado 0000 0000 1/256
não assinalado 0000 0001 1/256
reservado para NSAP 0000 001 1/128
reservado para 0000 010 1/64
não assinalado 0000 011 1/32
não assinalado 0000 1 1/16
não assinalado 0001 1/8
endereços de unicast global agregáveis 001 1/8
não assinalado 010 1/8
não assinalado 011 1/8
não assinalado 100 1/8
não assinalado 101 1/8
não assinalado 110 1/8
não assinalado 1110 1/16
não assinalado 1111 0 1/32
não assinalado 1111 10 1/64
não assinalado 1111 110 1/128
não assinalado 1111 1110 1/512
endereços de unicast de link local 1111 1110 10 1/1024
endereços de unicast de site local 1111 1110 11 110248
endereços de multicast 1111 1111 1/256
(C) 2011 HMarx 58 / 98
60. Serviços
s Conexão / Comunicação
ð Ä portosUDP, sockets
TCP, IP,
ð Arquivos
e protocolos
s Scripts em /etc/init.d/
ð apache2, named, mysql, smbd, nmbd, vsftpd, sendmail,
ð RunLevel em /etc/inittab
ntp, dhcpd, nfsd, firewall, ...
F
default
Ä
id:5:initdefault
Ä
0:halt
Ä
1:mono
Ä
2:multi local
Ä
3:multi+rede
Ä
5:mult+rede+X11
6:reboot
F chkconfig serviço { on | off }
(C) 2011 HMarx 60 / 98
61. Servidor de nomes
s DNS - Domain Name System
ð Ä resoluçãoIPs IPs de domínios e máquinas
domínios e
Ä resolução de nomes de IPs (DNS reverso)
de
ð Ä software BIND - Berkeley Internet Name Domain
named
(C) 2011 HMarx 61 / 98
62. Resolvendo nomes e IPs
s Aplicativos
§
§
host
§
dig
nslookup
# host 201.17.146.157
157.146.17.201.in-addr.arpa domain name pointer atlas.linuxtech.com.br.
# host atlas.linuxtech.com.br
atlas.linuxtech.com.br has address 201.17.146.157
atlas.linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br.
# host -t mx linuxtech.com.br
linuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br.
r
linuxtech.com.br mail is handled by 20 master.softaplic.com.br.
#
(C) 2011 HMarx 62 / 98
63. E-mail
s Componentes
§
MUA - Mail User Agent
Ä kmail, mutt, thunderbird, webmails, ...
§ MTA - Mail Transport Agent
Ä sendmail, postfix, exim, qmail, ...
§ MDA - Mail Delivery Agent
Ä procmail
§ Filtros
Ä antivirus, antispam
Ä filtros (ip/domínio de origem, assunto, remetente,
destinatário, ... )
s Protocolos
ð ð ð MTA
ð ð
[E]SMTP - MUA MTA e MTA
ð ð
POP - caixa postal MUA
IMAP - caixa postal MUA
F Podem utilizar TLS e SSL !
(C) 2011 HMarx 63 / 98
65. Segurança do e-mail
s Autenticidade
§ ð
Endereços de origem e destino
To e From
F
ð Ä Subject de origem
Facilmente forjáveis !
IP/domínio
s Integridade
F Confiabilidade do MUA, MTAs e MDAs
s Confiabilidade
ð
ð
Conteúdo e Anexos
§ SPAM / SCAM
Cavalos de Troia, Worms e Viruses
s
§ Criptografia
Privacidade
Ä PGP
(C) 2011 HMarx 65 / 98
66. Segurança do e-mail
Exercício #9
Porque a resolução dos nomes no DNS é importante para a
segurança do sistema de e-mails ?
O sistema GNU/Linux é praticamente imune a virus. Porque
é necessário o uso de antivirus nele ?
(C) 2011 HMarx 66 / 98
67. Samba
s Servidor
§
§
Autenticação de usuários
§
Compartilhamentos
Server, PDC, BDC
s Cliente
§
§
Autenticação em servidores Windows
Utilização de recursos compartilhados
s Configuração
§ ð parâmetros
/etc/samba/smb.conf
Ä
Ä
domain/workgroup, protocolo, compatilhamentos
mapeamento de usuários
(C) 2011 HMarx 67 / 98
68. Ataques
s Formas de ataque
§
§
Man in the middle
§
Denial of service
IP spoofing
s Ferramentas
§
§
Análise de logs
§
TCP wrappers
§ ð
Portscanners e sniffers
Firewall
ð
Segurança de rede
Proteção contra acessos indevidos
Ä
ð
filtro de pacotes
Log de atividades e tráfego entre redes
(C) 2011 HMarx 68 / 98
69. Firewall - organização
s Pacotes
§
§
endereços de origem e destino
protocolos de sessão e aplicação
s Encapsulamento de dados
§ ð SMTP, Telnet, FTP, HTTP, ...
Aplicação
§ ð TCP, UDP, ICMP, ...
Transporte
§ ð IPv4, IPv6
Internet
§ ð Ethernet, FDDI, ATM, Wireless, ...
Meio de acesso à rede
(C) 2011 HMarx 69 / 98
70. Modelo OSI da ISO
s
F
Open Systems Interconnection Model
modelo de referência
7
6
5
4
3
2
1
(C) 2011 HMarx 70 / 98
71. Firewall - Filtros
s Regras
§
§
Direção : Inbound, Outbound, Either
§
Endereco de origem
§
Endereço de destino
§
Porto de origem
§
Porto de destino
§
Protocolo (TCP, UDP, ICMP, ...)
§ ð
Ação (Allow, Deny, Drop, Reject)
Destinos especiais
SNAT, DNAT, REDIRECT, MASQUERADE, LOG,
MARK, REJECT, ...
Ä NAT : Network Address Translation ou Masquerade
(C) 2011 HMarx 71 / 98
72. Software iptables
s Manipulação das tabelas de regras de filtro
s Organização
§
§
Tables - Tabelas que são compostas por cadeias
§
Chains - Cadeias que são compostas por regras
§ ð filter - tabela default
Rules - Regras que definem o destino do pacote
Tabelas padrao (após kernel 2.4.18)
Ä
ð Ä PREROUTING, OUTPUT, POSTROUTING
chains: INPUT, FORWARD e OUTPUT
nat
ð Ä INPUT, PREROUTING, FORWARD, OUTPUT e
mangle
POSTROUTING
(C) 2011 HMarx 72 / 98
74. iptables - utilização
s
s
tabela : especifica a que tabela o comando se aplica
cadeia : especifica a que cadeia da tabela o comando se aplica
# iptables [ -t tabela ] -L [ cadeia ]
Lista as regras (da cadeia)
# iptables [ -t tabela ] -N cadeia [ opções ]
Cria uma nova cadeia
# iptables [ -t tabela ] -X cadeia [ opções ]
Remove a cadeia
# iptables [ -t tabela ] -F [ cadeia ]
Apaga todas as regras (da cadeia)
# iptables [ -t tabela ] -Z [ cadeia ]
Zera os contadores de bytes e pacotes (da cadeia)
(C) 2011 HMarx 74 / 98
75. iptables - utilização
# iptables [ -t tabela ] -P cadeia política [ opções ]
Define a política padrão para cadeia
ACCEPT, DROP, QUEUE ou RETURN
# iptables [ -t tabela ] -E nomevelho nomenovo cadeia [ opções ]
Troca o nome de uma cadeia
# iptables [ -t tabela ] -{ A | D} cadeia especificação [ opções ]
Adiciona ou remove uma regra da cadeia
# iptables [ -t tabela ] -D cadeia número [ opções ]
Remove uma regra da cadeia
# iptables [ -t tabela ] -I cadeia [ número ] especificação [ opções ]
Inclui uma regra na cadeia
# iptables [ -t tabela ] -R cadeia número especificação [ opções ]
Substitui uma regra nd cadeia
(C) 2011 HMarx 75 / 98
76. iptables
s Algumas opções
ð -v
Ä modo verboso
ð -n
Ä saída na forma numérica
ð -x
Ä expande os números de bytes e pacotes
ð -h
Ä ajuda
ð --line-numbers
Ä inclui número da linha no início de cada regra
ð --module-probe=comando
Ä especifica o comando para a carga dos módulos
(C) 2011 HMarx 76 / 98
77. iptables
s Especificações
-p [ ! ] protocolo
Especifica o protocolo: tcp, udp, icmp ou all
-s [ ! ] endereço [ / máscara ]
Especifica o endereço de origem (source)
--source-port [ ! ] porto [ : porto ]
Especifica o porto ou faixa de portos de origem
-d [ ! ] endereço [ / máscara ]
Especifica o endereço de destino
--destination-port [ ! ] porto [ : porto ]
Especifica o porto ou faixa de portos de destino
(C) 2011 HMarx 77 / 98
78. iptables
s Especificações
--source-port { [, porto ] }*
Especifica até 15 portos de origem
--destination-port porto { [ , porto ] }*
Especifica até 15 portos de destino
--port porto { [ , porto ] }*
Especifica o porto, quando os porto de origem e destino
forem iguais
(C) 2011 HMarx 78 / 98
79. iptables
s Especificações
--uid-owner userid
Especifica o Id do usuário do processo que criou o pacote
--gid-owner gid
Especifica o GID do processo que criou o pacote
--pid-owner pid
Especifica o número do processo que criou o pacote
§ --sid-owner sessionid
Especifica o número da sessão (grupo de processos) que
criou o pacote
(C) 2011 HMarx 79 / 98
80. iptables
s Especificações
-i [ ! ] interface
Especifica a interface de entrada (de onde veio o pacote)
-o [ ! ] interface
Especifica a interface de saída (para onde irá o pacote)
--mac-source [ ! ] endereço
Especifica o porto ou faixa de portos de origem
--icmp-type [ ! ] tipo
Especifica o tipo do pacote ICMP
(C) 2011 HMarx 80 / 98
81. iptables
s Especificações
--tcp-flags [ ! ] máscara ativos
Especifica a lista de flags TCP. A máscara contém os flags
que devem estar inativos. Os flags são SYN, ACK, FIN,
RST, URG, PSH, ALL ou NONE
[ ! ] syn
Especifica pacotes com o bit SYN ativo e os bits ACK e
FIN inativos
--limit taxa [ / sufixo ]
Especifica a taxa média máxima de pacotes. O sufixo pode
ser second, minute, hour ou day. O default é 3/hour.
[ ! ] --limit-burst númer
Especifica o número máximo inicial de pacotes. O default é
5.
(C) 2011 HMarx 81 / 98
82. iptables
s Especificações
-j alvo
Especifica o que fazer com o pacote. Poder ser uma cadeia
§
ou um destino especial.
ð
Destinos especiais
LOG, MARK, REJECT, TOS, MIRROR, SNAT,
DNAT, MASQUERADE e REDIRECT
s Opções do destino LOG
--log-level nível (veja syslog.conf)
--log-prefix prefixo (até 29 caracteres)
--log-tcp-sequence
--log-tcp-options
--log-ip-options
(C) 2011 HMarx 82 / 98
83. iptables
s Opções do destino MARK
--set-mark marca
s Opções do destino REJECT
--reject-with tipo
ð
O tipo pode ser:
ð
icmp-net-unreachable echo-reply
ð
icmp-host-unreachable tcp-reset
ð
icmp-port-unreachable
ð
icmp-proto-unreachable
ð
icmp-net-prohibited
icmp-host-prohibited
s Opções do destino TOS
--set-tos tos (veja iptables -j TOS -h)
(C) 2011 HMarx 83 / 98
84. iptables
s Especificações
--state state { [, state ] }*
s Especifica o(s) estado(s) da conexão ao(s) qual(is) o pacote está
associado
Estados:
INVALID - conexão inválida
ESTABLISHED - conexão já estabelecida
NEW - nova conexão
RELATED - nova conexão associada a
uma já existente (ex: FTP)
(C) 2011 HMarx 84 / 98
85. iptables
s Especificações
--ttl ttl
Especifica o TTL do pacote
--ttl-set ttl
Estabelece novo TTL do pacote
--ttl-dec ttl
Decrementa o TTL do pacote
--ttl-inc ttl
Incrementa o TTL do pacote
TTL = Time to live
F Somente é válido para a tabela mangle !
(C) 2011 HMarx 85 / 98
86. iptables
s Especificações
s Opções do destino SNAT
--to-source endereço [- endereço ] [ :porto [- porto ]]
s Opções do destino DNAT
--to-destination endereço [-endereço ] [ :porto [ - porto ]]
s Opções dos destinos MASQUERADE ou REDIRECT
--to-ports porto [ - porto ]
(C) 2011 HMarx 86 / 98
89. VPN
s Virtual Private Network
§
§
autenticação e criptografia
IPsec - IP security
Ä /etc/ipsec.conf e /etc/ipsec.secrets
Modelo de conexão VPN
tunel seguro
§ ð SSL,formasSSH, PPTP, tunnel SSH, ...
Outras
PPP +
(C) 2011 HMarx 89 / 98
90. Logs
s Registro de ocorrências
§
§
evento e instante
kernel, serviços e aplicativos
s Acompanhamento
§
§
dmesg (kernel)
/var/log/* e /var/log/serviço/*
s Monitoramento e análise
§
§
tail
§
monit, mon, nagios, ...
emails p/ o root
(C) 2011 HMarx 90 / 98
92. Log de sessões e tentativas
Jan 29 05:18:53 thor sshd[5032]: Invalid user testuser from 213.232.110.135
Feb 3 13:01:06 thor sshd[11171]: reverse mapping checking getaddrinfo for
18983144228.user.veloxzone.com.br [189.83.144.228] failed -
POSSIBLE BREAK-IN ATTEMPT!
Mar 4 13:37:51 thor sshd[31452]: Accepted keyboard-interactive/pam for hmarx
from 186.213.97.125 port 44418 ssh2
Mar 7 19:17:11 thor sshd[10687]: User walter from (null) not allowed because none
of user’s groups are listed in AllowGroups
Mar 8 12:17:58 thor sshd[26745]: Failed password for invalid user denied from
::ffff:121.83.254.19 port 60428 ssh2
Mar 9 07:53:31 thor sshd[29212]: Invalid user zorro from ::ffff:78.153.209.71
Mar 9 08:17:19 thor login[29821]: FAILED LOGIN 1 FROM /dev/tty1 FOR hmarx,
Authentication failure
(C) 2011 HMarx 92 / 98
93. Logs de e-mails
Mar 24 17:07:27 thor sendmail[20124]: p2OK7JCw020124:
from=<goncalves@fgr.org.br>, size=269275, class=0, nrcpts=1,
msgid=<F4B8E6386F9B4A8EB2CD1D8A5DCB7C3A@paraiba.org.br>,
proto=ESMTP, daemon=MTA, relay=nsa33.globalconn.net [74.52.81.66]
Mar 24 17:08:27 thor sendmail[20124]: p2OK7JCw020124: Milter change (add):
header: X-Virus-Scanned: by amavisd-new
Mar 24 17:08:28 thor sendmail[20172]: p2OK7JCw020124:
to=<hmarx@linuxtech.com.br>, delay=00:01:05, xdelay=00:00:00, mailer=local,
pri=299525, dsn=2.0.0, stat=Sent
Mar 19 22:04:39 thor popper[23507]: Stats: hmarx 2 29503 0 0 venus.starix.br
192.168.200.41 [pop_updt.c:296]
Mar 19 21:33:00 thor popper[16281]: prudencia at server.museuimperial.art.br
(173.199.129.199): -ERR [AUTH] Password supplied for "prudencia"
is incorrect. [pop_pass.c:1295]
Mar 19 21:56:43 thor popper[23154]: [AUTH] Failed attempted login to renato from
host (server.museuimperial.art.br) 173.199.129.199 [pop_pass.c:1383]
(C) 2011 HMarx 93 / 98
94. Sumário das ferramentas
s Sessões, conexões e transações segura
§ ssh, scp, sftp
§ VPN
§ https
§ certificados digitais
§ pgp
s
§ password aging
Limitando privilégios locais
§ ulimit
§ inetd c/ tcpd ou xinetd
§ processos chrooted
§ quota em sistemas de arquivos
§ permissões de objetos (chmod)
§ ACLs
(C) 2011 HMarx 94 / 98
95. Ferramentas para gerenciamento
s Monitoração de tráfego de rede
§ iptraf
§ tcpdump
§ snort
§ ethereal / wireshark
§ SNMP
s
§ who, w, rwho - usuários com sessões abertas
Monitoração de atividades no servidor
§ ps, pstree
§ lsof, fuser
- processos em execução
§ netstat
- arquivos e sockets abertos
§ nmap
- conexões potenciais e ativas
§ rpcinfo
- serviços acessíveis (portos abertos)
§ w, top, free, df, du - uso de CPU, memória e disco
- processos RPC
(C) 2011 HMarx 95 / 98
96. Conclusões
§ ð Configuração dos serviços
Planejamento
§ ð usuários e root
Confiança
Ä
!
Senhas fortes
F
§
Troca periódica
Software Livre é seguro
(C) 2011 HMarx 96 / 98