Atualização e Patch Management
# Atualizar tudo imediatamente após instalação
apt update && apt upgrade -y # Debian/Ubuntu
yum update -y # RHEL/CentOS
dnf upgrade -y # Fedora/RHEL 8+
# Atualizações automáticas de segurança
apt install unattended-upgrades
dpkg-reconfigure --priority=low unattended-upgrades
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "[email protected]";
# Verificar vulnerabilidades conhecidas no kernel
lynis audit system
grype / trivy # scan de pacotes instaladosHardening de SSH
# /etc/ssh/sshd_config — configurações de segurança
Port 2222 # mudar porta padrão
Protocol 2 # apenas SSHv2
PermitRootLogin no # nunca root direto
PasswordAuthentication no # apenas chaves
PubkeyAuthentication yes
PermitEmptyPasswords no
MaxAuthTries 3 # tentativas antes de bloquear
LoginGraceTime 20 # timeout de login
X11Forwarding no
AllowTcpForwarding no
GatewayPorts no
PermitUserEnvironment no
UsePAM yes
ClientAliveInterval 300 # desconectar sessão ociosa após 5min
ClientAliveCountMax 2
AllowUsers deploy admin webmaster # whitelist de usuários
AllowGroups sshusers # whitelist por grupo
Banner /etc/ssh/banner.txt # banner legal
# Reiniciar SSH
systemctl restart sshd
# Gerar chave Ed25519 (mais segura que RSA)
ssh-keygen -t ed25519 -C "[email protected]"
# Fail2Ban — bloquear IPs com muitas tentativas
apt install fail2ban
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600Firewall — UFW e iptables
# UFW (Uncomplicated Firewall) — Debian/Ubuntu
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp # SSH na porta customizada
ufw allow 80/tcp
ufw allow 443/tcp
ufw limit 2222/tcp # rate limit no SSH
ufw enable
ufw status verbose
# Regras avançadas com iptables
# Bloquear port scan
iptables -A INPUT -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Rate limit de conexões
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j DROP
# Bloquear IPs suspeitos (blacklist)
iptables -A INPUT -s IP_SUSPEITO -j DROP
# Salvar regras
netfilter-persistent save
iptables-save > /etc/iptables/rules.v4Controle de Acesso e Usuários
# Política de senhas — /etc/security/pwquality.conf
minlen = 14
minclass = 3 # letras, números, símbolos
maxrepeat = 2
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
# Expiração de senhas — /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 1
PASS_WARN_AGE 14
# Sudoers — menor privilégio
visudo
# Dar sudo apenas para comandos necessários
deploy ALL=(ALL) NOPASSWD:/usr/bin/systemctl restart nginx
deploy ALL=(ALL) NOPASSWD:/usr/bin/systemctl reload nginx
# Remover usuários e grupos desnecessários
userdel games
userdel news
userdel ftp
groupdel games
# Bloquear contas de sistema sem shell
passwd -l nobody
passwd -l daemon
# Verificar contas com UID 0 (root)
awk -F: '$3 == 0 {print}' /etc/passwd
# Deve retornar APENAS root
# Verificar contas sem senha
awk -F: '$2 == "" {print $1}' /etc/shadowPermissões de Arquivos
# Permissões críticas
chmod 600 /etc/shadow
chmod 644 /etc/passwd
chmod 700 /root
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
# Encontrar arquivos SUID/SGID (vetores de escalação)
find / -perm /4000 -type f 2>/dev/null # SUID
find / -perm /2000 -type f 2>/dev/null # SGID
# Comparar com lista de binários SUID esperados
# Encontrar arquivos world-writable
find / -perm -0002 -not -path "/proc/*" -type f 2>/dev/null
# Imutabilidade de arquivos críticos
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/sudoers
# Para modificar: chattr -i arquivoKernel e Parâmetros de Sistema
# /etc/sysctl.conf — hardening de rede e kernel
# Prevenir IP spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Desabilitar ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Prevenir SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
# Desabilitar IP forwarding (se não for roteador)
net.ipv4.ip_forward = 0
net.ipv6.conf.all.forwarding = 0
# Proteger contra ataques de timing
net.ipv4.tcp_timestamps = 0
# Desabilitar magic SysRq
kernel.sysrq = 0
# Prevenir core dumps
fs.suid_dumpable = 0
# ASLR — randomização de endereços
kernel.randomize_va_space = 2
# Aplicar imediatamente
sysctl -pAuditoria e Monitoramento
# auditd — sistema de auditoria do kernel Linux
apt install auditd
systemctl enable auditd
# /etc/audit/rules.d/hardening.rules
# Monitorar mudanças em arquivos críticos
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k privilege
-w /etc/ssh/sshd_config -p wa -k sshd
# Monitorar comandos de admin
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commands
# Monitorar acesso a arquivos sensíveis
-w /var/log/auth.log -p r -k auth_access
# Consultar eventos de auditoria
auditctl -l # regras ativas
ausearch -k identity # eventos por chave
aureport --auth # relatório de autenticação
# Logs centralizados
# /etc/rsyslog.conf — enviar logs para servidor central
*.* @@siem-server:514 # TCP
*.* @siem-server:514 # UDPSELinux e AppArmor
# SELinux (RHEL/CentOS/Fedora)
getenforce # Enforcing / Permissive / Disabled
setenforce 1 # ativar Enforcing
# /etc/selinux/config
SELINUX=enforcing
# AppArmor (Ubuntu/Debian)
apt install apparmor apparmor-utils
aa-status
aa-enforce /etc/apparmor.d/* # colocar todos em enforce mode
# Benefício: mesmo que haja RCE, processo fica confinado
# Não pode acessar arquivos fora do perfil permitidoVerificação — CIS Benchmark
# Lynis — auditoria automatizada de segurança
apt install lynis
lynis audit system
# Gera score e lista de melhorias priorizadas
# OpenSCAP — conformidade com CIS Benchmark oficial
apt install openscap-scanner scap-security-guide
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis \
--results scan.xml \
/usr/share/xml/scap/ssg/content/ssg-ubuntu2204-ds.xml Quer testar isso na prática?
A CyberZ realiza testes autorizados de segurança usando as técnicas descritas neste artigo — e muito mais. Identifique suas vulnerabilidades antes que os invasores o façam.
Falar com Especialista