Bijna elke nieuwe VPS begint hetzelfde: je logt in als root, installeert wat dingen en een maand later ben je nog steeds root. Dat werkt tot een geplakt script de verkeerde map wist. Een gewone gebruiker met sudo instellen kost vijf minuten, en de volgorde is belangrijker dan de commando's — doe het verkeerd en je sluit jezelf buiten.
Dit is de veilige volgorde voor Ubuntu 22.04/24.04 en Debian 12.
1. Maak de gebruiker aan
Als root:
adduser deploy
usermod -aG sudo deploy
adduser vraagt om een wachtwoord en wat optionele gegevens (druk daar gewoon op Enter). Kies een echt wachtwoord: je typt het voor sudo. Op een minimale Debian-image voer je eerst apt install -y sudo uit als het commando ontbreekt.
2. Geef hem je SSH-sleutel
Het makkelijkst is de geautoriseerde sleutels van root kopiëren, met de juiste eigenaar:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Wil je het liever met de hand doen:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Verkeerde rechten zijn de klassieke reden dat inloggen met een sleutel stilletjes mislukt. SSH negeert een authorized_keys waar andere gebruikers naar kunnen schrijven.
3. Test voordat je iets verandert
Houd je rootsessie open. In een nieuwe terminal:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Gebruik je eigen IP en poort — op een NAT-plan is dat je persoonlijke SSH-poort uit het paneel. Print sudo whoami root, dan zit je goed. Mislukt het inloggen, dan heb je nog het rootvenster om het te repareren.
4. Zet root-login uit
Doe nu de deur dicht. Maak een klein drop-in-bestand in plaats van de hoofdconfiguratie te bewerken:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
sshd -t controleert eerst de syntax. Een kapotte configuratie plus een reload is hoe mensen bij de console uitkomen. PasswordAuthentication no heeft pas zin als inloggen met een sleutel werkt voor je nieuwe gebruiker — en dat heb je net getest.
Open nog een terminal en controleer dat root wordt geweigerd en deploy nog binnenkomt. Sluit daarna de oude rootsessie.
5. Optioneel: sudo zonder wachtwoord voor automatisering
Heeft een deployscript sudo zonder prompt nodig, geef het dan precies dat en niets ruimers:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Eerlijk gezegd is NOPASSWD: ALL verleidelijk, maar dan staat een gestolen sleutel gelijk aan root. Beperk het tot de commando's die de automatisering uitvoert.
Als er iets misgaat
De webconsole in je paneel hangt niet af van SSH of de firewall. Log daar in, repareer het bestand in /etc/ssh/sshd_config.d/, reload, klaar. De volledige herstelprocedure staat in weer toegang krijgen tot een buitengesloten VPS.
Wat daarna
- Stap goed over op alleen sleutel-login: SSH-sleutelauthenticatie.
- Dem de ruis van brute-force-pogingen: fail2ban.
- Loop de rest van de basis door met de beveiligingschecklist voor een nieuwe VPS.
De toegangsopties van elk plan staan in de documentatie over toegang. Zelfs een Nano van $3 verdient een gebruiker zonder root — het is de goedkoopste beveiligingsupgrade die er bestaat.
Reacties
Nog geen reacties. Wees de eerste.