Konfiguration für SSH mit mehreren Ports

24

Ich muss SSH an zwei Ports abhören: 22 für den Hosting-Administratorzugriff und 26 für den regulären Zugriff. Ich möchte Root-Login auf 26 und alle bis auf interne IPs für Port 22 nicht zulassen. Letzteres kann mit iptables-Regeln durchgeführt werden, aber ich weiß nichts über Ersteres. Irgendwelche Ideen?

CKoning
quelle
3
root sollte niemals in der Lage sein, sich über ssh anzumelden. Zeitraum; Ende der Geschichte; Buck hält hier an; noch nie. Wenn Sie root-Zugang benötigen, melden Sie sich über Ihren normalen Benutzer an, dann erhöhen Sie mit suoder noch besser sudo.
Chris S
6
Es ist völlig in Ordnung, Root-Anmeldungen über ssh zuzulassen, wenn Sie sie auf die Schlüsselauthentifizierung beschränken, oder sogar die Kennwortauthentifizierung, wenn die Sitzung auf von Ihnen kontrollierte IP-Adressen beschränkt ist. 'Niemals' ist zu stark.
EightBitTony
3
Ich würde argumentieren, dass es Situationen gibt, in denen eine Root-Anmeldung sinnvoll ist (z. B. Beschädigung des Dateisystems auf der / home-Partition, die die Anmeldung als Standardbenutzer ausschließt). Eine Sache, die helfen kann, ist das Setzen des PermitRootLoginParameters sshd_config auf without-password. Dies ermöglicht nur die Anmeldung als root über ssh mit einem ssh-Schlüssel. Die Kennwortauthentifizierung funktioniert nicht.
ewwhite
Dieser Artikel könnte hilfreich sein: everythingsysadmin.com/2010/09/…
TomOnTime

Antworten:

27

In /etc/ssh/sshd_config, die folgende Änderung. Suchen Sie nach der Zeile, die besagt, Port 22und fügen Sie eine ähnliche Zeile darunter hinzu.

Port 22
Port 26

Speichern Sie die Datei und starten Sie den sshd-Daemon neu.

Ich mache das in Situationen, in denen ich ssh für interne Benutzer an Port 22 aktiviert habe, aber externe Konnektivität an Port 2222 benötige. Dadurch wird der ssh-Dämon an beide Portnummern gebunden.

ewwhite
quelle
6
Und wie können Sie Root-Anmeldungen jetzt auf Port 22 beschränken?
Fälscher
@faker Ich habe die Verwendung von Firewall- / Netzwerkeinschränkungen gesehen, um nur eine Whitelist des IP-Zugriffs auf den regulären Port 22
bereitzustellen
10

Sie können die -fOption sshd verwenden , um eine alternative Konfigurationsdatei anzugeben. In der Konfigurationsdatei müssten Sie die verwenden

Port 26 

Direktive, um den Port zu ändern, auf dem sshd lauscht.

einstellen

PermitRootLogin no

Root-Logins deaktivieren

Sie können dann so etwas tun

/usr/sbin/sshd -f /etc/ssh/sshd_config_port_26

Möglicherweise möchten Sie das standardmäßige sshd-Startskript kopieren und so ändern, dass Sie den Port 26-Dienst beim Start starten können.

Warum tust du das ?

Es ist soweit
quelle
1
Anstatt zwei vollständige Konfigurationsdateien zu haben, wäre es unkomplizierter und angemessener, nur zwei hinzuzufügen, wenn die Server ansonsten im Wesentlichen ähnlich wären-o PermitRootLogin yes -p 26
JamesTheAwesomeDude
3

Wenn sshd mit einer befehlszeilenspezifischen Konfigurationsdatei ausgeführt wird, können Sie eine zweite Konfiguration erstellen, die auf Port 26 ausgeführt wird, und ein zweites Startskript ausführen, das auf diesen Port verweist.

uSlackr
quelle