seguranca em servidores linux

56
@alessssilva Segurança em Servidores Linux Segurança em Servidores Linux Segurança em Servidores Linux Por Alessandro Silva

Upload: alessandro-silva

Post on 25-May-2015

684 views

Category:

Technology


3 download

DESCRIPTION

Seguranca em Servidores Linux

TRANSCRIPT

Page 1: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores LinuxSegurança em Servidores LinuxSegurança em Servidores LinuxPor Alessandro Silva

Page 2: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Sobre o palestranteSobre o palestrante

● Bacharel em Informática e Especialista em TI Aplicada a Educação pelo NCE/UFRJ.

● Pós-graduando em Gerência de Segurança da Informação – NCE/UFRJ

● Mais de 10 anos na indústria de TI

● Certificações: LPIC-3, RHCE, RHCSA, Novell CLA e DCTS, Zabbix Certified Specialist e Zabbix for Large Enviroments.

● Desde 2011 trabalhando com projetos de monitoração com Zabbix.

● Principais interesses:

● Linux e Certificações● Segurança● Zabbix● Drupal

Page 3: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

AgendaAgenda

● Hardening da Instalação

● Mecanismos de proteção

● Controle de acessos

● Fortalecendo serviços

● Soluções de segurança para Linux

● Planejamento do ambiente seguro

● Hardening de Kernel

● Monitoramento

● Planos de Contingência e Recuperação de Desastres

● Certificações em Segurança para Linux

Page 4: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Disponibilidade

O que queremos proteger?O que queremos proteger?

Confidencialidade Integridade

Page 5: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Segurança na Instalação

Page 6: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Se existe acesso físico à máquina, a segurança é inexistente!

● Acesso ao servidor

– Rack

– Segurança física e controle de acesso

● Fonte redundante

● No-break

● Desabilitar periféricos não usados no setup

● Senha no setup

● Implementar RAID para redundância

– Preferencialmente por hardware (performance)

Page 7: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Escolha sua distribuição!

– Confiabilidade

– Suporte

– Atualização

– Estabilidade

Page 8: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Qual a fonte da imagem ISO?

– Instalação Minimal/Netinstall

● Particionamento dos discos

– Planejamento do particionamento● Diminui o tempo de acesso aos dados● Facilita a recuperação de desastres● Minimiza problemas de indisponibilidade por espaço em disco

● Swap

– Prefira não usar. Se não tiver escolha, usar SSD!

Page 9: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Particionamento dos discos

– Para garantir extensibilidade, use LVM!

root@myserver [~]# df -hSist. Arq. Tam Usad Disp Uso% Montado em/dev/sda5 7,8G 1,1G 6,4G 14% //dev/sda8 383G 82G 282G 23% /home/dev/sda6 4,9G 139M 4,5G 3% /tmp/dev/sda3 25G 7,6G 16G 34% /usr/dev/sda2 30G 4,5G 24G 17% /var/dev/sda1 996M 51M 894M 6% /boottmpfs 1009M 0 1009M 0% /dev/shm/dev/sdb1 459G 360G 76G 83% /backup

Page 10: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Instale apenas os pacotes necessários

● Pacotes do sistema precisam vir de fonte segura

Page 11: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

InstalaçãoInstalação

● Proteja o gerenciador de boot (Grub) com senha

Page 12: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Segurança no Acesso à RedeSegurança no Acesso à Rede

● Retirar a máquina da rede

● Identificar os serviços com suporte

● Alterar a configuração do sistema de modo que apenas os serviços necessários estejam ativos

– Dependência

● Reinicializar o sistema

● Verificar se serviços desnecessários estão sendo executados

● Retornar a máquina à rede e verificar a conectividade

Page 13: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Fortalecimento pós-instalação

Page 14: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Configurações Pós-instalaçãoConfigurações Pós-instalação

INITTAB● Controlando terminais

– 1:2345:respawn:/sbin/getty 38400 tty1

– 2:23:respawn:/sbin/getty 38400 tty2

– 3:23:respawn:/sbin/getty 38400 tty3

– 4:23:respawn:/sbin/getty 38400 tty4

– 5:23:respawn:/sbin/getty 38400 tty5

– 6:23:respawn:/sbin/getty 38400 tty6

● Alterando comportamento

– ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

● Definir o RunLevel default

Page 15: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Ativando e desativando serviçosAtivando e desativando serviços

● Debian

– rcconf

– chkconfig

● Red Hat

– ntsysv

– chkconfig

root@thinktoy:/home/alessandro# chkconfig --list apache2apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Page 16: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Ativando e desativando serviçosAtivando e desativando serviços

● Debian

– rcconf

– chkconfig

● Red Hat

– ntsysv

– chkconfig

root@thinktoy:/home/alessandro# chkconfig --list apache2apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Page 17: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Ativando e desativando serviçosAtivando e desativando serviços

HTOP ( Hisham's Top) – Criado por um brasileiro

● netstat● ps● top, htop, nmon● lsof, pgrep

NMON

Page 18: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Ativando e desativando serviçosAtivando e desativando serviços

root@myserver [~]# netstat -tnap Conexões Internet Ativas (servidores e estabelecidas)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:40001 0.0.0.0:* OUÇA 6041/java tcp 0 0 0.0.0.0:1 0.0.0.0:* OUÇA 4904/portsentry tcp 0 0 0.0.0.0:993 0.0.0.0:* OUÇA 4332/dovecot tcp 0 0 0.0.0.0:10050 0.0.0.0:* OUÇA 4017/zabbix_agentd tcp 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 2412/httpd tcp 0 0 0.0.0.0:995 0.0.0.0:* OUÇA 4332/dovecot

root@myserver [~]# netstat -napuConexões Internet Ativas (servidores e estabelecidas)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 184.172.190.78:53 0.0.0.0:* 3561/named udp 0 0 184.172.190.79:53 0.0.0.0:* 3561/named udp 0 0 184.172.190.80:53 0.0.0.0:* 3561/named

TCP

UDP

Page 19: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Limitando os recursosLimitando os recursos

● Limitando o acesso root aos terminais

– /etc/securetty

● Forçar logout para o usuário

– .bashrc ou /etc/profile

● TMOUT=360

● Limitando o acesso aos recursos

– /etc/security/limits.conf

– Evite o forkbomb

● :(){ :|: &};:

Page 20: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Limitando os recursosLimitando os recursos

● Máximo de processos executados simultaneamente

● Tempo máximo de utilização da CPU

● Máximo de arquivos que podem ser criados pelo usuário

root@thinktoy:/home/alessandro# ulimit -u46601

root@thinktoy:/home/alessandro# ulimit -tUnlimited

root@thinktoy:/home/alessandro# ulimit -funlimited

Page 21: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Firewalls e FiltrosFirewalls e Filtros

● Servir como separação entre sua rede e a Internet

● Permitir o uso legítimo da rede

● Impedir tráfego indevido ao servidor (malicioso)

● Iptables

– Avaliação

– Busca de regras existentes

● # iptables -nL

– Identificação das necessidades de proteção

– Definição da estratégia

Page 22: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Firewalls e FiltrosFirewalls e Filtros

Ferramenta de administração do Firewall no Red Hat

Page 23: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Firewalls e FiltrosFirewalls e Filtros

● Endian

● Smoothwall

● BrasilFW

● Vyatta

● ClearOS

● Untangle

● PFSense (Free BSD)

Page 24: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Firewalls e FiltrosFirewalls e Filtros

● Utilização de Proxy

– Performance

– Controle de acesso

● Autenticação e autorização● Filtro de conteúdo (por página, por usuário...)● Relatórios de acessos com SARG

Page 25: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

TCP WrappersTCP Wrappers

● TCP Wrapers

– Ferramenta para autorizar ou negar acesso aos serviços.

– Utiliza a biblioteca Libwrap

– Para fins de controle utiliza os arquivos:

● /etc/hosts.allow● /etc/hosts.deny

– Pode ser utilizada em conjunto com firewall

Page 26: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Controle de AcessosControle de Acessos

● MAC (Mandatory Access Control)

– SELINUX (Security-Enhanced Linux)

– Padrão no Red Hat Enterprise Linux

● DAC (Discricionary Access Control)

– Chmod

– Chattr

● ACL (Access Control List)

– Filesystem

Page 27: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

● Permissões

● Permissões especiais

– SUID, SGID e Stick bit

● Atributos

– chattr, lsattr

● Revisão nos controles de acesso

● SUDO

root@thinktoy:/home/alessandro# find / -type d -perm -1000 -ls6422529 4 drwxrwxrwt 20 root root 4096 Jun 13 12:20 /tmp6438915 4 drwxrwxrwt 2 root root 4096 Jun 13 12:19 /tmp/.ICE-unix

Controle de AcessosControle de Acessos

Page 28: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

AuditoriaAuditoria

● Visualizando os últimos comandos

– apt-get install Acct

– lastcomm

● Registrando todos os comandos

– apt-get install snoopy

– tail -f /var/log/auth

root@thinktoy:~# lastcomm root ls root pts/2 0.00 secs Sat Jun 22 13:30cat root pts/2 0.00 secs Sat Jun 22 13:30bash F root pts/2 0.00 secs Sat Jun 22 13:30ifconfig root pts/2 0.00 secs Sat Jun 22 13:29apt-get root pts/2 2.03 secs Sat Jun 22 13:29dpkg root pts/2 0.00 secs Sat Jun 22 13:29

Page 29: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

AuditoriaAuditoria

Política de senhas

PASS_MAX_DAYS 99999PASS_MIN_DAYS 0PASS_WARN_AGE 7LOGIN_RETRIES 5LOGIN_TIMEOUT 60LOGIN_TIMEOUT 60

/etc/login.defs

Última mudança de senha : Mar 16, 2013Senha expira : nuncaSenha inativa : nuncaConta expira : nuncaNúmero mínimo de dias entre troca de senhas : 0Número máximo de dias entre troca de senhas : 99999Número de dias de avisos antes da expiração da senha : 7

root@thinktoy:/home/alessandro# chage -l alessandro

Page 30: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

AuditoriaAuditoria

root@espiritolivre [~]# whoroot pts/0 2013-06-29 12:53 (186.241.100.67)root pts/1 2013-06-29 12:08 (200.97.200.182)

root@espiritolivre [~]# lastroot pts/0 186.241.219.201 Sat Jun 29 12:53 still logged in root pts/1 200.97.237.48 Sat Jun 29 12:08 still logged in root pts/0 146.164.2.145 Wed Jun 26 10:37 - 11:45 (01:07) root pts/0 173.193.65.163 Tue Jun 25 16:23 - 16:26 (00:03)

Who

Last

Page 31: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Segurança no Armazenamento de DadosSegurança no Armazenamento de Dados

● OpenSSL

● GPG

– Útil para validar a autenticidade e integridade dos pacotes

● Criptografia do Filesystem

– Um notebook do EB foi esquecido em um taxi com informações confidenciais. E agora?

puppy# gpg --verify gnupg-1.2.4.tar.bz2.siggpg: Signature made Wed 24 Dec 2003 07:24:58 EST using DSA key ID 57548DCDgpg: Good signature from "Werner Koch (gnupg sig) <[email protected]>"gpg: checking the trustdbgpg: no ultimately trusted keys foundgpg: WARNING: This key is not certified with a trusted signature! There is no indication that the signature belongs to the owner.Fingerprint: 6BD9 050F D8FC 941B 4341 2DCC 68B7 AB89 5754 8DCD

Page 32: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Segurança no Armazenamento de DadosSegurança no Armazenamento de Dados

● Backup

● Estratégia de backup

– Storage, fita …

– Rotina de backup

– Software para backup

● Bacula● Amanda

Page 33: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Autenticação de usuários e gruposAutenticação de usuários e grupos

● PAM

● OpenLDAP

● Politica de controle de acesso

– Existe processo para desabilitar um usuário desligado da empresa?

● Política de senhas

– Senhas seguras com letras, números e caracteres especiais

– Evitar senhas do tipo: empresa@2013, 123qwe, 123456, etc.

– Senhas conhecidas por constarem em wordlists

● Engenharia social

Page 34: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Serviços – Alguns dos riscosServiços – Alguns dos riscos

● Serviços inseguros

– Denial of Service Attack (DoS)

– Distributed Denial of Service Attack (DDoS)

– Script Vunerability Attacks

– Buffer Overflow Attacks

Page 35: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Serviços – SSHServiços – SSH

● Manter atualizado!

● Acesso remoto ao shell dos servidores

● Tráfego criptografado

● Faz tunelamento com segurança

● Autenticação por senha ou certificado

● Indispensável para SysAdmins Linux

Page 36: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Serviços – SSHServiços – SSH

● /etc/ssh/sshd_config

● USE CHAVES!!!

Port 22Protocol 2PermitRootLogin yesLoginGraceTime 60PermitEmptyPasswords noAllow users tux linusBanner /etc/issue

Page 37: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Serviços – SSHServiços – SSH

● Banner de boas-vindas

– /etc/issue e /etc/issue.net

root@APPTDO43SPOAS:~# cat /etc/issue.net

Debian GNU/Linux 6.0

● Configure no SSH

– /etc/ssh/sshd_config

Banner /etc/issue

● Conceito deve ser aplicado a outros serviços

Page 38: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

FTP - VSFTPDFTP - VSFTPD

● VSFTPD (Very Secure FTP Daemon)

● Existem várias soluções

– ProFTPD, Pure-Ftpd, etc.● Performance

● Estabilidade

● Amplamente utilizado

● Manter atualizado!

● Enjaular (CHROOT)

Page 39: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

FTP - VSFTPDFTP - VSFTPD

● ftpd_banner=FTP Server

– Esconder banner

● anonymous_enable=NO

– Desabilita o login anônimo

● write_enable=YES

– Permite que o usuário grave informações

● userlist_enable=YES

– userlist_file=/etc/vsftpd.allowed_users

● chroot_local_user=YES

– Enjaule usuários

Page 40: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

FTP - VSFTPDFTP - VSFTPD

● Controle de acesso

– /etc/ftpusers

● Prevenindo ataques de DoS

– ls_recurse_enable=NO

– max_clients=200

– max_per_ip=4

● FTP com SSL

Page 41: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Web ServerWeb Server

● Manter o software atualizado!

● Adicionar suporte a conexões criptografadas

● Observar os módulos de segurança disponíveis

– Mod_security, mod_evasive, mod_access, mod_authz

● Ajuste das configurações adequadamente

● Diretórios restritos

– .htaccess e htpasswd

● Testar as configurações antes de aplicar em produção

– apachectl configtest

– apachectl graceful!

Page 42: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Syslog CentralizadoSyslog Centralizado

SysAdmin

E-mail

Servidor de Syslog

Page 43: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Tunando o KernelTunando o Kernel

● /proc/sys/net/ipv4/tcp_syncookies

– Tenta evitar SYN ATACK que causa uma negação de serviço

● /proc/sys/net/ipv4/ip_default_ttl

– Engana o “OS guessing” em scans

● /proc/sys/net/ipv4/icmp_echo_ignore_all

– Bloqueio de pacotes ICMP

● /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

– Ignora mensagens enviadas para brodcast

● /proc/sys/net/ipv6/conf/all/disable_ipv6

– Desabilita IPV6

Page 44: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Software de apoio a HardeningSoftware de apoio a Hardening

● Fortalecimento da instalação

– Bastile

– Harden

Page 45: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Gestão de AtualizaçõesGestão de Atualizações

● Aplicar atualizações

– A maior parte dos ataques bem-sucedidos ocorrem em softwares não atualizados

● Monitoramento após a aplicação

● Gestão de mudanças

● Viabilidade

Page 46: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Monitoramento da InfraestruturaMonitoramento da Infraestrutura

● Possíveis Modelos

- Versões enterprise e community

- Tudo incluído

● Open Source de verdade

● Sem add-ons proprietários● Sem versões enterprise ou demo

Page 47: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

MonitoramentoMonitoramento

Notificações

ControleCentralizado

ConfiguraçãoStatusChecagens

Monitoração SNMP

Monitoração com agente

Monitoração com ping e porta

Dispositivos monitorados

Dispositivos de rede

Servidores com Agente Zabbix

Servidores sem Agente Zabbix

Page 48: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Soluções de Segurança para LinuxSoluções de Segurança para Linux

● TCPDUMP

● Wireshark

● Ngrep

● Ethereal

● Snort

● Tripwire

● Aide

● Netcat

● Nmap

● John the Ripper

● OpenVAS

● CHKRootkit

● OpenVPN

● Backtrack Linux

Page 49: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

BIA - Business Impact AnalisysBIA - Business Impact Analisys

● Quanto tempo pode ficar parado em caso de um incidente?

● Qual o impacto da indisponibilidade no negócio?

● Quais os requisitos mínimos para retorno a normalidade?

● Há contingência?

● Em caso de um desastre, qual o tempo necessário para retorno a normalidade?

Page 50: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Planejamento do ambientePlanejamento do ambiente

● Quais serviços serão hospedados?

● Qual os níveis de acesso?

● Quantos usuários terão acesso?

– Quantos simultâneos?

● Qual a criticidade do servidor?

Page 51: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

PCO – Plano de ContingênciaPCO – Plano de Contingência

● Quais os componentes mínimos para manutenção dos serviços do servidor até o retorno a normalidade?

● Contingência não significa 100% de funcionamento

– 100% significa redundância!

● Contingência pode ser “não fazer nada”

● Contingência pode ser ...

Page 52: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

PRD – Plano de Recuperação de DesastresPRD – Plano de Recuperação de Desastres

● Aplicado ao componente

● Construir ou não um kernel personalizado?

● Kickstart

● Clonezilla

Page 53: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Especialista em Segurança - LinuxEspecialista em Segurança - Linux

LPIC-2LPIC-1 LPIC-3

Provas 101 e 102 Provas 201 e 202 Prova 301 (core)

LPIC-3 (Especialização)

Security Speciaslist

Certificação LPICertificação LPI

Prova 303

Page 54: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Certificação em Segurança - LinuxCertificação em Segurança - Linux

RHCSA

RHCERHCE

RHCSARHCSA

RH429RH429

RH423RH423

RH333RH333Network Services

Directory Services

SELINUX

Certificação Red HatCertificação Red Hat

Page 55: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

ReferênciasReferências

● Hardening Linux – Packet Publisher

● Segurança para Linux, Mc Grall Hill

● Backtrack Linux – Auditora de teste de invasão, CM

● Guia de Segurança do RHEL

● Palestra: Certificação em Linux: O que é e como se certificar

● Palestra: Monitoramento de Infraestrutura com Zabbix

Page 56: Seguranca em Servidores Linux

@alessssilva

Segurança em Servidores Linux

Obrigado!Obrigado!

Alessandro Silva

E-mail: [email protected]: http://alessandrosillva.info/facebookTwitter: http://alessandrosilva.info/twitterLinkedin: http://alessandrosilva.info/linkedin