Hvordan begrense SFTP-brukere til hjemmekataloger ved hjelp av chroot-fengsel


I denne opplæringen vil vi diskutere hvordan du begrenser SFTP-brukere til deres hjemmekataloger eller spesifikke kataloger. Det betyr at brukeren bare kan få tilgang til sin respektive hjemmekatalog, ikke hele filsystemet.

Det er viktig å begrense brukernes hjemmekataloger, spesielt i et delt servermiljø, slik at en uautorisert bruker ikke sniker seg inn i den andre brukerens filer og mapper.

Viktig: Vær også oppmerksom på at formålet med denne artikkelen er kun å gi SFTP-tilgang, ikke SSH-pålogginger, ved å følge denne artikkelen vil du ha tillatelser til å utføre filoverføring, men ikke tillatt å gjøre en ekstern SSH-økt.

Foreslått lesing: Begrens SSH-brukertilgang til visse kataloger ved å bruke Chrooted Jail

Den enkleste måten å gjøre dette på er å lage et chrooted jail-miljø for SFTP-tilgang. Denne metoden er den samme for alle Unix/Linux-operativsystemer. Ved å bruke chrooted miljø kan vi begrense brukere enten til deres hjemmekatalog eller til en spesifikk katalog.

Begrens brukere til hjemmekataloger

I denne delen vil vi opprette en ny gruppe kalt sftpgroup og tildele riktig eierskap og tillatelser til brukerkontoer. Det er to valg for å begrense brukere til hjemme- eller spesifikke kataloger, vi vil se begge veier i denne artikkelen.

Opprett eller endre brukere og grupper

La oss begrense den eksisterende brukeren, for eksempel tecmint, til hans/hennes hjemmekatalog kalt /home/tecmint. For dette må du opprette en ny sftpgroup-gruppe ved å bruke kommandoen groupadd som vist:

groupadd sftpgroup

Deretter tilordner du brukeren 'tecmint' til sftpgroup-gruppen.

usermod -G sftpgroup tecmint

Du kan også opprette en ny bruker ved å bruke useradd-kommandoen, for eksempel senthil og tilordne brukeren til sftpusers-gruppen.

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

Endre SSH-konfigurasjonsfilen

Åpne og legg til følgende linjer i /etc/ssh/sshd_config konfigurasjonsfilen.

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

Lagre og avslutt filen, start sshd-tjenesten på nytt for å tre i kraft nye endringer.

systemctl restart sshd
OR
service sshd restart

Hvis du chroot flere brukere til samme katalog, bør du endre tillatelsene til hver brukers hjemmekatalog for å hindre alle brukere fra å bla gjennom hjemmekatalogene til de andre brukerne.

chmod 700 /home/tecmint

Bekreft SSH- og SFTP-brukerpålogging

Nå er det på tide å sjekke påloggingen fra et lokalt system. Prøv å ssh det eksterne systemet fra ditt lokale system.

ssh [email 

Her,

  1. tecmint – det eksterne systemets brukernavn.
  2. 192.168.1.150 – Det eksterne systemets IP-adresse.
Eksempelutgang:
[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.

Deretter får du tilgang til eksternt system ved hjelp av SFTP.

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

La oss sjekke gjeldende arbeidskatalog:

sftp&gt pwd
Remote working directory: /

sftp&gt ls
tecmint  

Her er tecmint hjemmekatalogen. CD til tecmint-katalogen og lag filene eller mappene du ønsker.

sftp&gt cd tecmint
Remote working directory: /

sftp&gt mkdir test
tecmint  

Begrens brukere til en spesifikk katalog

I vårt forrige eksempel begrenser vi eksisterende brukere til hjemmekatalogen. Nå skal vi se hvordan du begrenser en ny bruker til en tilpasset katalog.

Opprett gruppe og nye brukere

Opprett en ny gruppe sftpgroup.

groupadd sftpgroup

Deretter oppretter du en katalog for SFTP-gruppen og tildeler tillatelser for rotbrukeren.

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

Deretter oppretter du nye kataloger for hver bruker, som de vil ha full tilgang til. For eksempel vil vi opprette en tecmint-bruker og det er en ny hjemmekatalog med riktig gruppetillatelse ved å bruke følgende rekke kommandoer.

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

Konfigurer SSH for SFTP-tilgang

Endre eller legg til følgende linjer på slutten av filen:

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

Lagre og avslutt filen. Start sshd-tjenesten på nytt for å tre i kraft de lagrede endringene.

systemctl restart sshd
OR
service sshd restart

Det er det, du kan sjekke ved å logge på den eksterne SSH- og SFTP-serveren din ved å bruke trinnet ovenfor under Bekreft SSH- og SFTP-pålogging.

Vær oppmerksom på at denne metoden vil deaktivere skalltilgangen, det vil si at du ikke kan få tilgang til det eksterne systemets skalløkt ved å bruke SSH. Du kan bare få tilgang til de eksterne systemene via SFTP og gjøre filoverføring til og fra de lokale og eksterne systemene.

Konklusjon

Nå vet du hvordan du begrenser brukernes hjemmekataloger ved å bruke et Chroot-miljø i Linux. Hvis du finner dette nyttig, del denne artikkelen på dine sosiale nettverk og gi oss beskjed i kommentarfeltet nedenfor hvis det er andre metoder for å begrense brukernes hjemmekataloger.