Denne artikkelen er en del av Apache Server Guide-serien:

  • Sikre Apache på Ubuntu - Del 1
  • Sikre Apache på Ubuntu - Del 2
  • Optimalisering av Apache Performance - Del 1
  • Optimalisering av Apache Performance - Del 2
  • Sette opp navnbasert Virtualhost Apache
  • Sette opp IP og portbasert Virtualhost i Apache
  • Hvordan sette opp passordbeskytt webkatalogen i Apache
  • Sette opp Apache Server med SSL-støtte på Ubuntu
  • Konfigurere Fail2ban for å beskytte Apache fra et DDOS-angrep
  • Hvordan sette opp Webdav med Apache på Ubuntu
  • Overvåk Apache Web Server ved hjelp av Mod_status
  • Slik beskytter du mot DDoS med Mod_evasive på Apache Server

Apache er en av de mest brukte og populære webserverne i verden, så det er viktig å beskytte ditt nettsted og brukere fra brute-force angrep. Fail2ban er en åpen kildekodeinntrengingsprogramvare skrevet i Python. Fail2Ban analyserer kontinuerlig ulike loggfiler for tjenester (som Apache, ssh, postfix ...), og hvis det oppdager ondsinnede angrep, skaper det regler på brannmuren for å blokkere hackers IP-adresser for en bestemt tid. Fail2Ban informerer også en systemadministrator med en e-post av sin aktivitet.

I denne artikkelen vil jeg forklare hvordan du installerer fail2ban og konfigurerer den for å overvåke Apache-loggene dine for skadelige godkjenningsfeilforsøk.

Krav

  • Ubuntu server 14.04 med Apache installert
  • Apache konfigurert med passordautentisering

Installere Fail2Ban

Først må du kontrollere at Apache-serveren kjører og passordautentisering er aktivert.

Deretter kan du installere Fail2ban ved å kjøre:

 sudo apt-get oppdatering sudo apt-get install fail2ban 

Konfigurer fail2ban for Apache

Fail2ban beholder sin konfigurasjonsfil "jail.conf" i "/ etc / fail2ban /" katalogen. Den inneholder et sett med forhåndsdefinerte filtre for ulike tjenester, og det anbefales at du ikke redigerer denne filen. Du må aktivere forhåndsdefinerte Apache-fengsler ved å opprette en "/etc/fail2ban/jail.local" -fil:

For å opprette en ny "jail.local" -fil, kjør:

 sudo nano /etc/fail2ban/jail.local 

Legg til følgende innhold:

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

Lagre og lukk filen, start deretter fail2ban for endringene skal tre i kraft.

 sudo /etc/init.d/fail2ban restart 

Du kan bekrefte reglene som ble lagt til av Fail2Ban i iptables ved å bruke følgende kommando:

 sudo iptables -L 

Utgangen vil se slik ut:

Merk : Du finner detaljene for hvert fengsel som er beskrevet nedenfor:

  • [apache] : dette fengsel brukes til å blokkere mislykkede påloggingsforsøk.
  • [apache-noscript] : dette fengselet brukes til å blokkere eksterne klienter som søker etter skript på nettstedet for å utføre.
  • [apache-overflows] : Dette fengsel brukes til å blokkere klienter som forsøker å be om mistenkelige nettadresser.
  • [apache-noscript] : dette fengsel brukes til å blokkere eksterne klienter som søker etter skript på nettstedet for å utføre.
  • [apache-badbots] : dette fengselet brukes til å blokkere ondsinnede botforespørsler.

Merk : Du finner detaljene for hver regel som er beskrevet nedenfor.

  • enabled : dette alternativet betyr at Apache-beskyttelse er på.
  • port : dette alternativet angir tjenestene som fail2ban-skjermer.
  • filter : dette alternativet refererer til config-filen som ligger i /etc/fail2ban/filter.d/ katalogen.
  • logpath : Dette alternativet angir plasseringen av loggfilen.
  • bantime : Dette alternativet angir antall sekunder som en ekstern vert vil bli blokkert fra serveren.
  • maxretry : dette alternativet angir antall mislykkede påloggingsforsøk før en ekstern vert er blokkert for lengden av forbudstiden.
  • ignoreip : dette alternativet lar deg hviteliste bestemte IP-adresser fra blokkering.

Sjekk Fail2ban Banning Status

Når fanger er aktivert, kan du sjekke fail2ban ved hjelp av fail2ban-client kommandoen:

 sudo fail2ban-klient status 

Du kan se en liste over alle de fanger du har aktivert.

For å se statusen til et bestemt fengsel som apache, apache-badbots ved å kjøre følgende kommandoer:

 sudo fail2ban-klient status apache 

Utgangen ser slik ut:

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

For eksempel, for å forby en IP-adresse (192.168.1.20) med et apache fengsel:

 sudo fail2ban-klient sett apache banip 192.168.1.20 

For å unban en IP-adresse (192.168.1.21) med et apache fengsel:

 sudo fail2ban-klient sett apache unbanip 192.168.1.21 

Testing Fail2Ban

Det er viktig å teste din fail2ban om den fungerer som forventet eller ikke. Nå på en ekstern maskin, åpne nettleseren din og skriv inn nettadressen til domenet ditt (eller serverens IP-adresse). Når Apache ber om autentisering, oppgir du feil brukernavn og passord gjentatte ganger. Etter at du har nådd grensen, bør du være blokkert og ikke kunne få tilgang til nettstedet.

Kontroller statusen med kommandoen fail2ban-client :

 sudo fail2ban-klient status apache 

Du vil se at din IP-adresse blir blokkert fra nettstedet.

Konklusjon

Nå har du nok kunnskap til å konfigurere fail2ban. Bruke fail2ban er en god og enkel måte å stoppe flom på (Brute-force angrep). Det er også en god måte å begrense antall dårlige forespørsler du mottar på Apache webserveren din.