−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS

Een sudo-gebruiker aanmaken op een VPS en stoppen met root

Maak een sudo-gebruiker zonder rootrechten op Ubuntu of Debian, geef hem je SSH-sleutel, test hem en zet dan root-login uit — in een volgorde die je niet buitensluit.

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

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.

FAQ

Waarom niet gewoon root blijven gebruiken?

Alles wat je als root uitvoert kan het hele systeem breken, een tikfout inbegrepen. Bots proberen ook eerst de gebruikersnaam 'root', dus door root-login uit te zetten verdwijnt het meest geraden doelwit. Een eigen gebruiker met sudo geeft je een pauze voor elk geprivilegieerd commando en een logboek van wat er is uitgevoerd.

Wat als ik mezelf buitensluit?

Gebruik de webconsole in je klantenpaneel. Die werkt ook als SSH kapot is of de firewall je blokkeert, zodat je kunt inloggen en sshd_config kunt repareren. Daarom test je de nieuwe gebruiker ook voordat je je rootsessie sluit.

Moet ik sudo zonder wachtwoord toestaan?

Houd voor een persoonlijk account de wachtwoordvraag aan — dat is de laatste verdedigingslinie als je SSH-sleutel uitlekt. Sudo zonder wachtwoord is redelijk voor een aparte deploy-gebruiker die door automatisering wordt gebruikt, beperkt tot de commando's die hij echt nodig heeft.

Het commando sudo bestaat niet op mijn Debian-server. Waarom?

Minimale Debian-images leveren het niet altijd mee. Installeer het als root met 'apt install -y sudo' en voeg daarna je gebruiker toe aan de groep sudo.

Welke SSH-poort gebruik ik?

De poort die in je klantenpaneel staat. Plannen met een dedicated IP gebruiken poort 22 op je eigen IP; NAT-plannen gebruiken je persoonlijke SSH-poort.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.