Seguranca em Servidores Linux

1,766 views

Published on

Seguranca em Servidores Linux

Published in: Technology
2 Comments
9 Likes
Statistics
Notes
No Downloads
Views
Total views
1,766
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
239
Comments
2
Likes
9
Embeds 0
No embeds

No notes for slide

Seguranca em Servidores Linux

  1. 1. @alessssilva Segurança em Servidores LinuxSegurança em Servidores LinuxSegurança em Servidores Linux Por Alessandro Silva
  2. 2. @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
  3. 3. @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
  4. 4. @alessssilva Segurança em Servidores Linux Disponibilidade O que queremos proteger?O que queremos proteger? Confidencialidade Integridade
  5. 5. @alessssilva Segurança em Servidores Linux Segurança na Instalação
  6. 6. @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)
  7. 7. @alessssilva Segurança em Servidores Linux InstalaçãoInstalação ● Escolha sua distribuição! – Confiabilidade – Suporte – Atualização – Estabilidade
  8. 8. @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!
  9. 9. @alessssilva Segurança em Servidores Linux InstalaçãoInstalação ● Particionamento dos discos – Para garantir extensibilidade, use LVM! root@myserver [~]# df -h Sist. 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% /boot tmpfs 1009M 0 1009M 0% /dev/shm /dev/sdb1 459G 360G 76G 83% /backup
  10. 10. @alessssilva Segurança em Servidores Linux InstalaçãoInstalação ● Instale apenas os pacotes necessários ● Pacotes do sistema precisam vir de fonte segura
  11. 11. @alessssilva Segurança em Servidores Linux InstalaçãoInstalação ● Proteja o gerenciador de boot (Grub) com senha
  12. 12. @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
  13. 13. @alessssilva Segurança em Servidores Linux Fortalecimento pós-instalação
  14. 14. @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
  15. 15. @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 apache2 apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  16. 16. @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 apache2 apache2 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  17. 17. @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
  18. 18. @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 -napu Conexõ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
  19. 19. @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 ● :(){ :|: &};:
  20. 20. @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 -u 46601 root@thinktoy:/home/alessandro# ulimit -t Unlimited root@thinktoy:/home/alessandro# ulimit -f unlimited
  21. 21. @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
  22. 22. @alessssilva Segurança em Servidores Linux Firewalls e FiltrosFirewalls e Filtros Ferramenta de administração do Firewall no Red Hat
  23. 23. @alessssilva Segurança em Servidores Linux Firewalls e FiltrosFirewalls e Filtros ● Endian ● Smoothwall ● BrasilFW ● Vyatta ● ClearOS ● Untangle ● PFSense (Free BSD)
  24. 24. @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
  25. 25. @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
  26. 26. @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
  27. 27. @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 -ls 6422529 4 drwxrwxrwt 20 root root 4096 Jun 13 12:20 /tmp 6438915 4 drwxrwxrwt 2 root root 4096 Jun 13 12:19 /tmp/.ICE-unix Controle de AcessosControle de Acessos
  28. 28. @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:30 cat root pts/2 0.00 secs Sat Jun 22 13:30 bash F root pts/2 0.00 secs Sat Jun 22 13:30 ifconfig root pts/2 0.00 secs Sat Jun 22 13:29 apt-get root pts/2 2.03 secs Sat Jun 22 13:29 dpkg root pts/2 0.00 secs Sat Jun 22 13:29
  29. 29. @alessssilva Segurança em Servidores Linux AuditoriaAuditoria Política de senhas PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 LOGIN_RETRIES 5 LOGIN_TIMEOUT 60 LOGIN_TIMEOUT 60 /etc/login.defs Ú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 root@thinktoy:/home/alessandro# chage -l alessandro
  30. 30. @alessssilva Segurança em Servidores Linux AuditoriaAuditoria root@espiritolivre [~]# who root 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 [~]# last root 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
  31. 31. @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.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
  32. 32. @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
  33. 33. @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
  34. 34. @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
  35. 35. @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
  36. 36. @alessssilva Segurança em Servidores Linux Serviços – SSHServiços – SSH ● /etc/ssh/sshd_config ● USE CHAVES!!! Port 22 Protocol 2 PermitRootLogin yes LoginGraceTime 60 PermitEmptyPasswords no Allow users tux linus Banner /etc/issue
  37. 37. @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
  38. 38. @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)
  39. 39. @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
  40. 40. @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
  41. 41. @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!
  42. 42. @alessssilva Segurança em Servidores Linux Syslog CentralizadoSyslog Centralizado SysAdmin E-mail Servidor de Syslog
  43. 43. @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
  44. 44. @alessssilva Segurança em Servidores Linux Software de apoio a HardeningSoftware de apoio a Hardening ● Fortalecimento da instalação – Bastile – Harden
  45. 45. @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
  46. 46. @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
  47. 47. @alessssilva Segurança em Servidores Linux MonitoramentoMonitoramento Notificações Controle Centralizado Configuração Status Checagens 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
  48. 48. @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
  49. 49. @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?
  50. 50. @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?
  51. 51. @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 ...
  52. 52. @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
  53. 53. @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
  54. 54. @alessssilva Segurança em Servidores Linux Certificação em Segurança - LinuxCertificação em Segurança - Linux RHCSA RHCERHCE RHCSARHCSA RH429RH429 RH423RH423 RH333RH333 Network Services Directory Services SELINUX Certificação Red HatCertificação Red Hat
  55. 55. @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
  56. 56. @alessssilva Segurança em Servidores Linux Obrigado!Obrigado! Alessandro Silva E-mail: contato@alessandrosilva.info Facebook: http://alessandrosillva.info/facebook Twitter: http://alessandrosilva.info/twitter Linkedin: http://alessandrosilva.info/linkedin

×