Forutsetninger
Trinn 1: Oppdater systemet
Trinn 2: Endre SSH-porten (valgfritt)
Trinn 3: Installer og konfigurer fail2ban for å beskytte SSH
Fail2ban, som navnet antyder, er et verktøy utviklet for å beskytte Linux-maskiner mot brute-force-angrep på utvalgte åpne porter, spesielt SSH-porten. Av hensyn til systemfunksjonalitet og administrasjon kan disse portene ikke lukkes ved hjelp av en brannmur. Under disse omstendighetene er det en god idé å bruke Fail2ban som et tilleggssikkerhetstiltak til en brannmur for å begrense brute-force angrepstrafikk på disse portene.
I denne artikkelen vil jeg vise deg hvordan du installerer og konfigurerer Fail2ban for å beskytte SSH-porten, det vanligste angrepsmålet, på en Vultr Debian 9-serverforekomst.
Forutsetninger
- En fersk Debian 9 (Stretch) x64-serverforekomst.
- Logget inn som
root.
- Alle ubrukte porter har blitt blokkert med riktige IPTables-regler.
Trinn 1: Oppdater systemet
apt update && apt upgrade -y
shutdown -r now
Etter at systemet har startet opp, logger du på igjen som root.
Trinn 2: Endre SSH-porten (valgfritt)
Siden standard SSH-portnummer 22er for populært til å ignorere, 38752vil det være en smart avgjørelse å endre det til et mindre kjent portnummer .
sed -i "s/#Port 22/Port 38752/g" /etc/ssh/sshd_config
systemctl restart sshd.service
Etter endringen må du oppdatere IPTables-reglene tilsvarende:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p tcp --dport 38752 -j ACCEPT
Lagre de oppdaterte IPTables-reglene til en fil for utholdenhetsformål:
iptables-save > /etc/iptables.up.rules
touch /etc/network/if-pre-up.d/iptables
chmod +x /etc/network/if-pre-up.d/iptables
echo '#!/bin/sh' >> /etc/network/if-pre-up.d/iptables
echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-pre-up.d/iptables
På denne måten vil IPTables-reglene være vedvarende selv etter en omstart av systemet. Fra nå av må du logge på fra 38752porten.
Bruk for aptå installere den stabile versjonen av Fail2ban som for øyeblikket er 0.9.x:
apt install fail2ban -y
Etter installasjonen vil Fail2ban-tjenesten starte automatisk. Du kan bruke følgende kommando for å vise statusen:
service fail2ban status
På Debian vil standard Fail2ban-filterinnstillingene lagres i både /etc/fail2ban/jail.conffilen og /etc/fail2ban/jail.d/defaults-debian.conffilen. Husk at innstillingene i den sistnevnte filen vil overstyre tilsvarende innstillinger i den tidligere.
Bruk følgende kommandoer for å se flere detaljer:
cat /etc/fail2ban/jail.conf | less
cat /etc/fail2ban/jail.d/defaults-debian.conf
fail2ban-client status
fail2ban-client status sshd
For din informasjon er kodeutdrag om SSH listet opp nedenfor:
I /etc/fail2ban/jail.conf:
[DEFAULT]
bantime = 600
...
maxentry = 5
[sshd]
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
I /etc/fail2ban/jail.d/defaults-debian.conf:
[sshd]
enabled = true
Siden innholdet i de to konfigurasjonsfilene ovenfor kan endres i fremtidige systemoppdateringer, bør du opprette en lokal konfigurasjonsfil for å lagre dine egne fail2ban-filterregler. Igjen vil innstillingene i denne filen overstyre tilsvarende innstillinger i de to filene nevnt ovenfor.
vi /etc/fail2ban/jail.d/jail-debian.local
Skriv inn følgende linjer:
[sshd]
port = 38752
maxentry = 3
Merk: Sørg for å bruke din egen SSH-port. Bortsett fra portog maxentrynevnt ovenfor, vil alle andre innstillinger bruke standardverdiene.
Lagre og avslutt:
:wq
Start Fail2ban-tjenesten på nytt for å laste den nye konfigurasjonen:
service fail2ban restart
Oppsettet vårt er fullført. Fra nå av, hvis en maskin sender feil SSH-legitimasjon til Debian-serverens tilpassede SSH-port ( 38752) mer enn tre ganger, vil IP-en til denne potensielt ondsinnede maskinen bli utestengt i 600 sekunder.