Android

Sådan konfigureres sftp chroot-fængsel

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Indholdsfortegnelse:

Anonim

I denne tutorial vil vi forklare, hvordan man opsætter et SFTP Chroot Jail-miljø, som vil begrænse brugere til deres hjemmekataloger. Brugerne har kun SFTP-adgang, SSH-adgang deaktiveres. Disse instruktioner skal fungere for enhver moderne Linux-distribution inklusive Ubuntu, CentOS, Debian og Fedora.

Oprettelse af en SFTP-gruppe

I stedet for at konfigurere OpenSSH-serveren for hver bruger individuelt, opretter vi en ny gruppe og tilføjer alle vores chrootede brugere til denne gruppe.

Kør følgende groupadd kommando for at oprette den sftponly brugergruppe:

sudo groupadd sftponly Du kan navngive gruppen, som du vil.

Føjelse af brugere til SFTP-gruppen

Det næste trin er at tilføje de brugere, du vil begrænse til sftponly gruppen.

Hvis dette er en ny opsætning, og brugeren ikke findes, kan du oprette en ny brugerkonto ved at skrive:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • Indstillingen -g sftponly tilføjer brugeren til sftponly-gruppen. Funktionen -s /bin/false indstiller brugerens login-shell. Ved at indstille login-shell til /bin/false vil brugeren ikke være i stand til at logge ind på serveren via SSH. Indstillingerne -m -d /home/username fortæller useradd om at oprette brugerens hjemmekatalog.

Angiv en stærk adgangskode for den nyoprettede bruger:

sudo passwd username

Ellers, hvis den bruger, du vil begrænse allerede findes, tilføj brugeren til sftponly gruppen og ændre brugerens shell:

sudo usermod -G sftponly -s /bin/false username2

Brugerhjemskataloget skal ejes af root og have 755 tilladelser:

sudo chown root: /home/username sudo chmod 755 /home/username

Da brugerens hjemmekataloger ejes af rodbrugeren, vil disse brugere ikke være i stand til at oprette filer og mapper i deres hjemmekataloger. Hvis der ikke er kataloger i brugerens hjem, skal du oprette nye mapper, som brugeren har fuld adgang til. For eksempel kan du oprette følgende mapper:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

Hvis en webapplikation bruger brugerens public_html bibliotek som dokumentrot, kan disse ændringer føre til tilladelsesproblemer. For eksempel, hvis du kører WordPress, bliver du nødt til at oprette en PHP-pool, der kører som brugeren, der ejer filerne og føjer sftponly til sftponly gruppen.

Konfiguration af SSH

SFTP er et undersystem af SSH og understøtter alle SSH-godkendelsesmekanismer.

Åbn SSH-konfigurationsfilen /etc/ssh/sshd_config med din teksteditor:

sudo nano /etc/ssh/sshd_config

Søg efter den linje, der starter med Subsystem sftp , normalt i slutningen af ​​filen. Hvis linjen starter med en hash # fjerne hash # og ændre den til at se sådan ud:

/ Etc / ssh / sshd_config

Subsystem sftp internal-sftp

Mot slutningen af ​​filen er følgende blok af indstillinger:

/ Etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

ChrootDirectory direktivet specificerer stien til chroot-biblioteket. %h betyder brugerens hjemmekatalog. Dette bibliotek skal ejes af rodbrugeren og ikke kan skrives af nogen anden bruger eller gruppe.

Vær ekstra forsigtig, når du ændrer SSH-konfigurationsfilen. Den forkerte konfiguration kan forårsage, at SSH-tjenesten ikke starter.

Når du er færdig, skal du gemme filen og genstarte SSH-tjenesten for at anvende ændringerne:

sudo systemctl restart ssh

I CentOS og Fedora kaldes ssh-tjenesten sshd :

sudo systemctl restart sshd

Test af konfigurationen

Nu, hvor du har konfigureret SFTP-chroot, kan du prøve at logge ind på den eksterne maskine via SFTP ved hjælp af legitimationsoplysningerne for den hakede bruger. I de fleste tilfælde bruger du en desktop SFTP-klient som FileZilla, men i dette eksempel bruger vi sftp-kommandoen.

Åbn en SFTP-forbindelse ved hjælp af sftp-kommandoen efterfulgt af fjernserverens brugernavn og serverens IP-adresse eller domænenavn:

sftp [email protected]

Du bliver bedt om at indtaste brugeradgangskoden. Når den er tilsluttet, viser den eksterne server en bekræftelsesmeddelelse og sftp> -prompt:

[email protected]'s password: sftp>

Kør pwd kommandoen, som vist nedenfor, og hvis alt fungerer som forventet, skal kommandoen returnere / .

sftp> pwd Remote working directory: /

Du kan også liste de eksterne filer og mapper ved hjælp af kommandoen ls og du skal se de mapper, vi tidligere har oprettet:

sftp> ls public_html uploads

Konklusion

I denne tutorial har du lært, hvordan du opsætter et SFTP Chroot Jail-miljø på din Linux-server og begrænser brugeradgang til deres hjemmekatalog.

Som standard lytter SSH på port 22. Ændring af standard SSH-port tilføjer et ekstra lag af sikkerhed til din server ved at reducere risikoen for automatiske angreb. Du ønsker måske også at konfigurere en SSH-nøglebaseret godkendelse og oprette forbindelse til serveren uden at indtaste et kodeord.

ssh sftp sikkerhed