Princípios de Segurança

Defesa em Profundidade

Múltiplas camadas de segurança:

  1. Firewall
  2. Autenticação forte
  3. Permissões adequadas
  4. Atualizações regulares
  5. Monitoramento
  6. Backup

Princípio do Menor Privilégio

Usuários e processos devem ter apenas as permissões necessárias.

Gerenciamento de Usuários

Criar Usuário

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Criar usuário
sudo useradd -m -s /bin/bash usuario

# Definir senha
sudo passwd usuario

# Criar com home e grupos
sudo useradd -m -G sudo,docker -s /bin/bash usuario

# Criar usuário de sistema (sem login)
sudo useradd -r -s /usr/sbin/nologin servico

Modificar Usuário

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Adicionar a grupo
sudo usermod -aG sudo usuario

# Mudar shell
sudo usermod -s /bin/zsh usuario

# Bloquear usuário
sudo usermod -L usuario

# Desbloquear
sudo usermod -U usuario

# Expirar senha
sudo passwd -e usuario

Deletar Usuário

1
2
3
4
5
# Deletar usuário (mantém home)
sudo userdel usuario

# Deletar com home
sudo userdel -r usuario

Gerenciar Grupos

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Criar grupo
sudo groupadd developers

# Adicionar usuário a grupo
sudo usermod -aG developers usuario

# Ver grupos do usuário
groups usuario

# Deletar grupo
sudo groupdel developers

Arquivos Importantes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Usuários
/etc/passwd

# Senhas (hash)
/etc/shadow

# Grupos
/etc/group

# Configuração padrão
/etc/login.defs
/etc/default/useradd

Sudo - Privilégios Administrativos

Configurar sudo

1
2
# Editar sudoers (SEMPRE use visudo)
sudo visudo

Exemplos:

#u#%#u#u#usasssUuGdSuCuEusarmeaoaxauruimrmreráipniaiciroosonouoiAedtoAcLnAoAaALoLhLsLrLcLm=aLLLo=(=e=c=m(sA(s(o(AuLApAmwsLdLLeLowuLo:LcLwd:A)í)o-oALfudLLNi/tatL)Ocurto)PosoatAAsr)aALS/ulLLSbs/LWiuuDnás:/rrsiAybLsiLtne/mpchtpl,/usr/bin/apt

Usar sudo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Executar comando
sudo comando

# Shell root
sudo -i
sudo su -

# Executar como outro usuário
sudo -u www-data comando

# Listar privilégios
sudo -l

# Editar arquivo com privilégios
sudo -e /etc/hosts

Autenticação

Políticas de Senha

1
2
3
4
5
# Instalar PAM
sudo apt install libpam-pwquality

# Configurar
sudo vim /etc/security/pwquality.conf
#m#mdulo#diicccciTnCnrrrrRcaloceeeeetmemlddddjcanpaiiiiehnlsttttieh=estcox====ak1i=rm2d----=ía31111snde1ienm####hoaPPPPseeeellllcooooommmmmueeeennnnnsoooossss1111dmmcíaiaginriúúatsscocctuuellraaeespecial

Expiração de Senha

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Configurar expiração
sudo chage -M 90 usuario  # Expira em 90 dias
sudo chage -m 7 usuario   # Mínimo 7 dias entre mudanças
sudo chage -W 14 usuario  # Avisar 14 dias antes

# Ver configuração
sudo chage -l usuario

# Forçar mudança no próximo login
sudo chage -d 0 usuario

Autenticação de Dois Fatores (2FA)

1
2
3
4
5
6
7
8
# Instalar Google Authenticator
sudo apt install libpam-google-authenticator

# Configurar para usuário
google-authenticator

# Habilitar no SSH
sudo vim /etc/pam.d/sshd

Adicionar:

authrequiredpam_google_authenticator.so
1
2
# Configurar SSH
sudo vim /etc/ssh/sshd_config
CAhuatlhleenntgiecRaetsipoonnMseetAhuotdhsenptuibclaitcikoeny,ykeesyboard-interactive
1
sudo systemctl restart sshd

SSH Hardening

Configuração Segura

1
sudo vim /etc/ssh/sshd_config
#P#P#P#PP#P#A#CC#X#Aoreauelll1lPrAoDrAsbDrLlTiiD1DlotptempskemioieeeFeoreosiewesimwmnnsoswt2ncatnoyatiUettaraTa2aobRarAbEtsoAAbwbc2sliosduimaeulliaipn2loAtlprrtiilrlFãp2itcuhitsvvidioortLhtetyueetitroaoahnaPsuICanawptrgvetrausnorgraaoienisáuturdcrnstcasraenXnpdrooiauwirrt1ooiãlonpcttooivM1rnootoúaiersoaatgbtond1lxf2llintsofnoioiu32roogcnycns0wriaeaou0awnsnsçaraoãrdroiidoniv2gnagzia

Fail2ban - Proteção contra Brute Force

1
2
3
4
5
6
# Instalar
sudo apt install fail2ban

# Configurar
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
1
2
3
4
5
6
7
8
9
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Iniciar
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# Status
sudo fail2ban-client status
sudo fail2ban-client status sshd

# Desbanir IP
sudo fail2ban-client set sshd unbanip 192.168.1.100

Firewall

UFW (Ubuntu)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Configuração básica
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Permitir SSH
sudo ufw allow 22/tcp

# Permitir de IP específico
sudo ufw allow from 192.168.1.100 to any port 22

# Habilitar
sudo ufw enable

# Status
sudo ufw status verbose

firewalld (Fedora/RHEL)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Configuração básica
sudo firewall-cmd --set-default-zone=public

# Permitir serviços
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Recarregar
sudo firewall-cmd --reload

SELinux (Security-Enhanced Linux)

Status

1
2
3
4
5
# Ver status
sestatus
getenforce

# Modos: Enforcing, Permissive, Disabled

Configurar

1
2
3
4
5
6
# Temporário
sudo setenforce 0  # Permissive
sudo setenforce 1  # Enforcing

# Permanente
sudo vim /etc/selinux/config
SELINUX=enforcing

Troubleshooting

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Ver alertas
sudo ausearch -m avc -ts recent

# Gerar política
sudo audit2allow -a -M mypolicy
sudo semodule -i mypolicy.pp

# Contextos
ls -Z arquivo
ps -eZ

AppArmor (Ubuntu)

Status

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Ver status
sudo aa-status

# Perfis em enforce
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox

# Perfis em complain (log only)
sudo aa-complain /etc/apparmor.d/usr.bin.firefox

# Desabilitar perfil
sudo aa-disable /etc/apparmor.d/usr.bin.firefox

Auditoria e Logs

Logs Importantes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# Autenticação
/var/log/auth.log      # Debian/Ubuntu
/var/log/secure        # RHEL/CentOS

# Sistema
/var/log/syslog        # Debian/Ubuntu
/var/log/messages      # RHEL/CentOS

# Kernel
/var/log/kern.log
dmesg

# Aplicações
/var/log/apache2/
/var/log/nginx/
/var/log/mysql/

Monitorar Logs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Tempo real
tail -f /var/log/auth.log

# Últimas 100 linhas
tail -100 /var/log/syslog

# Buscar padrões
grep "Failed password" /var/log/auth.log

# Contar tentativas falhas
grep "Failed password" /var/log/auth.log | wc -l

journalctl (systemd)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Ver todos logs
journalctl

# Últimas 100 linhas
journalctl -n 100

# Tempo real
journalctl -f

# Desde boot
journalctl -b

# Serviço específico
journalctl -u ssh

# Prioridade (err, warning, info)
journalctl -p err

# Período
journalctl --since "2026-02-01" --until "2026-02-02"
journalctl --since "1 hour ago"

# Usuário específico
journalctl _UID=1000

auditd - Auditoria Avançada

1
2
3
4
5
# Instalar
sudo apt install auditd

# Regras
sudo vim /etc/audit/rules.d/audit.rules
#-#-#-wwaMMMo/o/oanenenlititiwtctctao/o/oyrprsrsaaasa,rsrhres/xawdsirdi-ytqrpsu-ec-iptwaFvóalowrlaai-srokc-hks=sbph6a_4scso-wnSdf_iocgpheanng-eSsopenat-kfile_access
1
2
3
4
5
6
7
8
# Recarregar regras
sudo augenrules --load

# Buscar eventos
sudo ausearch -k passwd_changes

# Relatório
sudo aureport

Criptografia

Criptografar Arquivos

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# GPG - criptografar
gpg -c arquivo.txt
# Cria: arquivo.txt.gpg

# Descriptografar
gpg arquivo.txt.gpg

# Criptografar para destinatário
gpg -e -r [email protected] arquivo.txt

# Assinar arquivo
gpg --sign arquivo.txt

Criptografar Partições (LUKS)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Criar partição criptografada
sudo cryptsetup luksFormat /dev/sdb1

# Abrir
sudo cryptsetup luksOpen /dev/sdb1 dados_criptografados

# Formatar
sudo mkfs.ext4 /dev/mapper/dados_criptografados

# Montar
sudo mount /dev/mapper/dados_criptografados /mnt/dados

# Desmontar e fechar
sudo umount /mnt/dados
sudo cryptsetup luksClose dados_criptografados

Hardening do Sistema

1. Atualizações Automáticas

1
2
3
4
5
6
7
# Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

# Fedora
sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer

2. Desabilitar Serviços Desnecessários

1
2
3
4
5
6
# Listar serviços
systemctl list-unit-files --type=service

# Desabilitar
sudo systemctl disable bluetooth
sudo systemctl stop bluetooth

3. Kernel Hardening (sysctl)

1
sudo vim /etc/sysctl.d/99-hardening.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Proteção contra IP spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignorar ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# Não enviar ICMP redirects
net.ipv4.conf.all.send_redirects = 0

# Ignorar ping
net.ipv4.icmp_echo_ignore_all = 1

# SYN cookies (proteção contra SYN flood)
net.ipv4.tcp_syncookies = 1

# Desabilitar IPv6 (se não usado)
net.ipv6.conf.all.disable_ipv6 = 1
1
2
# Aplicar
sudo sysctl -p /etc/sysctl.d/99-hardening.conf

4. Limitar Core Dumps

1
sudo vim /etc/security/limits.conf
hardcore0

5. Proteger GRUB

1
2
3
4
5
# Gerar senha
grub-mkpasswd-pbkdf2

# Configurar
sudo vim /etc/grub.d/40_custom
speatssswuopredr_upsbekrdsf=2"aaddmmiinn"HASH_GERADO
1
sudo update-grub

Detecção de Intrusão

AIDE - Advanced Intrusion Detection

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Instalar
sudo apt install aide

# Inicializar banco de dados
sudo aideinit

# Verificar integridade
sudo aide --check

# Atualizar banco de dados
sudo aide --update

rkhunter - Rootkit Hunter

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Instalar
sudo apt install rkhunter

# Atualizar
sudo rkhunter --update

# Scan
sudo rkhunter --check

# Atualizar propriedades
sudo rkhunter --propupd

ClamAV - Antivírus

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Instalar
sudo apt install clamav clamav-daemon

# Atualizar definições
sudo freshclam

# Scan
clamscan -r /home

# Scan com remoção
clamscan -r --remove /home

Backup e Recuperação

Backup com tar

1
2
3
4
5
6
7
8
# Backup completo
sudo tar czf backup_$(date +%Y%m%d).tar.gz /home /etc

# Backup incremental
sudo tar czf backup_inc.tar.gz --listed-incremental=snapshot.file /home

# Restaurar
sudo tar xzf backup.tar.gz -C /

rsync para Backup

1
2
3
4
5
6
7
8
# Backup local
rsync -av --delete /origem/ /backup/

# Backup remoto
rsync -av --delete /origem/ usuario@servidor:/backup/

# Backup incremental
rsync -av --link-dest=/backup/anterior /origem/ /backup/novo/

Checklist de Segurança

Sistema

  • Atualizações automáticas habilitadas
  • Serviços desnecessários desabilitados
  • Firewall configurado
  • SELinux/AppArmor habilitado
  • Kernel hardening aplicado

Usuários

  • Root login desabilitado
  • Política de senhas forte
  • Sudo configurado corretamente
  • Usuários desnecessários removidos

SSH

  • Porta não padrão
  • Apenas chaves públicas
  • Fail2ban configurado
  • 2FA habilitado (opcional)

Monitoramento

  • Logs centralizados
  • Auditoria habilitada
  • Alertas configurados
  • Backup regular

Rede

  • Firewall ativo
  • Portas desnecessárias fechadas
  • VPN para acesso remoto
  • IDS/IPS configurado (opcional)

Comandos de Referência Rápida

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Criar usuário
sudo useradd -m -s /bin/bash usuario

# Adicionar a sudo
sudo usermod -aG sudo usuario

# Configurar firewall
sudo ufw enable
sudo ufw allow 22

# Ver logs de autenticação
sudo tail -f /var/log/auth.log

# Verificar portas abertas
sudo ss -tlnp

# Atualizar sistema
sudo apt update && sudo apt upgrade

# Scan de rootkits
sudo rkhunter --check

# Backup
sudo tar czf backup.tar.gz /home

Próximo capítulo: 9 - Administração Avançada e Troubleshooting

Capítulo anterior: 7 - Scripts e Terminal Avançado