In deze tutorial zullen we bespreken hoe we SFTP gebruikers kunnen beperken tot hun thuismappen of specifieke mappen. Dit betekent dat de gebruiker alleen toegang heeft tot zijn/haar respectievelijke thuismap, niet het gehele bestandssysteem.
Het beperken van gebruikers thuismappen is van vitaal belang, vooral in een gedeelde serveromgeving, zodat een ongeautoriseerde gebruiker niet stiekem in de bestanden en mappen van andere gebruikers kan gluren.
Belangrijk: Let ook op dat het doel van dit artikel is om alleen SFTP-toegang te bieden, niet SSH-aanmeldingen. Door dit artikel te volgen, hebben gebruikers toestemming om bestanden over te dragen, maar ze mogen geen externe SSH-sessie starten.
Aanbevolen artikel: Beperk SSH-gebruikerstoegang tot bepaalde map met behulp van Chrooted Jail
De eenvoudigste manier om dit te doen, is door een chrooted jail-omgeving te creëren voor SFTP-toegang. Deze methode is hetzelfde voor alle Unix/Linux-besturingssystemen. Met behulp van een chrooted omgeving kunnen we gebruikers beperken tot hun thuismap of een specifieke map.
Beperk gebruikers tot thuismappen
In dit gedeelte zullen we een nieuwe groep genaamd sftpgroup maken en de juiste eigendom en machtigingen toewijzen aan gebruikersaccounts. Er zijn twee keuzes om gebruikers te beperken tot thuismappen of specifieke mappen, we zullen beide manieren in dit artikel bekijken.
Maak of wijzig gebruikers en groepen
Gebruik de bestaande gebruiker, bijvoorbeeld tecmint
, aan zijn/haar home directory genaamd /home/tecmint
. Om dit te doen, moet u een nieuwe sftpgroup groep aanmaken met behulp van het groupadd commando zoals weergegeven:
# groupadd sftpgroup
Vervolgens moet u de gebruiker ‘tecmint’ toewijzen aan de sftpgroup groep.
# usermod -G sftpgroup tecmint
U kunt ook een nieuwe gebruiker aanmaken met behulp van het useradd commando, bijvoorbeeld senthil
en de gebruiker toewijzen aan de sftpusers groep.
# adduser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint
Wijzig SSH Configuratiebestand
Open en voeg de volgende regels toe aan het configuratiebestand /etc/ssh/sshd_config
.
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Sla het bestand op en sluit af, herstart de sshd dienst om de nieuwe wijzigingen te laten toekeren.
# systemctl restart sshd OR # service sshd restart
Als u meerdere gebruikers chroot naar dezelfde directory, moet u de rechten van de home directory van elke gebruiker wijzigen om te voorkomen dat alle gebruikers de home directories van elkaar kunnen doorbladeren.
# chmod 700 /home/tecmint
Controleer SSH en SFTP Gebruikerslogin
Nu is het tijd om de login van een lokale systeem te controleren. Probeer ssh op uw externe systeem te gebruiken vanuit uw lokale systeem.
# ssh [email protected]
Hier,
- tecmint – naam van het externe systeem.
- 192.168.1.150 – IP-adres van het externe systeem.
Voorbeeld van uitvoer:
[email protected]'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.
Dan, toegang tot het externe systeem met behulp van SFTP.
# sftp [email protected]
Voorbeeld van uitvoer:
[email protected]'s password: Connected to 192.168.1.150. sftp>
Bekijk de huidige werkdirectory:.
sftp> pwd Remote working directory: / sftp> ls tecmint
Hier is tecmint
de home directory. Ga naar de tecmint directory en maak de gewenste bestanden of mappen aan.
sftp> cd tecmint Remote working directory: / sftp> mkdir test tecmint
Beperk gebruikers tot een specifieke directory
In ons vorige voorbeeld beperken we de bestaande gebruikers tot de home directory. Nu zullen we zien hoe we een nieuwe gebruiker kunnen beperken tot een aangepaste directory.
Maak groep en nieuwe gebruikers aan
Maak een nieuwe groep sftpgroup
aan.
# groupadd sftpgroup
Maak vervolgens een directory aan voor de SFTP-groep en wijs rechten toe aan de root-gebruiker.
# mkdir -p /sftpusers/chroot # chown root:root /sftpusers/chroot/
Maak vervolgens nieuwe directories aan voor elke gebruiker, waar ze volledige toegang toe hebben. Bijvoorbeeld, we zullen de gebruiker tecmint
aanmaken en de nieuwe home directory met de juiste groepsrechten met behulp van de volgende reeks commando’s.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
Configureer SSH voor SFTP-toegang
Wijzig of voeg de volgende regels toe aan het einde van het bestand:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /sftpusers/chroot/ ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
Sla het bestand op en sluit het af. Herstart de sshd-service om de opgeslagen wijzigingen van kracht te laten worden.
# systemctl restart sshd OR # service sshd restart
Dat is alles, je kunt controleren door in te loggen op je externe SSH- en SFTP-server door de bovenstaande stappen te volgen bij Verifieer SSH- en SFTP-login.
Wees ervan bewust dat deze methode de shell-toegang uitschakelt, d.w.z. je kunt geen toegang krijgen tot de shell-sessie van het externe systeem via SSH. Je kunt alleen toegang krijgen tot de externe systemen via SFTP en bestanden overzetten van en naar de lokale en externe systemen.
Conclusie
Nu weet je hoe je gebruikers thuismappen kunt beperken met behulp van een Chroot-omgeving in Linux. Als je dit handig vindt, deel dan dit artikel op je sociale netwerken en laat ons in de opmerkingen hieronder weten of er nog andere methoden zijn om gebruikers thuismappen te beperken.
Source:
https://www.tecmint.com/restrict-sftp-user-home-directories-using-chroot/