GNU/Linux >> Znalost Linux >  >> Linux

Nastavte uživatele SFTP v systémech založených na Linuxu

Tento článek ukazuje, jak vytvořit zabezpečené uživatele SSH File Transfer Protocol (SFTP), kteří jsou omezeni nebo uvězněni ve svých domovských adresářích.

UPOZORNĚNÍ :Nepokoušejte se uvěznit uživatele root. Uvězněte pouze další uživatele, abyste uživateli root nebránili ve správném provádění operací.

Než začnete, projděte si následující doporučené postupy:

  • Domovský adresář uživatele SFTP musí vlastnit root:root . Ostatní adresáře mohou (a měly by) vlastnit (a zapisovat) uživatelem.

  • Je důležité zajistit, aby uživatel chroot měl přístup k zápisu do zadaného DocumentRoot.

  • Je důležité se přihlásit a vyzkoušet, zda uživatel SFTP funguje správně.

  • Je důležité zajistit, aby byl přidaný uživatel SFTP přidán do skupiny SFTP.

  • Tyto pokyny jsou pro přidání jedné domény (uživatele SFTP), ale můžete je potenciálně použít ke správě více domén.

Důležité :Kroky v tomto článku nefungují s RHEL® 7 nebo CentOS® 7. Stejně jako u každé správné operace chroot tato konfigurace neposkytuje přístup pro zápis do adresáře chroot. Zapisovatelné jsou pouze podadresáře chroot jail. Důvodem je způsob, jakým jsou interpretována oprávnění root v adresářích vyšší úrovně, ve kterých je uživatel SFTP obsažen.

Pomocí následujících kroků vytvořte zabezpečené uživatele SFTP, kteří jsou uvězněni ve svých domovských adresářích:

  1. Přidejte skupinu SFTP, kterou chcete použít pro přístup SFTP, spuštěním následujícího příkazu:

    groupadd sftponly
    
  2. Přidejte uživatele SFTP spuštěním následujícího příkazu, nahraďte myuser s uživatelským jménem:

    useradd -d /var/www/vhosts/domain.com -s /bin/false -G sftponly myuser
    
  3. Vytvořte heslo pro uživatele spuštěním následujícího příkazu, nahraďte myuser s uživatelským jménem:

    passwd myuser
    
  4. Otevřete sshd_config soubor, který obsahuje konfiguraci SSH a SFTP, spuštěním následujícího příkazu:

    nano /etc/ssh/sshd_config
    
  5. Zakomentujte následující řádek přidáním symbolu hash (#) na začátek, jak ukazuje následující příklad:

    #Subsystem sftp /usr/lib/openssh/sftp-server
    
  6. Přidejte následující řádek přímo pod řádek, který jste právě okomentovali:

    Subsystem sftp internal-sftp
    
  7. Přidejte následující kód na konec souboru:

    Match Group sftponly
         ChrootDirectory %h
         X11Forwarding no
         AllowTCPForwarding no
         ForceCommand internal-sftp
    
  8. Spusťte sshd otestujte změny a poté službu restartujte.

    Důležité :Pokud tento krok provedete nesprávně, může dojít k narušení vaší konfigurace SSHD.

    sshd -t
    service sshd restart
    

Ujistěte se, že oprávnění k souborům v systému souborů jsou správná

Dále musíte ověřit, že oprávnění k souborům v systému souborů jsou správná, aby vězení SFTP fungovalo správně.

  1. Ověřte, že SFTPROOT adresář (domovský adresář, který jste nastavili při přidání uživatele SSH) má právo user:root group:root oprávnění spuštěním následujícího příkazu:

    chown root:root /var/www/vhosts/mywebsite.com/
    
  2. Chcete-li ověřit, že přihlášení SFTP funguje, připojte se k SFTP spuštěním následujícího příkazu, nahraďte myuser s uživatelem, kterého jste si vybrali, jak ukazuje následující příklad:

    sftp myuser@localhost
    myuser@localhost's password:
    Connected to localhost.
    
  3. Otestujte výpis adresáře spuštěním následujícího příkazu:

    sftp> ls -al
    

    Výstup by měl být podobný následujícímu příkladu:

    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 .
    drwxr-xr-x    3 0        0            4096 Sep 28 08:09 ..
    drwxr-xr-x    2 5001     33           4096 Sep 28 08:52 html
    -rw-r--r--    1 0        0               0 Sep 28 08:09 test.php
    

    Poznámka :Použijte cd příkaz pro přechod do adresáře HTML (který se nachází na adrese /var/www/vhosts/mywebsite.com/html protože web „documentroot“ je o jednu úroveň nižší než root uživatele SSH SFTP adresář. Toto nastavení byste měli použít, protože máte www-data uživatelé (uživatelé webového serveru) mají root user:group oprávnění k jeho souborům.

  4. Otestujte schopnost odesílat soubory spuštěním následujících příkazů:

    sftp> cd html
    sftp> put test.php
    Uploading test.php to /html/test.php
    test.php                                                                                                                                                                                                                                        
    100%    12K     20.0KB/s   00:00
    
  5. Otestujte možnost stahování souborů spuštěním následujícího příkazu:

    sftp> get test.php
    Fetching /test.php to test.php
    
  6. Zobrazte aktuální pracovní adresář spuštěním následujícího příkazu:

    sftp> pwd
    
    Remote working directory: /html
    

    SFTP vidí pouze soubory v /var/www/vhosts/mywebsite.com/ a považuje tento adresář za kořenový ('/') adresář nejvyšší úrovně.

  7. Pro připojení k SFTP a nastavení klienta SFTP použijte následující kroky:

    1. Nainstalujte Cyberduck®.
    2. Otevřete aplikaci Cyberduck.
    3. V horní části okna klikněte na ikonu Otevřít připojení .
    4. V rozbalovací nabídce vyberte možnost SFTP (SSH File Transfer Protocol) .
    5. Na Serveru zadejte adresu internetového protokolu (IP) serveru.
    6. Zadejte uživatelské jméno a heslo, které používáte k připojení k SFTP.
    7. Klikněte na Připojit .

Důležité :Po změně oprávnění souboru vždy otestujte svůj web.


Linux
  1. Uživatelé a skupiny

  2. Jak nastavit SFTP server na Debian 11 Server

  3. Jak na to:Správa uživatelů FreeBSD

  1. Přidejte nového uživatele WordPress

  2. Nastavte nebo změňte uživatelské heslo v systému Linux

  3. Jak nastavit umask pro systémového uživatele?

  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Správa uživatelů Linuxu a skupin Linuxu

  3. Seznam uživatelů v Linuxu – Nejlepší metoda