Wéi beschränken ech SFTP Benotzer op Home Verzeechnes mat Chroot Jail


An dësem Tutorial wäerte mir diskutéieren wéi SFTP Benotzer op hir Heemverzeichnisser oder spezifesch Verzeichnisser beschränken. Et heescht datt de Benotzer nëmmen op säi jeeweilegen Heemverzeechnes kënnt, net op de ganze Dateiesystem.

D'Beschränkung vun de Benotzer Heemverzeichnungen ass vital, besonnesch an engem gemeinsame Serverëmfeld, sou datt en onerlaabten Benotzer net an den anere Benotzer seng Dateien an Ordner schneit.

Wichteg: W.e.g. notéiert och datt den Zweck vun dësem Artikel ass nëmmen SFTP Zougang ze bidden, net SSH Login, andeems Dir dësen Artikel verfollegt, wäert d'Permissiounen hunn fir Dateientransfer ze maachen, awer net erlaabt eng Remote SSH Sessioun ze maachen.

Deen einfachste Wee fir dëst ze maachen ass e chrooted Prisongsëmfeld fir SFTP Zougang ze kreéieren. Dës Method ass d'selwecht fir all Unix/Linux Betribssystemer. Mat chrooted Ëmfeld kënne mir Benotzer entweder op hiren Heemverzeechnes oder op e spezifesche Verzeechnes beschränken.

Beschränken d'Benotzer op Home Verzeichnungen

An dëser Sektioun wäerte mir nei Grupp mam Numm sftpgroup erstellen an déi richteg Besëtzer an Permissiounen u Benotzerkonten zouginn. Et ginn zwou Méiglechkeeten fir Benotzer op Heem oder spezifesch Verzeichnisser ze beschränken, mir wäerte béid Manéier an dësem Artikel gesinn.

Loosst eis den existente Benotzer, zum Beispill tecmint, op säin Heemverzeichnis mam Numm /home/tecmint beschränken. Fir dëst musst Dir eng nei sftpgroup Grupp erstellen andeems Dir groupadd Kommando benotzt wéi gewisen:

# groupadd sftpgroup

Als nächst gitt de Benotzer 'tecmint' op sftpgroup Grupp.

# usermod -G sftpgroup tecmint

Dir kënnt och en neie Benotzer erstellen andeems Dir useradd Kommando benotzt, zum Beispill senthil an de Benotzer op sftpusers Grupp zouginn.

# adduser senthil -g sftpgroup -s /sbin/nologin
# passwd tecmint

Öffnen a füügt déi folgend Zeilen un d'Konfiguratiounsdatei /etc/ssh/sshd_config derbäi.

Subsystem sftp internal-sftp
 
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Späichert a gitt d'Datei aus, den sshd Service nei starten fir nei Ännerungen a Kraaft ze huelen.

# systemctl restart sshd
OR
# service sshd restart

Wann Dir e puer Benotzer an dee selwechte Verzeechnes chroot, sollt Dir d'Permissiounen vun all Benotzer Heemverzeechnes änneren fir ze verhënneren datt all Benotzer d'Heemverzeichnisser vun all anere Benotzer duerchsichen.

# chmod 700 /home/tecmint

Elo ass et Zäit de Login vun engem lokale System z'iwwerpréiwen. Probéiert Äre Fernsystem vun Ärem lokale System ze ssh.

# ssh [email 

Hei,

  1. tecmint - de Benotzernumm vum Fernsystem.
  2. 192.168.1.150 - IP Adress vum Remote System.

[email 's password: 
Could not chdir to home directory /home/tecmint: No such file or directory
This service allows sftp connections only.
Connection to 192.168.1.150 closed.

Da gitt Zougang zum Fernsystem mat SFTP.

# sftp [email 
[email 's password: 
Connected to 192.168.1.150.
sftp>

Loosst eis den aktuellen Aarbechtsverzeechnes kontrolléieren:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Hei ass tecmint den Heemverzeechnes. Cd an den tecmint Verzeichnis a erstellt d'Dateien oder Ordner vun Ärer Wiel.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Beschränken d'Benotzer op e spezifesche Verzeechnes

An eisem fréiere Beispill beschränke mir déi existent Benotzer op den Heemverzeechnes. Elo wäerte mir kucken wéi en neie Benotzer op e personaliséierte Verzeechnes beschränken.

Erstellt eng nei Grupp sftpgroup.

# groupadd sftpgroup

Als nächst erstellt e Verzeechnes fir SFTP-Grupp a gitt Permissiounen fir de Root Benotzer.

# mkdir -p /sftpusers/chroot
# chown root:root /sftpusers/chroot/

Als nächst, erstellt nei Verzeichnisser fir all Benotzer, op déi se voll Zougang hunn. Zum Beispill wäerte mir tecmint Benotzer erstellen an et ass en neien Heemverzeechnes mat der korrekter Grupperlaabnes mat der folgender Serie vu Kommandoen.

# adduser tecmint -g sftpgroup -s /sbin/nologin
# passwd tecmint
# mkdir /sftpusers/chroot/tecmint
# chown tecmint:sftpgroup /sftpusers/chroot/tecmint/
# chmod 700 /sftpusers/chroot/tecmint/

Änneren oder fügen déi folgend Zeilen um Enn vun der Datei derbäi:

#Subsystem  	sftp	/usr/libexec/openssh/sftp-server
Subsystem sftp  internal-sftp
 
Match Group sftpgroup
   ChrootDirectory /sftpusers/chroot/
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

Späichert a gitt d'Datei aus. Restart sshd Service fir déi gespäichert Ännerungen a Kraaft ze huelen.

# systemctl restart sshd
OR
# service sshd restart

Dat ass et, Dir kënnt iwwerpréiwen andeems Dir Iech op Äre Remote SSH- a SFTP-Server aloggen andeems Dir de Schrëtt uewe benotzt beim SSH a SFTP-Login z'iwwerpréiwen.

Opgepasst datt dës Method de Shell Zougang deaktivéiert, dh Dir kënnt net op d'Shell Sessioun vum Fernsystem mat SSH zougräifen. Dir kënnt nëmmen op d'Fernsystemer iwwer SFTP zougräifen an d'Dateietransfer op a vun de lokalen a Fernsystemer maachen.

Conclusioun

Elo wësst Dir wéi Dir d'Benotzer Heemverzeichnisser beschränkt mat engem Chroot Ëmfeld am Linux. Wann Dir dëst nëtzlech fannt, deelt dësen Artikel op Äre sozialen Netzwierker a loosst eis an der Kommentarsektioun hei drënner wëssen ob et aner Methoden gëtt fir d'Benotzer Heemverzeichnisser ze beschränken.