Ist es möglich, dass sshd Passwörter nur an bestimmten Ports akzeptiert?


24

Ich weiß, dass es möglich ist, sshdmehrere Ports mit mehreren PortDirektiven abzuhören . Ist es jedoch möglich, die Einstellungen pro Port unabhängig voneinander anzupassen? Ist es insbesondere möglich, dass ein Port die Kennwortauthentifizierung zulässt, ein anderer Port dies jedoch nicht zulässt?


1
Übrigens: Der Grund, warum ich das mache, ist, dass ich Passwörter in meinem LAN zulassen möchte, aber nicht aus dem WAN. Meine WAN-Firewall ermöglicht nur die Verbindung mit dem restriktiveren Port.
Laurence Gonsalves

1
Siehe auch Einschränkung nach IP-Adresse (n), wenn Sie die Standard-Portnummer verwenden möchten.
ændrük

Antworten:


32

Dies kann mit der MatchDirektive erreicht werden.

In /etc/sshd_config, deklarieren Sie mehrere Ports:

Port 22
Port 2222

Fügen Sie dann ganz am Ende der Datei Folgendes hinzu:

Match LocalPort 2222
PasswordAuthentication no

Alle Einstellungen werden von den Ports gemeinsam genutzt, außer dass die Kennwortauthentifizierung an Port 2222 deaktiviert wird.


+1 Sehr interessant
Carlos Campderrós

Schade, Matchfunktioniert nicht mit AllowUsers. Wenn Sie Benutzer für einen bestimmten Port einschränken müssen, müssen Sie wahrscheinlich mehrere sshdInstanzen ausführen.
Bob

0

Ein einzelner sshdProzess, glaube ich nicht, aber es sollte ziemlich einfach sein, eine zweite Konfigurationsdatei einzurichten und zwei sshdListener auszuführen , einen für die Passwort-Ports und einen für die Nicht-Passwort-Ports.


3
Ich fand, dass es tatsächlich eine Möglichkeit gibt, dies mit einer einzelnen Instanz von sshd zu tun. Siehe die Antwort, die ich gepostet habe. Danke trotzdem.
Laurence Gonsalves
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.