2 sshd-Konfigurationen 1 für intern und 1 extern


7

Wie kann ich einen offenen SSH-Server so einrichten, dass er, wenn ich von einem lokalen LAN aus ssh'ng bin, über Port 22 erfolgen soll, aber wenn ich extern komme, zum Beispiel über Port 12345.

Dann möchte ich für den externen Zugriff einige andere (strengere) Regeln in sshd_config


Bitte fügen Sie weitere Details zu Ihrer Netzwerktopologie hinzu. Wie verbindet sich das System mit der Außenseite? Hat es mehr als eine Netzwerkschnittstelle? Werden externe Verbindungen von einem Router kommen und wenn ja, wie behandelt oder übersetzt der Router externe Verbindungen? (vielleicht über NAT). Oder wird das Routing vom Server selbst verwaltet, möglicherweise mithilfe von iptables?
Roadmr

Es funktioniert am 18.04
VikingGlen

Zekes Antwort unten hat am 18.04 für mich funktioniert. In Bezug auf Ihre externe SSHD können Sie Benutzer mit der Option AllowUsers einschränken. Wie streng willst du? Erstellen Sie einen Benutzer mit einem Kennwort für einen Benutzernamen: eR4d092a. Gefängnis ihn. Beschränken Sie ihn auf ein paar Befehle. Fordern Sie ihn "su" heraus, um in Ihr System zu gelangen. Alias ​​der Befehl "su". Zum Beispiel wird "su" zu "alberny". Machen Sie das Passwort von eR4d092a auf 14 bis 16 Zeichen. Beschränken Sie den externen Zugriff nur auf eR4d092a: AllowUsers eR4d092a Niemand wird jemals eine auf diese Weise eingerichtete Kombination aus Benutzername und Kennwort an einem nicht standardmäßigen Port erraten.
VikingGlen

Antworten:


6

Die Antwort von Eric Carvalho funktioniert vor 15.04, aber sie sind veraltet und haben dann den Upstart von Ubuntu, SystemdForUpstartUsers , entfernt .

Diese Schritte wurden für die Arbeit mit systemd angepasst.

  1. Kopieren Sie die SSH-Konfigurationsdatei:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_external

  2. Kopieren Sie die Systemd-Konfigurationsdatei:

    sudo cp /lib/systemd/system/ssh.service /lib/systemd/system/sshd-external.service

    /lib/systemd/system/sshd-external.serviceÄndern Sie in der neuen Datei ( ) die Zeile:

    ExecStart=/usr/sbin/sshd -D $SSHD_OPTS

    zu:

    ExecStart=/usr/sbin/sshd -D $SSHD_OPTS -f /etc/ssh/sshd_config_external

    und die Zeile:

    Alias=sshd.service

    zu:

    Alias=sshd-external.service

  3. Jetzt /etc/ssh/sshd_config_externalan Ihre Bedürfnisse anpassen (zB ändern Port 22zu Port 12345)

  4. Aktivieren Sie den Dienst

    sudo ln -s /lib/systemd/system/ssh-external.service /etc/systemd/system/sshd-external.service

    Wenn Sie den obigen Befehl ausgeführt haben, führen Sie ihn aus, sudo systemctl disable sshd-external.servicebevor Sie den nächsten Befehl ausführen

    sudo systemctl enable sshd-external.service

    sudo service sshd-external start

Dies wurde unter Ubuntu 16.04 auf realer Hardware und einer virtuellen Maschine in virtualbox getestet.

Lassen Sie mich wissen, wenn dies nicht funktioniert. Es ist bekannt, dass ich Tippfehler mache.


1
Es funktioniert am 18.04
VikingGlen

3

Erstellen Sie eine weitere SSH-Dienstinstanz.

  1. Kopieren Sie die SSH-Konfigurationsdatei:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_external
    
  2. Kopieren Sie die Startkonfigurationsdatei:

    sudo cp /etc/init/ssh.conf /etc/init/ssh-external.conf
    

    ssh-external.confÄndern Sie in der neuen Datei ( ) die Zeile:

    mkdir -p -m0755 /var/run/sshd
    

    zu:

    mkdir -p -m0755 /var/run/sshd-external
    

    Und ändern Sie die Zeile:

    exec /usr/sbin/sshd -D
    

    zu:

    exec /usr/sbin/sshd -D -f /etc/ssh/sshd_config_external
    
  3. Erstellen Sie den Link zum Start:

    sudo ln -s /lib/init/upstart-job /etc/init.d/ssh-external 
    

Passen Sie /etc/ssh/sshd_config_externalnun Ihre Bedürfnisse an (z. B. ändern Sie Port 22zu Port 12345) und starten Sie den Service:

sudo service ssh-external start
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.