Android

Jak nastavit sftp chroot vězení

Synology FTP Setup

Synology FTP Setup

Obsah:

Anonim

V tomto návodu vysvětlíme, jak nastavit prostředí SFTP Chroot Jail, které omezí uživatele na jejich domovské adresáře. Uživatelé budou mít pouze přístup SFTP, přístup SSH bude deaktivován. Tyto pokyny by měly fungovat pro jakoukoli moderní distribuci Linuxu, včetně Ubuntu, CentOS, Debian a Fedora.

Vytvoření skupiny SFTP

Namísto konfigurace serveru OpenSSH pro každého uživatele jednotlivě vytvoříme novou skupinu a do této skupiny přidáme všechny naše chrootované uživatele.

Spusťte následující příkaz groupadd a vytvořte sftponly skupinu uživatelů:

sudo groupadd sftponly Skupinu můžete pojmenovat, jak chcete.

Přidání uživatelů do skupiny SFTP

Dalším krokem je přidání uživatelů, které chcete omezit, do skupiny sftponly .

Pokud se jedná o nové nastavení a uživatel neexistuje, můžete si vytvořit nový uživatelský účet zadáním:

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

  • Volba -g sftponly přidá uživatele do skupiny sftponly.The volba -s /bin/false nastaví přihlašovací shell uživatele. Nastavením přihlašovacího shellu na /bin/false se uživatel nebude moci přihlásit k serveru přes SSH. Možnosti -m -d /home/username řeknou -m -d /home/username aby vytvořil domovský adresář uživatele.

Nastavte silné heslo pro nově vytvořeného uživatele:

sudo passwd username

Jinak, pokud uživatel, který chcete omezit, již existuje, přidejte uživatele do skupiny sftponly a změňte jeho shell:

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

Domovský adresář uživatele musí být ve vlastnictví root a musí mít oprávnění 755 :

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

Protože domovské adresáře uživatelů patří uživateli root, tito uživatelé nebudou moci vytvářet soubory a adresáře ve svých domovských adresářích. Pokud v domovském adresáři nejsou žádné adresáře, budete si muset vytvořit nové adresáře, ke kterým bude mít uživatel plný přístup. Můžete například vytvořit následující adresáře:

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

Pokud webová aplikace používá jako kořen dokumentu adresář public_html uživatele, mohou tyto změny vést k problémům s oprávněními. Například, pokud používáte WordPress, budete muset vytvořit fond PHP, který bude spuštěn jako uživatel, který vlastní soubory, a přidat sftponly erver do skupiny sftponly .

Konfigurace SSH

SFTP je subsystém SSH a podporuje všechny mechanismy autentizace SSH.

Otevřete konfigurační soubor SSH /etc/ssh/sshd_config pomocí textového editoru:

sudo nano /etc/ssh/sshd_config

Vyhledejte řádek začínající Subsystem sftp , obvykle na konci souboru. Pokud řádek začíná znakem hash # odeberte hash # a upravte jej tak, aby vypadal následovně:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

Ke konci souboru následující blok nastavení:

/ etc / ssh / sshd_config

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

Směrnice ChrootDirectory určuje cestu k adresáři chroot. %h znamená domovský adresář uživatele. Tento adresář musí být ve vlastnictví kořenového uživatele a nesmí být zapisovatelný jiným uživatelem nebo skupinou.

Při úpravě konfiguračního souboru SSH buďte obzvláště opatrní. Nesprávná konfigurace může způsobit selhání spuštění služby SSH.

Po dokončení uložte soubor a restartujte službu SSH, abyste provedli změny:

sudo systemctl restart ssh

V CentOS a Fedora je služba ssh pojmenována sshd :

sudo systemctl restart sshd

Testování konfigurace

Nyní, když jste nakonfigurovali SFTP chroot, můžete se pokusit o přihlášení ke vzdálenému počítači pomocí SFTP pomocí pověření chrootovaného uživatele. Ve většině případů budete používat stolního SFTP klienta, jako je FileZilla, ale v tomto příkladu použijeme příkaz sftp.

Otevřete připojení SFTP pomocí příkazu sftp následovaného uživatelským jménem vzdáleného serveru a IP adresou nebo názvem domény serveru:

sftp [email protected]

Budete vyzváni k zadání uživatelského hesla. Po připojení zobrazí vzdálený server potvrzovací zprávu a výzvu sftp> :

[email protected]'s password: sftp>

Spusťte příkaz pwd , jak je znázorněno níže, a pokud vše funguje podle očekávání, měl by se příkaz vrátit / .

sftp> pwd Remote working directory: /

Vzdálené soubory a adresáře můžete také zobrazit pomocí příkazu ls a měli byste vidět adresáře, které jsme dříve vytvořili:

sftp> ls public_html uploads

Závěr

V tomto tutoriálu jste se naučili, jak nastavit prostředí SFTP Chroot Jail na vašem Linuxovém serveru a omezit přístup uživatelů do jejich domovského adresáře.

Ve výchozím nastavení poslouchá SSH na portu 22. Změna výchozího portu SSH přidává na server další vrstvu zabezpečení snížením rizika automatických útoků. Můžete také nastavit autentizaci pomocí klíče SSH a připojit se k serveru bez zadání hesla.

ssh sftp security