opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Daemon to ban hosts that cause multiple authentication errors
GitHub RepoImpressions56

Project Description

View on GitHub

Fail2Ban: The Guardian Angel Against Brute Force Attacks

Ever had that sinking feeling when you check your server logs and see hundreds of failed SSH login attempts? Enter Fail2Ban, the open-source tool that automatically bans IP addresses hammering your services with repeated failed logins. It’s like a bouncer for your server, kicking out troublemakers before they become a real problem.

What It Does

Fail2Ban monitors log files (like /var/log/auth.log) for patterns of failed authentication attempts. When an IP crosses your defined threshold (e.g., 5 failed SSH attempts in 2 minutes), Fail2Ban updates your firewall rules to block that IP temporarily—or permanently, if you prefer. It works out-of-the-box with common services (sshd, Apache, Nginx) but is flexible enough to protect any service with a log file.

Why It’s Cool

  • Lightweight and Effective: No heavy machine learning—just simple, efficient pattern matching.
  • Customizable Rules: Define your own filters for obscure services or unique attack patterns.
  • IPv6 Support: Because attackers aren’t stuck in the IPv4 stone age.
  • Extensible Actions: Beyond just IP bans, you can trigger notifications, Slack alerts, or custom scripts.

How to Try It

  1. Install:
    # Debian/Ubuntu
    sudo apt install fail2ban
    
    # RHEL/CentOS
    sudo yum install fail2ban
    
  2. Configure:
    Tweak /etc/fail2ban/jail.local to set ban durations, whitelist IPs, or add custom jails.
  3. Start:
    sudo systemctl enable --now fail2ban
    

Check status with sudo fail2ban-client status.

Final Thoughts

Fail2Ban isn’t a silver bullet (use 2FA for critical services!), but it’s a must-have layer of defense against script kiddies and automated bots. With 14.9k GitHub stars, it’s battle-tested and widely trusted. Pair it with tools like CrowdSec for even smarter threat detection.

Got a war story about brute-force attacks? Share it with @githubprojects.

Back to Projects
Project ID: 1949415767470199225Last updated: July 27, 2025 at 10:25 AM