5 tips om je Ubuntu server te beveiligen
In deze how-to laat ik 5 beginnerstips zien om de beveiliging van je Ubuntu VPS beter in te stellen, en zo je server veilig te houden voor mensen met slechte intenties (hackers).
Voor deze tutorial heb ik een X1 server bij Cloud Provider gebruikt met Ubuntu 20.04 als besturingssysteem.
Let op: mocht je nog niet veel ervaring hebben met Linux, dan raden we aan om eerst een backup te maken van je server. Er is namelijk een risico dat je bij fouten jezelf buiten sluit en dan niet meer kunt inloggen op je server. Het maken van een backup kan via onze portal met de optie Backups onder Storage bij de server.
Tip 1: UFW firewall installeren
UFW staat voor Uncomplicated FireWall, en is een tool waarmee je - zoals de naam als zegt - heel gemakkelijk firewallregels instelt op je server.
Installeren gaat als volgt:
sudo apt-get update
sudo apt-install ufw
Nadat UFW geinstalleerd is, kun je vervolgens poorten open- en dichtzetten. In het onderstaande voorbeeld zetten we de SSH-poort 22 dicht behalve voor ons eigen IP adres, en zetten we de webserver-poorten 80 en 443 open:
sudo ufw allow from 123.123.123.123
sudo ufw limit 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Hierna gaan we alle overige poorten dichtzetten, maar staan we uitgaand verkeer wel toe op alle poorten:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Stap 2: inloggen met SSH keys
Een wachtwoord kan geraden of onderschept worden. Het is daarom beter om het inloggen met een wachtwoord uit te schakelen, en dat je alleen nog kunt inloggen met SSH keys.
Open de terminal op je eigen computer (dus niet op de server), en voer het volgende in om een nieuwe SSH key aan te maken. Je kunt kiezen om een passphrase (wachtwoord) in te stellen voor je SSH key, maar dat dit niet verplicht.
ssh-keygen -t rsa
Met het volgende commando kopieer je de public key naar je server bij ons. Vervang hierbij 123.123.123.123 door het IP adres van je server.
ssh-copy-id -i ~/.ssh/id_rsa.pub root@123.123.123.123
Test nu of je kunt inloggen op je server - zonder dat er daarbij om een wachtwoord wordt gevraagd. Het kan zijn dat je een melding ziet over "identity can't be established" - die vraag kun je dan met "yes" beantwoorden.
ssh root@123.123.123.123
Als je inderdaad zonder wachtwoord kunt inloggen, is de laatste stap het aanpassen van de SSH configuratie - zodat er alleen nog maar met een SSH key kan worden ingelogd.
nano /etc/sshd_config
Pas in dit bestand de optie PasswordAuthentication aan, en zet deze op: no
Nadat je de wijziging hebt opgeslagen, kun je SSH herstarten om de instelling actief te maken:
sudo systemctl restart ssh
Tip 3: Kernel parameters instellen om spoofing te voorkomen
Om bepaald nepverkeer te detecteren en blokkeren op je server, kun je de "kernel parameters" met het sysctl commando aanpassen. Ik raad aan om de volgende instellingen toe te passen:
sudo sysctl -w 'net.ipv4.conf.all.rp_filter=1'
sudo sysctl -w 'net.ipv4.conf.default.rp_filter=1'
sudo sysctl -w 'net.ipv4.conf.all.accept_redirects=0'
sudo sysctl -w 'net.ipv6.conf.all.accept_redirects=0'
sudo sysctl -w 'net.ipv4.conf.all.accept_source_route=0'
sudo sysctl -w 'net.ipv6.conf.all.accept_source_route=0'
sudo sysctl -w 'net.ipv4.conf.all.log_martians=1'
sudo sysctl -w 'net.ipv4.conf.all.arp_notify=1'
Als je vervolgens het /etc/sysctl.conf bestand opent, ziet de configuratie er als volgt uit - waarbij de wijzigingen met een rood kader zijn gemarkeerd:
Tip 4: Host.conf aanpassen om spoofing tegen te gaan
Ook raad ik aan om het /etc/host.conf bestand aan te passen om nepverkeer naar je server lastiger te maken.
order bind,hosts
multi on
nospoof on
Hierbij is "bind" en "hosts" omgedraaid en heb ik de regel "nospoof on" toegevoegd.
Tip 5: Fail2ban installeren
Fail2ban is een detectietool voor Linux die kijkt naar foutieve inlogpogingen. Mocht iemand te vaak foutief inloggen, dan wordt dit IP adres tijdelijk geblokkeerd. Het installeren en starten van fail2ban doe je als volgt:
sudo apt-install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
Tot zover de tips. Hopelijk heb ik je server weer ietsjes veiliger gemaakt!