Comandos essenciais para segurança, hardening e proteção de sistemas
📖 Definição
DevSecOps é uma abordagem que integra segurança no ciclo de vida de desenvolvimento de software, desde o planejamento até a produção. Combina práticas de desenvolvimento, operações e segurança para criar sistemas mais resilientes e protegidos contra ameaças cibernéticas.
💪 Por que aprender?
• Security as Code
• Automated security testing
• Vulnerability management
• Infrastructure hardening
• Threat detection and response
🚀 O que você pode fazer?
• CI/CD security pipelines
• Cloud security
• Container security
• Network security
• Compliance automation
Firewall, IDS/IPS
CI/CD, Automation
AWS, Azure, GCP
Hardening, Monitoring
🔑 SSH Hardening
Configurar acesso remoto seguro e hardening de servidores SSH
📋Hardening Básico
sudo nano /etc/ssh/sshd_config# Edita configuração
Port 2222# Muda porta padrão
PermitRootLogin no# Bloqueia root
PasswordAuthentication no# Desabilita senhas
PubkeyAuthentication yes# Habilita chaves
Protocol 2# Força protocolo 2
sudo systemctl restart sshd# Reinicia serviço
📋Chaves SSH
ssh-keygen -t ed25519 -b 4096# Gera chave forte
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host# Copia chave
chmod 600 ~/.ssh/id_ed25519# Protege chave privada
chmod 644 ~/.ssh/id_ed25519.pub# Permissão pública
🔐 SSL/TLS Management
Gerenciar certificados SSL/TLS para comunicação segura
📋OpenSSL - Gerar Certificados
openssl genrsa -out private.key 2048# Gera chave privada
openssl rsa -in private.key -pubout -out public.key# Extrai pública
openssl req -new -key private.key -out certificate.csr# Gera CSR
openssl x509 -req -days 365 -in certificate.csr -signkey private.key -out certificate.crt# Gera certificado
openssl genrsa -aes256 -out private-encrypted.key 2048# Chave criptografada
📋Verificação de Certificados
openssl x509 -in certificate.crt -text -noout# Detalhes do cert
openssl rsa -in private.key -check# Valida chave
openssl req -in certificate.csr -text -noout# Detalhes CSR
openssl verify certificate.crt# Verifica cert
📋Let's Encrypt
sudo apt install certbot python3-certbot-nginx# Instala certbot
sudo certbot --nginx -d example.com -d www.example.com# Gera cert
sudo certbot renew --dry-run# Testa renovação
sudo crontab -e# Agenda renovação
🛡️ Firewall e Network Security
Configurar firewalls e proteger a rede contra ataques
📋Configuração Básica
sudo ufw enable# Habilita firewall
sudo ufw disable# Desabilita firewall
sudo ufw status# Status do firewall
sudo ufw status verbose# Status detalhado
sudo ufw default deny incoming# Bloqueia entrada
sudo ufw default allow outgoing# Permite saída
📋Regras de Portas
sudo ufw allow 22/tcp# Permite SSH
sudo ufw allow 80/tcp# Permite HTTP
sudo ufw allow 443/tcp# Permite HTTPS
sudo ufw allow 2222/tcp# SSH customizado
sudo ufw deny 23/tcp# Bloqueia Telnet
📋Regras Avançadas
sudo ufw allow from 192.168.1.0/24# Permite rede
sudo ufw allow from 1.2.3.4 to any port 22# IP específico
sudo ufw delete allow 80/tcp# Remove regra
sudo ufw reset# Reseta firewall
🔍 Vulnerability Scanning
Identificar vulnerabilidades e realizar testes de segurança
📋Varredura Básica
nmap -sS target.com# SYN scan
nmap -sV target.com# Detecta versões
nmap -O target.com# Detecta OS
nmap -p 1-65535 target.com# Todas portas
nmap -A target.com# Scan agressivo
📋Varredura Avançada
nmap -sS -sV -O -p- target.com# Scan completo
nmap -T4 -A target.com# Timing agressivo
nmap --script vuln target.com# Scan vulnerabilidades
nmap -oN scan.txt target.com# Salva resultado
📋Scripts NSE
nmap --script smb-vuln-ms17-010 target.com# EternalBlue
nmap --script ssl-heartbleed target.com# Heartbleed
nmap --script http-sql-injection target.com# SQL Injection
📋Nikto - Web Scanner
nikto -h http://target.com# Scan básico
nikto -h https://target.com -ssl# Scan HTTPS
nikto -h target.com -o scan.txt# Salva resultado
nikto -h target.com -Tuning 9# Testes específicos
🔑 Segurança Avançada SSH
Implementar proteções avançadas contra ataques SSH
📋Limitações de Acesso
AllowUsers user1 user2# Usuários permitidos
AllowGroups sshusers# Grupos permitidos
DenyUsers root admin# Usuários bloqueados
MaxAuthTries 3# Tentativas máximas
MaxSessions 2# Sessões simultâneas
📋Timeout e Segurança
ClientAliveInterval 300# Keep-alive 5min
ClientAliveCountMax 2# Desconecta inativos
LoginGraceTime 60# Tempo de login
UsePAM yes# Autenticação PAM
📋Fail2Ban Integration
sudo apt install fail2banInstala fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localCopia config
sudo nano /etc/fail2ban/jail.localConfigura
sudo systemctl restart fail2banReinicia serviço
🔐 Testes SSL/TLS
Validar configurações SSL e testar segurança HTTPS
📋Testes de Conectividade
openssl s_client -connect example.com:443# Conexão SSL
openssl s_client -connect example.com:443 -servername example.com# SNI
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates# Validade cert
openssl s_client -connect example.com:443 -showcerts# Mostra cadeia
📋Verificação de Segurança
nmap --script ssl-enum-ciphers -p 443 example.com# Ciphers suportados
testssl.sh https://example.com# Teste completo
curl -I https://example.com# Headers HTTPS
curl -v --insecure https://example.com# Debug SSL
📋Configuração Web Server
sudo a2enmod ssl# Apache SSL
sudo a2ensite default-ssl# Habilita site SSL
sudo nginx -t# Testa config Nginx
sudo systemctl reload nginx# Recarrega Nginx
📋 Security Auditing
Monitorar atividades suspeitas e investigar incidentes
📋Logs de Segurança
sudo tail -f /var/log/auth.log# Logs de autenticação
sudo tail -f /var/log/secure# Logs CentOS/RHEL
sudo journalctl -u sshd -f# Logs SSH systemd
sudo grep "Failed password" /var/log/auth.log# Falhas de login
📋Análise de Logs
sudo lastb# Logins falhos
sudo last# Últimos logins
sudo lastlog# Último login por usuário
sudo ausearch -k USER_LOGIN# Auditoria auditd
📋Monitoramento em Tempo Real
sudo auditctl -w /etc/passwd -p wa -k passwd_changes# Monitora passwd
sudo auditctl -w /etc/shadow -p wa -k shadow_changes# Monitora shadow
sudo ausearch -k passwd_changes# Busca eventos
sudo aureport -m# Relatório de modificações
📋Integridade de Arquivos
sudo apt install aide# Instala AIDE
sudo aide --init# Inicializa banco
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db# Ativa banco
sudo aide --check# Verifica integridade
sudo aide --update# Atualiza banco
📋Permissões e SUID
find / -perm -4000 -type f# Arquivos SUID
find / -perm -2000 -type f# Arquivos SGID
find / -type f -perm /6000 -ls# SUID/SGID detalhado
find / -writable -type f ! -path "/proc/*" ! -path "/sys/*"# Arquivos graváveis
🔐 Encryption Tools
Proteger dados sensíveis com criptografia forte
📋GPG - Gerar Chaves
gpg --full-generate-key# Gera par de chaves
gpg --list-keys# Lista chaves públicas
gpg --list-secret-keys# Lista chaves privadas
gpg --armor --export user@email.com# Exporta pública
gpg --armor --export-secret-keys user@email.com# Exporta privada
📋Criptografar e Descriptografar
gpg --encrypt --recipient user@email.com file.txt# Criptografa
gpg --decrypt file.txt.gpg# Descriptografa
gpg --sign file.txt# Assina arquivo
gpg --verify file.txt.sig# Verifica assinatura
gpg --symmetric file.txt# Criptografia simétrica
📋Gerenciamento de Chaves
gpg --import public.key# Importa chave
gpg --delete-key user@email.com# Remove pública
gpg --delete-secret-key user@email.com# Remove privada
gpg --edit-key user@email.com# Edita chave
📋OpenSSL Crypto
openssl enc -aes-256-cbc -in file.txt -out file.enc# Criptografa AES
openssl enc -d -aes-256-cbc -in file.enc -out file.txt# Descriptografa
openssl dgst -sha256 file.txt# Hash SHA256
openssl rsautl -encrypt -pubin -inkey public.pem -in data.txt -out encrypted.dat# RSA encrypt
📋Hash e Verificação
sha256sum file.txt# Hash SHA256
sha512sum file.txt# Hash SHA512
md5sum file.txt# Hash MD5
sha256sum *.txt > checksums.txt# Gera checksums
sha256sum -c checksums.txt# Verifica integridade
🛡️ iptables Avançado
Configurar firewall granular e proteção contra ataques
📋Regras Básicas
sudo iptables -L# Lista regras
sudo iptables -L -n -v# Lista detalhada
sudo iptables -F# Limpa regras
sudo iptables -X# Remove chains
sudo iptables -P INPUT DROP# Política padrão
📋Regras de Entrada
sudo iptables -A INPUT -i lo -j ACCEPT# Aceita localhost
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# Conexões estabelecidas
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT# Permite SSH
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT# Permite HTTP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT# Permite HTTPS
📋Proteção e Logging
sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables: "# Logging limitado
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set# Track SSH
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP# Proteção brute force
sudo iptables-save > /etc/iptables/rules.v4# Salva regras
🤝 Contribuindo
Encontrou um erro? Quer melhorar um cheatsheet? Tem uma sugestão? Adoraríamos suas contribuições! Abra uma issue ou submeta um PR.
Gostou do projeto? Apoie o desenvolvimento com um café e ajude a manter tudo open source ☕