Zoeken op website

Hoe u SFTP-gebruikers kunt beperken tot thuismappen met behulp van chroot Jail


In deze zelfstudie bespreken we hoe u SFTP-gebruikers kunt beperken tot hun thuismappen of specifieke mappen. Het betekent dat de gebruiker alleen toegang heeft tot zijn/haar respectievelijke thuismap, en niet tot het volledige bestandssysteem.

Het beperken van de thuismappen van gebruikers is van cruciaal belang, vooral in een gedeelde serveromgeving, zodat een ongeautoriseerde gebruiker niet stiekem in de bestanden en mappen van de andere gebruiker kan kijken.

Belangrijk: houd er ook rekening mee dat het doel van dit artikel is om alleen SFTP-toegang te bieden, niet SSH-logins. Door dit artikel te volgen, krijgt u de toestemming om bestandsoverdracht uit te voeren. maar mag geen externe SSH-sessie doen.

Voorgesteld lezen: Beperk SSH-gebruikerstoegang tot bepaalde directory's met behulp van gechroote gevangenis

De eenvoudigste manier om dit te doen is door een gechroote gevangenisomgeving te creëren voor SFTP-toegang. Deze methode is hetzelfde voor alle Unix/Linux-besturingssystemen. Met behulp van een gechroote omgeving kunnen we gebruikers beperken tot hun thuismap of tot een specifieke map.

Beperk gebruikers tot thuismappen

In deze sectie maken we een nieuwe groep met de naam sftpgroup en wijzen we het juiste eigendom en de juiste rechten toe aan gebruikersaccounts. Er zijn twee keuzes om gebruikers te beperken tot thuismappen of specifieke mappen, we zullen beide kanten op zien in dit artikel.

Gebruikers en groepen maken of wijzigen

Laten we de bestaande gebruiker, bijvoorbeeld tecmint, beperken tot zijn/haar thuismap met de naam /home/tecmint. Hiervoor moet je een nieuwe sftpgroup groep aanmaken met behulp van het groupadd commando, zoals weergegeven:

groupadd sftpgroup

Wijs vervolgens de gebruiker ‘tecmint’ toe aan de sftpgroup groep.

usermod -G sftpgroup tecmint

U kunt ook een nieuwe gebruiker aanmaken met de opdracht useradd, bijvoorbeeld senthil, en de gebruiker toewijzen aan de groep sftpusers.

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

Wijzig het SSH-configuratiebestand

Open de volgende regels en voeg deze toe aan het /etc/ssh/sshd_config configuratiebestand.

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

Sla het bestand op en sluit het af, start de sshd-service opnieuw om de nieuwe wijzigingen door te voeren.

systemctl restart sshd
OR
service sshd restart

Als u meerdere gebruikers naar dezelfde map chroot, moet u de rechten van de thuismap van elke gebruiker wijzigen om te voorkomen dat alle gebruikers door de thuismappen van elkaar kunnen bladeren.

chmod 700 /home/tecmint

Controleer of SSH- en SFTP-gebruikers inloggen

Nu is het tijd om de login vanaf een lokaal systeem te controleren. Probeer uw externe systeem vanaf uw lokale systeem te sshen.

ssh [email 

Hier,

  1. tecmint – gebruikersnaam van het externe systeem.
  2. 192.168.1.150 – Het IP-adres van het externe systeem.
Voorbeelduitvoer:
[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.

Krijg vervolgens toegang tot het externe systeem met behulp van SFTP.

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

Laten we de huidige werkmap controleren:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Hier is tecmint de thuismap. CD naar de map tecmint en maak de bestanden of mappen van uw keuze.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Beperk gebruikers tot een specifieke map

In ons vorige voorbeeld beperken we de bestaande gebruikers tot de thuismap. Nu zullen we zien hoe u een nieuwe gebruiker kunt beperken tot een aangepaste map.

Groep en nieuwe gebruikers maken

Maak een nieuwe groep sftpgroup.

groupadd sftpgroup

Maak vervolgens een map voor de SFTP-groep en wijs machtigingen toe aan de rootgebruiker.

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

Maak vervolgens voor elke gebruiker nieuwe mappen aan, waartoe hij of zij volledige toegang heeft. We zullen bijvoorbeeld een tecmint-gebruiker en zijn nieuwe thuismap met de juiste groepsrechten maken met behulp van de volgende reeks opdrachten.

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. Start de sshd-service opnieuw om de opgeslagen wijzigingen door te voeren.

systemctl restart sshd
OR
service sshd restart

Dat is alles. U kunt dit controleren door in te loggen op uw externe SSH- en SFTP-server door de bovenstaande stap te gebruiken bij SSH- en SFTP-aanmelding verifiëren.

Houd er rekening mee dat deze methode de shell-toegang uitschakelt, dat wil zeggen dat u geen toegang krijgt tot de shell-sessie van het externe systeem via SSH. U kunt alleen via SFTP toegang krijgen tot de externe systemen en bestandsoverdracht uitvoeren van en naar de lokale en externe systemen.

Conclusie

Nu weet je hoe je de thuismappen van gebruikers kunt beperken met behulp van een Chroot-omgeving in Linux. Als u dit nuttig vindt, deel dit artikel dan op uw sociale netwerken en laat ons in het commentaargedeelte hieronder weten of er andere methoden zijn om de thuismappen van gebruikers te beperken.