Upload
helio-marques
View
1.782
Download
3
Embed Size (px)
DESCRIPTION
Segurança em Sistema Operacional Livre
Citation preview
(C) 2011 HMarx 1 / 98
[email protected] Segurança em Sistema Operacional LivreDisciplina
Prof: Hélio Marques Sobrinho
(C) 2011 HMarx 2 / 98
Programa
IntroduçãoSistema de computação e segurançaO ambiente operacional GNU/Linux
Instalação do GNU/LinuxPlanejamento, Instalação e ConfiguraçãoO shell e seus comandos
Administração do GNU/LinuxUsuários e gruposSistemas de arquivosServiços
SegurançaFirewall, VPN, SSL, ..Logs.
Conclusões
s §§s §§s §§§s §§s
(C) 2011 HMarx 3 / 98
Referências bibliográficasOlaf 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
Alguns sites:www.cert.org (Computer Emergency Report Team)www.kernel.org ¶ www.gnu.orgwww.nsa.org ¶ www.linuxsecurity.comwww.sans.org ¶ www.rootprompt.org pgp.mit.edu
e muito mais.
§§§§§§ ¶¶¶¶¶§
(C) 2011 HMarx 4 / 98
Agenda
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.
s ðððððððð
(C) 2011 HMarx 5 / 98
Introdução
Sistema de ComputaçãoHardware, Software e Peopleware
Processadores, memórias, dispositivos de E/S, ...Sistema operacional, utilitários e aplicativosEngenheiros, projetistas, técnicos, analistas, programadores, operadores e usuários
s § ððð
(C) 2011 HMarx 6 / 98
Exercício #1
Para cada um dos 3 componente do sistema de computação escolher umelemento e exemplificar (se aplicável) causa e efeito para cada critério desegurança acima.
Segurança
Conceitos - ISO 27001 e 27002Critérios de segurança
DisponibilidadeIntegridadeConfiabilidadePrivacidadeMTTF, MTBF, MTTR
Componentes do sistema de computação
s § ðððð2s
(C) 2011 HMarx 7 / 98
Critérios de segurança
DoD - U.S. Department of DefensesD Segurança mínimaC Proteção facultativaB Proteção obrigatóriaA Proteção verificada
NSA - National Securiy AgencyNCSC - National Computer Security CenterTCSEC - Trusted Computer System Evaluation CriteriaCC - Common Criteria
Classess
(C) 2011 HMarx 8 / 98
Nova classificação
CCITSECommon Criteria for Information Tecnology Security Evaluation
CC - Common CriteriaEAL - Evaluation Assurance Level
s ððEAL 1 : Testado funcionalmenteEAL 2 : Testado estruturalmenteEAL 3 : Metodicamente testado e verificadoEAL 4 : Metodicamente projetado, testado e revisadoEAL 5 : Projetado semi-formalmente e testadoEAL 6 : Projeto semi-formalmente verificado e testado EAL 7 : Projeto formalmente verificado e testado
Red Hat Enterprise 5.3 EAL 4, dez/2009SuSE Linux Enterprise 10 SP1 EAL 4, out/2007VMWare ESX Server 2.5.0 EAL 2, set/2005Microsoft Windows 2003 Server EAL 4, out/2006
(C) 2011 HMarx 9 / 98
GNU / Linuxdynamic duo
Histórico do GNU/Linux
Bell Labs, USA, 1960Multics - GE 645Unics => PDP-7
Ken ThompsonDennis Ritchie,Brian Kernigham
AT&T, SysV, Unix®MIT, USA, 1983
GNU - GNU is Not UnixFSF - Free Software FoundationRichard Stallman
Helsinki, Finlândia,1991Freax => Linux
Linux kernelLinus Torvalds
s §§ ððð§s § ððs § Äð Ken ThompsonDennis RitchiePDP-11
GE-645Multics
(C) 2011 HMarx 10 / 98
Software Livre
FSF - Free Software Foundation GPL - General Public LicenseLGPL - Lesser General Public LicenseAGPL - Affero General Public LicenseFDL - Free Documentation License
s §§§§Tim (O’Reilly) e Richard Stallman (FSF)
(C) 2011 HMarx 11 / 98
DistribuiçãoMeio de distribuição
Kernel linuxUtilitários e aplicativos GNU e outrosInstalação, Administração e configuraçãoPacotes RPM, TAR, DEB, ...
Algumas distribuições
e muito mais !Enterprise Linux
SLES, RHEL e Oracle
s ððððs §s §
(C) 2011 HMarx 12 / 98
Instalação do GNU/Linux
PlanejamentoObjetivo da instalação
Estação de trabalho ou servidor ? Grid/Cluster ?Quais serviços ? Web ? Mail ? Banco de dados ? Firewall ? VPN ?
Particionamento do(s) disco(s)Volumes ? Tamanhos ?
swap, /, /home, /boot, /var, ...Sistema de arquivos
swap, ext2, ext3, reiserfs, xfs, ...Pacotes de aplicativos
Desenvolvimento de software? Entretenimento ? Editoração eletrônica ? Educacional ? Geoprocessamento ? Aplicativos especiais ?
s § ðð§ ð Äð ħ ð
(C) 2011 HMarx 13 / 98
Ambiente de redeInterfaces
ethernet ? token ring ? wireless ?10Mbps ? 100Mbps ?1Gbps ? 10Gbps ? ...Coaxial ? UTP ? STP ? Fibra ?
ProtocolosTCP/IP ? SMB ? IPX ?NCP ? DHCP ?
Nomes, endereçosIPs, máscaras, rotas
Parâmetros para autenticaçãousuário, senha, padrão
Dominios e endereçosDNS ? SMB/NMB ? AD?IPv4 ? IPv6 ?NIS ? LDAP ?
s § ð ÄÄħ ðð ÄÄð ħ ÄÄÄInstalação do GNU/Linux
(C) 2011 HMarx 14 / 98
Arquitetura do GNU/LinuxFNenhuma aplicação acessa o hardware diretamente !..
(C) 2011 HMarx 15 / 98
Iniciando o GNU/Linux
O processo de boots
(C) 2011 HMarx 16 / 98
Do init aos processos
Árvore de processoss
(C) 2011 HMarx 17 / 98
SessõesAbertura de sessão / login
local ou remota (telnet, ssh, ...)texto ou gráfica
console, terminal (real ou emulado)XWindow
login e senhauser id e group idum usuário pode pertencer a vários grupos
login : gid defaultSuper usuário
root : rootuid 0, gid 0
um usuário pode pertencer a vários gruposPermissões de acesso a arquivos e diretórios
usuário, grupo e outros: Read, Write, eXecute : rwx
Fechar sessão / logoutexit ou Ctrl-D
s §§ ðð§ ðð Äð Ä Fð§ ðs ð
(C) 2011 HMarx 18 / 98
AutenticaçãoArquivo
/etc/passwd e /etc/shadow
BasesNISLDAP
PAM - Pluggable Autentication Modules/etc/pam.conf ou /etc/pam.d/*
Radius, Kerberos, Diameter, fingerprint, ...
s ðs ððs ðs #%PAM-1.0 auth requisite pam_nologin.so auth [user_unknown=ignore success=ok ignore=ignore auth_err=die default=bad] pam_securetty.so 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
(C) 2011 HMarx 19 / 98
Sistema de arquivosEstrutura hierárquica distribuída
diretórios, arquivos, dispositivosroot file system: /
Volumes locais e remotosSistemas de arquivos diferentesSistemas operacionais diferentes
ext2, ext3, reiser, xfs, swap, fat, vfat, nfs, smb, ncp, ...Transparente para as aplicações
Virtual File System - vfs
s Äħ ÄÄ FÄ F
(C) 2011 HMarx 20 / 98
Linux VFS
Camada de abstração do sistema de arquivoss
(C) 2011 HMarx 21 / 98
DispositivosVolumes
dispositivos de armazenamentolocais
discos, arquivos, memória, CD, DVD, pen drive, ...remotos
volumes exportados (NFS, Samba, NCP, ...)
PartiçõesSistemas de arquivos locais
swapext2, ext3, reiser, ...LVM, RAID, DRBD, ...
indicador de bootLILO, Grub,Windows, MacOS. ,,,outros
s § ð Äð ħ ð ÄÄÄð ÄÄÄ swap
/
/home
/usr
(C) 2011 HMarx 22 / 98
Montagem Montagem durante o boot (init)
/etc/fstab/ (raiz)outros sistemas de arquivos
locais ou remotos (diskless workstations)
Entradas no arquivo /etc/fstab
Comando mount
s ððð Ä Fss volume mount_point filesystem options dump fsck/dev/sda3 / ext3 acl,user_xattr 1 1server:/public /pub nfs acl,noauto 0 0
Network File System
mount [ -o opções ] volume mount_point mount volumemount mount_point } Entradas definidas no /etc/fstab
(C) 2011 HMarx 23 / 98
Visão para as aplicações
PossibilidadesLocalRemoto
NFS, SMB, ...DRBD
ww Äw
(C) 2011 HMarx 24 / 98
inodepermissions
linksusergroup size D&T filename
$ ls -li dostextfile63677 -rw-rw---- 1 hmarx linuxtech 31 2011-03-19 19:13 dostextfile
Atributos dos arquivos
Diretóriosnomes
Inodosatributos, permissõesblocos de dados
drwxrwxrwx
s ð§ ððs r : readw: writex : execute s,S : SUID, SGID t ,T : Stick{permissões
user groupothers
tipo
- : normal filed : directoryc : character deviceb : block devicep : pipel : links : socket
{
(C) 2011 HMarx 25 / 98
Permissões
Representação numéricaBits : suid sgid stick rwx ð
0 0 0 000 ð 0000 1 1 1 111 ð 7777
altera x p/ s, S, t ou T
Alteração de permissõeschmod opções octal objeto ...chmod opções { {ugoa}{+-=}{ugorwxst}, } * objeto ...
Alteração de donochown opções [ user ] [ : group ] objeto ...chgrp opções group objeto ...
s § ðð Fs §§s §§ }
(C) 2011 HMarx 26 / 98
Exercícios
Permissões de acessosExercício #2
Seja uma empresa com gerentes de diversas áreas. Um funcionário pode estarsubordinado 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ãoserem violadas a confiabilidade, a privacidade e integridade destes documentos ?
(C) 2011 HMarx 27 / 98
Estrutura dos diretóriosDados do arquivo : inodo Diretório: nome do arquivo
Hard links
Soft links
s Äħ§ Hard links e soft links
$ ls -li arquivo.txt63675 -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.copia63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt$ r
$ ln -s arquivo.txt arquivo.atalho $ ls -li arquivo.txt arquivo.atalho64134 lrwxrwxrwx 1 hmarx linuxtech 11 2011-04-02 14:04 arquivo.atalho -> arquivo.txt 63675 -rw-rw---- 2 hmarx linuxtech 2910 2011-04-02 13:54 arquivo.txt $ r
(C) 2011 HMarx 28 / 98
ACLs
ACLs - Access Control ListsControle granular das permissões rwx
Sistema de arquivos montado com opção aclExemplo: /dev/sdc2 on /work type reiserfs (rw,acl)
mount -oremount,acl sistema-de-arquivos
s Äð FÄ$ ls -l arquivo-rwxrw---- 1 hmarx linuxtech 61 2011-03-28 16:17 arquivo$ setfacl -m u:diana:rw,g:www:r arquivo$ 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- other::--- $ r Note a diferença !
(C) 2011 HMarx 29 / 98
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 30 / 98
SELinux
Security Enhanced LinuxDoD - 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
Habilitando o SELinuxparâmetros para o kernel
security=selinux selinux=1configurações
diretório /etc/selinux/*controle e status
diretório virtual /selinux/*
s § ððððs § ð§ ð§ ð
(C) 2011 HMarx 31 / 98
A interface gráfica XWindow
Componentesdesktop managerwindow manageraplications
s §§§F Dependendo da velocidade do enlace, a comunicação pode ser remota.
(C) 2011 HMarx 32 / 98
Componentes do XWindow
X Serverxorg
Desktop managercontrole de sessões
xdm, gdm, kdm, ...
Window managercontrole e decoração de janelas
fvwm, gnome, kde, enlightenment, afterstep, windowmaker, cdesim, ...
X applicationsaplicações gráficas
xterm, xclock, kmail, firefox, gimp, openoffice, digikam, wxcam, amarok, ...
s ðs § ðs § ðs § ð X.org
locate ent
(C) 2011 HMarx 33 / 98
O kdm e o desktop KDE
openSuSEkdm e KDE
(C) 2011 HMarx 34 / 98
menu texto
menu com icones
Uma interface típica
KDE - kwrite
botões de controleminimiza, maximiza,ordem, fechar
barra de status
barras de rolagem
área doaplicativo:textos,diálogos,botões,canvas, ...
barra do títulobotões de controle menu e sticky
(C) 2011 HMarx 35 / 98
Algumas aplicações gráficas
Aplicações X e KDE
(C) 2011 HMarx 36 / 98
Padrão de interface gráficaCUA - Common User Access
Publicado pela IBM, 1987Utilizado por Unix, Windows e LinuxBotões Ok, Cancel, Help, ...Teclas de função (F1, F4, ...)Teclas TAB , shift TAB , ESC, Enter, ...
s §§§§§Exercício #4 Quais são os elementos básicos que compõems uma interface gráfica de um aplicativoqualquer ? Porque a utilização de uma interface gráfica para administrar um servidor requermaiores cuidados ?
(C) 2011 HMarx 37 / 98
O Bourne Again Shell - Bash
Interpretador de comandosLinguagem de programação completa
scripts : comandos interpretados
SintaxeNo prompt:
comando [ opções ] { [ argumentos ] } *
ss §s § Ä
(C) 2011 HMarx 38 / 98
Ajuda on-line
Aplicativoscomando --helpcomando -hman opções [ sessão ] comandoinfo opções comando
Comandos do shellhelp comando
A internethttp://www.linuxquestions.org/http://www.linuxmanpages.com/...
s §§§§s §s §§§ it!!
(C) 2011 HMarx 39 / 98
VariáveisAtribuição
variável=valorValor da variável
$variável
Variáveis padrãoAlteráveis pelo usuário
PATH, PS1, PS2, PS3, HOME, USER, SHELL, LANG, ...
Não alteráveis pelo usuário0, 1, ... 9, #, !, ?,@, $
s § ð§ ðs § ð§ ðElementos da linguagem bash
NOME="Helio Marques"echo $NOME
(C) 2011 HMarx 40 / 98
$ echo \*\* ERRO \*\*** ERRO **$ lschap1 chap2 chap3 programA programB1 programB2$ ls *[1-3]chap1 chap2 chap3 programB1 programB2$ ls *[!1-3]programA$ ls *[AB]?programB1 programB2$ r Metacaracteres
Sequência de caracteres especiaisSão tratados pelo shell e substituidos antes de serem passados para o comando* ? [ conjunto ] [ !conjunto ] \ ~
Exemplos de conjunto a-z 0123456789 0-9 0-9ABCDEF 0-9A-F
s §§ ð Ä
(C) 2011 HMarx 41 / 98
Usando Metacaracteres
Comando echoecho [ -n ] texto ...Imprime na saída padrão os argumentos
s §§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 42 / 98
Ambiente
~ é o diretório pessoal~jose é /home/jose
conteúdoarquivos e diretórios pessoais
.* "nomes ocultos" no lsconfigurações de aplicativos
shell - logs e scripts.bash_history, .bashrc, .bash_login, .bash_logout, .profile, .alias, ...
tratamento de e-mail.procmailrc, .forward, ...
desktop e aplicações gráficasícones, menus, decorações de janelas, ...
s §s § ð§ ð Äð Äð Ä
(C) 2011 HMarx 43 / 98
function files(){ ls $* | pr -T --columns=3}Comandos do Bash
Comandos internosalias, cd, fg, bg, echo, eval, exit, export, history,if/then/else, while, until, for, case, pwd, set, shift, trap, test, type, ulimit, umask, uname, ...
Aplicativos externosscripts e executáveis
ls, ps, cp, rm, rmdir, ln, mv, df, du, diff, at, bc, bzip, tar, ping, host, w, who, arp, ...
FunçõesEx: Definindo o novo comando fi les para exibir o diretório em 3 colunas
s ðs § ðs ð
(C) 2011 HMarx 44 / 98
0 : entrada padrão1 : saída padrão2 : saída de erros{$ date; pwd; uname -r
Sat Mar 19 19:30:19 BRT 2011 /home/hmarx 2.6.34.7-0.7-default$ r ð$ cat << _END_ > Arquivo
Uma linhaOutra linhaMais uma linha_END_$ r $ cat Arquivo
Uma linhaOutra linhaMais uma linha$ rOperadores do bash
Separador de comandos;
Redirecionamento de E/S> >> < >& <<texto i>&n
sss §
(C) 2011 HMarx 45 / 98
$ pwd; (cd /usr/local/bin;pwd); pwd/home/hmarx/usr/local/bin/home/hmarx$ r$ echo "Maria da Silva" | revavliS ad airaM$ rOperadores do bash
Pipecomando1 | comando2 | ...
Agrupamento de comandos (subshell) ( comando1; comando2; ... )
s §s §
(C) 2011 HMarx 46 / 98
$ echo "Estamos no ano $(date +%Y)."Estamos no ano de 2011.$ r$ (( I = 500 / 3 ))$ echo "I = $I"I = 166$ rOperadores do bash
Substituição de comando‘comando‘$(comando)
Expressões aritméticas (( expressão ))
s §§s §
(C) 2011 HMarx 47 / 98
$ [[ 500 -gt 100 ]]; echo $00$ [[ 500 -gt 1000 ]]; echo $01$ r
!!
0 é verdadeiro1 é falso !!
Operadores do bash
Expressões lógicas [[ expressão ]]
operadores-eq -lt -gt -le -ge -ne-e file -r file -w file...
Ver manual do comando test
s § ð ÄÄÄ F
(C) 2011 HMarx 48 / 98
ð A fruta é uvaA fruta é peraA fruta é caqui
for i in uva pera caquido echo A fruta é $idone
Exemplos de comandosComandos iterativos e condicionaiss ðif expr 5 > 3
then echo ERRADOelse echo CERTOfi
??Exercício #6
Porque ?
ð 01234
i=0while [[ $i -gt 5 ]]do echo $i (( ++i ))done
(C) 2011 HMarx 49 / 98
Mais alguns comandos
$ lsbash 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, strippeddostextfile: ASCII text, width CRLF line terminatorsfoto.jpg: PE32 executable for MS Windows (GUI) Intel 80386 32-bitimage.gif: GIF image data, version 89a, 100 x 100image.png: PNG image data, 250 x 250, 8-bit/color RGB, non-interlacedunixtextfile: ASCII text$ ls | wc 5 5 50$ r
!!A identificação do tipo do arquivo é pelo conteúdo enão pela extensão do nome do arquivo !
(C) 2011 HMarx 50 / 98
GNU/Linux em Redes
Topologiasbarramentos, estrela, wireless, ...
Arquiteturainternas, externas, locais, remotas, internet, VPNs, ...A Internet
Tecnologiascoaxial, ethernet, token-ring, wifi, wimax, ...
ProtocolosTCP/IP, SMB e NMB, NCP, AX25, ...Parâmetros
nomes, endereçosparâmetros de desempenho e segurança
s §s §§s §s §§ ððs
(C) 2011 HMarx 51 / 98
IPv4Número de 32 bits
formato x.y.z.wx, y, z, w ∈ [ 0 .. 255 ]
R + H = 32Classe 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 especiaisloopback: 127.0.0.0/8 (interface lo)network : hostid[*] = 0broadcast: hostid[*] = 1netmask : netid[*]=1, hostid[*] = 0
s § Ä F§ ððððð§ ÄÄÄÄ x y z w
R H
(C) 2011 HMarx 52 / 98
IPv4Blocks privados
A : 10.0.0.0/8B : 172.16.0.0/12C : 192.168.0.0/16
Endereços especiaisloopback: 127.0.0.0/8
interface lonetwork : hostid[*] = 0broadcast: hostid[*] = 1netmask : netid[*]=1, hostid[*] = 0
s §§§s § F§§§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
} Network Address Translation
gateway/firewall
(C) 2011 HMarx 53 / 98
IPv4 - subclasses
Rede R = x.y.z.w/RR é o número de bits de netid
Subclasses R’
2N subclasses R’ x’.y’.z’.w’/R’
2H-N = 2H’ IPs
s §s § ðð R + H = 32
R’ + H’ = 32R’ = R + NH’ = H - N
Exemplo
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
Total de 16 IPs ⇒ 14 disponíveis para os nodos
N
x y z wR’ H’
HR
(C) 2011 HMarx 54 / 98
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 55 / 98
Roteamento
Tabela de roteamentoroute -n ou netstat -rn
destino gateway máscara métrica interface
Pacote com IP de destino DSTPara cada entrada
DST & máscara == destino ? Envia p/ o gateway a interface
Rota defaultdestino 0.0.0.0, máscara 0.0.0.0
X & 0 é sempre 0 !
s § ð§ ð ÄÄð Ä F
(C) 2011 HMarx 56 / 98
Multiplas redes
Redes locais e remotass
(C) 2011 HMarx 57 / 98
Práticando ...
Cálculo de sub-redessExercí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 inadequadasou erradas de parâmetros de redes em termos de segurança.
(C) 2011 HMarx 58 / 98
IPv6Números de 128 bits
representados em hexadecimalbits de mais alta ordem : prefixo
s §§Tipo de endereço Prefixo Fração do espaço
de endereçamentoreservado 0000 0000 1/256não assinalado 0000 0001 1/256reservado para NSAP 0000 001 1/128reservado para 0000 010 1/64não assinalado 0000 011 1/32não assinalado 0000 1 1/16não assinalado 0001 1/8endereços de unicast global agregáveis 001 1/8não assinalado 010 1/8não assinalado 011 1/8
não assinalado 101 1/8não assinalado 100 1/8
não assinalado 110 1/8não assinalado 1110 1/16
não assinalado 1111 10 1/64não assinalado 1111 0 1/32
não assinalado 1111 110 1/128não assinalado 1111 1110 1/512endereços de unicast de link local 1111 1110 10 1/1024endereços de unicast de site local 1111 1110 11 110248endereços de multicast 1111 1111 1/256
(C) 2011 HMarx 59 / 98
IPv6 - exemploseth0 Link encap:Ethernet HWaddr 00:00:E8:4D:4F:A7 inet addr:201.17.146.157 Bcast:201.17.146.255 Mask:255.255.255.0 inet6 addr: fe80::200:e8ff:fe4d:4fa7/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:50165271 errors:0 dropped:0 overruns:0 frame:0 TX packets:12768430 errors:18 dropped:0 overruns:0 carrier:36 collisions:37218 txqueuelen:1000 RX bytes:853256390 (813.7 Mb) TX bytes:3281976782 (3129.9 Mb) Interrupt:129 Base address:0xb400
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1208299 errors:0 dropped:0 overruns:0 frame:0 TX packets:1208299 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:219146691 (208.9 Mb) TX bytes:219146691 (208.9 Mb)
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08 inet addr:172.16.185.1 Bcast:172.16.185.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:71600 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
(C) 2011 HMarx 60 / 98
Serviços
Conexão / ComunicaçãoTCP, IP, UDP, sockets
portos e protocolosArquivos
Scripts em /etc/init.d/apache2, named, mysql, smbd, nmbd, vsftpd, sendmail, ntp, dhcpd, nfsd, firewall, ...RunLevel
default em /etc/inittab id:5:initdefault
0:halt1:mono2:multi local3:multi+rede5:mult+rede+X116:reboot
chkconfig serviço { on | off }
s ð Äðs ðð FÄÄÄÄÄÄ F
(C) 2011 HMarx 61 / 98
Servidor de nomes
DNS - Domain Name Systemdomínios e IPs
resolução de IPs de domínios e máquinasresolução de nomes de IPs (DNS reverso)
named software BIND - Berkeley Internet Name Domain
s ð ÄÄð Ä
(C) 2011 HMarx 62 / 98
Resolvendo nomes e IPs
Aplicativoshostdignslookup
s §§§# host 201.17.146.157157.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.brlinuxtech.com.br mail is handled by 10 atlas.linuxtech.com.br. linuxtech.com.br mail is handled by 20 master.softaplic.com.br. # r
(C) 2011 HMarx 63 / 98
ComponentesMUA - Mail User Agent
kmail , mutt , thunderbird , webmails, ... MTA - Mail Transport Agent
sendmail, postfix, exim, qmail, ...MDA - Mail Delivery Agent
procmailFiltros
antivirus, antispamfiltros (ip/domínio de origem, assunto, remetente, destinatário, ... )
Protocolos[E]SMTP - MUA ð MTA e MTA ð MTAPOP - caixa postal ð MUAIMAP - caixa postal ð MUA
Podem utilizar TLS e SSL !
s § ħ ħ ħ ÄÄs ððð F
(C) 2011 HMarx 64 / 98
Protocolo SMTP
Conversa SMTP simplificadas
(C) 2011 HMarx 65 / 98
Segurança do e-mail
AutenticidadeEndereços de origem e destino
To e FromFacilmente forjáveis !
IP/domínio de origemSubject
IntegridadeConfiabilidade do MUA, MTAs e MDAs
ConfiabilidadeConteúdo e AnexosCavalos de Troia, Worms e Viruses
SPAM / SCAMPrivacidade
CriptografiaPGP
s § ð Fð Äs Fs ðð§s § Ä
(C) 2011 HMarx 66 / 98
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 67 / 98
Samba
ServidorAutenticação de usuáriosCompartilhamentosServer, PDC, BDC
ClienteAutenticação em servidores WindowsUtilização de recursos compartilhados
Configuração/etc/samba/smb.conf
parâmetrosdomain/workgroup, protocolo, compatilhamentosmapeamento de usuários
s §§§s §§s § ð ÄÄ
(C) 2011 HMarx 68 / 98
Ataques
Formas de ataqueMan in the middleDenial of serviceIP spoofing
FerramentasAnálise de logsTCP wrappersPortscanners e sniffersFirewall
Segurança de redeProteção contra acessos indevidos
filtro de pacotesLog de atividades e tráfego entre redes
s §§§s §§§§ ðð Äð
(C) 2011 HMarx 69 / 98
Firewall - organização
Pacotesendereços de origem e destinoprotocolos de sessão e aplicação
Encapsulamento de dadosAplicação
SMTP, Telnet, FTP, HTTP, ...Transporte
TCP, UDP, ICMP, ...Internet
IPv4, IPv6Meio de acesso à rede
Ethernet, FDDI, ATM, Wireless, ...
s §§s § ð§ ð§ ð§ ð
(C) 2011 HMarx 70 / 98
Modelo OSI da ISOOpen Systems Interconnection Model
modelo de referências F
7654321
(C) 2011 HMarx 71 / 98
Firewall - Filtros
RegrasDireção : Inbound, Outbound, EitherEndereco de origemEndereço de destinoPorto de origemPorto de destinoProtocolo (TCP, UDP, ICMP, ...)Ação (Allow, Deny, Drop, Reject)Destinos especiais
SNAT, DNAT, REDIRECT, MASQUERADE, LOG, MARK, REJECT, ...
NAT : Network Address Translation ou Masquerade
s §§§§§§§§ ð Ä
(C) 2011 HMarx 72 / 98
Software iptables
Manipulação das tabelas de regras de filtroOrganização
Tables - Tabelas que são compostas por cadeiasChains - Cadeias que são compostas por regrasRules - Regras que definem o destino do pacoteTabelas padrao (após kernel 2.4.18)
filter - tabela defaultchains: INPUT, FORWARD e OUTPUT
natPREROUTING, OUTPUT, POSTROUTING
mangleINPUT, PREROUTING, FORWARD, OUTPUT e POSTROUTING
ss §§§§ ð Äð Äð Ä
(C) 2011 HMarx 73 / 98
Fluxo de pacotes
forward ?masquerade ?
drop ?reject ?
interfaceinterna
interfaceexterna
Firewallpkt pkt
pkt pkt
(C) 2011 HMarx 74 / 98
iptables - utilização
tabela : especifica a que tabela o comando se aplicacadeia : especifica a que cadeia da tabela o comando se aplica
ss# 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 75 / 98
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 76 / 98
iptables
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
s ð Äð Äð Äð Äð Äð Ä
(C) 2011 HMarx 77 / 98
iptablesEspecificações
-p [ ! ] protocoloEspecifica 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
s
(C) 2011 HMarx 78 / 98
iptablesEspecificaçõ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
s
(C) 2011 HMarx 79 / 98
iptablesEspecificações
--uid-owner userid Especifica o Id do usuário do processo que criou o pacote
--gid-owner gidEspecifica o GID do processo que criou o pacote
--pid-owner pidEspecifica o número do processo que criou o pacote
--sid-owner sessionidEspecifica o número da sessão (grupo de processos) que criou o pacote
s §
(C) 2011 HMarx 80 / 98
iptables
Especificações
-i [ ! ] interfaceEspecifica a interface de entrada (de onde veio o pacote)
-o [ ! ] interfaceEspecifica a interface de saída (para onde irá o pacote)
--mac-source [ ! ] endereçoEspecifica o porto ou faixa de portos de origem
--icmp-type [ ! ] tipoEspecifica o tipo do pacote ICMP
s
(C) 2011 HMarx 81 / 98
iptablesEspecificações
--tcp-flags [ ! ] máscara ativosEspecifica 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
[ ! ] synEspecifica 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úmerEspecifica o número máximo inicial de pacotes. O default é 5.
s
(C) 2011 HMarx 82 / 98
iptablesEspecificaçõ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
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
s § ðs
(C) 2011 HMarx 83 / 98
iptablesOpções do destino MARK--set-mark marca
Opções do destino REJECT--reject-with tipo
O tipo pode ser:icmp-net-unreachable echo-replyicmp-host-unreachable tcp-reseticmp-port-unreachableicmp-proto-unreachableicmp-net-prohibitedicmp-host-prohibited
Opções do destino TOS--set-tos tos (veja iptables -j TOS -h)
ss ððððððs
(C) 2011 HMarx 84 / 98
iptablesEspecificações
--state state { [, state ] } *
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)
ss
(C) 2011 HMarx 85 / 98
iptablesEspecificações
--ttl ttlEspecifica o TTL do pacote
--ttl-set ttlEstabelece novo TTL do pacote
--ttl-dec ttlDecrementa o TTL do pacote
--ttl-inc ttlIncrementa o TTL do pacote
TTL = Time to liveSomente é válido para a tabela mangle !
s F
(C) 2011 HMarx 86 / 98
iptablesEspecificações
Opções do destino SNAT--to-source endereço [- endereço ] [ :porto [- porto ]]
Opções do destino DNAT--to-destination endereço [-endereço ] [ :porto [ - porto ]]
Opções dos destinos MASQUERADE ou REDIRECT--to-ports porto [ - porto ]
ssss
(C) 2011 HMarx 87 / 98
Exemplos
Tabelas sem regrass# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination # r
(C) 2011 HMarx 88 / 98
Cadeia com algumas regras
# iptables -L PREROUTING -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:2222 to:192.168.200.41:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:21211 to:192.168.200.190:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:2227 to:192.168.200.7:22 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:59023 to:192.168.200.5:23 DNAT tcp -- 0.0.0.0/ 192.168.200.3 tcp dpt:59023 to:192.168.200.5:23 DNAT tcp -- 0.0.0.0/0 201.17.146.157 tcp dpt:59021 to:192.168.200.5:21 DNAT tcp -- 0.0.0.0/0 192.168.200.3 tcp dpt:59021 to:192.168.200.5:21 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:11113 to:192.168.200.190:11113 DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:11113 to:192.168.200.200:11113 # r
(C) 2011 HMarx 89 / 98
VPN
Virtual Private Networkautenticação e criptografiaIPsec - IP security
/etc/ipsec.conf e /etc/ipsec.secrets
Outras formasSSL, PPP + SSH, PPTP, tunnel SSH, ...
s §§ ħ ð Modelo de conexão VPN
tunel seguro
(C) 2011 HMarx 90 / 98
Logs
Registro de ocorrênciasevento e instantekernel, serviços e aplicativos
Acompanhamentodmesg (kernel)/var/log/* e /var/log/serviço/*
Monitoramento e análisetailmonit, mon, nagios, ...emails p/ o root
s §§s §§s §§§
(C) 2011 HMarx 91 / 98
Logs do firewall
Mar 27 11:48:18 thor kernel: SFW2-INext-ACC-TCP IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=87.176.79.74 DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=112 ID=20424 DF PROTO=TCP SPT=1283 DPT=25 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (020404EC01010402)
Mar 27 11:58:22 thor kernel: SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=187.115.202.240 DST=201.17.146.157 LEN=76 TOS=0x00 PREC=0x00 TTL=58 ID=23151 DF PROTO=UDP SPT=16117 DPT=123 LEN=56
Mar 27 13:03:57 thor kernel: BAD IP IN=eth0 OUT= MAC=00:00:e8:4d:4f:a7:00:13:5f:05:67:05:08:00 SRC=119.200.73.225 DST=201.17.146.157 LEN=48 TOS=0x00 PREC=0x00 TTL=104 ID=31668 DF PROTO=TCP SPT=2510 DPT=25 WINDOW=65535 RES=0x00 SYN URGP=0
Mar 27 15:37:14 thor kernel: SFW2-FWDint-DROP-DEFLT-INV IN=eth1 OUT=eth0 SRC=192.168.200.41 DST=186.193.48.241 LEN=120 TOS=0x00 PREC=0x00 TTL=63 ID=30632 DF PROTO=TCP SPT=47851 DPT=15354 WINDOW=92 RES=0x00 ACK PSH FIN URGP=0 OPT (0101080A039FB0BA00000000)
(C) 2011 HMarx 92 / 98
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 93 / 98
Logs de e-mails
Mar 24 17:07:27 thor sendmail[20124]: p2OK7JCw020124: from=<[email protected]>, size=269275, class=0, nrcpts=1, msgid=<[email protected]>, 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=<[email protected]>, 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 94 / 98
Sumário das ferramentasSessões, conexões e transações segura
ssh, scp, sftpVPNhttpscertificados digitaispgp
Limitando privilégios locaispassword agingulimitinetd c/ tcpd ou xinetdprocessos chrootedquota em sistemas de arquivospermissões de objetos (chmod)ACLs
s §§§§§s §§§§§§§
(C) 2011 HMarx 95 / 98
Ferramentas para gerenciamentoMonitoração de tráfego de rede
iptraftcpdumpsnortethereal / wiresharkSNMP
Monitoração de atividades no servidorwho, w, rwho - usuários com sessões abertasps, pstree - processos em execuçãolsof, fuser - arquivos e sockets abertosnetstat - conexões potenciais e ativasnmap - serviços acessíveis (portos abertos)rpcinfo - processos RPCw, top, free, df, du - uso de CPU, memória e disco
s §§§§§s §§§§§§§
(C) 2011 HMarx 96 / 98
PlanejamentoConfiguração dos serviços
Confiançausuários e root
Senhas fortesTroca periódica
Software Livre é seguro
§ ð§ ð Ä F§ !!
Conclusões
(C) 2011 HMarx 97 / 98
DúvidasCuriosidadesDúvidasCuriosidades??
(C) 2011 HMarx 98 / 98
Obrigado !Hélio Marques [email protected]