GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit uživatele SFTP pro kořen dokumentu webového serveru

SFTP (SSH/Secure File Transfer Protocol) je standard síťového přenosu používaný k přenosu, přístupu a správě souborů přes vzdálenou síť. Obsahuje SSH (Secure Shell), díky čemuž je mnohem bezpečnější než protokol FTP.

Soubory jsou přenášeny prostřednictvím jediného řídicího kanálu v SFTP. Vyžaduje ověření a běží na portu 22. V SFTP poskytuje SSH shell šifrování, které pomáhá chránit uživatelská jména, hesla a další osobní data přenášená prostřednictvím SFTP.

V tomto návodu se naučíme vytvářet uživatele SFTP pro kořen dokumentu webového serveru.

Krok 1 – Instalace SSH (Secure Shell)

SFTP je velmi bezpečný protokol pro přenos souborů díky šifrování, které SSH poskytuje pro data přenášená po síti. SSH se standardně instaluje hlavně na linuxové distribuce, ale pokud není ve vašem systému předinstalovaný, můžete jej nainstalovat pomocí níže uvedeného příkazu:

sudo apt install ssh 

Pokud je již nainstalován, příkaz upgraduje balíčky OpenSSH.

Krok 2 – Konfigurace SSH pro použití kódu serveru SFTP

Nyní otevřete konfigurační soubor SSH v textovém editoru a upravte jej pro kód serveru SFTP. Zde použijeme nano editor k úpravě konfiguračního souboru.

sudo nano /etc/ssh/sshd_config 

Najděte řádek začínající „Subsystem sftp“.

Řádek okomentujte přidáním # na začátek řádku a za tímto řádkem napište následující řádek, jak je znázorněno na obrázku níže:

Subsystem sftp internal-sftp

SSHD použije kód serveru SFTP namísto spuštění serveru SFTP změnou výše uvedeného řádku.

Jakmile konfigurační soubor změníte, uložte soubor a ukončete jej pomocí klávesových zkratek CTRL+S a CTRL+X.

Po změnách musíme restartovat démona SSHD, aby změny fungovaly.

sudo systemctl restart sshd 

Krok 3 – Vytvoření uživatele (uživatele SFTP)

Je vynikající praxí vytvořit nového uživatele, který má pouze přístup SFTP ke kořenovému adresáři dokumentu. Nedoporučuje se přidávat uživatele s právy Sudo do kořenového adresáře dokumentu webového serveru. Vytvořte nového uživatele pomocí příkazu adduser:

sudo adduser sftpuser 

Terminál se zeptá na několik věcí, jako je nastavení hesla a informace o uživateli. Také se zeptá na několik dalších podrobností, takže je buď ponechte prázdné, nebo uveďte správné informace.

Nový uživatel se jménem sftpuser je úspěšně vytvořen.

Krok 4 – Vytvoření odpovídající uživatelské směrnice v konfiguračním souboru SSH

Nyní tohoto uživatele omezíme na kořen dokumentu a také mu zakážeme přístup k SSH, aby se uživatel přihlásil přes SFTP.

Chcete-li omezit přístup uživatele, otevřete konfigurační soubor SSH v libovolném textovém editoru:

sudo nano /etc/ssh/sshd_config 

Nyní přejděte na konec souboru a do konfiguračního souboru „sshd_config“ přidejte následující obsah:

Match User sftpuser
        ForceCommand internal-sftp 
        ChrootDirectory /var/www/
        PasswordAuthentication yes
        X11Forwarding no 
        AllowTcpForwarding no 

Ujistěte se, že jste nahradili uživatelské jméno „sftpuser“ uživatelským jménem, ​​které jste nastavili.

Po přidání výše uvedeného obsahu do konfiguračního souboru SSH jej uložte a ukončete pomocí klávesových zkratek CTRL+S a CTRL+X.

Chcete-li zkontrolovat syntaxi a ověřit, zda vše proběhlo v pořádku, můžete provést příkaz:

sudo sshd -t 

Pokud nenastala žádná chyba, mohli bychom znovu načíst službu SSH, aby změny fungovaly.

sudo systemctl restart sshd 

Krok 5 – Přidání uživatele SFTP do skupiny www-data

Nyní přidáme uživatele do skupiny www-data provedením následujícího příkazu:

sudo usermod -a -G www-data sftpuser 

Při úspěšném spuštění se nezobrazí žádný výstup.

Krok 6 – Nastavení oprávnění kořenového adresáře dokumentu

Postupujte prosím velmi pečlivě podle následujících pokynů, protože SFTP je velmi přísné, pokud jde o oprávnění k chroot adresáři.

  1. Začneme kontrolou aktuálních oprávnění a vlastnictví var:
    sudo ls -ld /var/ 
    
  2. Oprávnění by měla být 755 a vlastník by měl být ve výchozím nastavení root. Pokud ne, proveďte níže uvedený příkaz a nastavte správná oprávnění:
    sudo chmod 755 /var/ 
    
  3. Nyní použijte tento příkaz k nastavení správného vlastnictví:
    sudo chown root:root /var/ 
    
  4. Podobně použijte stejná oprávnění pro chroot:

    sudo chmod 755 /var/www/ 
    
  5. Protože jsme nastavili „/var/www/“ do adresáře chroot. Nyní nastavte správné vlastnictví adresáře chroot:
    sudo chown root:root /var/www/ 
    
  6. Chcete-li skupině povolit zápis do kořenového adresáře dokumentu, nastavte její oprávnění na 755:
    sudo chmod 755 /var/www/html/ 
    
  7. Chcete-li udělit vlastnictví kořenového adresáře dokumentu „/var/www/html“ a jeho dalších adresářů a souborů skupině www-data, použijte níže uvedený příkaz:
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. Nyní udělte oprávnění 755 k obsahu umístěnému v kořenovém adresáři dokumentu „/var/www/html“ pomocí příkazu:
    sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
    
  9. Výše uvedený příkaz udělí uživateli SFTP oprávnění ke čtení, zápisu a spustitelnosti adresářů.

    Musíme také udělit oprávnění 664 všem souborům, které jsou přítomné v kořenovém adresáři dokumentu, abychom vlastníkovi a skupině uživatelů SFTP umožnili číst a zapisovat soubory:

    sudo find /var/www/html/ -type f -exec chmod 664 {} \; 
    
  10. Nyní v posledním kroku se ujistěte, že všechny nové soubory a adresáře získají skupinu www-data, kterou vytvořil nově vytvořený uživatel SFTP:
    sudo find /var/www/html -type d -exec chmod g+s {} \; 
    

Gratulujeme! váš nový uživatel SFTP byl vytvořen a přidán do kořenového adresáře dokumentů webového serveru. Nyní se můžete přihlásit k SFTP.

Závěr

V tomto návodu jsme se naučili, jak nainstalovat a nakonfigurovat SSH pro použití kódu serveru SFTP. Poté jsme vytvořili nového uživatele, omezili ho na root dokumentů a zakázali jeho přístup SSH. Poté jsme uživatele přidali do kořenového adresáře dokumentů webového serveru, abychom mu umožnili číst, zapisovat a spouštět soubory v kořenovém adresáři dokumentu.


Linux
  1. Jak zakázat přihlášení uživatele root přes SSH

  2. Centos – Jak vytvořit Sftp uživatele v Centos?

  3. Jak vytvořit nového uživatele s přístupem Ssh?

  1. CentOS / RHEL :Jak zakázat ssh pro uživatele bez oprávnění root (povolení ssh pouze pro uživatele root)

  2. Jak automaticky vytvářet uživatelské účty (SSH + LDAP)

  3. Jak vytvořit extra uživatele root?

  1. Jak nastavit SFTP server na CentOS

  2. Jak nastavit oprávnění Sudo pro uživatele v Linuxu

  3. Jak zakázat vzdálené přihlášení pro uživatele root na počítači se systémem Linux