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,
- tecmint - de Benotzernumm vum Fernsystem.
- 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> pwd Remote working directory: / sftp> ls tecmint
Hei ass tecmint
den Heemverzeechnes. Cd an den tecmint Verzeichnis a erstellt d'Dateien oder Ordner vun Ärer Wiel.
sftp> cd tecmint Remote working directory: / sftp> 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.