Hur man skyddar SSH med fail2ban på CentOS

Innehållsförteckning

Servrar existerar inte isolerat och de flesta installeras och anpassas med endast den mest grundläggande SSH -konfigurationen kan vara sårbar för brute force -attacker.
Fail2ban -verktyget ger ett sätt att automatiskt skydda servern från misstänkta attacker och skadlig programvara.
Programmet fungerar genom att skanna loggfilerna och hjälper till att reagera på åtgärder som upprepade misslyckade anslutningsförsök.
Vi börjar med att installera fail2ban
Eftersom fail2ban inte är tillgängligt i CentOS måste vi börja med att ladda ner förvaret:
rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Sedan installerar vi fail2ban från kommandoraden med följande kommando
yum installera fail2ban

Vi kopierar konfigurationsfilen
Standardkonfigurationsfilen fail2ban är platsen i /etc/fail2ban/jail.conf. Konfigurationsarbete bör dock inte utföras på den filen, och en lokal kopia av den bör göras istället för säkerhetskopiering.
cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local

När filen har kopierats kan vi göra alla ändringar i den nya jail.local -filen. Många av de möjliga tjänster som kan behöva skydd finns i den här filen redan förkonfigurerade. Var och en är i sin egen sektion, konfigurerad och avstängd.
Ställ in som standard på Jail.Local
Öppna den nya fail2ban -konfigurationsfilen:
 vi / etc / fail2ban / jail.local 

Det första avsnittet med standardinställningar täcker de grundläggande regler som fail2ban kommer att följa. Om du vill konfigurera mer personligt skydd för din virtuella privata server kan du anpassa detaljerna för varje avsnitt.
Du kan se standardavsnittet några detaljer som följande.
 [DEFAULT] # "Ignorera" kan vara en IP -adress, en CIDR -mask eller en DNS -värd. Fail2ban kommer inte # Spärra en sträng som matchar en adress i listan. Flera adresser kan #define med rymdavgränsare. ignorip = 127.0.0.1 # "Bantime" är antalet sekunder som en värd är förbjuden att komma åt eller avstängas. bantime = 3600 # Tiden i sekunder som en värd kommer att blockeras om det gör ett maximalt antal misslyckade sökningar findtime = 600 # "Maxretry" är antalet tillåtna misslyckanden innan det förbjuds. maxretry = 3 

Ange din IP -adress på den ignorera personliga raden. Du kan skilja varje adress med ett mellanslag. IgnoreIP kommer att vitlista vissa IP -adresser och se till att de inte lämnas utanför din VPS. Att inkludera din adress säkerställer att du inte av misstag förbjuder dig från din egen virtuella privata server.
Nästa steg är att besluta om en förbudstid, antalet sekunder som en värd blockeras från servern om de bryter mot någon av reglerna. Detta är särskilt användbart för robotar, som när åtkomst är förbjudet, helt enkelt går vidare till nästa mål. Standard är 10 minuter, du kan höja detta till en timme om du vill.
Maxretry är antalet felaktiga åtkomstförsök en värd kan ha innan dess åtkomstförsök är förbjudna under förbudstiden.
Findtime refererar till hur lång tid en värd måste ange standardvärdet är 10 minuter, vilket innebär att om ett försök görs för att komma åt en värd till en server och det misslyckas, logga in mer än maxbeloppet 3 gånger i de angivna 10 minuterna blockeras din IP och du kommer inte att kunna komma åt.
Konfigurera avsnittet ssh - iptables i Jail.Local
SSH -detaljavsnittet ligger bara lite längre ner i inställningarna, och det är redan installerat och aktiverat. Även om du inte ska behöva göra några ändringar inom detta avsnitt, kan du hitta detaljer om varje rad nedan.
 [ssh - iptables] enabled = true filter = sshd action = iptables [name = SSH, port = ssh, protocol = tcp] sendmail -whois [name = SSH, dest = root, [email protected]] logpath = / var / log / secure maxretry = 5

Aktiverat hänvisar helt enkelt till att SSH -skydd är aktiverat. Du kan stänga av det med ordet falskt.
Filter, som du använder som standard för sshd, refererar till konfigurationsfilen som innehåller reglerna som fail2banuses använder för att hitta matchningar. Namnet är en förkortad version av filtillägget. Till exempel hänvisar sshd till /etc/fail2ban/filter.d/sshd.conf
Åtgärd, beskriver stegen som fail2ban kommer att vidta för att förbjuda en matchande IP -adress. Liksom filterposten hänvisar varje åtgärd till en fil i action.d -katalogen. Standardförbudet, iptable, finns i /etc/fail2ban/action.d/iptables.conf
I iptables kan du ytterligare anpassa fail2ban. Om du till exempel använder en icke-standardport kan du ändra portnumret inom parentes till höjden, vilket gör siktlinjen till samma familj:
till exempel . iptables [namn = SSH, port = 30000, protokoll = tcp]
Du kan också ändra protokollet från TCP till UDP på ​​den här raden, beroende på vilken du vill att fail2ban ska övervaka.
Om du har en e -postserver konfigurerad på din virtuella privata server kan fail2ban skicka e -post till dig när en IP -adress är förbjuden. Vid bypass hänvisar sendmail-whois till åtgärderna i / etc / fail2ban / action.d / sendmail-whois.conf.
log sökväg hänvisar till platsen för loggen som fail2ban kommer att spåra.
Den maximala försökslinjen inom SSH -sektionen har samma definition som standardalternativet. Men om en tjänst har aktiverats och du vill ha specifika värden för var och en av dem, kan du ställa in det nya maximala försöksbeloppet för SSH här.
Starta om fail2ban
Efter att ha gjort några ändringar i fail2ban -konfigurationen, se alltid till att starta om fail2ban:
sudo starta om fail2ban -tjänsten

Du kan se reglerna som fail2ban tillämpar i IP -tabellen:
iptables- L
Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng
wave wave wave wave wave