Não espere seu sistema ser invadido para torná-lo a prova de balas. Antecipe-se e tome as medidas preventivas para proteger seus dados, sistemas e sua reputação profissional. Conheça alguns dos principais recursos para fortalecer a segurança de servidores Linux e minimizar riscos e ameaças de possíveis invasões.
2. Sobre o Palestrante
● Bacharel em Informática e Especialista em TI aplicada à Educação - UFRJ
● Pós-graduando em Gerência da Segurança da Informação – UFRJ
● Especialista em Linux com mais de 10 anos na indústria de TI
● Certificações:
● RHCE - Red Hat Certified Engineer
● RHCSA -Red Hat Certified System Administrator
● LPIC-1, LPIC-2 e LPIC-3
✔ Novell CLA e Datacenter Technical Specialist
✔ Zabbix Certified Specialist e Zabbix for Large Environments
● Idealizador dos eventos: Fsldc e LinuxinRio
● Technical Account Manager na Red Hat
SEGURANÇA EM SERVIDORES LINUX | 2 ALESSANDRO SILVA
3. Agenda
● O que queremos proteger?
● Segurança física e controle de acesso
● Fortalecimento da Instalação
● Gerenciamento do sistema
● Auditoria
● Segurança nos serviços
● Tunando o kernel
● Planejamento de contingência e recuperação de desastres
● Considerações finais
SEGURANÇA EM SERVIDORES LINUX | 3 ALESSANDRO SILVA
4. Liderança e inovação com código aberto
SEGURANÇA EM SERVIDORES LINUX | 5 ALESSANDRO SILVA
5. O que queremos proteger?
Disponibilidade
Confidencialidade
Integridade
SEGURANÇA EM SERVIDORES LINUX | 6 ALESSANDRO SILVA
7. Segurança física e controle de acesso
● Se existe acesso físico à máquina, a segurança é inexistente!
● Acesso ao servidor
✔ Rack
✔ Acesso físico e controle de acesso
● Proteja o BIOS/UEFI
✔ Prevenção de mudanças
✔ Evita boot não autorizado
● Desabilitar periféricos não usados
● No-break, fonte redundante...
● RAID
SEGURANÇA EM SERVIDORES LINUX | 8 ALESSANDRO SILVA
8. Instalação
● Escolha sua distribuição
✔ Confiabilidade
✔ Suporte
✔ Atualização
✔ Estabilidade
SEGURANÇA EM SERVIDORES LINUX | 9 ALESSANDRO SILVA
9. Instalação
● Qual a fonte da imagem ISO?
✔ Instalação Minimal/Basic
● 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!
SEGURANÇA EM SERVIDORES LINUX | 10 ALESSANDRO SILVA
10. Instalação
● Use LVM!
● /boot
✔ Kernel, Grub, ...
✔ Não deve ser encriptada
● /home
✔ Dados dos usuários
● /var/tmp e /tmp
✔ Arquivos temporários
✔ Não são armazenados por longo período.
SEGURANÇA EM SERVIDORES LINUX | 11 ALESSANDRO SILVA
11. Instalação
● Instale apenas os pacotes necessários
● Pacotes do sistema precisam vir de fontes seguras
SEGURANÇA EM SERVIDORES LINUX | 12 ALESSANDRO SILVA
12. Instalação
● Proteja o gerenciador de boot (Grub) com senha
SEGURANÇA EM SERVIDORES LINUX | 13 ALESSANDRO SILVA
13. Pós-instalação
Já posso entrar em produção?
SEGURANÇA EM SERVIDORES LINUX | 14 ALESSANDRO SILVA
14. Atualização do sistema
● Atualização completa do sistema
✔ yum update
● Checagem de erratas
✔ yum checkupdate
security
● Aplicando as erratas
✔ yum update security
SEGURANÇA EM SERVIDORES LINUX | 15 ALESSANDRO SILVA
15. Serviços: Quais devem estar ativos?
● Apenas os serviços necessários!
✔ ntsysv
✔ chkconfig
✔ systemctl
● # systemctl list-unit-files
● # systemctl disable httpd
root@myserver:/home/alessandro# chkconfig list
httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
SEGURANÇA EM SERVIDORES LINUX | 17 ALESSANDRO SILVA
16. Serviços: Quais devem estar ativos?
TCP
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
UDP
root@myserver [~]# netstat -napu
Conexões Internet Ativas (servidores e estabelecidas)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
Udp 0 0 192.168.10.78:53 0.0.0.0:* 3561/named
udp 0 0 192.168.10.79:53 0.0.0.0:* 3561/named
udp 0 0 192.168.10.80:53 0.0.0.0:* 3561/named
SEGURANÇA EM SERVIDORES LINUX | 18 ALESSANDRO SILVA
17. Serviços: performance x segurança
● ps, netstat
● top, htop, nmon
● lsof, pgrep
● systemtap
SEGURANÇA EM SERVIDORES LINUX | 19 ALESSANDRO SILVA
18. Limitando 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
● :(){ :|: &};:
SEGURANÇA EM SERVIDORES LINUX | 20 ALESSANDRO SILVA
19. Limitando os recursos
● Máximo de processos executados simultaneamente
root@myserver:/home/alessandro# ulimit u
46601
● Tempo máximo de utilização da CPU
root@myserver:/home/alessandro# ulimit t
Unlimited
● Máximo de arquivos que podem ser criados pelo usuário
root@myserver:/home/alessandro# ulimit f
unlimited
SEGURANÇA EM SERVIDORES LINUX | 21 ALESSANDRO SILVA
20. Gereciamento do Sistema
Como você aplica seus patches de segurança?
SEGURANÇA EM SERVIDORES LINUX | 22 ALESSANDRO SILVA
21. Equipe de Resposta a Incidentes
● ERISI
● CSIRT (Computer Security Incident Response Team)
● Investiga e analisa questões relacionadas a segurança de
software
● Analisa quais produtos são afetados, seus impactos e
contramedidas
● Publicação de erratas
✔ Severidades
✔ Impactos
✔ CVE ( Common Vulnerabilities and Exposures)
SEGURANÇA EM SERVIDORES LINUX | 23 ALESSANDRO SILVA
22. CVE
● Formato padronizado para notificação e acompanhamento de
questões de segurança relacionadas a software.
● Mantido pela empresa MITRE Corporation
● Common Vulnerability Scoring System (CVSS)
● Severidades
✔ Crítica
✔ Importante
✔ Moderada
✔ Baixa
SEGURANÇA EM SERVIDORES LINUX | 24 ALESSANDRO SILVA
23. Erratas
● Red Hat Security Advisory (RHSA)
● Red Hat Bug Fix Advisory (RHBA)
● Red Hat Enhancement Advisory (RHEA)
SEGURANÇA EM SERVIDORES LINUX | 25 ALESSANDRO SILVA
24. Como funciona na prática?
SEGURANÇA EM SERVIDORES LINUX | 26 ALESSANDRO SILVA
26. YUM Security Plugin – Verificando erratas
# yum updateinfo
Loaded plugins: productid,
refreshpackagekit,
rhnplugin,
security, subscriptionmanager
This system is not registered to Red Hat Subscription Management.
You can use subscriptionmanager
to register.
This system is receiving updates from RHN Classic or RHN
Satellite.
rhelx86_
64server6/
updateinfo
| 2.1 MB 00:22
Updates Information Summary: available
42 Security notice(s)
5 Critical Security notice(s)
15 Important Security notice(s)
7 Low Security notice(s)
15 Moderate Security notice(s)
143 Bugfix notice(s)
13 Enhancement notice(s)
updateinfo summary done
SEGURANÇA EM SERVIDORES LINUX | 28 ALESSANDRO SILVA
27. Kpatch: dynamic kernel patching
● Permitirá a aplicação de um patch no kernel sem necessidade
de reboot do servidor ou restart de qualquer processo.
● SysAdmins poderão aplicar erratas de segurança críticas
sem precisar de janelas de manutenção.
● Maior controle de uptime sem sacrificar:
✔ Segurança
✔ Disponibilidade
✔ Estabilidade
● Encontra-se em desenvolvimento:
✔ https://github.com/dynup/kpatch
SEGURANÇA EM SERVIDORES LINUX | 29 ALESSANDRO SILVA
28. Gestão de Atualizações
● Aplicar atualizações
✔ A maior parte dos ataques ocorrem em softwares não atualizados
● Monitoramento após a aplicação
● Gestão de mudanças
● Viabilidade
SEGURANÇA EM SERVIDORES LINUX | 30 ALESSANDRO SILVA
29. Red Hat Network Satellite
SEGURANÇA EM SERVIDORES LINUX | 31 ALESSANDRO SILVA
30. Monitoramento
Notificações
Controle
Centralizado
Configuração
Status
Checagens
Monitoração SNMP
Monitoração com agente
Monitoração com ping e porta
Dispositivos monitorados
SEGURANÇA EM SERVIDORES LINUX | 32 ALESSANDRO SILVA
Dispositivos de rede
Servidores com
Agente Zabbix
Servidores sem
Agente Zabbix
31. Controle de Acesso
Esteja no controle da administração de sistemas
SEGURANÇA EM SERVIDORES LINUX | 33 ALESSANDRO SILVA
32. Firewall
● 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
● Identificação das necessidades de proteção
● Definição da estratégia
SEGURANÇA EM SERVIDORES LINUX | 34 ALESSANDRO SILVA
33. Firewall
Ferramenta de administração do Firewall no Red Hat 6
SEGURANÇA EM SERVIDORES LINUX | 35 ALESSANDRO SILVA
34. Proxy 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
SEGURANÇA EM SERVIDORES LINUX | 36 ALESSANDRO SILVA
35. TCP Wrappers
● 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
✔ Usado em conjunto com o firewall
sshd : client1.
example.com : allow
sshd : client2.
example.com : deny
SEGURANÇA EM SERVIDORES LINUX | 37 ALESSANDRO SILVA
36. Controle de acesso
● 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
SEGURANÇA EM SERVIDORES LINUX | 38 ALESSANDRO SILVA
37. Controle de acesso
● Permissões
● Permissões especiais
✔ SUID, SGID e Stick bit
● Atributos
✔ chattr, lsattr
● Revisão nos controles de acesso
root@myserver:/home/alessandro# find / type
d perm
1000
ls
● SUDO
SEGURANÇA EM SERVIDORES LINUX | 39 ALESSANDRO SILVA
38. Auditoria: Use o Audit!
● Mecanismo para rastrear informações de segurança relevantes
com base em regras pré-definidas.
● Útil para avaliar a violação da política de segurança e ações
realizadas no sistema.
● Audit não provê segurança adicional
● Os eventos são armazenados em logs
● Possíveis violações podem ser evitadas com medidas
preventivas com base na análise dos logs.
● Desenhado para atender padrões de segurança:
- Payment Card Industry — Data Security Standard (PCI-DSS)
SEGURANÇA EM SERVIDORES LINUX | 40 ALESSANDRO SILVA
39. Auditoria: Satellite + OpenSCAP
● Varredura
● Relatórios
● Análise de conformidade
● Audit
SEGURANÇA EM SERVIDORES LINUX | 41 ALESSANDRO SILVA
40. Auditoria: política de login/senhas
root@myserver:/home/alessandro# chage l
alessandro
Última mudança de senha : Mar 16, 2013
Senha expira : nunca
Senha inativa : nunca
Conta expira : nunca
Número mínimo de dias entre troca de senhas : 0
Número máximo de dias entre troca de senhas : 99999
Número de dias de avisos antes da expiração da senha : 7
/etc/login.defs
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
LOGIN_RETRIES 5
LOGIN_TIMEOUT 60
LOGIN_TIMEOUT 60
SEGURANÇA EM SERVIDORES LINUX | 42 ALESSANDRO SILVA
41. Auditoria
Who
root@myserver[~]# who
root pts/0 20130629
12:53 (192.168.0.50)
root pts/1 20130629
12:08 (192.168.0.53)
Last
root@myserver [~]# last
root pts/0 192.168.0.50 Sat Jun 29 12:53 still logged in
root pts/1 192.168.0.51 Sat Jun 29 12:08 still logged in
root pts/0 192.168.0.52 Wed Jun 26 10:37 11:
45 (01:07)
root pts/0 192.168.0.53 Tue Jun 25 16:23 16:
26 (00:03)
SEGURANÇA EM SERVIDORES LINUX | 43 ALESSANDRO SILVA
42. Seguranç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?
# gpg verify
gnupg1.2.4.
tar.bz2.sig
gpg: Signature made Wed 24 Dec 2003 07:24:58 EST using DSA key ID 57548DCD
gpg: Good signature from "Werner Koch (gnupg sig) <dd9jn@gnu.org>"
gpg: checking the trustdb
gpg: no ultimately trusted keys found
gpg: 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
SEGURANÇA EM SERVIDORES LINUX | 44 ALESSANDRO SILVA
43. Segurança no Armazenamento de Dados
● Backup
● Estratégia de backup
✔ Storage, fita …
✔ Rotina de backup
✔ Software para backup
● Bacula
● Amanda
SEGURANÇA EM SERVIDORES LINUX | 45 ALESSANDRO SILVA
44. Autenticaçã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@2014, 123qwe, 123456, etc.
✔ Senhas conhecidas por constarem em wordlists
● Engenharia social
SEGURANÇA EM SERVIDORES LINUX | 46 ALESSANDRO SILVA
45. Segurança nos Serviços
Pontos de atenção, riscos e ameaças
SEGURANÇA EM SERVIDORES LINUX | 47 ALESSANDRO SILVA
46. Serviços – Alguns dos riscos
● Serviços inseguros
✔ Denial of Service Attack (DoS)
✔ Distributed Denial of Service Attack (DDoS)
✔ Script Vunerability Attacks
✔ Buffer Overflow Attacks
SEGURANÇA EM SERVIDORES LINUX | 48 ALESSANDRO SILVA
47. Serviços – SSH
● Manter atualizado!
● Acesso remoto ao shell dos servidores
● Tráfego criptografado
● Faz tunelamento com segurança
● Autenticação por senha ou chave
● Indispensável para SysAdmins
SEGURANÇA EM SERVIDORES LINUX | 49 ALESSANDRO SILVA
48. Serviços – SSH
● /etc/ssh/sshd_config
Port 22
Protocol 2
PermitRootLogin no
LoginGraceTime 60
PermitEmptyPasswords no
Allow users tux linus
Banner /etc/issue
● Use chaves!
✔ ssh-keygen
✔ ssh-copy-id
SEGURANÇA EM SERVIDORES LINUX | 50 ALESSANDRO SILVA
49. Serviços – SSH
● Banner de boas-vindas
● /etc/issue e /etc/issue.net
$ ssh root@192.168.122.164
Acesso somente a usuarios autorizados!
Se nao possui dados de acesso, afastese
sob as penas da lei.
SysAdmin
root@192.168.122.164's password:
● Configure no SSH
✔ /etc/ssh/sshd_config
Banner /etc/issue
● Conceito deve ser aplicado a outros serviços!
SEGURANÇA EM SERVIDORES LINUX | 51 ALESSANDRO SILVA
50. FTP - VSFTPD
● VSFTPD (Very Secure FTP Daemon)
● Existem outras soluções
✔ ProFTPD, Pure-Ftpd, etc.
● Performance
● Estabilidade
● Amplamente utilizado
● Enjaular (CHROOT)
● Manter atualizado!
SEGURANÇA EM SERVIDORES LINUX | 52 ALESSANDRO SILVA
51. FTP - 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/vsftpd.deny_users
● chroot_local_user=YES
✔ Enjaule usuários
SEGURANÇA EM SERVIDORES LINUX | 53 ALESSANDRO SILVA
52. FTP - VSFTPD
● Controle de acesso
✔ /etc/ftpusers
● Prevenindo ataques de DoS
✔ ls_recurse_enable=NO
✔ max_clients=200
✔ max_per_ip=4
● FTP com SSL
SEGURANÇA EM SERVIDORES LINUX | 54 ALESSANDRO SILVA
53. Web 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
● Testar as configurações antes de aplicar em produção
✔ apachectl configtest
✔ apachectl graceful!
● Diretórios restritos
✔ .htaccess e htpasswd
SEGURANÇA EM SERVIDORES LINUX | 55 ALESSANDRO SILVA
55. Syslog Centralizado
● rsyslog
● rsyslog-gnutls
● logrotate
SEGURANÇA EM SERVIDORES LINUX | 57 ALESSANDRO SILVA
SysAdmin
E-mail
rsyslog
56. Tunando o Kernel
● /proc/sys/net/ipv4/tcp_syncookies
✔ Tenta evitar SYN ATTACK 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
SEGURANÇA EM SERVIDORES LINUX | 58 ALESSANDRO SILVA
57. Ferramentas de segurança para Linux
● TCPDUMP
● Wireshark
● Ngrep
● Ethereal
● Snort
● AIDE
● Nmap
● John the Ripper
● OpenVAS
● CHKRootkit
● OpenVPN
SEGURANÇA EM SERVIDORES LINUX | 59 ALESSANDRO SILVA
+
58. Preparando para o desastre
Planejando a contingência e continuídade
SEGURANÇA EM SERVIDORES LINUX | 60 ALESSANDRO SILVA
59. BIA - 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?
SEGURANÇA EM SERVIDORES LINUX | 61 ALESSANDRO SILVA
60. PCO – 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 ...
SEGURANÇA EM SERVIDORES LINUX | 62 ALESSANDRO SILVA
61. PRD – Plano de Recuperação de Desastres
● Aplicado ao componente
● Construir ou não um kernel personalizado?
● Kickstart
● Clonezilla
SEGURANÇA EM SERVIDORES LINUX | 63 ALESSANDRO SILVA
62. Referências
● Guia de Segurança do Red Hat Enterprise Linux
● Documentação oficial do RHN Satellite
● Ambos disponíveis em: https://access.redhat.com/documentation/
● Hardening Linux, Packet Publisher
● Segurança para Linux, Mc Grall Hill
● http://cve.mitre.org/
SEGURANÇA EM SERVIDORES LINUX | 64 ALESSANDRO SILVA