Ich führe Debian stable aus und möchte die folgende Umgebung für Benutzer in meiner 'sftponly'-Gruppe einrichten:
- eingesperrt
- kann mit SFTP übertragen
- kann mit SCP übertragen
- kann mich nicht interaktiv mit SSH anmelden
Aus meinen Experimenten und Recherchen geht hervor, dass mir die folgende Zeilengruppe in sshd_config 90% bringt:
Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Dies gibt mir eingesperrtes SFTP und kein SSH, was gut ist. Es deaktiviert jedoch auch SCP, was nicht optimal ist, da es sich bei einigen Clients um veraltete, skriptbasierte Prozesse handelt, die SCP anstelle von SFTP (den Server, den wir ersetzen, unterstützen beide Protokolle) verwenden und da diese Clients nicht von uns kontrolliert werden können geändert, ist es wahrscheinlich nicht praktisch, SCP insgesamt zu deaktivieren.
Es ist sinnvoll, dass diese Konfiguration SCP deaktivieren würde, da eingehende SCP-Verbindungen dazu führen, dass sshd als dieser Benutzer einen "scp" -Prozess über die Anmeldeshell des Benutzers erzeugt. Es scheint, dass dies normalerweise auch für SFTP gilt, wenn nicht der spezielle "Internal-SFTP" -Handler verwendet wird.
Ich nehme an, meine Frage lautet: Gibt es eine Möglichkeit, den gleichen Effekt wie bei 'internal-sftp' zu erzielen, jedoch für SCP, ohne auf Tools von Drittanbietern wie scponly und rssh zurückzugreifen? Das wirklich Schöne an 'internal-sftp' ist, dass es nicht erforderlich ist, ein Gefängnis mit Unterstützungsdateien einzurichten oder sich mit potenziell ausnutzbaren setuid-Binärdateien von Drittanbietern zu befassen (insbesondere rssh hat eine Geschichte von Exploits).