Dateisystem für sicheren SFTP-Server sichern

12

Dies mag nicht als Entwicklungsfrage erscheinen, ist es aber im Wesentlichen. Lass mich erklären wie. Unser Hauptentwicklungsschwerpunkt sind dynamische Inhaltsseiten. Einige unserer Kunden haben uns gebeten, ihnen Speicherplatz auf unseren Servern (den sie bezahlen) für ihre alten statischen Inhalte zu gewähren. Um dies zu erreichen, geben wir dem Kunden einen FTP-Account in einer anderen Domain. (Beispiel: Die Kundendomain lautet customer.com, sie haben jedoch über otherdomain.com/customerstatic auf ihre statischen Inhalte zugegriffen.)

Jetzt wollen wir die Sicherheit erhöhen, indem wir Kunden SFTP-Konten auf ihren Linux-Servern zur Verfügung stellen. Ich benutze OpenSSH / SFTP-Server in ihrer Shell-Umgebung, damit sie sich nicht anmelden oder Befehle ausführen können.

Das Problem ist, dass von Natur aus viele Dateisystemdateien standardmäßig vorhanden sind (drwxr-xr-x), was bedeutet, dass jeder Benutzer den Inhalt des Verzeichnisses und möglicherweise einige Dateien lesen kann. Ich halte es nicht für sinnvoll, das gesamte Dateisystem auf -rwxr-x - x umzustellen, da ich nicht weiß, wie viele Systemdateien diese Leseberechtigung benötigen werden.

Hat jemand dieses Problem in der Vergangenheit konfrontiert. Wenn ja, könnten Sie den Weg aufklären?

Vielen Dank

anon
quelle
Gute Frage und prägnante vollständige Antwort - ein Moderator sollte wahrscheinlich den Titel ändern und ihn in eine Nicht-Wiki-Frage verwandeln.
MikeyB
Es ist nicht möglich, ein Wiki zu löschen. Entschuldigung
Jeff Atwood

Antworten:

22

SFTP ist von Natur aus nicht unsicher. Lassen Sie sie in Ihr gesamtes Dateisystem. Sehen Sie sich an, wie Sie den SFTP-Zugriff auf Chroot- Basis aktivieren können , wodurch die Verzeichnisse gesperrt werden, auf die sie zugreifen können, beispielsweise ihre Home-Verzeichnisse, oder wo immer Sie möchten, dass sie hochgeladen werden.

Unter Linux würde ich auf diesen Teil achten (Konfiguration von / etc / ssh / sshd_config):

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

Dies bedeutet, dass jeder Benutzer in der 'sftponly'-Benutzergruppe auf seine Home-Verzeichnisse beschränkt ist.

Weitere Informationen finden Sie unter dem Link. Lesen Sie auch die Manpage sshd_config. Ich hoffe, das hilft.

Josh K
quelle
Außerdem müssen Sie OpenSSH möglicherweise anweisen, es zu verwenden, internal-sftpwenn der Client das SFTP-Subsystem anfordert. Möglicherweise wurde es für die Verwendung des externen sftp-serverProgramms eingerichtet. Fügen Sie dazu die Zeile Subsystem sftp internal-sftpim Hauptabschnitt der Konfigurationsdatei hinzu oder ändern Sie sie (nicht unter dem MatchAbschnitt).
Nate
Josh, hast du jemals einen Weg gefunden, um dafür zu sorgen, dass die Home-Verzeichnisse der Benutzer keine Root-Rechte haben?
Matt Simmons
1

Wenn Sie sagen , „Viele Dateisysteme standardmäßig 755 Berechtigungen sind“, das eigentlich bedeutet , dass der Standard - umask auf 022. gesetzt können Sie diese Standardeinstellung ändern (für neue Dateien) durch die umask auf 027 einstellen, die die Standardberechtigungen 750 machen würden, oder Setzen Sie die Umask auf 007, wodurch die Standardberechtigungen auf 770 gesetzt werden.

Brent
quelle
0

Sie können einen OpenVZ-Server einrichten und dann für jedes Unternehmen einen eigenen kleinen VM-FTP / SFTP-Container erstellen. Dies hält sie alle getrennt und sobald Sie den Dreh raus haben, ist es wirklich praktisch für diese Art von kleinen Dingen.

Kyle Brandt
quelle