Hur man skyddar SSH med Fail2Ban på Rocky Linux 9

Hur man skyddar SSH med Fail2Ban på Rocky Linux 9

Introduktion

Secure Shell (SSH) är ett viktigt protokoll för säker fjärråtkomst till servrar. Det ger en krypterad kanal för att utföra kommandon och överföra filer, vilket gör det möjligt för användare att hantera system på distans. Men SSH kan också vara en måltavla för brute-force-attacker, där angripare försöker gissa lösenord för att få obehörig åtkomst.

Fail2Ban är ett kraftfullt intrångsdetekterings- och förebyggandeverktyg som kan hjälpa till att skydda SSH-servrar från sådana attacker. Genom att övervaka loggfiler och identifiera misstänkt aktivitet, kan Fail2Ban automatiskt blockera IP-adresser som upprepade gånger misslyckas med inloggningsförsök.

Den här guiden kommer att beskriva steg för steg hur du installerar och konfigurerar Fail2Ban för att skydda SSH på Rocky Linux 9.

Installation av Fail2Ban

1. Uppdatera system: Kör följande kommando för att uppdatera systempaketen.


sudo dnf update

2. Installera Fail2Ban: Installera Fail2Ban-paketet med följande kommando.


sudo dnf install fail2ban

3. Starta och aktivera Fail2Ban: Starta Fail2Ban-tjänsten och konfigurera den att starta automatiskt vid systemomstart.


sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Konfigurering av Fail2Ban för SSH

Fail2Ban konfigureras via konfigurationsfilen /etc/fail2ban/jail.conf. Vi behöver lägga till en anpassad ”jail” för SSH.

1. Öppna konfigurationsfilen: Redigera /etc/fail2ban/jail.conf med förhöjd behörighet.


sudo nano /etc/fail2ban/jail.conf

2. Lägg till SSH-jail: Lägg till följande avsnitt i slutet av filen.


[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 86400

* enabled: Anger om SSH-jailen ska vara aktiverad eller ej.
* port: Ange SSH-porten (22 som standard).
* filter: Ange Fail2Ban-filtret som ska användas för att identifiera SSH-fel.
* logpath: Ange sökvägen till SSH-loggfilen.
* maxretry: Ange det maximala antalet misslyckade inloggningsförsök som tillåts innan IP-adressen blockeras.
* bantime: Ange hur länge (i sekunder) en blockerad IP-adress ska förbli blockerad.

3. Spara ändringarna: Spara och stäng konfigurationsfilen.

Anpassning av Fail2Ban-filter

Fail2Ban använder Regex-filter för att identifiera misstänkt aktivitet. Vi behöver anpassa standardfiltret för SSH för att bättre passa våra behov.

1. Öppna filterfilen: Redigera Fail2Ban-filterfilen /etc/fail2ban/filter.d/sshd.conf med förhöjd behörighet.


sudo nano /etc/fail2ban/filter.d/sshd.conf

2. Anpassa filterreglen: Ersätt standardfilterreglen med följande anpassade regel.


[Definition]
failregex = ^%(__prefix_line)sAuthentication failed for .+ from (?P<host>\S+) port (?P<port>\d+)$
ignoreregex =

Denna regel identifierar misslyckade SSH-inloggningsförsök baserat på följande kriterier:

* %(__prefix_line)s: Matchar SSH-loggprefixet som definieras i /etc/rsyslog.conf.
* Authentication failed: Matchar raden som indikerar ett misslyckat inloggningsförsök.
* (?P<host>\S+): Grupperar IP-adressen till den attackerande värden i fångstgruppen host.
* (?P<port>\d+): Grupperar SSH-porten i fångstgruppen port.

3. Spara ändringarna: Spara och stäng filterfilen.

Testning av Fail2Ban

För att testa Fail2Ban-konfigurationen kan vi prova att misslyckas med inloggningsförsök på SSH-servern.

1. Försök att logga in med ogiltigt lösenord: Försök att logga in på SSH-servern med ett felaktigt användarnamn och lösenord.


ssh root@server_ip_address

2. Kontrollera Fail2Ban-logg: Öppna Fail2Ban-loggen för att verifiera att det misslyckade inloggningsförsöket har registrerats.


sudo cat /var/log/fail2ban.log

3. Kontrollera blockerad IP-adress: Använd kommandot fail2ban-client för att kontrollera om IP-adressen till den angripande värden har blockerats.


sudo fail2ban-client status sshd | grep Banned

Slutsats

Genom att konfigurera Fail2Ban för att skydda SSH-servern på Rocky Linux 9 kan du avsevärt minska risken för brute-force-attacker. Fail2Ban övervakar SSH-loggfiler och blockerar automatiskt IP-adresser som upprepade gånger misslyckas med inloggningsförsök. Denna konfiguration förbättrar säkerheten för din server och gör det svårare för obehöriga användare att få åtkomst.

Förutom de steg som beskrivs i den här guiden rekommenderas följande bästa praxis för ytterligare skydd mot SSH-attacker:

* Använd starka lösenord och aktivera tvåfaktorsautentisering.
* Begränsa SSH-åtkomst till endast nödvändiga IP-adresser.
* Använd SSH-nyckelautentisering istället för lösenordsbaserad autentisering.
* Övervaka regelbundet SSH-loggfiler för misstänkt aktivitet.

Genom att implementera dessa ytterligare åtgärder kan du säkerställa ett starkt försvar för din SSH-server och skydda ditt system från obehörig åtkomst.

Vanliga frågor

1. Vad är Fail2Ban?
Fail2Ban är ett intrångsdetekterings- och förebyggandeverktyg som identifierar misstänkt aktivitet och blockerar IP-adresser som utför upprepade misslyckade inloggningsförsök.

2. Varför är det viktigt att skydda SSH?
SSH är ett viktigt protokoll för säker fjärråtkomst till servrar. Om SSH inte är skyddat kan det vara en måltavla för brute-force-attacker, där angripare försöker gissa lösenord för att få obehörig åtkomst.

3. Hur fungerar Fail2Ban?
Fail2Ban övervakar loggfiler och identifierar misstänkt aktivitet baserat på fördefinierade filter. När en regel utlöses blockerar Fail2Ban automatiskt IP-adressen till den angripande värden.

4. Kan jag anpassa Fail2Ban-regeln?
Ja, du kan anpassa Fail2Ban-regeln för att bättre passa dina behov. Redigera filterfilen /etc/fail2ban/filter.d/sshd.conf för att definiera anpassade regler för att identifiera misslyckade SSH-inloggningsförsök.

5. Hur testar jag Fail2Ban?
Du kan testa Fail2Ban genom att prova att misslyckas med inloggningsförsök på SSH-servern. Kontrollera sedan Fail2Ban-loggen och använd kommandot fail2ban-client för att verifiera om IP-adressen till den angripande värden har blockerats.

6. Vilka är några rekommenderade bästa praxis för att skydda SSH?
Förutom Fail2Ban rekommenderas följande bästa praxis för att förbättra SSH-säkerheten:
* Använd starka lösenord och tvåfaktorsautentisering.
* Begränsa SSH-åtkomst till endast nödvändiga IP-adresser.
* Använd SSH-nyckelautentisering.
* Övervaka regelbundet SSH-loggfiler.

7. Vad är fördelen med SSH-nyckelautentisering?
SSH-nyckelautenti