Weekend Prosjekt: Hold Out gjengangerne med Fail2ban på Linux

Lei av automatiserte angrep på systemene dine? Lyst til å beef opp sikkerheten litt ved å nekte potensielle angripere en tredje eller fjerde sjanse? Da trenger du Fail2ban. Fail2ban klokker logger og deretter forbud IP-adresser, basert på for mange passord feil, ved å oppdatere brannmurregler. Spesifikke regler kan defineres av brukeren og flere loggfiler kan overvåkes. Denne helgen, la oss komme i gang med å forbedre sikkerheten med Fail2ban.

Ut av boksen, vil Fail2ban beskytte mot SSH brute force angrep, men hvorfor ikke gi den serveren (eller desktop) enda mer sikkerhet. La oss grave i og installere Fail2ban og, en gang installert, stramme opp vår systemsikkerhet så mye som mulig.

Installasjon

Utviklerne av Fail2ban arbeidet tett med Debian-samfunnet, så naturlig installasjonen på en Debian-basert datamaskin er omtrent like enkelt som det blir. Hvis du er på en Debian-basert system, er installasjonen for Fail2ban så enkelt som:


    Åpne et terminalvindu

    Issue kommandoen sudo apt-get install fail2ban..

    Skriv inn sudo passord og trykker på Enter.

    Tillat for eventuelle avhengigheter som skal installeres.

    Det er det, er Fail2ban nå oppe og går, og er klar til å konfigureres. Før jeg grave i konfigurasjonen, la oss dekke noen begreper du trenger å vite:

    Filter:. Dette er et vanlig uttrykk som brukes til å se etter innlogging feil

    Handling:. En handling er en kommando (eller samling av kommandoer) som er utført på et gitt øyeblikk

    Jail. Dette er en kombinasjon av et filter og en eller flere handlinger

    Alt klart? La oss komme i gang

    server og klient

    Når Fail2ban installerer, installerer det to stykker:!

  1. fail2ban-server: Dette er serveren del som er en multi -threaded applikasjon som lytter etter kommandoer

    fail2ban-klient. Dette er front-end som kobles til fail2ban-server. Klienten kan enten lese fail2ban konfigurasjonsfilen, kan utstedes fra kommandolinjen med argumenter for å sende en kommando til serveren, eller kan startes i interaktiv modus.

    Jeg skal ta opp konfigurasjonen av Fail2ban i et øyeblikk. Først vil jeg ta opp disse to stykker og hvordan de brukes. Først den fail2ban-server verktøyet. Dette verktøyet bør ikke brukes direkte, med mindre du bruker for debugging formål. Til opsjoner som kan utstedes med kommandoen fail2ban-serveren er:

    -b: Begynn server i bakgrunnen

    -f:.. Begynn server i forgrunnen

    -s [FILE]:. Socket bane

    -x: Force drepe serveren

    fail2ban-klienten kommando, på den annen side, er front-end for. fail2ban-server, og er lett tilgjengelig for bruk. De mulige alternativene for denne kommandoen er:

    -c: Configuration katalogen

    -s:.. Socket banen

    -d: Dump konfigurasjon (for debugging) .

    -i:. Interaktiv modus

    v.: Verbose modus

    q: Reduser verbosity

    -x. Force drepe serveren .

    Nå, før jeg drar som viser hvordan du starter og bruker fail2ban-klienten kommando, jeg må først presentere hvordan denne tjenesten er konfigurert.

    Konfigurering fail2ban
    < p> Innenfor /etc /fail2ban katalogen er det to bestemte filer i notatet:

    fail2ban.conf: Denne filen inneholder generelle alternativer for fail2ban. Mest sannsynlig standardvalgene vil fungere helt fint

    jail.conf. Dette er kjøtt og poteter av fail2ban. I denne filen fengsler er laget for spesifikke sikkerhetsbehov.

    Siden jail.conf er viktigere (og mer kompleks) fil, jeg ønsker å fokusere på konfigurasjonen der. Denne konfigurasjonen er delt inn i to deler: Default og fengsler. Hver seksjon er startet med enten [Seksjon Name] (for eksempel [Standard] eller [ssh]). Et eksempel på et fengsel som er konfigurert ut av boksen er ssh fengsel. Denne konfigurasjonen ser slik ut:


     [ssh] enabled = trueport = sshfilter = sshdlogpath = /var/log/auth.logmaxretry = 6 


    Dette er en ganske enkelt fengsel, så det gjør for et perfekt eksempel. La oss se på denne line-by-line

    aktivert: Dette ber fail2ban at dette fengselet er aktivert

    port: Dette ber fail2ban hvilken port som skal være å se på - i dette.. tilfellet port 22 for ssh

    filter. Dette ber fail2ban som filter for å bruke fra /etc/fail2ban/filter.d/mappen

    logpath. Dette ber fail2ban hva loggfilen for å se .

    maxretry. Dette ber fail2ban hvor mange feil å tillate før blokkere IP-adressen

    Ta en titt i /etc/fail2ban/filter.d/mappen. I denne mappen det bor ca. tjuesju forhåndskonfigurerte filtre (som dekker alt fra apache-auth til xinetd-fail). Hver av disse filtrene kan redigeres for å bedre kamp spesifikke behov. I SSH eksempelet ovenfor, sier en ikke-standard port for SSH er brukt, som kan endres ved ganske enkelt å redigere port-oppføring.

    Selvfølgelig SSH eksempel er en ganske grei en. Husk Fail2ban utnytter regulære uttrykk (som jeg ikke vil komme inn – det er en annen tutorial alle sammen), så filtre kan bli ganske komplisert. Ta for eksempel den pam-generisk filter (som kan se alle innloggingsforsøk). I dette filteret, linjen:


    failregex = \\ s \\ S + \\ S +% (__ pam_combs_re) s \\ s + autentiseringsfeil; logname = \\ S * uid = \\ S * euid = \\ S * tty =% (_ ttys_re) s RUSER = \\ S * rhost =? (:?. \\ r + user = *) \\ s * $

    klokker for feil i loggfilen.

    Når du har dine filtre laget og /eller riktig konfigurert (innenfor filter.d mappe) disse filtrene kan deretter brukes i jail.conf filen. Som standard vil fail2ban ha mange av disse filtrene allerede er konfigurert i fengsler i jail.conf, men de fleste av dem vil bli satt til å aktivere = false. Gå gjennom jail.conf fil og bør det være et fengsel som skal brukes på et bestemt system, endre aktivert innreise til enabled = sant, lagre filen, og start nissen med kommandoen fail2ban-server reload. Anmeldelser

    Nå med Fail2ban server som kjører det vil bli å se de konfigurerte fengsler og bør en fornærmende forbindelse matche kriteriene for et filter, vil denne forbindelsen bli blokkert, med hjelp av iptables.

    For å starte Fail2ban system, gi følgende kommando: sudo /etc/init.d/fail2ban starte. Å starte systemet, gi kommandoen sudo /etc/init.d/fail2ban starte.

    En annen Filter Eksempel

    Her er en annen hendig Fail2ban filter som kan brukes som en Apache Proxy filter. Dette filteret vil forby alle brukere på nettverket som prøver å sette opp en proxy via Apache. Det første trinnet er å opprette /etc/fail2ban/filter.d/apache-proxy.conf fil. Her trenger du:


     # Fail2Ban konfigurasjonsfil [Definisjon] # Kamper linjer som: # 192.168.1.1 - - " GET http://www.infodownload.info/proxyheader.php ... failregex = ^ (:?!. ([. 0-9 \\] * - * " [AZ] * /) < HOST >) ignoreregex = 


    Det neste trinnet er å åpne opp (eller lage) /etc/fail2ban/jail.local og legge til følgende:

    [apache-proxy] aktivert = true port = http, https filter = apache-proxy logpath = /var/log/apache/*access.log maxretry = 0 findtime = 604800 bantime = 604800

    Vil du vite mer?

    Siden dette er en åpen kildekode-verktøy, naturligvis i samfunnet bidrar i mange måter. En måte er et fellesskap lager av filtre (og andre biter av informasjon). Sjekk ut wiki for ulike filtre som ikke er tilgjengelige i standardinstallasjonen. Anmeldelser