Android

Hur man ställer in sftp chroot-fängelse

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

Innehållsförteckning:

Anonim

I den här tutorialen kommer vi att förklara hur man installerar en SFTP Chroot Jail-miljö som kommer att begränsa användarna till deras hemkataloger. Användarna kommer endast att ha SFTP-åtkomst, SSH-åtkomst kommer att inaktiveras. Dessa instruktioner bör fungera för alla moderna Linux-distributioner inklusive Ubuntu, CentOS, Debian och Fedora.

Skapa en SFTP-grupp

Istället för att konfigurera OpenSSH-servern för varje användare individuellt kommer vi att skapa en ny grupp och lägga till alla våra hackade användare i denna grupp.

Kör följande groupadd kommando för att skapa sftponly användargrupp:

sudo groupadd sftponly Du kan namnge gruppen som du vill.

Lägga till användare i SFTP-gruppen

Nästa steg är att lägga till de användare du vill begränsa till sftponly gruppen.

Om detta är en ny installation och användaren inte finns kan du skapa ett nytt användarkonto genom att skriva:

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

  • -g sftponly lägger till användaren i sftponly-gruppen. Alternativet -s /bin/false anger användarens inloggningsskal. Genom att ställa in inloggningsskalet på /bin/false kan användaren inte logga in på servern via SSH. Alternativet -m -d /home/username username berättar för användaren att skapa användarkatalogen för användaren.

Ställ in ett starkt lösenord för den nyskapade användaren:

sudo passwd username

Annars om användaren du vill begränsa redan finns lägger du till användaren i sftponly gruppen och ändrar användarens skal:

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

Användarkatalogen måste ägs av root och ha 755 behörigheter:

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

Eftersom användarens hemkataloger ägs av rotanvändaren kommer dessa användare inte att kunna skapa filer och kataloger i sina hemkataloger. Om det inte finns några kataloger i användarens hem, måste du skapa nya kataloger som användaren har full åtkomst till. Till exempel kan du skapa följande kataloger:

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

Om en webbapplikation använder användarens public_html katalog som dokumentrot kan dessa ändringar leda till behörighetsproblem. Om du till exempel kör WordPress måste du skapa en PHP-pool som kommer att köras som användaren som äger filerna och lägga till webbserven i sftponly gruppen.

Konfigurera SSH

SFTP är ett delsystem av SSH och stöder alla SSH-autentiseringsmekanismer.

Öppna SSH-konfigurationsfilen /etc/ssh/sshd_config med din textredigerare:

sudo nano /etc/ssh/sshd_config

Sök efter raden som börjar med Subsystem sftp , vanligtvis i slutet av filen. Om linjen börjar med en hash # ta bort hash # och ändra den så att den ser ut enligt följande:

/ Etc / ssh / sshd_config

Subsystem sftp internal-sftp

Mot slutet av filen, följande block av inställningar:

/ Etc / ssh / sshd_config

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

ChrootDirectory direktivet anger sökvägen till chroot-katalogen. %h betyder användarkatalogen. Den här katalogen måste ägs av rotanvändaren och inte skrivas av någon annan användare eller grupp.

Var extra försiktig när du ändrar SSH-konfigurationsfilen. Felaktig konfiguration kan göra att SSH-tjänsten misslyckas med att starta.

När du är klar spara filen och starta om SSH-tjänsten för att tillämpa ändringarna:

sudo systemctl restart ssh

I CentOS och Fedora heter ssh-tjänsten sshd :

sudo systemctl restart sshd

Testa konfigurationen

Nu när du har konfigurerat SFTP-chroot kan du försöka logga in på fjärrmaskinen via SFTP med användarens referenser. I de flesta fall kommer du att använda en stationär SFTP-klient som FileZilla, men i det här exemplet kommer vi att använda sftp-kommandot.

Öppna en SFTP-anslutning med sftp-kommandot följt av fjärrserverns användarnamn och serverns IP-adress eller domännamn:

sftp [email protected]

Du blir ombedd att ange användarlösenordet. När den är ansluten visar fjärrservern ett bekräftelsemeddelande och sftp> :

[email protected]'s password: sftp>

Kör pwd kommandot, som visas nedan, och om allt fungerar som förväntat ska kommandot returnera / .

sftp> pwd Remote working directory: /

Du kan också lista fjärrfiler och kataloger med ls kommandot och du bör se de kataloger som vi tidigare har skapat:

sftp> ls public_html uploads

Slutsats

I den här handledning har du lärt dig hur du installerar en SFTP Chroot Jail-miljö på din Linux-server och begränsar användarnas åtkomst till deras hemkatalog.

Som standard lyssnar SSH på port 22. Ändra standard SSH-port lägger till ett extra lager av säkerhet till din server genom att minska risken för automatiska attacker. Du kanske också vill ställa in en SSH-nyckelbaserad autentisering och ansluta till servern utan att ange ett lösenord.

ssh sftp säkerhet