GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So konfigurieren Sie den SFTP-Server mit Chroot in Debian 10

SFTP steht für Secure File Transfer Protocol / SSH File Transfer Protocol, es ist eine der gebräuchlichsten Methoden, um Dateien sicher über ssh von unserem lokalen System auf einen Remote-Server und umgekehrt zu übertragen. Der Hauptvorteil von sftp besteht darin, dass wir kein zusätzliches Paket außer „openssh-server“ installieren müssen “, in den meisten Linux-Distributionen ist das Paket „openssh-server“ Teil der Standardinstallation. Ein weiterer Vorteil von sftp ist, dass wir Benutzern erlauben können, nur sftp und nicht ssh zu verwenden.

Kürzlich wurde Debian 10 mit dem Codenamen „Buster“ veröffentlicht. In diesem Artikel werden wir demonstrieren, wie man sftp mit einer Chroot „Jail“-ähnlichen Umgebung im Debian 10-System konfiguriert. Hier bedeutet eine Chroot Jail-ähnliche Umgebung, dass Benutzer nicht über ihre jeweiligen Home-Verzeichnisse hinausgehen können oder Benutzer Verzeichnisse von ihren Home-Verzeichnissen aus nicht ändern können. Im Folgenden finden Sie die Labordetails:

  • Betriebssystem =Debian 10
  • IP-Adresse =192.168.56.151

Lassen Sie uns zu den SFTP-Konfigurationsschritten springen,

Schritt:1) Erstellen Sie eine Gruppe für sftp mit dem Befehl groupadd

Öffnen Sie das Terminal, erstellen Sie eine Gruppe mit dem Namen „sftp_users ” mit dem folgenden groupadd-Befehl,

[email protected]:~# groupadd sftp_users

Schritt:2) Benutzer zur Gruppe „sftp_users“ hinzufügen und Berechtigungen festlegen

Falls Sie einen neuen Benutzer erstellen und diesen Benutzer zur Gruppe „sftp_users“ hinzufügen möchten, führen Sie den folgenden Befehl aus:

Syntax: #  useradd -m -G sftp_users

Nehmen wir an, der Benutzername ist „Jonathan“

[email protected]:~# useradd -m -G sftp_users jonathan

Legen Sie das Passwort mit dem folgenden chpasswd-Befehl fest,

[email protected]:~# echo "jonathan:<enter_password>" | chpasswd

Falls Sie vorhandene Benutzer zur Gruppe „sftp_users“ hinzufügen möchten, führen Sie den Befehl „usermod“ aus. Nehmen wir an, der bereits vorhandene Benutzername ist „chris“

[email protected]:~# usermod -G sftp_users chris

Legen Sie nun die erforderlichen Berechtigungen für Benutzer fest,

[email protected]:~# chown root /home/jonathan /home/chris/

Erstellen Sie einen Upload-Ordner im Home-Verzeichnis des Benutzers und legen Sie den richtigen Besitz fest,

[email protected]:~# mkdir /home/jonathan/upload
[email protected]:~# mkdir /home/chris/upload
[email protected]:~# chown jonathan /home/jonathan/upload
[email protected]:~# chown chris /home/chris/upload

Hinweis: Benutzer wie Jonathan und Chris können Dateien und Verzeichnisse hochladen, um Ordner von ihren lokalen Systemen hochzuladen.

Schritt:3) Bearbeiten Sie die sftp-Konfigurationsdatei (/etc/ssh/sshd_config)

Wie wir bereits erwähnt haben, werden sftp-Operationen über ssh ausgeführt, daher ist die Konfigurationsdatei „/etc/ssh/sshd_config “, Bevor Sie Änderungen vornehmen, würde ich vorschlagen, zuerst eine Sicherungskopie zu erstellen und dann diese Datei zu bearbeiten und den folgenden Inhalt hinzuzufügen,

[email protected]:~# cp /etc/ssh/sshd_config /etc/ssh/sshd_config-org
[email protected]:~# vim /etc/ssh/sshd_config
………
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h
  ForceCommand internal-sftp
…………

Speichern und beenden Sie die Datei.

Um die oben genannten Änderungen vorzunehmen, starten Sie den ssh-Dienst mit dem folgenden systemctl-Befehl neu

[email protected]:~# systemctl restart sshd

In der obigen Datei „sshd_config“ haben wir die Zeile, die mit „Subsystem“ beginnt, auskommentiert und einen neuen Eintrag „Subsystem       sftp    internal-sftp“ und neue Zeilen wie

hinzugefügt

Match Group sftp_users“ –> Das bedeutet, wenn ein Benutzer Teil der Gruppe „sftp_users“ ist, wenden Sie die unten aufgeführten Regeln auf diesen Eintrag an.

ChrootDierctory %h ” –> Es bedeutet, dass Benutzer Verzeichnisse nur innerhalb ihrer jeweiligen Home-Verzeichnisse wechseln können, sie können nicht über ihre Home-Verzeichnisse hinausgehen, oder mit anderen Worten, wir können sagen, dass Benutzer Verzeichnisse nicht wechseln dürfen, sie erhalten eine Jai-ähnliche Umgebung in ihren Verzeichnissen und können nicht auf die Verzeichnisse anderer Benutzer und Systeme zugreifen.

ForceCommand internal-sftp ” –> Dies bedeutet, dass Benutzer nur auf den sftp-Befehl beschränkt sind.

Schritt:4) sftp testen und verifizieren

Melden Sie sich bei einem anderen Linux-System an, das sich im selben Netzwerk wie Ihr SFTP-Server befindet, und versuchen Sie dann, den SFTP-Server über die Benutzer, die wir in der Gruppe „sftp_users“ zugeordnet haben, per SSH zu erreichen.

[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]# ssh [email protected]
[email protected]'s password:
Write failed: Broken pipe
[[email protected] ~]#

Oben wird bestätigt, dass Benutzer nicht zu SSH berechtigt sind. Versuchen Sie jetzt sftp mit den folgenden Befehlen,

[[email protected] ~]# sftp [email protected]
[email protected]'s password:
Connected to 192.168.56.151.
sftp> ls -l
drwxr-xr-x    2 root     1001         4096 Sep 14 07:52 debian10-pkgs
-rw-r--r--    1 root     1001          155 Sep 14 07:52 devops-actions.txt
drwxr-xr-x    2 1001     1002         4096 Sep 14 08:29 upload

Versuchen wir, eine Datei mit sftp „get“ herunterzuladen ‘Befehl

sftp> get devops-actions.txt
Fetching /devops-actions.txt to devops-actions.txt
/devops-actions.txt                                                                               100%  155     0.2KB/s   00:00
sftp>
sftp> cd /etc
Couldn't stat remote file: No such file or directory
sftp> cd /root
Couldn't stat remote file: No such file or directory
sftp>

Die obige Ausgabe bestätigt, dass wir Dateien von unserem sftp-Server auf den lokalen Computer herunterladen können, und abgesehen davon haben wir auch getestet, dass Benutzer Verzeichnisse nicht wechseln können.

Versuchen wir, eine Datei unter „Upload“ hochzuladen ”-Ordner,

sftp> cd upload/
sftp> put metricbeat-7.3.1-amd64.deb
Uploading metricbeat-7.3.1-amd64.deb to /upload/metricbeat-7.3.1-amd64.deb
metricbeat-7.3.1-amd64.deb                                                                        100%   38MB  38.4MB/s   00:01
sftp> ls -l
-rw-r--r--    1 1001     1002     40275654 Sep 14 09:18 metricbeat-7.3.1-amd64.deb
sftp>

Dies bestätigt, dass wir erfolgreich eine Datei von unserem lokalen System auf den sftp-Server hochgeladen haben.

Testen Sie nun den SFTP-Server mit dem Winscp-Tool, geben Sie die IP-Adresse des SFTP-Servers zusammen mit den Anmeldeinformationen des Benutzers ein,

Klicken Sie auf Anmelden und versuchen Sie dann, Dateien herunter- und hochzuladen

Versuchen Sie nun, Dateien in den Upload-Ordner hochzuladen,

Das obige Fenster bestätigt, dass das Hochladen auch gut funktioniert, das ist alles aus diesem Artikel. Wenn diese Schritte Ihnen helfen, den SFTP-Server mit Chroot-Umgebung in Debian 10 zu konfigurieren, teilen Sie uns bitte Ihr Feedback und Ihre Kommentare mit.


Debian
  1. So installieren und konfigurieren Sie VNC unter Debian 9

  2. So richten Sie einen FTP-Server mit VSFTPD unter Debian 9 ein

  3. So richten Sie einen SFTP-Server auf Debian 11 Server ein

  4. So konfigurieren Sie eine Firewall mit CSF unter Debian 9

  5. So konfigurieren Sie eine Firewall mit UFW unter Debian 9

So konfigurieren Sie NTP-Server und -Client unter Debian 10

So installieren und konfigurieren Sie den Apache-Webserver mit virtuellem Host unter Debian 10

So konfigurieren Sie LAMP mit Debian 11

So konfigurieren Sie Bind mit Debian 11

So konfigurieren Sie Samba Server mit Debian 11

So installieren Sie Nginx mit PHP-FPM unter Debian 11