Dit artikel maakt deel uit van de Apache Server Guide-serie:

  • Apache beveiligen op Ubuntu - Deel 1
  • Apache beveiligen op Ubuntu - Deel 2
  • Apache-prestaties optimaliseren - deel 1
  • Apache-prestaties optimaliseren - deel 2
  • Op naam gebaseerde Virtualhost Apache instellen
  • IP en op poorten gebaseerde Virtualhost instellen in Apache
  • Hoe de wachtwoordbeveiliging van de webdirectory in Apache in te stellen
  • Apache-server instellen met SSL-ondersteuning op Ubuntu
  • Fail2ban instellen om Apache te beschermen tegen een DDOS-aanval
  • Hoe Webdav instellen met Apache op Ubuntu
  • Controleer Apache Web Server met Mod_status
  • Hoe te beschermen tegen DDoS met Mod_evasive op Apache Server

Apache is een van de meest gebruikte en populaire webservers ter wereld, dus het is belangrijk om uw website en gebruikers te beschermen tegen aanvallen met brute kracht. Fail2ban is een open-source software voor inbraakpreventie geschreven in Python. Fail2Ban analyseert continu de logbestanden van verschillende services (zoals Apache, ssh, postfix ...) en als het kwaadaardige aanvallen detecteert, dan maakt het regels voor de firewall om IP-adressen van hackers voor een bepaalde tijd te blokkeren. Fail2Ban informeert een systeembeheerder ook over een e-mail van zijn activiteit.

In dit artikel zal ik uitleggen hoe fail2ban moet worden geïnstalleerd en geconfigureerd om uw Apache-logboeken te controleren op mislukte pogingen tot authenticatie.

Vereisten

  • Ubuntu-server 14.04 met Apache geïnstalleerd
  • Apache geconfigureerd met wachtwoordverificatie

Fail2Ban installeren

Controleer eerst of de Apache-server actief is en wachtwoordverificatie is ingeschakeld.

Vervolgens kun je Fail2ban installeren door het volgende uit te voeren:

 sudo apt-get update sudo apt-get install fail2ban 

Configureer fail2ban voor Apache

De fail2ban bewaart zijn configuratiebestand "jail.conf" in de map "/ etc / fail2ban /". Het bevat een reeks vooraf gedefinieerde filters voor verschillende services en het wordt aanbevolen dit bestand niet te bewerken. Je moet voorgedefinieerde Apache-jails inschakelen door een "/etc/fail2ban/jail.local" -bestand te maken:

Ga als volgt te werk om een ​​nieuw "jail.local" -bestand te maken:

 sudo nano /etc/fail2ban/jail.local 

Voeg de volgende inhoud toe:

 [apache] ingeschakeld = true port = http, https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-noscript] enabled = true port = http, https filter = apache-noscript logpad = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-overflows] enabled = true port = http, https filter = apache-overflows logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 [apache-badbots] enabled = true port = http, https filter = apache-badbots logpath = / var / log / apache2 /*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 

Sla het bestand op en sluit het en start fail2ban opnieuw om de wijzigingen door te voeren.

 sudo /etc/init.d/fail2ban opnieuw opstarten 

U kunt de regels die zijn toegevoegd door Fail2Ban in iptables controleren met behulp van de volgende opdracht:

 sudo iptables -L 

De uitvoer ziet er ongeveer zo uit:

Opmerking : u kunt de details van elke gevangenis vinden die hieronder worden beschreven:

  • [apache] : deze gevangenis wordt gebruikt om mislukte inlogpogingen te blokkeren.
  • [apache-noscript] : deze jail wordt gebruikt om externe clients te blokkeren die op zoek zijn naar scripts op de website om uit te voeren.
  • [apache-overflows] : deze jail wordt gebruikt om clients te blokkeren die proberen verdachte URL's aan te vragen.
  • [apache-noscript] : deze jail wordt gebruikt om externe clients te blokkeren die naar scripts op de website zoeken om uit te voeren.
  • [apache-badbots] : deze gevangenis wordt gebruikt om kwaadwillige [apache-badbots] te blokkeren.

Opmerking : u kunt de details van elke hieronder beschreven regel vinden.

  • enabled : deze optie betekent dat Apache-bescherming is ingeschakeld.
  • port : deze optie geeft de services aan die fail2ban controleert.
  • filter : deze optie verwijst naar het configuratiebestand in de map /etc/fail2ban/filter.d/ .
  • logpath : deze optie specificeert de locatie van het logbestand.
  • bantime : deze optie specificeert het aantal seconden dat een externe host van de server wordt geblokkeerd.
  • maxretry : deze optie specificeert het aantal mislukte inlogpogingen voordat een externe host wordt geblokkeerd voor de duur van de ban-tijd.
  • ignoreip : met deze optie kunt u bepaalde IP-adressen blokkeren en blokkeren.

Controleer Fail2ban Banning Status

Nadat gevangenissen zijn geactiveerd, kunt u fail2ban controleren met de fail2ban-client :

 sudo fail2ban-clientstatus 

Je ziet een lijst met alle jails die je hebt ingeschakeld.

Om de status van een bepaalde gevangenis zoals apache te zien, apache-badbots door de volgende opdrachten uit te voeren:

 sudo fail2ban-clientstatusapache 

De uitvoer ziet er als volgt uit:

U kunt ook handmatig ban- of unban-IP-adressen instellen.

Bijvoorbeeld om een ​​IP-adres (192.168.1.20) met een apache-gevangenis te verbieden:

 sudo fail2ban-client set apache banip 192.168.1.20 

Om een ​​IP-adres (192.168.1.21) uit te pakken met een apache-gevangenis:

 sudo fail2ban-client set apache unbanip 192.168.1.21 

Testen Fail2Ban

Het is belangrijk om uw fail2ban te testen of deze werkt zoals verwacht of niet. Nu op een extern apparaat opent u uw webbrowser en typt u de URL van uw domein (of het IP-adres van uw server). Wanneer Apache om verificatie vraagt, geef dan herhaaldelijk een onjuiste gebruikersnaam en wachtwoord. Nadat u de limiet hebt bereikt, moet u worden geblokkeerd en hebt u geen toegang tot de site.

Controleer de status met de fail2ban-client :

 sudo fail2ban-clientstatusapache 

U zult zien dat uw IP-adres wordt geblokkeerd van de site.

Conclusie

U hebt nu genoeg kennis om fail2ban te configureren. Het gebruik van fail2ban is een goede en gemakkelijke manier om overstromingen te stoppen (Brute-force attacks). Het is ook een goede manier om het aantal slechte verzoeken dat u ontvangt op uw Apache-webserver te beperken.