A Debian-first guide to identifying traffic floods, overloaded services, and resource exhaustion symptoms, then containing pressure and restoring stability.
Denial-of-service symptoms appear when a service, system, or network path becomes overloaded to the point that normal use is degraded or unavailable. This can come from malicious traffic, accidental load, poorly protected endpoints, or resource exhaustion caused by a specific application path.
The goal is not only to recognize that the system is under pressure, but to identify what is being overwhelmed and from where.
uptime
free -h
ps aux --sort=-%cpu | head -n 20
ps aux --sort=-%mem | head -n 20
sudo ss -tan
sudo ss -tulnp
sudo awk '{print $1}' /var/log/caddy/*.log 2>/dev/null | sort | uniq -c | sort -nr | head
sudo journalctl -u caddy --since "30 minutes ago"
sudo grep "UFW" /var/log/ufw.log | tail -n 100
sudo ufw deny from <IP_ADDRESS>
sudo ufw status numbered
sudo ss -tulnp
sudo systemctl restart caddy
sudo systemctl list-units --type=service --state=running
sudo journalctl -u caddy --since "2 hours ago"
sudo ss -tan
uptime
free -h
ps aux --sort=-%cpu | head -n 20
sudo grep -Ei "Accepted|sudo|useradd|adduser" /var/log/auth.log
ps auxf
sudo ss -tpn
Recovery means restoring service stability and determining whether the issue was pure traffic pressure or part of a broader attack chain.
sudo ss -tulnp
sudo ufw status numbered
sudo journalctl -u caddy --since "24 hours ago"
sudo apt update
sudo apt upgrade
sudo systemctl list-units --type=service --state=running
sudo ss -tan
uptime
free -h
# Separate critical public services from unnecessary background workloads
Manual containment and service review should come first. Over time, this section may include carefully selected infrastructure options that make traffic handling or isolation easier, but the immediate Debian-side priority is visibility, exposure reduction, and service stability.
All commands shown are based on Debian-based systems unless otherwise noted.