Procédure
Om de SSH-toegang van je LWS VPS te beveiligen, wordt aanbevolen om wachtwoordauthenticatie volledig uit te schakelen ten voordele van een SSH-sleutel, en vervolgens fail2ban te installeren. Deze configuratie beschermt je server tegen brute-force-aanvallen en elimineert de risico's van onderschepte of geraden wachtwoorden. In deze handleiding kopieer je je openbare SSH-sleutel, pas je de SSH-configuratie aan om de standaardinstellingen van cloud-init uit te schakelen, en installeer en controleer je daarna de actieve bescherming van fail2ban.
Open een terminal op je computer en maak verbinding met de server met behulp van het root-wachtwoord dat je in je leveringsmail hebt ontvangen. Accepteer bij de eerste verbinding de vingerafdruk van de serversleutel door yes te typen. Zodra je verbonden bent, verlaat je de sessie onmiddellijk door exit uit te voeren om terug te keren naar je lokale machine.
ssh root@203.0.113.10
exitGebruik vanaf je computer het commando ssh-copy-id om je openbare sleutel naar de server te kopiëren. Voer je root-wachtwoord voor de laatste keer in wanneer de terminal je daarom vraagt. Als je je SSH-sleutel al had toegevoegd tijdens het bestellen of bij herinstallatie via het KVM-paneel, is deze stap niet nodig.
ssh-copy-id root@203.0.113.10Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@203.0.113.10'"
and check to make sure that only the key(s) you wanted were added.Maak opnieuw verbinding met je VPS via SSH vanaf je computer. De verbinding moet onmiddellijk tot stand komen zonder om het root-wachtwoord van de server te vragen, wat bevestigt dat je openbare sleutel correct is geïnstalleerd.
ssh root@203.0.113.10Geef de bestanden in de map /etc/ssh/sshd_config.d/ weer en toon de inhoud van 50-cloud-init.conf. Dit bestand activeert wachtwoordauthenticatie. Omdat de SSH-server de eerste gevonden instructie behoudt bij het lezen van bestanden in alfabetische volgorde, moet je eigen configuratie verplicht vóór dit bestand worden gelezen.
ls /etc/ssh/sshd_config.d/
cat /etc/ssh/sshd_config.d/50-cloud-init.confPasswordAuthentication yesOpen de nano-editor om het bestand 00-cles-uniquement.conf aan te maken. Het voorvoegsel 00 garandeert dat dit bestand vóór 50-cloud-init.conf wordt verwerkt. Voeg er de instructies in toe die wachtwoorden uitschakelen en roottoegang beperken tot sleutels, en sla vervolgens op met Ctrl+X, bevestig met O (of Y, afhankelijk van de taal) en druk op Enter.
nano /etc/ssh/sshd_config.d/00-cles-uniquement.conf# SSH-verbinding uitsluitend met sleutel
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-passwordVoer sshd -t uit om te controleren of er geen syntaxisfouten zijn, en controleer vervolgens de actieve waarden met sshd -T. Merk op dat permitrootlogin without-password weergeeft, wat overeenkomt met prohibit-password. Als alles correct is, herlaad je de SSH-service om de nieuwe instellingen toe te passen zonder je sessie te onderbreken.
sshd -t
sshd -T | grep -E "^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)"
systemctl reload sshpermitrootlogin without-password
passwordauthentication no
kbdinteractiveauthentication noZonder je actieve sessie te sluiten, open je een tweede terminalvenster op je computer. Probeer eerst een verbinding door sleutels te weigeren met de optie PubkeyAuthentication=no: de server moet de toegang weigeren. Start daarna een normale verbinding: de authenticatie via sleutel verloopt succesvol.
ssh -o PubkeyAuthentication=no root@203.0.113.10
ssh root@203.0.113.10root@203.0.113.10: Permission denied (publickey).Werk vanuit je sessie die verbonden is met de VPS de lijst van Debian-repositories bij met apt update, en installeer vervolgens het fail2ban-pakket. Op recente versies van Debian activeert fail2ban automatisch de bescherming van de SSH-service zodra de installatie is voltooid.
apt update
apt install -y fail2banZorg ervoor dat de fail2ban-service actief is met systemctl, en vraag vervolgens de sshd-jail op om te bevestigen dat de filtering werkt en de verbindingen bewaakt. Daarna kun je met een gerust hart de verbinding verbreken.
systemctl is-active fail2ban
fail2ban-client status sshd
exitactive
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 3
| `- Journal matches: _SYSTEMD_UNIT=ssh.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:De OpenSSH-daemon leest de bestanden in de map sshd_config.d in alfabetische volgorde en past de eerste waarde toe die hij tegenkomt. Door het voorvoegsel 00 te gebruiken, worden je instructies vóór die van 50-cloud-init.conf verwerkt, wat garandeert dat de weigering van wachtwoorden in rekening wordt gebracht.
Als je je SSH-toegang verliest, log dan in op je LWS-klantenruimte en open de beschikbare KVM / VNC-console voor je VPS. Deze console simuleert een fysiek scherm en toetsenbord dat op de server is aangesloten en laat je toe om je configuratiebestanden te corrigeren zonder SSH te gebruiken.
Het gaat exact om dezelfde parameter in OpenSSH. prohibit-password is de aanbevolen moderne syntaxis, maar het commando sshd -T toont zijn historische equivalent without-password in de lijst van actieve instructies.
Op recente distributies zoals Debian 13 configureert en start fail2ban automatisch de jail voor de SSH-service zodra het pakket is geïnstalleerd. Je kunt de verbanningsduur later eventueel aanpassen in een jail.local-bestand.
Stel ze aan het LWS-team en de community. Het antwoord wordt na moderatie gepubliceerd.