@alessssilva
Segurança em Servidores LinuxSegurança em Servidores LinuxSegurança em Servidores LinuxPor Alessandro Silva
@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
@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
@alessssilva
Segurança em Servidores Linux
Disponibilidade
O que queremos proteger?O que queremos proteger?
Confidencialidade Integridade
@alessssilva
Segurança em Servidores Linux
Segurança na Instalação
@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)
@alessssilva
Segurança em Servidores Linux
InstalaçãoInstalação
● Escolha sua distribuição!
– Confiabilidade
– Suporte
– Atualização
– Estabilidade
@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!
@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
@alessssilva
Segurança em Servidores Linux
InstalaçãoInstalação
● Instale apenas os pacotes necessários
● Pacotes do sistema precisam vir de fonte segura
@alessssilva
Segurança em Servidores Linux
InstalaçãoInstalação
● Proteja o gerenciador de boot (Grub) com senha
@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
@alessssilva
Segurança em Servidores Linux
Fortalecimento pós-instalação
@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
@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
@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
@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
@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
@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
● :(){ :|: &};:
@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
@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
@alessssilva
Segurança em Servidores Linux
Firewalls e FiltrosFirewalls e Filtros
Ferramenta de administração do Firewall no Red Hat
@alessssilva
Segurança em Servidores Linux
Firewalls e FiltrosFirewalls e Filtros
● Endian
● Smoothwall
● BrasilFW
● Vyatta
● ClearOS
● Untangle
● PFSense (Free BSD)
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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
@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)
@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
@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
@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!
@alessssilva
Segurança em Servidores Linux
Syslog CentralizadoSyslog Centralizado
SysAdmin
Servidor de Syslog
@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
@alessssilva
Segurança em Servidores Linux
Software de apoio a HardeningSoftware de apoio a Hardening
● Fortalecimento da instalação
– Bastile
– Harden
@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
@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
@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
@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
@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?
@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?
@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 ...
@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
@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
@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
@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
@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
Top Related