GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a používat SFTP na serverech Linux

SFTP nebo SSH File Transfer Protocol je metoda pro bezpečný přenos dat mezi dvěma a více počítači. Je to FTP, které běží nad protokolem SSH a využívá jeho zabezpečení a plně podporuje jeho ověřování.

V dnešní době se doporučuje používat SFTP místo starého starého FTP nebo FTP/S protokolu. SFTP je ve výchozím nastavení zabezpečený, protože tak funguje SSH. Z hlediska zabezpečení vás SFTP také chrání před odcizením hesel a útokem typu man-in-the-middle (MiTM).

Stejně jako SSH i SFTP chrání integritu vašich dat pomocí funkce šifrování a kryptografické hašovací funkce. Podporuje také několik bezpečných metod ověřování, včetně ověřování pomocí hesla a klíče. Také snižuje otevřený port serveru do vnější sítě, protože běží na stejném portu jako protokol SSH.

Předpoklady

V této příručce se dozvíte, jak nastavit SFTP Server v systému Linux. Také se naučíte základní příkazy klienta sftp.

Níže je aktuální prostředí pro implementaci:

  • Linuxový server – můžete použít Debian, Ubuntu, CentOS, Fedora, Rocky nebo jakoukoli jinou distribuci Linuxu.
  • Ujistěte se, že jsou balíčky OpenSSH dostupné ve vašem systému Linux.
  • Klient SFTP – příkazový řádek sftp nebo libovolný klient s grafickým uživatelským rozhraním, jak chcete.

Ověřit balíčky OpenSSH

Chcete-li nastavit server SFTP, musíte mít na svém systému Linux nainstalované balíčky OpenSSH. Téměř všechny servery Linux Distribution mají ve výchozím nastavení nainstalované balíčky OpenSSH. V případě, že balíček OpenSSH ve svém systému nemáte, můžete si jej nainstalovat z oficiálního úložiště.

1. Abyste se ujistili, že jsou balíčky OpenSSH nainstalovány na vašem systému Linux, použijte následující příkaz.

Pro servery Debian nebo Ubuntu můžete použít níže uvedený příkaz dpkg.

dpkg -l | grep ssh

Níže je výstup z našeho systému Debian.

II libssh2-1:AMD64 1.9.0-2 AMD64 SSH2 KLIENTA KLIENTA KLIENTA
II OpenSSH-CLENE 1:8.4P1-5 AMD64 Secure Shell (SSH), pro bezpečný přístup k vzdáleným strojům
II OpenSSHS-SERVER 1:8.4P1-5 AMD64 Secure Shell (SSH) pro bezpečný přístup ze vzdálených strojů
II OpenSSH-SFTP-SERVER 1:8.4P1-5 AMD64 Secure Shell (SSH) SFTP Server modul pro SFTP přístup ze vzdálených počítačů

První sloupec 'ii ' znamená, že balíček je nainstalován. Balíček 'openssh-sftp-server ' je nainstalován v systému Debian/Ubuntu.

Pro uživatele RHEL/CentOS/Fedora/Rocky Linux/AlmaLinux můžete použít příkaz rpm, jak je uvedeno níže.

rpm -qa | grep ssh

Vytvořit skupinu a uživatele

V tomto kroku vytvoříte novou skupinu a uživatele pro SFTP server. Uživatelé v této skupině budou mít povolen přístup k serveru SFTP. A z bezpečnostních důvodů nemají uživatelé SFTP přístup ke službě SSH. Uživatelé SFTP přistupují pouze k serveru SFTP.

1. Provedením následujícího příkazu vytvořte novou skupinu 'sftpgroup '.

sudo groupadd sftpgroup

2. Vytvořte nového uživatele 'sftpuser ' pomocí následujícího příkazu.

sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

Podrobné možnosti:

  • -G :automaticky přidá uživatele do 'sftpgroup '.
  • -d :zadejte domovský adresář nového uživatele.
  • -s :nastavte výchozí hodnotu pro nového uživatele na '/sbin/nologin ', což znamená, že uživatel nemůže přístup k serveru SSH.

3. Dále vytvořte heslo pro uživatele 'sftpuser ' pomocí příkazu níže.

passwd sftpuser

Zadejte silné heslo a opakujte jej, poté stiskněte 'Enter ' pro potvrzení.

Chcete-li přidat další uživatele, opakujte kroky číslo2 a 3 a co je nejdůležitější, všichni uživatelé SFTP musí být ve skupině 'sftpgroup ' bez přístupu k shellu přes SSH.

Nastavení adresáře Chroot Jail

Po vytvoření nové skupiny a uživatele musíte vytvořit a nakonfigurovat chroot adresář pro uživatele SFTP.

1. Pro uživatele 'sftpuser' bude nový domovský adresář '/srv/sftpuser' . Vytvořte jej provedením příkazu níže.

mkdir -p /srv/sftpuser

2. Chcete-li nastavit chroot pro uživatele 'sftpuser ', musíte změnit vlastnictví adresáře na uživatele root, ale zůstat skupinou, která bude číst a spouštět bez přístupu pro zápis.

Změňte vlastnictví adresáře na uživatele 'root' pomocí následujícího příkazu.

sudo chown root /srv/sftpuser

Dejte skupině oprávnění ke čtení a spouštění, ale ne k zápisu.

sudo chmod g+rx /srv/sftpuser

3. Dále vytvořte nový adresář 'data' uvnitř '/srv/sftpuser ' a změňte vlastnictví těchto 'dat ' do adresáře uživatele 'sftpuser '.

mkdir -p /srv/sftpuser/data
chown sftpuser:sftpuser /srv/sftpuser/data

Níže jsou uvedeny podrobnosti o konfiguraci uživatelského adresáře SFTP.

  • Adresář '/srv/sftuser' je výchozí domovský adresář.
  • Uživatel 'sftpuser ' nelze zapište do adresáře '/srv/sftpuser ', ale může číst v tomto adresáři.
  • Uživatel 'sftpuser ' může nahrávat soubory na SFTP server do adresáře '/srv/sftpuser/data '.

Povolení SFTP na serveru SSH

Chcete-li povolit server SFTP na OpenSSH, musíte upravit konfiguraci SSH '/etc/ssh/sshd_config'.

1. Upravte konfiguraci ssh '/etc/ssh/sshd_config pomocí nano nebo vim.

sudo nano /etc/ssh/sshd_config

2. Komentář následující konfiguraci zakážete samostatný 'sftp-server ' funkce.

#Subsystem      sftp    /usr/lib/openssh/sftp-server

3. Vložte následující konfiguraci na konec řádku.

Podsystém sftp internal-sftp

Match Group sftpgroup
     ChrootDirectory %h
     X11Forwarding no
     PovolitTCPForwarding no
     ForceCommand internal-sftp

Uložte konfiguraci a ukončete.

Podrobná konfigurace:

  • Místo použití podprocesu 'sftp-server ', používáme 'internal-sftp '.
  • Server SFTP je povolen pro skupinu 'sftpgroup '.

4. Chcete-li použít novou konfiguraci, restartujte službu ssh pomocí příkazu níže.

sudo systemctl restart sshd

SFTP server je připraven a přístupný a běží na stejném portu jako služba SSH.

Přístup k serveru SFTP

Na straně klienta použijeme příkazový řádek sftp, který je standardně nainstalován na většině distribucí Linuxu. Můžete však také používat jiného klienta příkazového řádku nebo FTP klienta GUI, jako je FileZilla , Cyberduck , atd.

1. Chcete-li se připojit k serveru SFTP, spusťte příkaz sftp, jak je uvedeno níže.

sftp [e-mail chráněný]

Pokud váš server SFTP a/nebo SSH běží na vlastním portu, můžete použít příkaz sftp, jak je uvedeno níže.

PORT sftp -P [chráněno e-mailem]

Zadejte heslo pro 'sftpuser '.

2. Jakmile se připojíte k serveru SFTP, proveďte následující příkaz.

Zobrazit aktuální cestu k pracovnímu adresáři a vypsat všechny dostupné soubory a adresáře.

pwd
ls

3. Nahrajte místní soubor na server SFTP v adresáři '/ ', což bude mít za následek 'oprávnění odepřeno ', protože je to chroot adresář.

dej /cesta/k/souboru/on/local /

4. Nahrajte místní soubor do adresáře '/data/ “ na serveru SFTP. Pokud je vaše konfigurace správná, váš soubor bude nahrán do '/data/ ' adresář.

put /path/to/file1/on/local1 /data/
put /path/to/file2/on/local /data/

5. Nyní zkontrolujte dostupné soubory na '/data ' pomocí následujícího příkazu.

ls /data/

A uvidíte, že váš soubor je nahrán na server SFTP.

Závěr

Gratulujeme! Úspěšně jste nakonfigurovali SFTP server v systému Linux. Tento typ konfigurace lze použít na většině systémů Linux s nainstalovaným OpenSSH. Také jste se naučili, jak nastavit chroot adresář pro uživatele SFTP a naučili jste se základní příkaz klienta sftp.


Ubuntu
  1. Jak nainstalovat a používat Flatpak v Linuxu

  2. Jak nainstalovat a nastavit sftp server v Ubuntu 20.04

  3. Jak nainstalovat a používat Traceroute v Linuxu

  1. Jak nainstalovat a používat obrazovku Linux s příkazy

  2. Jak nainstalovat a používat Hubot na Ubuntu Linux

  3. Jak nainstalovat a používat Linux Screen?

  1. Jak nainstalovat a používat PuTTY na Linuxu

  2. Jak nainstalovat a používat Steam na Ubuntu 20.04 LTS

  3. Jak nainstalovat a používat Vim Editor v Linuxu