Denne artikel er en del af Apache Server Guide serien:

  • Sikring af Apache på Ubuntu - Del 1
  • Sikring af Apache på Ubuntu - Del 2
  • Optimering af Apache Performance - Del 1
  • Optimering af Apache Performance - Del 2
  • Opsætning af navnebaseret Virtualhost Apache
  • Opsætning af IP og portbaseret Virtualhost i Apache
  • Sådan oprettes adgangskodebeskyttet webkatalog i Apache
  • Opsætning af Apache Server med SSL-support på Ubuntu
  • Opsætning af Fail2ban for at beskytte Apache fra et DDOS-angreb
  • Sådan opsættes Webdav med Apache på Ubuntu
  • Overvåg Apache Web Server ved hjælp af Mod_status
  • Sådan beskytter du mod DDoS med Mod_evasive på Apache Server

Apache er en af ​​de mest udbredte og populære webservere i verden, så det er vigtigt at beskytte dit websted og brugere mod brute-force angreb. Fail2ban er et open source-indbrudsforebyggelsesprogram, der er skrevet i Python. Fail2Ban analyserer løbende forskellige logfiler af tjenester (som Apache, ssh, postfix ...), og hvis det registrerer ondsindede angreb, skaber det regler på firewallen for at blokere hackers IP-adresser i et bestemt tidsrum. Fail2Ban informerer også en systemadministrator med en email af sin aktivitet.

I denne artikel vil jeg forklare, hvordan man installerer fail2ban og konfigurerer det til at overvåge dine Apache-logs for ondsindede godkendelsesfejlforsøg.

Krav

  • Ubuntu server 14.04 med Apache installeret
  • Apache konfigureret med adgangskode godkendelse

Installation af Fail2Ban

Først skal du sørge for, at Apache-serveren kører, og at godkendelse af adgangskode er aktiveret.

Derefter kan du installere Fail2ban ved at køre:

 sudo apt-get opdatering sudo apt-get install fail2ban 

Konfigurer fail2ban til Apache

Fail2ban beholder sin konfigurationsfil "jail.conf" i "/ etc / fail2ban /" biblioteket. Den indeholder et sæt foruddefinerede filtre til forskellige tjenester, og det anbefales at du ikke redigerer denne fil. Du skal aktivere foruddefinerede Apache-fængsler ved at oprette en "/etc/fail2ban/jail.local" -fil:

For at oprette nye "jail.local" -fil, kør:

 sudo nano /etc/fail2ban/jail.local 

Tilføj følgende indhold:

 [apache] enabled = sand port = http, https filter = apache-auth logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-noscript] enabled = sand port = http, https filter = apache-noscript logpath = /var/log/apache2/*error.log maxretry = 3 findtime = 600 ignoreip = 192.168.1.227 [apache-overløb] aktiveret = sand port = http, https filter = apache-overløb logpath = /var/log/apache2/*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 [apache-badbots] enabled = sand port = http, https filter = apache-badbots logpath = / var / log / apache2 /*error.log maxretry = 2 findtime = 600 ignoreip = 192.168.1.227 

Gem og luk filen, genstart fail2ban for ændringerne træder i kraft.

 sudo /etc/init.d/fail2ban genstart 

Du kan verificere de regler, der blev tilføjet af Fail2Ban i iptables ved hjælp af følgende kommando:

 sudo iptables -L 

Udgangen vil se sådan ud:

Bemærk : Du kan finde detaljerne i hvert fængsel beskrevet nedenfor:

  • [apache] : Dette fængsel bruges til at blokere mislykkede loginforsøg.
  • [apache-noscript] : dette fængsel bruges til at blokere fjernklienter, der søger efter scripts på hjemmesiden til at udføre.
  • [apache-overflows] : Dette fængsel bruges til at blokere klienter, der forsøger at anmode om mistænkelige webadresser.
  • [apache-noscript] : dette fængsel bruges til at blokere fjernklienter, der søger efter scripts på webstedet, der skal udføres.
  • [apache-badbots] : Dette fængsel bruges til at blokere skadelige botforespørgsler.

Bemærk : Du kan finde oplysninger om hver regel beskrevet nedenfor.

  • enabled : Denne indstilling betyder, at Apache-beskyttelse er tændt.
  • port : Denne indstilling angiver de tjenester, som fail2ban skærme.
  • filter : Denne indstilling refererer til config-filen, der findes i /etc/fail2ban/filter.d/ biblioteket.
  • logpath : Denne indstilling angiver placeringen af ​​logfilen.
  • bantime : Denne indstilling angiver det antal sekunder, som en fjern vært vil blive blokeret fra serveren.
  • maxretry : Denne indstilling angiver antallet af mislykkede loginforsøg, før en fjern vært er blokeret for længden af ​​forbudstiden.
  • ignoreip : Denne mulighed giver dig mulighed for at hvidliste bestemte IP-adresser fra blokering.

Check Fail2ban Banning Status

Når fængsler er aktiveret, kan du tjekke fail2ban ved hjælp af kommandoen fail2ban-client :

 sudo fail2ban-klient status 

Du kan se en liste over alle de fængsler, du har aktiveret.

For at se status for et bestemt fængsel som apache, apache-badbots ved at køre følgende kommandoer:

 sudo fail2ban-klient status apache 

Output ser sådan ud:

Du kan også manuelt indstille forbud eller unban IP-adresser.

For eksempel at forbyde en IP-adresse (192.168.1.20) med et apache fængsel:

 sudo fail2ban-klient sæt apache banip 192.168.1.20 

At fjerne en IP-adresse (192.168.1.21) med et apache-fængsel:

 sudo fail2ban-client sæt apache unbanip 192.168.1.21 

Testing Fail2Ban

Det er vigtigt at teste din fail2ban, om det virker som forventet eller ej. Nu på en fjernmaskine skal du åbne din webbrowser og indtaste webadressen på dit domæne (eller din serveres IP-adresse). Når Apache beder om godkendelse, skal du gentage et forkert brugernavn og kodeord. Når du har nået grænsen, skal du blokere og ikke kunne få adgang til webstedet.

Kontroller status med kommandoen fail2ban-client :

 sudo fail2ban-klient status apache 

Du vil se din IP-adresse blive blokeret fra webstedet.

Konklusion

Nu har du nok viden til at konfigurere fail2ban. Brug af fail2ban er en god og nem måde at stoppe oversvømmelser på (Brute-force attacks). Det er også en god måde at begrænse antallet af dårlige forespørgsler, du modtager på din Apache webserver.