Zum Inhalt springen
TURNKEYGNU / LINUX
AnwendungenDokumentationBlogBildschirmfotosGitHubTurnKey Hub
文Deutsch
EnglishEspañol中文日本語PortuguêsDeutsch
Haus/Wie man einen inhaftierten SFTP-Benutzer erstellt (chroot jail)

Dokumentation

Wie man einen inhaftierten SFTP-Benutzer erstellt (chroot jail)

Wichtiger Hinweis für AWS Marketplace-Benutzer:

Wenn Sie das Root-Konto auf Ihrem Marketplace-Server nicht aktiviert haben, müssen Sie die folgenden Befehle mit sudo ausführen. Am einfachsten ist es, dies innerhalb einer Sudo-Shell zu tun und zu beenden, wenn Sie fertig sind.

sudo su

Und wenn fertig:

exit

Hier gehen wir...

Alle TurnKey Appliances sind mit SFTP vorkonfiguriert und aktiviert. Solange es Ihnen nichts ausmacht, Dateien zu lesen, ist dies möglicherweise kein Problem, da neue, nicht privilegierte Benutzer standardmäßig keinen Schreibzugriff außer ihrem Heimatverzeichnis haben. (normalerweise /home/USERNAME), plus überall, wo Sie ihnen ausdrücklich Schreibzugriff geben.) Zusätzlich können sie sich standardmäßig auch in eine SSH-Shell einloggen, da SFTP von SSH bereitgestellt wird. Was sie tun können, wird wieder begrenzt sein, aber das ist möglicherweise immer noch nicht wünschenswert.

In einem Szenario, in dem Sie nur möchten, dass sich SFTP-Benutzer über SFTP anmelden (und nicht SSH) und sie in ihrem eigenen Verzeichnis gesperrt werden (d. H. bekannt als "chroot jail"), dann können Sie SSH / SFTP konfigurieren, um dies zu tun.

Ich habe die Befehle in Skriptform gegeben, so dass sie in die Befehlszeile kopiert/eingelegt werden können. Wenn man also Teile davon wiederholt, besteht die Möglichkeit, dass man unerwartete Ergebnisse erzielt. Die benutzerbezogenen Befehle können für einen neuen Benutzer erneut ausgeführt werden (Ändern des Werts von NEW_USER), das Hinzufügen der Gruppe sftp_users und der SSH-Konfiguration sollte jedoch nur einmal durchgeführt werden. Wenn Sie die SSH-Konfigurationseinstellungen optimieren müssen, empfehle ich, die Konfigurationsdatei manuell zu bearbeiten.

Einmal laufen

Erstellen Sie die erforderliche Gruppe:

groupadd sftp_users

Einmal pro neuen Benutzer

Fügen Sie einen neuen Benutzer hinzu. Ich verwende hier den Namen "Newuser", aber Sie können jeden beliebigen Namen verwenden, obwohl ich dringend empfehle, nur Kleinbuchstaben ohne Leerzeichen oder Sonderzeichen zu verwenden. Wenn Sie zusätzliche Benutzer hinzufügen möchten, ändern Sie den Wert von "NEW_USER" (in der ersten Zeile unten):

NEW_USER="newuser"
useradd -G sftp_users -s /sbin/nologin $NEW_USER
passwd $NEW_USER

Sobald Sie ein Passwort für den neuen Benutzer festgelegt und bestätigt haben, erstellen Sie das neue Benutzerkonto:

mkdir -p /home/$NEW_USER/files
chown root:root /home/$NEW_USER
chown $NEW_USER:$NEW_USER /home/$NEW_USER/files
chmod 700 /home/$NEW_USER/files
usermod -d /files $NEW_USER

Nur einmal laufen!

Als nächstes müssen wir SSH/SFTP neu konfigurieren. Um dies zu tun, müssen wir die SSH-Konfigurationsdatei bearbeiten (/etc/ssh/sshd_config). Um es einfach zu machen, habe ich es in Skriptform zur Verfügung gestellt ). Bitte beachten Sie, dass dies nur getan werden sollte einmal.:

CONF=/etc/ssh/sshd_config
SEARCH="Subsystem sftp \/usr\/lib\/openssh\/sftp-server"
NEW_LINE="Subsystem sftp internal-sftp"

sed -i "/^$SEARCH/ s|^|#|" $CONF
sed -i "/$NEW_LINE/d" $CONF
sed -i "/$SEARCH/a\\$NEW_LINE" $CONF
if ! grep "Match Group sftp_users" $CONF >/dev/null; then
    cat >> $CONF <<EOF

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home/%u
  ForceCommand internal-sftp
EOF
fi

Der letzte Schritt ist das Neustarten von SSH:

service ssh restart

Wenn Sie Ihre SSH-Einstellungen weiter optimieren müssen, bearbeiten Sie die Konfigurationsdatei bitte manuell mit einem Texteditor wie Nano.

nano /etc/ssh/sshd_config

Der Benutzer wird automatisch sftp in ihr chrooted Haus (/home/user/files).) Sie können cd zum elternverzeichnis cd (x0x haben aber nichts anderes als lesezugriff dort und können nicht höher surfen).

Zusätzliche Anmerkungen: Wenn Sie Ihrem chrooted SFTP-Benutzer etwas mehr Flexibilität gewähren möchten (z. B. scp und / oder rsync zulassen), installieren Sie anstelle einer /sbin/nologin-Shell. rssh (apt-get install rssh) und geben ihnen eine /usr/bin/rssh-Shell.

TURNKEYGNU / LINUX

Eigene Infrastruktur betreiben, ohne bei null anzufangen.

TurnKey erkunden
Über TurnKeyDokumentationHäufige FragenBlogGitHub
Frei und quelloffenStandardmäßig sicherSofort einsatzbereit