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,
- tecmint – det eksterne systemets brukernavn.
- 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> pwd
Remote working directory: /
sftp> ls
tecmint
Her er tecmint
hjemmekatalogen. CD til tecmint-katalogen og lag filene eller mappene du ønsker.
sftp> cd tecmint
Remote working directory: /
sftp> 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.