Procédure
För att säkra SSH-åtkomsten till din LWS VPS rekommenderas det att helt inaktivera lösenordsautentisering till förmån för en SSH-nyckel, och sedan installera fail2ban. Denna konfiguration skyddar din server mot brute force-attacker och eliminerar riskerna med avlyssnade eller gissade lösenord. I denna handledning kommer du att kopiera din publika SSH-nyckel, justera SSH-konfigurationen för att neutralisera cloud-init:s standardinställningar, och sedan installera samt verifiera det aktiva skyddet från fail2ban.
Öppna en terminal på din dator och anslut till servern med hjälp av root-lösenordet som du fick i ditt leveransmejl. Vid första anslutningen accepterar du serverns nyckelavtryck genom att skriva yes. När du är ansluten, avsluta omedelbart sessionen genom att köra exit för att återgå till din lokala dator.
ssh root@203.0.113.10
exitFrån din dator använder du kommandot ssh-copy-id för att kopiera din publika nyckel till servern. Ange ditt root-lösenord en sista gång när terminalen frågar efter det. Om du redan hade lagt till din SSH-nyckel vid beställningen eller vid ominstallation från KVM-panelen, är detta steg inte nödvändigt.
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.Anslut till din VPS igen via SSH från din dator. Anslutningen ska upprättas omedelbart utan att begära serverns root-lösenord, vilket bekräftar att din publika nyckel har installerats korrekt.
ssh root@203.0.113.10Lista filerna i katalogen /etc/ssh/sshd_config.d/ och visa innehållet i 50-cloud-init.conf. Den här filen aktiverar autentisering med lösenord. Eftersom SSH-servern behåller den första direktivpost som påträffas när filerna läses i alfabetisk ordning måste din egen konfiguration ovillkorligen läsas före den.
ls /etc/ssh/sshd_config.d/
cat /etc/ssh/sshd_config.d/50-cloud-init.confPasswordAuthentication yesÖppna textredigeraren nano för att skapa filen 00-cles-uniquement.conf. Prefixet 00 garanterar att denna fil behandlas före 50-cloud-init.conf. Skriv in direktiven som inaktiverar lösenord och begränsar root-åtkomst till nycklar, och spara sedan med Ctrl+X, bekräfta med O (eller Y beroende på språk) och tryck på Enter.
nano /etc/ssh/sshd_config.d/00-cles-uniquement.conf# SSH-anslutning endast med nyckel
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-passwordKör sshd -t för att kontrollera att inga syntaxfel finns, och verifiera sedan de aktiva värdena med sshd -T. Observera att permitrootlogin visas som without-password, vilket motsvarar prohibit-password. Om allt är korrekt, ladda om SSH-tjänsten för att tillämpa de nya inställningarna utan att avbryta din session.
sshd -t
sshd -T | grep -E "^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)"
systemctl reload sshpermitrootlogin without-password
passwordauthentication no
kbdinteractiveauthentication noUtan att stänga din aktiva session öppnar du ett andra terminalfönster på din dator. Försök först med en anslutning genom att tvinga avvisning av nycklar med alternativet PubkeyAuthentication=no: servern ska neka åtkomst. Starta sedan en normal anslutning: autentisering med nyckel ska lyckas.
ssh -o PubkeyAuthentication=no root@203.0.113.10
ssh root@203.0.113.10root@203.0.113.10: Permission denied (publickey).Från din session ansluten till VPS:en uppdaterar du listan över Debian-förråd med apt update och installerar sedan paketet fail2ban. På moderna Debian-versioner aktiverar fail2ban automatiskt skyddet för SSH-tjänsten direkt efter att installationen är klar.
apt update
apt install -y fail2banKontrollera att fail2ban-tjänsten är aktiv med systemctl och fråga sedan efter sshd-fängelset för att bekräfta att filtreringen fungerar och övervakar anslutningar. Du kan därefter logga ut i lugn och ro.
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:OpenSSH-demonen läser filerna i katalogen sshd_config.d i alfabetisk ordning och tillämpar det första värdet den stöter på. Genom att använda prefixet 00 behandlas dina direktiv före dem i 50-cloud-init.conf, vilket garanterar att förbudet mot lösenord beaktas.
Om du förlorar din SSH-åtkomst, logga in i ditt LWS-kundområde och öppna den KVM / VNC-konsol som finns tillgänglig för din VPS. Denna konsol simulerar en fysisk skärm och ett tangentbord anslutna till servern och gör det möjligt att korrigera dina konfigurationsfiler utan att använda SSH.
Det är exakt samma parameter i OpenSSH. prohibit-password är den moderna rekommenderade syntaxen, men kommandot sshd -T visar dess historiska motsvarighet without-password i listan över aktiva direktiv.
På nyare distributioner som Debian 13 konfigurerar och startar fail2ban automatiskt ett fängelse för SSH-tjänsten direkt när paketet installeras. Du kan senare anpassa spärrtiderna i en jail.local-fil om du vill.
Ställ den till LWS-teamet och communityn. Svaret publiceras efter moderering.