Hvordan installere Fail2Ban for å beskytte SSH på CentOS/RHEL 8
Fail2ban er et gratis, åpen kildekode og mye brukt verktøy for å forhindre inntrenging som skanner loggfiler for IP-adresser som viser ondsinnede tegn som for mange passordfeil og mye mer, og det forbyr dem (oppdaterer brannmurregler for å avvise IP-adressene) . Som standard leveres den med filtre for ulike tjenester, inkludert sshd.
I denne artikkelen vil vi forklare hvordan du installerer og konfigurerer fail2ban for å beskytte SSH og forbedre SSH-serversikkerheten mot brute force-angrep på CentOS/RHEL 8.
Installerer Fail2ban på CentOS/RHEL 8
Fail2ban-pakken er ikke i de offisielle depotene, men den er tilgjengelig i EPEL-depotet. Etter å ha logget på systemet, får du tilgang til et kommandolinjegrensesnitt, og aktiver deretter EPEL-depotet på systemet ditt som vist.
# dnf install epel-release OR # dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Etterpå, installer Fail2ban-pakken ved å kjøre følgende kommando.
# dnf install fail2ban
Konfigurerer Fail2ban for å beskytte SSH
Fail2ban-konfigurasjonsfilene er plassert i /etc/fail2ban/-katalogen og filtre lagres i /etc/fail2ban/filter.d/-katalogen (filterfilen for sshd er /etc/fail2ban/filter.d/sshd.conf) .
Den globale konfigurasjonsfilen for fail2ban-serveren er /etc/fail2ban/jail.conf, men det anbefales ikke å endre denne filen direkte, da den sannsynligvis vil bli overskrevet eller forbedret i tilfelle en pakkeoppgradering i fremtiden.
Som et alternativ anbefales det å opprette og legge til konfigurasjonene dine i en jail.local-fil eller separate .conf
-filer under katalogen /etc/fail2ban/jail.d/. Merk at konfigurasjonsparametere satt i jail.local vil overstyre det som er definert i jail.conf.
For denne artikkelen vil vi lage en egen fil kalt jail.local i /etc/fail2ban/-katalogen som vist.
# vi /etc/fail2ban/jail.local
Når filen er åpen, kopierer og limer du inn følgende konfigurasjon i den. [DEFAULT]
-delen inneholder globale alternativer og [sshd]
inneholder parametere for sshd-fengselet.
[DEFAULT] ignoreip = 192.168.56.2/24 bantime = 21600 findtime = 300 maxretry = 3 banaction = iptables-multiport backend = systemd [sshd] enabled = true
La oss kort forklare alternativene i konfigurasjonen ovenfor:
- ignoreip: spesifiserer listen over IP-adresser eller vertsnavn som ikke skal utestenges.
- bantime: spesifisert antall sekunder som en vert er utestengt for (dvs. effektiv utestengelsesvarighet).
- maxretry: spesifiserer antall feil før en vert blir utestengt.
- findtime: fail2ban vil utestenge en vert hvis den har generert «maxretry» i løpet av de siste «findtime»-sekunder.
- banaction: forbud mot handling.
- backend: spesifiserer backend som brukes for å få loggfilendringer.
Konfigurasjonen ovenfor betyr derfor at hvis en IP har feilet 3 ganger i løpet av de siste 5 minuttene, sper den i 6 timer og ignorer IP-adressen 192.168.56.2.
Deretter starter og aktiverer du fail2ban-tjenesten for nå og kontrollerer om den er oppe og kjører ved å bruke følgende systemctl-kommando.
# systemctl start fail2ban # systemctl enable fail2ban # systemctl status fail2ban
Overvåking mislykket og utestengt IP-adresse ved hjelp av fail2ban-klient
Etter å ha konfigurert fail2ban for å sikre sshd, kan du overvåke mislykkede og utestengte IP-adresser ved å bruke fail2ban-klienten. For å se gjeldende status til fail2ban-serveren, kjør følgende kommando.
# fail2ban-client status
For å overvåke sshd-fengselet, kjør.
# fail2ban-client status sshd
For å fjerne en IP-adresse i fail2ban (i alle fengsler og databaser), kjør følgende kommando.
# fail2ban-client unban 192.168.56.1
For mer informasjon om fail2ban, les følgende man-sider.
# man jail.conf # man fail2ban-client
Det oppsummerer denne guiden! Hvis du har spørsmål eller tanker du vil dele om dette emnet, ikke nøl med å kontakte oss via tilbakemeldingsskjemaet nedenfor.