Fail2Ban installeren op een Ubuntu VPS, bekijk het handige stappenplan en bescherm uw virtual private server met SSH.
Inhoudsopgave
Verbinding maken met een VPS middels het SSH-protocol is een veilige manier om een server te benaderen. Doordat de SSH daemon constant met het internet verbonden is om correct te kunnen functioneren, wordt deze ook meteen een doelwit voor aanvallers. Een kwaadwillende partij kan duizenden keren per minuut in proberen te loggen met verschillende gebruikersgegevens, ook wel een ‘brute-force aanval’ genoemd. Hierdoor zal hij in theorie op een bepaald moment toegang krijgen tot de server wanneer de juiste gebruikersgegevens zijn geraden.
Het is van belang om uw VPS te beschermen tegen dit soort aanvallen. Dit kan worden gedaan met Fail2Ban. Deze software houdt uw logs in de gaten en zal aan de hand hiervan blokkades instellen, zoals bijvoorbeeld wanneer een IP-adres meerdere malen met foutieve gegevens in probeert te loggen. Zo voorkomt u dat deze IP-adressen oneindig veel inlogpogingen kunnen doen.
In dit artikel leggen we uit hoe u Fail2Ban installeert op een Ubuntu 12.04 of 14.04 VPS wanneer u als een gebruiker met root-rechten bent ingelogd. Houd er rekening mee dat de onderstaande uitleg is geschreven voor Apache en daarom af kan wijken gebruikers van NGINX.
Installeer Fail2Ban
Door de volgende commando in te geven kunt u Fail2Ban installeren en doen ook meteen een update van de Ubuntu repository:
apt-get update && apt-get install fail2ban -y
Fail2Ban zou standaard op moeten starten op het moment dat u de VPS opnieuw opstart. Dit kunt u controleren met het door het volgende commando in te geven:
ls -al /etc/init.d/fail2ban && ls -al /etc/rc*.d/ | grep fail2ban
Als u Fail2Ban in de output naar voren ziet komen weet u zeker dat deze bij een herstart van uw VPS wordt opgestart. Als dit niet het geval is kunt u het volgende commando gebruiken om ervoor te zorgen dat dit alsnog gebeurt:
update-rc.d fail2ban enable
Configureer Fail2Ban
Standaard is Fail2Ban ingesteld om alleen ongeldige inlogpogingen te verbannen die op het SSH-protocol plaatsvinden. Overige "jails”, protocollen waar de software op filtert, zijn standaard niet ingeschakeld. Deze kunnen echter volledig naar wens worden ingesteld.
Alle configuratie van Fail2Ban kan onder het pad ‘/etc/fail2ban/’ gevonden worden. Hier staat onder meer de ‘jail.conf’, waarin de standaard waardes gevonden kunnen worden waar Fail2Ban gebruik van maakt. Het is echter aan te raden om geen wijzigingen in dit bestand uit te voeren, aangezien deze met een update van Fail2Ban ongedaan gemaakt zullen worden. Daarentegen kan er een kopie worden gemaakt met de naam ‘jail.local’. Dit kan worden gedaan met het volgende commando:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Open vervolgens het nieuwe configuratiebestand:
vi /etc/fail2ban/jail.local
Er zijn een aantal standaardwaardes in Fail2Ban aanwezig waar de meeste ‘jails’ gebruik van maken. Deze kunnen hieronder gevonden worden:
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8
# "bantime" is the number of seconds that a host is banned.
bantime = 600
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
maxretry = 3
In de regel van ‘ignoreip’ kunt u uw IP-adres plaatsen, zodat deze niet verbannen zal worden op het moment dat u zelf teveel foutieve inlogpogingen doet. Ieder IP-adres dat u opgeeft dient hierbij met een spatie en/of komma gescheiden te worden.
In het bovenstaande voorbeeld ziet u eveneens de ‘findtime’ en ‘maxretry’ waardes. Dit zijn condities die bepalen wanneer een IP-adres verbannen moet worden. De ‘maxretry’ waarde bepaald hoe vaak een IP-adres verkeerde gebruikers op mag geven, en de ‘findtime’ bepaald binnen hoeveel tijd ditzelfde adres dit mag doen. De ‘bantime’ bepaalt vervolgens hoe lang dit IP-adres wordt verbannen op het moment dat het boven de eerder genoemde waardes uitkomt.
In het voorbeeld hierboven zal een IP-adres worden verbannen op het moment dat deze 5 keer met verkeerde gebruikersgegevens probeert in te loggen binnen 10 minuten tijd (600 seconden). Vervolgens blijft dit adres voor 10 minuten (600 seconden) verbannen. Door bijvoorbeeld de ‘bantime’ te verhogen naar 3600 zorgt u dat de verbannen tijd wordt verhoogd van 10 minuten naar een uur.
SSH beveiliging controleren
Als alles goed is gegaan staat Fail2Ban nu aan en monitort deze inkomend verkeer op het SSH-protocol. Dit kan worden bevestigd door te controleren of de SSH ‘jail’ is ingesteld met het volgende commando:
fail2ban-client status
Dit zou de volgende output moeten geven:
Status
|- Number of jail: 1
`- Jail list: sshd
Conclusie
U zou nu moeten weten hoe u Fail2Ban configureert op Ubuntu 12.04 en 14.04, en aanpassingen toebrengt in de configuratie. Vergeet niet bij iedere wijziging die u uitvoert in het ‘jail.local’ bestand Fail2Ban te herstarten, omdat deze wijzigingen anders niet actief worden. U kunt de Fail2Ban service herstarten door het volgende commando in te geven:
service fail2ban restart
Was dit artikel nuttig?
Dat is fantastisch!
Hartelijk dank voor uw beoordeling
Sorry dat we u niet konden helpen
Hartelijk dank voor uw beoordeling
Feedback verzonden
We stellen uw moeite op prijs en zullen proberen het artikel te verbeteren