GNU/Linux >> Znalost Linux >  >> Linux

Průvodce nastavením SFTP serveru v Linuxu

Co je SFTP?

SFTP je zkratka pro SSH File Transfer Protocol. Odhadli jste to správně. Je to verze FTP, která používá SSH nahoře. Umožňuje uživatelům nahrávat a stahovat soubory na a ze serveru Linux prostřednictvím šifrovaného připojení. FTP dělá totéž bez šifrování, a to je důvod, proč je v dnešní době preferováno SFTP před FTP.

Podívejme se, jak můžete nastavit server SFTP v systému Linux.

Nastavení serveru SFTP v systému Linux

V tomto tutoriálu jsem použil Ubuntu. Instalační příkazy jsou specifické pro Ubuntu a Debian, ale zbytek kroků lze provést v jakékoli jiné distribuci Linuxu.

K provedení těchto kroků musíte mít práva sudoer. Pokud tedy nemáte práva sudo, obraťte se na správce systému. Pokud jste ten pravý, přečtěte si prosím o vytvoření uživatele sudo v Ubuntu.

Nastavení SFTP je velmi snadné. Než do toho půjdete, musíte mít OpenSSH nainstalované na straně serveru a balíček SSH na straně klienta.

Nastavení SSH na Ubuntu jsem podrobně rozebral v samostatném článku, zde jen zmíním důležité kroky.

Chcete-li nainstalovat OpenSSH na server, můžete použít následující příkaz:

sudo apt install openssh-server

Potřebujete také SSH v systému, odkud budete přistupovat na SFTP server.

sudo apt install ssh

Po tomto budete mít vše připraveno k nastavení SFTP. Dělá se to ve třech krocích a já vám to ukážu jeden po druhém.

Krok 1:Vytvoření skupin, uživatelů, adresářů

Chcete-li použít SFTP (nebo obecně jakékoli jiné služby) bezpečně, je nejlepší vytvořit skupiny a uživatele, kteří budou používat tuto službu a pouze tuto službu. „Nejlepší je udělit jedno konkrétní právo jednomu konkrétnímu subjektu“ .

V případě, že chcete udělit SFTP přístup i normální systémový přístup, vytvořte uživatele tak, aby je bylo možné snadno identifikovat podle služby. Pokud například seeni se používá pro normální přístup k systému, pak seenisftp lze použít pro přístup SFTP. Použití této metody bude jednodušší na straně administrace.

Vytvořme skupinu s názvem „sftpg ” pomocí příkazu groupadd:

sudo groupadd sftpg

Vytvořme uživatele s názvem „seenisftp“ a přidejte ho do výše uvedené skupiny a dejte mu heslo.

sudo useradd -g sftpg seenisftp 
sudo passwd seenisftp

V příkazu useradd -g Tato volba říká skupině, do které má být uživatel přidán. Můžete vypsat všechny uživatele v Linuxu a ověřit, že byl přidán nový uživatel.

Předpokládejme, že chcete použít adresář /data/ jako kořenový adresář pro sftp a /data/USERNAME pro každého uživatele. Když se tedy uživatelé přihlásí přes sftp, měli by být v /data/USERNAME jako jejich výchozí adresář (Stejně jako vy v /home/USERNAME adresář, když se přihlásíte do systému Linux přes SSH). Předpokládejme také omezení, že mohou číst soubory z tohoto adresáře, ale nahrávat pouze do nahrávek adresář.

Pojďme vytvořit adresáře a změnit jejich přístup a vlastnictví následovně (přečtěte si o oprávněních k souborům v Linuxu, abyste se o tom dozvěděli více).

sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/upload

Jedna věc, která by mohla zmást, je předání vlastnictví adresáře uživatele samotnému rootovi. Toto je povinné pro chrooting v SFTP. Ujistěte se tedy, že vlastník /data/USERNAME je root .

Od této chvíle máme uživatele s názvem seenisftp se skupinou sftpg a s přístupovými oprávněními nastavenými pro /data/seenisftp .

Krok 2:Konfigurace sshd_config

Dále musíte nakonfigurovat ssh server tak, aby se kdykoli přihlásí uživatel patřící do skupiny sftpg, dostal se do sftp místo normálního shellu, který získáte přes ssh. Připojte následující fragment do /etc/ssh/sshd_config pokud již není přítomen.

Match Group sftpg
        ChrootDirectory /data/%u
        ForceCommand internal-sftp

Ve výše uvedeném úryvku ChrootDirectory umožňuje, aby byl zadaný adresář vytvořen jako kořenový uzel (adresář „/“ ) ve stromu adresářů. Přihlášený uživatel nad tímto adresářem nic nevidí. Zabrání tedy aktuálnímu uživateli v přístupu k souborům jiného uživatele prostřednictvím sftp . %u je únikový kód pro jeho vyplnění aktuálním uživatelským jménem v době přihlášení. Když seenisftp přihlášení přes sftp , bude v /data/seenisftp jako jeho kořenový adresář. Nad tím nic neuvidí.

Krok 3:Restartujte službu

Abychom provedli změny, provedli jsme sshd_config live, restartujte službu následovně.

sudo systemctl restart sshd

Přístup k SFTP prostřednictvím příkazového řádku systému Linux

K SFTP se můžete přihlásit jako normálně u SSH.

sftp [email protected]

Ukázkové příkazy SFTP

Příkazy SFTP mají obvykle následující formát.

COMMAND [SOURCE] [DESTINATION]

Pro jakýkoli příkaz mohou být argumenty buď místní systémové cesty, nebo vzdálené systémové cesty. Není mezi nimi žádný konkrétní viditelný rozdíl. Cestu můžete zadat jako normální po zvážení, zda je argument lokální nebo vzdálený.

ZÍSKAT – stáhnout obsah ze vzdáleného serveru do místního systému. Níže uvedený příkaz stáhne vzdálený soubor poster.img do ~/Pictures místního systému adresář.

GET poster.img ~/Pictures

PUT – Nahrajte obsah z místního systému do vzdáleného systému. Níže uvedený příkaz nahraje ~/Pictures/poster2.jpg do mých nahraných videí adresář.

PUT ~/Pictures/poster2.jpg uploads/

RM – Chcete-li odstranit soubory ve vzdáleném systému. To je velmi podobné rm příkaz. Můžete vidět, že níže uvedený příkaz, který odstraní obrázek, na uploads/poster3.jpg

RM uploads/poster3.jpg

Výše uvedené příkazy jsou velmi základní a dostačující k prozkoumání FTP/SFTP serveru. Pokud se chcete dozvědět více, použijte help příkaz nebo použijte tento prostředek.

Doufám, že vám tento článek pomohl při nastavení SFTP serveru na Linuxu.

Sdělte nám v komentářích, jaké je nastavení vašeho systému souborů SFTP. Je to tak, jak je uvedeno v tomto článku, nebo sdílený adresář nebo něco jiného?

Pokud vám tento článek přišel užitečný, sdílejte jej se svými přáteli. Máte-li návrhy, neváhejte je uvést níže.


Linux
  1. 7 kroků k zabezpečení serveru Linux

  2. Co je Linux? Průvodce pro netechnické uživatele

  3. Jak nainstalovat webový server Nginx na Linux

  1. Průvodce linuxovým terminálem pro začátečníky

  2. Instalace a nastavení Grafana v linuxu

  3. Zablokujte IP adresu na serveru Linux

  1. Jak nastavit SFTP server na Rocky Linux/CentOS 8 Server

  2. Nastavení webového serveru Ubuntu?

  3. Jak nainstalovat Borgmatic pro snadné zálohování serveru Linux