FSociety.pt

Infraestrutura Empresarial Segura | Four-Legged Firewall

View on GitHub

🔧 Manutenção do Webserver DMZ

Guia de manutenção, logs, troubleshooting e updates


📋 Índice

  1. Logs
  2. Monitorização
  3. Backup
  4. Updates
  5. Troubleshooting
  6. Comandos Úteis
  7. Referências

📋 Logs

Nginx Logs

# Access logs por vhost
sudo tail -f /var/log/nginx/fsociety_access.log
sudo tail -f /var/log/nginx/nextcloud_proxy_access.log
sudo tail -f /var/log/nginx/tickets_proxy_access.log
sudo tail -f /var/log/nginx/mail_proxy_access.log

# Error logs
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/fsociety_error.log

# Todos os access logs
sudo tail -f /var/log/nginx/*_access.log

Estatísticas de Logs

# Top 10 IPs
sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

# Top 10 URLs
sudo awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

# Status codes
sudo awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn

# Erros 5xx
sudo grep " 5[0-9][0-9] " /var/log/nginx/access.log | tail -20

# Rate limiting (429)
sudo grep " 429 " /var/log/nginx/access.log | tail -20

CrowdSec Logs

# CrowdSec agent
sudo tail -f /var/log/crowdsec.log

# Firewall bouncer
sudo tail -f /var/log/crowdsec-firewall-bouncer.log

# Ver decisões
sudo cscli decisions list

# Ver alertas
sudo cscli alerts list | head -20

📊 Monitorização

Verificar Serviços

# Nginx
sudo systemctl status nginx

# CrowdSec
sudo systemctl status crowdsec
sudo systemctl status crowdsec-firewall-bouncer
sudo systemctl status crowdsec-cloudflare-bouncer

# UFW
sudo ufw status verbose

Performance Nginx

# Processos
ps aux | grep nginx

# Conexões ativas
sudo netstat -an | grep :80 | wc -l
sudo netstat -an | grep :443 | wc -l

# Workers
sudo nginx -V 2>&1 | grep worker

Espaço em Disco

# Disco geral
df -h

# Logs
du -sh /var/log/nginx/
du -sh /var/log/

# Limpar logs antigos
sudo find /var/log/nginx/ -name "*.gz" -mtime +30 -delete

Memória e CPU

# Uso geral
free -h
htop

# Por processo
ps aux --sort=-%mem | head -10
ps aux --sort=-%cpu | head -10

💾 Backup

Script de Backup

sudo nano /usr/local/bin/backup-webserver.sh
#!/bin/bash

BACKUP_DIR="/var/backups/webserver"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# Nginx configs
tar -czf $BACKUP_DIR/nginx_config_$DATE.tar.gz /etc/nginx/

# Site files
tar -czf $BACKUP_DIR/site_files_$DATE.tar.gz /var/www/

# SSL certificates
tar -czf $BACKUP_DIR/ssl_certs_$DATE.tar.gz /etc/letsencrypt/

# CrowdSec config
tar -czf $BACKUP_DIR/crowdsec_config_$DATE.tar.gz /etc/crowdsec/

# Limpar backups > 7 dias
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete

echo "[$(date)] Backup concluído"
sudo chmod +x /usr/local/bin/backup-webserver.sh

# Cron diário
sudo crontab -e
# 0 4 * * * /usr/local/bin/backup-webserver.sh >> /var/log/backup-webserver.log 2>&1

🔄 Updates

Update Sistema

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y

Update Nginx

# Atualizar Nginx
sudo apt install nginx --only-upgrade

# Verificar versão
nginx -v

# Testar config
sudo nginx -t

# Recarregar
sudo systemctl reload nginx

Update CrowdSec

# Update hub
sudo cscli hub update

# Upgrade collections/scenarios
sudo cscli hub upgrade

# Update agent
sudo apt install crowdsec --only-upgrade

# Reiniciar
sudo systemctl restart crowdsec

Renovar SSL

# Renovar certificados
sudo certbot renew

# Forçar renovação (se próximo da expiração)
sudo certbot renew --force-renewal

# Recarregar Nginx
sudo systemctl reload nginx

# Verificar expiração
sudo certbot certificates

🚨 Troubleshooting

Nginx Não Inicia

# Ver erro
sudo nginx -t

# Ver logs
sudo journalctl -u nginx -xe

# Verificar portas em uso
sudo netstat -tlnp | grep -E ':80|:443'

# Matar processos antigos
sudo pkill -9 nginx
sudo systemctl start nginx

SSL Errors

# Verificar certificados
ls -la /etc/letsencrypt/live/fsociety.pt/

# Permissões
sudo chown -R root:root /etc/letsencrypt
sudo chmod -R 755 /etc/letsencrypt

# Testar SSL
openssl s_client -connect fsociety.pt:443 -servername fsociety.pt

Rate Limiting Issues

# Ver zona de rate limit
sudo nginx -T | grep limit_req_zone

# Aumentar limites temporariamente (editar nginx.conf)
limit_req_zone ... rate=20r/s;  # Era 10r/s

sudo nginx -t
sudo systemctl reload nginx

CrowdSec Ban Incorreto

# Ver decisões
sudo cscli decisions list

# Remover ban
sudo cscli decisions delete --ip 1.2.3.4

# Adicionar a whitelist
sudo nano /etc/crowdsec/parsers/s02-enrich/whitelist.yaml

# Recarregar
sudo systemctl reload crowdsec

🛠️ Comandos Úteis

Nginx

# Testar configuração
sudo nginx -t

# Recarregar (sem downtime)
sudo systemctl reload nginx

# Reiniciar
sudo systemctl restart nginx

# Ver config completa
sudo nginx -T

# Ver módulos carregados
nginx -V

CrowdSec

# Status
sudo cscli metrics
sudo cscli hub list

# Bouncers
sudo cscli bouncers list

# Decisões
sudo cscli decisions list

# Alertas
sudo cscli alerts list

# Ban manual
sudo cscli decisions add --ip 1.2.3.4 --duration 24h

# Unban
sudo cscli decisions delete --ip 1.2.3.4

Logs

# Limpar logs antigos
sudo find /var/log/nginx -name "*.gz" -delete
sudo journalctl --vacuum-time=7d

# Rodar logs manualmente
sudo logrotate -f /etc/logrotate.d/nginx

📝 Checklist de Manutenção Mensal


📖 Referências


**[⬅️ Voltar: CrowdSec](/fsociety-infrastructure/06-webserver/09-crowdsec.html)** | **[Voltar ao README ⬆️](/fsociety-infrastructure/06-webserver/)**

Última atualização: Dezembro 2025