Every server connected to the internet is a continuous target for automated bots attempting to guess passwords and gain unauthorized access. While using SSH keys is a strong deterrent, adding an active intrusion prevention software provides a critical, automated layer of defense. Fail2Ban is a powerful security tool that monitors server logs for suspicious activities and temporarily or permanently bans IP addresses that show malicious signs.

Installing and configuring Fail2Ban on your Linux environment ensures that repeated failed login attempts are automatically blocked at the firewall level. It works silently in the background by dynamically updating firewall rules to reject offending IP addresses for a specified amount of time, keeping your resources safe from brute-force campaigns.

How Fail2Ban Works

When Fail2Ban runs, it continuously scans service log files, such as those for SSH, Apache, Nginx, or your database servers. It actively looks for regular expression patterns that indicate a brute-force attack, such as multiple failed login attempts from a single source within a short time window.

Once an attacker reaches the defined failure threshold, Fail2Ban immediately triggers a defensive action. Typically, this action automatically adds a drop rule to your iptables or UFW configuration to completely block traffic from the attacker's IP address.

Installing Fail2Ban

Getting started with Fail2Ban on a Debian or Ubuntu server is a straightforward process. You can easily pull the necessary packages directly from the default repositories using your standard package manager.

  • Connect to your server via SSH as the root user or a user with sudo privileges.

  • Run the command sudo apt update to ensure your package lists are current and up to date.

  • Execute the command sudo apt install fail2ban to install the software onto your system.

  • Wait for the installation to complete, after which the background service will start automatically.

Configuring Your Jail Settings

Fail2Ban uses specific configuration blocks called "jails" to define exactly how it monitors and reacts to threats for individual services. It is a strict best practice to never edit the default configuration file directly, but instead to create a local override copy.

  • Copy the default configuration file by running sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local.

  • Open the newly created local file using your preferred terminal text editor.

  • Locate the [sshd] section within the file to modify the specific parameters for SSH access.

  • Adjust the bantime value to determine exactly how many seconds or hours an IP address remains blocked.

  • Modify the findtime and maxretry values to determine exactly how many failed attempts within a specific time window will trigger a ban.

Verifying Fail2Ban Status

After setting up your custom jails and restarting the service, you will want to verify that Fail2Ban is actively monitoring your server and successfully blocking malicious traffic.

  • Use the command sudo systemctl restart fail2ban to instantly apply any changes you made to the configuration file.

  • Run the command sudo fail2ban-client status to output a list of all currently active jails.

  • View specific details about a jail, including a list of currently banned IP addresses, by running sudo fail2ban-client status sshd.

  • Manually unban an IP address, should you accidentally lock yourself out, by executing sudo fail2ban-client set sshd unbanip [IP_ADDRESS]

Cette réponse était-elle pertinente? 0 Utilisateurs l'ont trouvée utile (0 Votes)