VPS-Sicherheit, Konfiguration von Nginx, UFW, Benutzern und Anmeldung über SSH

VPS-Sicherheit, Konfiguration von Nginx, UFW, Benutzern und Anmeldung über SSH

28

3 min.

Vorbedingungen

Für die Arbeit benötigen wir nginx und docker. Wenn diese noch nicht installiert sind, führen Sie die folgenden Befehle aus:

sudo apt update && sudo apt install nginx docker.io -y

Oder überprüfen Sie, ob sie installiert sind:

docker --version && nginx -v

Erstkonfiguration des Benutzers

Arbeiten Sie niemals unter dem Benutzer root. Erstellen Sie einen neuen Benutzer und weisen Sie ihm Administratorrechte zu.

  • Hinzufügen eines Benutzers:

    adduser user  # Ersetzen Sie "user" durch Ihren Namen.

    Die Ausgabe sieht wie folgt aus: Adding user ‚user‘ ... Enter new UNIX password: (geben Sie das Passwort ein, die Zeichen werden nicht angezeigt).

  • Rechte vergeben und überprüfen:

    usermod -aG sudo user
    groups user

    Erwartete Ausgabe: user : user sudo.

Einrichten der Anmeldung über SSH-Schlüssel

Dies ist die sicherste Methode zum Schutz vor Brute-Force-Angriffen.

  1. Wenn Sie bereits einen SSH-Schlüssel auf Ihrem Computer haben, senden Sie ihn einfach an den Server:

    ssh-copy-id user@ip_сервера
  2. Wenn Sie keinen Schlüssel haben, erstellen Sie einen:

    ssh-keygen -t ed25519 -C "user@vps"
    # Senden Sie ihn dann mit dem oben angegebenen Befehl ssh-copy-id    

Deaktivieren der Passwortanmeldung und des Root-Zugriffs

Jetzt deaktivieren wir die Möglichkeit, sich auf andere Weise als mit Ihrem Schlüssel anzumelden.

  1. Öffnen Sie die Konfigurationsdatei: sudo nano /etc/ssh/sshd_config

  2. Suchen und ändern (oder fügen Sie hinzu) die folgenden Zeilen:

    • PermitRootLogin no – Verbietet die direkte Anmeldung als Root-Benutzer über SSH.
    • PasswordAuthentication no – Deaktiviert die Möglichkeit, sich mit einem normalen Passwort auf dem Server anzumelden.
    • ChallengeResponseAuthentication no – Deaktiviert die Authentifizierung nach dem Prinzip "Aufruf-Antwort".
    • UsePAM no – Deaktiviert die Verwendung des PAM-Moduls (Pluggable Authentication Modules) für SSH.
  3. Starten Sie den Dienst neu: sudo systemctl restart ssh

Wenn Sie nun versuchen, sich als Root anzumelden, wird folgende Meldung angezeigt: root@ip: Permission denied (publickey).

Konfiguration der Firewall (UFW)

Die Firewall blockiert alle Ports außer denen, die wir zulassen.

PortProtokollZweckWarum ist das wichtig?
22TCPSSHErforderlich! Ohne diesen Port verlieren Sie die Verbindung zum Server.
80TCPHTTPStandardport für Nginx.
443TCPHTTPSSicherer Port für SSL-Datenverkehr.

Für mehr Sicherheit ändern Sie den Port für SSH in einen anderen und fügen Sie ihn auch zur Konfiguration von UFW hinzu!

Konfiguration von UFW:

sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status

Die Ausgabe des Befehls status sollte wie folgt aussehen:

Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere

React2Shell-Sicherheitslücke in Next.js

React2Shell ist eine kritische Sicherheitslücke, die es Hackern ermöglicht, ihren Code über React-Formulare auf Ihrem Server auszuführen. 69 % aller Cloud-Instanzen auf Next.js sind davon betroffen.

Wie kann man einen Hack überprüfen?

Sehen Sie sich die Liste der Prozesse und Dateien an. Verdächtige Anzeichen:

  • Dateien im System: ssh.sh, sex.sh, kai.tar.gz, httd.
  • Prozess xmrig (Miner, belastet die CPU zu 100 %).
    • Sie können dies mit dem Befehl top oder htop überprüfen.

Schutzmaßnahmen

  1. Next.js aktualisieren: Aktualisieren Sie dringend auf sichere Versionen: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7.

  2. Node.js 24: Verwenden Sie das neue Berechtigungsmodell von Node, um den Zugriff auf Dateien zu beschränken.

  3. Sicheres Docker:

    • Starten Sie Container mit dem Flag --read-only.
    • Entfernen Sie den Start von root in Dockerfile, verwenden Sie USER node.
    • Konfigurieren Sie den Zugriff des Containers nur auf interne Ressourcen (Whitelist).
  4. Wenn Sie gehackt wurden: Löschen Sie infizierte Subcontainer/Container, leeren Sie den Cache und ändern Sie unbedingt alle geheimen Schlüssel und Passwörter.

Ähnliche Kategorien:

Ähnliche Artikel

  • Wie man Vite bei aktiviertem VPN verwendet, schnelle Lösung

    Behebt Probleme mit der Funktion von Vite bei aktiviertem VPN, Konfiguration der Verbindung, um die Umleitung des lokalen Datenverkehrs in den VPN-Tunnel zu vermeiden

    29

    2 min.

Kontaktieren Sie mich

Projektart*