Press "Enter" to skip to content

[Quicktipp] Standard SSH Port wechseln

Im Standard verbinden sich die meisten Administratoren und Benutzer mit dem SSH Port 22. Dieser Port ist der Standard Port und ein beliebtes Angriffsziel. Wer Zugang über eine SSH Verbindung erlangt, im schlimmsten Fall als Root Benutzer, der hat die Kontroller über seinen Server verloren und kann in der Regel sein System komplett neu aufsetzen. Aufgrund dessen sollte jeder den SSH Port Absichern.

Ein guter Schutz ist die Port Änderung. So wird der Port 22 nach außen komplett geschlossen und Angreifer erhalten beim Versuch auf den Port 22 eine „ssh: connect to host … port 22: Connection refused“ Meldung.

SSH Port ändern

Die Port Änderung erfolgt direkt auf dem Server. Es wird die sshd_config-Datei geöffnet und der Port in Zeile 5 geändert. Angegeben werden kann jeder beliebige Port.

Es sollte kein Port überschrieben werden, der schon von anderen Diensten verwendet wird

Datei öffnen:

Sudo bzw. Root Rechte werden benötigt

sudo nano /etc/ssh/sshd_config

Port ändern:

Die Port Angabe steht gleich am Anfang der Datei. In meinem Beispiel setze ich den neuen Port auf 9889.

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 9889
# Use these options to restrict which interfaces/protocols sshd will bind to

Wer den neuen Port vergisst, sperrt sich selber aus

SSH neustarten

Damit die Änderung aktiv wird, muss der SSH Dienst neugestartet werden. Dieser Neustart gelingt mit dem Befehl:

sudo /etc/init.d/ssh restart

SSH Login mit Port Angabe

Eine SSH Verbindung mit geänderten Port wird über den Parameter „-p“ aufgerufen:

ssh benutzer@domain.tld -p 9889

Beim Rsync muss der neue Port ebenfalls mit angegeben werden. Sonst erhält der Nutzer auch hier eine „Connection refused“-Meldung.

rsync -e "ssh -p 9889" /var/www/ benutzer@domain.tld:/var/www/

7 Comments

  1. Hi,
    einen default Port zu ändern ist nichts außer schlechte Praxis und verursacht mehr Probleme als es löst. Ein einfacher Portscan ermittelt in wenigen Sekunden die offenen Ports und im selben Atemzug auch noch welcher Dienst auf dem Port läuft. Es spielt dabei absolut keine Rolle ob der Dienst auf dem Standardport läuft oder nicht. Um einen SSH Zugang zu schützen sollte man stattdessen vernünftige Authetifizierungsverfahren verwenden, sprich Public Key Verfahren oder ähnliches. Ausbauen lässt sich der Schutz durch Programme wie fail2ban die bei erkannten Brutforceangriffen die entsprechenden IPs blocken.

  2. benediktg benediktg

    Ich würde ja statt der „Security by obscurity“ einfach schlüsselbasierte Authentifizierung nehmen. Ist sicherer und auch bequemer, da man nicht immer das Passwort angeben muss. 😉

  3. miau miau

    …und damit wir den neuen Port nicht ‚vergessen‘ (weil wir ja öfter nutzen;)), schreiben wir in die ~/.ssh/config diesen neuen Abschnitt:

    # hier kommt meine bevorz. Abk. hin
    Host domtld
    #hier der offizielle Hostname
    Hostname domain.tld
    Port 9889
    User benutzer
    #wenn ich dann gleich zum nächsten Rechner weiter huepfen moechte
    ForwardAgent yes
    !<—–

    an der konsole dann einfach:
    $: ssh domtld
    eingeben… 😉

    • Das ist eine gute Idee 🙂

  4. Ich sehe eigentlich nur einen Grund den Standard-Port zu wechseln: Wenn man seinen SSH-Server mit PasswordAuthentication betreibt (statt Passwörter zu verbieten und ausschliesslich Schlüssel oder Zertifikate zu erlauben). Wenn man nicht noch fail2ban o.ä. nutzt, dann ist von PasswordAuthentication dringend abzuraten. Wenn man es nicht nutzt, braucht man auch nicht den default Port ändern.

    • John John

      Passwörter sollte man für root gar nicht und für einfache Nutzer nicht ohne zweiten Faktor (z.B. Google Authenticator) zulassen. Alles andere ist potentiell unsicher. Am besten nur public-key zulassen und auf ganz sensiblen Servern noch port-knocking einrichten.

      Den Standard-Port zu wechseln, halte ich auch für Unfug.

  5. Thomas_Do Thomas_Do

    Ich erlaube keine Passwörter für meinen ssh-Zugang und benutzte Schlüssel für ssh. Der Root-User ist deaktiviert und zu allem Überfluss läuft auch noch fail2ban.

    Trotzdem habe ich kürzlich den Port umgelegt und seitdem sind meine Logs viel übersichtlicher :-).

Comments are closed.