Princípios de Segurança# Defesa em Profundidade# Múltiplas camadas de segurança:
Firewall Autenticação forte Permissões adequadas Atualizações regulares Monitoramento 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 # u s a s s s U u G d S u C u E u s a r m e a o a x a u r u i m r m r e r á i p n i a i c i r o o s o n o u o i A e d t o A c L n A o A a A L o L h L s L r L c L m = a L L L o = ( = e = c = m ( s A ( s ( o ( A u L A p A m w s L d L L e L o w u L o : L c L w d : A ) í ) o - o A L f u d L L N i / t a t L ) O c u r t o ) P o s o a t A A s r ) a A L S / u l L L S b s / L W i u u D n á s : / r r s i A y b L s i L t n e / m p c h t p l , / u s r / b i n / a p t 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 # m d u l o # d i i c c c c i T n C n r r r r R c a l o c e e e e e t m e m l d d d d j c a n p a i i i i e h n l s t t t t i e h = e s t c o x = = = = a k 1 i = r m 2 d - - - - = í a 3 1 1 1 1 s n d e 1 i e n m # # # # h o a P P P P s e e e e l l l l c o o o o o m m m m m u e e e e n n n n n s o o o o s s s s 1 1 1 1 d m m c í a i a g i n r i ú ú a t s s c o c c t u u e l l r a a e e s p e c i a l
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:
a u t h r e q u i r e d p a m _ g o o g l e _ a u t h e n t i c a t o r . s o
1
2
# Configurar SSH
sudo vim /etc/ssh/sshd_config
C A h u a t l h l e e n n t g i e c R a e t s i p o o n n M s e e t A h u o t d h s e n p t u i b c l a i t c i k o e n y , y k e e s y b o a r d - i n t e r a c t i v e
1
sudo systemctl restart sshd
SSH Hardening# Configuração Segura# 1
sudo vim /etc/ssh/sshd_config
# P # P # P # P P # P # A # C C # X # A o r e a u e l l l 1 l P r A o D r A s b D r L l T i i D 1 D l o t p t e m p s k e m i o i e e e F e o r e o s i e w e s i m w m n n s o s w t 2 n c a t n o y a t i U e t t a r a T a 2 a o b R a r A b E t s o A A b w b c 2 s l i o s d u i m a e u l l i a i p n 2 l o A t l p r r t i i l r l F ã p 2 i t c u h i t s v v i d i o o r t L h t e t y u e e t i t r o a o a h n a P s u I C a n a w p t r g v e t r a u s n o r g r a a o i e n i s á u t u r d c r n s t c a s r a e n X n p d r o o i a u w i r r t 1 o o i ã l o n p c t t o o i v M 1 r n o o t o ú a i e r s o a a t g b t o n d 1 l x f 2 l l i n t s o f n o i o i u 3 2 r o o g c n y c n s 0 w r i a e a o u 0 a w n s n s ç a r a o ã r d r o i i d o n i v 2 g n a g z i a
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
S E L I N U X = e n f o r c i n g
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
# - # - # - w w a M M M o / o / o a n e n e n l i t i t i w t c t c t a o / o / o y r p r s r s a a a s a , r s r h r e s / x a w d s i r d i - y t q r p s u - e c - i p t w a F v ó a l o w r l a a i - s r o k c - h k s = s b p h 6 a _ 4 s c s o - w n S d f _ i o c g p h e a n n g - e S s o p e n a t - k f i l e _ a c c e s s
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
h a r d c o r e 0
5. Proteger GRUB# 1
2
3
4
5
# Gerar senha
grub-mkpasswd-pbkdf2
# Configurar
sudo vim /etc/grub.d/40_custom
s p e a t s s s w u o p r e d r _ u p s b e k r d s f = 2 " a a d d m m i i n n " H A S H _ G E R A D O
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# 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# Usuários# SSH# Monitoramento# Rede# 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