Hur man blockerar oönskade SSH-inloggningsförsök med PyFilter på Ubuntu 16.04

Att säkerställa skyddet av din Ubuntu 16.04-server mot obehöriga försök att logga in via SSH är grundläggande för att upprätthålla systemets integritet. Även om brandväggar erbjuder en initial skyddsnivå, kan de vara otillräckliga mot mer avancerade intrångsförsök. Det är här PyFilter kommer in i bilden – ett robust verktyg som låter dig filtrera SSH-trafik i realtid och effektivt blockera potentiellt skadliga aktiviteter.

Vad är PyFilter?

PyFilter är ett Python-baserat program som fungerar som en mellanhand (proxy) mellan din SSH-server och de anslutande klienterna. Det möjliggör implementering av sofistikerade regler för att filtrera SSH-trafik baserat på en mängd olika parametrar, inklusive IP-adress, användarnamn och till och med specifika kodsekvenser.

Med PyFilter får du förmågan att:

  • Spärra IP-adresser: Identifiera och blockera bestämda IP-adresser som försöker etablera en SSH-anslutning till din server.
  • Styra åtkomst: Definiera vilka användare som är tillåtna att logga in från givna IP-adresser.
  • Övervaka trafik: Följ alla inloggningsförsök och upptäck misstänkta händelser.
  • Använda anpassade filter: Skapa skräddarsydda regler för att filtrera SSH-trafiken efter specifika krav.

Steg för installation och konfiguration av PyFilter

För att komma igång med PyFilter på din Ubuntu 16.04-server, följ dessa anvisningar:

1. Installera Python:


sudo apt-get update
sudo apt-get install python3

2. Installera PyFilter:


sudo pip3 install pyfilter

3. Konfigurera PyFilter:

Skapa en konfigurationsfil för PyFilter, exempelvis pyfilter.conf, och ange följande inställningar:


[main]
port = 2222
# Port som PyFilter ska lyssna på
user = root
# Användarnamn för SSH-anslutningar
host = 127.0.0.1
# IP-adressen för SSH-servern
auth = pam
# Valfritt: Autentiseringsmetod (t.ex. PAM)

4. Starta PyFilter:


sudo pyfilter -c pyfilter.conf

Avancerade filterregler med PyFilter

PyFilter ger dig en omfattande uppsättning filterregler för att stärka din servers säkerhet. Här följer några praktiska exempel:

1. Blockera enskilda IP-adresser:


[filter]
block ip 192.168.1.10

2. Tillåt endast åtkomst från en specifik IP-adress:


[filter]
allow ip 192.168.1.1

3. Begränsa användare till specifika IP-adresser:


[filter]
rule user "username" {
allow ip 192.168.1.1
allow ip 192.168.1.2
}

4. Filtrera baserat på kodsekvenser:


[filter]
rule code "password" {
allow code "your_password"
}

5. Logga alla inloggningsförsök:


[filter]
log all

Övervakning och analys av SSH-trafik

PyFilter underlättar övervakning och analys av all SSH-trafik som passerar din server. Loggdata lagras i filen pyfilter.log, som kan granskas för att identifiera eventuella oegentligheter.

1. Granska loggfilen:


cat pyfilter.log

2. Analysera loggdata:

Verktyg som grep eller awk kan användas för att analysera loggfilen och filtrera information baserat på specifika kriterier.

Slutsats

PyFilter är ett kraftfullt verktyg som hjälper dig att ytterligare skydda din Ubuntu 16.04-server mot obehöriga SSH-inloggningsförsök. Genom att implementera avancerade filterregler och övervaka SSH-trafiken kan du effektivt upptäcka och blockera potentiellt skadliga aktiviteter, vilket säkerställer att din server förblir skyddad.

Vanliga Frågor

1. Hur kan jag konfigurera PyFilter för att blockera alla inloggningsförsök från vissa länder?

Du kan använda IP-adressintervall för att begränsa anslutningar från specifika länder. Databaser som listar IP-intervall för olika länder finns tillgängliga online.

2. Kan PyFilter användas för att skydda andra protokoll än SSH?

PyFilter är specifikt utvecklat för att hantera SSH-protokollet. För att skydda andra protokoll krävs andra verktyg.

3. Hur kan jag automatiskt spärra IP-adresser efter ett visst antal misslyckade inloggningsförsök?

PyFilter har inte inbyggt stöd för automatisk blockering baserad på antalet misslyckade inloggningsförsök. Denna funktion kan implementeras med hjälp av andra verktyg eller skript.

4. Kan jag använda PyFilter för att begränsa bandbredden för SSH-sessioner?

PyFilter är inte avsett för att begränsa bandbredden för SSH-sessioner. Verktyg som tc eller iptables kan användas för att implementera bandbreddsbegränsningar.

5. Fungerar PyFilter med andra Linuxdistributioner?

PyFilter är kompatibelt med de flesta Linuxdistributioner som stödjer Python 3.

6. Hur uppdaterar jag PyFilter till den senaste versionen?

Du kan använda pip3 för att uppdatera PyFilter:


sudo pip3 install --upgrade pyfilter

7. Påverkar PyFilter systemets prestanda?

PyFilter kan ha en liten inverkan på prestandan, men oftast är den försumbar, särskilt på kraftfullare servrar.

8. Kan PyFilter användas i kombination med en brandvägg?

Ja, PyFilter kan med fördel användas tillsammans med en brandvägg för att ge ett ytterligare lager av säkerhet.

9. Är PyFilter kostnadsfritt att använda?

Ja, PyFilter är gratis och distribueras under en öppen källkodlicens.

10. Var kan jag hitta mer information och support för PyFilter?

Mer information om PyFilter finns på den officiella webbplatsen: https://github.com/google/pyfilter

Taggar: Ubuntu 16.04, SSH, PyFilter, säkerhet, inloggningsförsök, blockering, filterregler, övervakning, analys, loggfiler, brandvägg, säkerhetstips.