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

Seguranca em Servidores Linux

Embed Size (px)

DESCRIPTION

Seguranca em Servidores Linux

Citation preview

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