Nieuwe VPS veilig instellen in 10 minuten
Beveilig uw VPS direct na de eerste login. Gebruik dit runbook voor het instellen van SSH keys, het uitschakelen van root en het activeren van uw firewall.
De eerste 10 minuten bepalen hoe veilig uw server is
Een gloednieuwe VPS is niet veilig. Vanaf het moment dat deze een publiek IP-adres heeft, proberen scanners in te loggen. De standaard image biedt hen een groot doelwit: root is vaak bereikbaar, wachtwoorden zijn vaak toegestaan, er is geen firewall en er vindt geen automatische patching plaats. Het goede nieuws is dat het sluiten van al deze gaten ongeveer tien minuten duurt met een handvol commando's. Dit is het runbook dat ik gebruik op elke nieuwe server voordat ik er iets op installeer.
Volg dit in de juiste volgorde, omdat de stappen op elkaar voortbouwen. Elke stap heeft een eigen handleiding die onderweg wordt gelinkt; deze pagina is de snelle route die ze allemaal verbindt.
Minuut 1: Alles updaten
Log in als root met de gegevens die uw provider heeft verstrekt, en breng het systeem volledig bij tot de nieuwste versie voordat u iets anders doet:
apt update && apt upgrade -yEen systeem zonder patches is het makkelijkste doelwit dat er bestaat, dus dit komt eerst. Zodra dit is voltooid, stelt u automatische beveiligingsupdates in, zodat het systeem gepatcht blijft zonder dat u dit handmatig hoeft te onthouden.
Minuut 2: Een normale gebruiker met sudo aanmaken
Blijf niet werken als root. Maak een gebruiker voor uzelf aan en geef deze sudo-rechten:
adduser matt
usermod -aG sudo mattVanaf dit punt logt u in als deze gebruiker en gebruikt u sudo voor administratieve taken. Altijd als root werken betekent dat elke fout en elk incident plaatsvindt met onbeperkte macht, wat precies is waar werken als een gebruiker zonder privileges voor is bedoeld.
Minuut 4: SSH-keys instellen
Wachtwoorden kunnen worden geraden; keys niet. Maak op uw eigen laptop een key aan als u die nog niet heeft:
ssh-keygen -t ed25519Kopieer vervolgens de publieke helft naar de server:
ssh-copy-id matt@YOUR_SERVERssh-copy-id vereist dat wachtwoord-login aan staat voor de nieuwe gebruiker; als dit al uit staat, kopieer dan de ~/.ssh/authorized_keys van root naar /home/matt/.ssh/authorized_keys (eigendom van matt), of plak uw publieke key handmatig in dat bestand.
Het model achter deze stap — één key per apparaat, de permissies die key-login blokkeren en het intrekken van een verloren key — wordt behandeld in SSH key management basics.
Log uit en log opnieuw in als matt met de key, en bevestig dat het werkt voordat u naar de volgende stap gaat. Het afsluiten van SSH voordat u met een key kunt inloggen, is de reden waarom mensen zichzelf buitensluiten.
Minuut 6: Root-login en wachtwoorden uitschakelen
Nu uw key werkt, sluit u de twee deuren die scanners gebruiken. Gebruik een drop-in bestand zodat pakket-upgrades dit niet overschrijven. Noem het 00- zodat het gesorteerd wordt voor 50-cloud-init.conf, wat Ubuntu cloud images leveren met PasswordAuthentication yes; sshd gebruikt de eerste waarde die het leest, dus een bestand dat later in de lijst staat, zou de instelling stilzwijgend negeren:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noHerlaad vervolgens SSH:
sudo systemctl restart sshControleer vervolgens de instellingen die sshd daadwerkelijk gebruikt, zodat een foutief drop-in bestand u niet misleidt:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'Met wachtwoorden uit en zonder root-login kan het constante brute-force verkeer tegen uw server simpelweg niet slagen. De volledige behandeling, inclusief een optionele poortwijziging, staat in SSH hardening on a VPS.
Minuut 8: De firewall inschakelen
Stel standaard alles in op 'deny' voor inkomend verkeer, en sta vervolgens alleen toe wat u nodig heeft. Sta SSH toe voordat u de firewall inschakelt, anders verbreekt u uw eigen verbinding:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableVoeg allow regels toe voor elke service die u daadwerkelijk draait, zoals 80/tcp en 443/tcp voor een website. Controleer of zowel IPv4 als IPv6 gedekt zijn, want een firewall die alleen IPv4 filtert, laat de IPv6-zijde volledig openstaan. De volledige handleiding is Firewalls 101 on a VPS.
Minuut 10: Scanners vertragen met Fail2ban
Voeg tot slot Fail2ban toe om de adressen te verwijderen die uw poorten bestormen:
sudo apt install -y fail2banOp Ubuntu 24.04 beschermt de standaardinstallatie SSH vanaf de eerste boot. Omdat keys al vereist zijn, dient dit als een extra beveiliging die log-ruis vermindert en herhaaldelijke overtreders blokkeert, in plaats van uw primaire verdediging te zijn.
Uw checklist
Dit is het runbook. Gebruik de generator hieronder om elke controle af te vinken en een gepersonaliseerde checklist te maken die u bij de server kunt houden, inclusief het exacte commando voor elke stap:
Werk dit een keer per nieuwe server af en het geheel wordt een automatisme. Tien minuten nu bespaart u een zeer slechte middag nadat een server is gehackt.
Zodra de essentiële zaken op hun plaats staan, houden automatische beveiligingsupdates op Ubuntu de server up-to-date zonder dat u opnieuw hoeft in te loggen.
FAQ
Wat moet ik als eerste doen op een nieuwe VPS?
Update het systeem met apt update && apt upgrade -y, maak daarna een normale gebruiker met sudo aan en stop met werken als root. Stel vanaf dat punt SSH-keys in, schakel root-login en wachtwoord-authenticatie uit, schakel een standaard 'deny' firewall in en installeer Fail2ban. Door deze in die volgorde te doen, is elke stap veilig zonder dat u uzelf buitensluit.
Hoe voorkom ik dat ik mezelf buitsluit tijdens het harden van SSH?
Stel uw SSH-key login in en test deze voordat u wachtwoorden of root uitschakelt. Log uit en log opnieuw in met de key om te bevestigen dat het werkt, en schakel pas daarna PasswordAuthentication en PermitRootLogin uit. Wanneer u de firewall inschakelt, staat u poort 22 toe voordat u ufw enable uitvoert. Mocht u toch worden buitengesloten, dan zorgt de web-console van uw provider ervoor dat u zonder SSH weer toegang krijgt.
Heb ik dit echt allemaal nodig op een kleine server?
Ja, want scanners maken geen onderscheid in de grootte van uw server. Ze proberen elke publieke IP op dezelfde manier. Het volledige runbook duurt ongeveer tien minuten en verwijdert de makkelijke paden: geen root-login, geen wachtwoord-guessing, niets blootgesteld dat u niet zelf heeft gekozen, en bekende bugs automatisch gepatcht.
Wat is de belangrijkste stap?
SSH met alleen keys en uitgeschakelde root-login. De meeste aanvallen op een nieuwe VPS zijn geautomatiseerde wachtwoord-guesses tegen root; het uitschakelen van beide maakt deze hele categorie aanvallen onmogelijk. De firewall en Fail2ban beperken vervolgens wat er blootgesteld is en vertragen wat er overblijft.
Hoe bevestig ik dat de server daadwerkelijk is beveiligd?
Controleer handmatig drie zaken voordat u de server vertrouwt. Voer sudo ss -tlnp uit en bevestig dat alleen de poorten die u wilde openen luisteren op een publiek adres, zonder een 0.0.0.0 of [::] service die u was vergeten. Voer sudo ufw status verbose uit en bevestig dat de standaard inkomende policy deny is en dat zowel de gewone als de (v6) regels aanwezig zijn. En open altijd een tweede SSH-sessie voordat u de eerste sluit, zodat een fout in de SSH-configuratie u niet de toegang tot de server ontzegt. Als alle drie correct lijken, zijn de basisprincipes op orde.