FTP a SFTP jsou skvělé protokoly pro stahování souborů ze vzdáleného nebo místního serveru nebo nahrávání souborů na server. V některých situacích postačí FTP, ale pro připojení přes internet se doporučuje SFTP. Jinými slovy, FTP není bezpečné používat přes internetové připojení, protože vaše přihlašovací údaje a data jsou přenášena bez šifrování. „S“ v SFTP znamená „Secure“ a tuneluje protokol FTP prostřednictvím SSH, čímž poskytuje šifrování potřebné k navázání zabezpečeného připojení.
V této příručce projdeme pokyny krok za krokem k nastavení serveru FTP prostřednictvím softwaru VSFTP nebo serveru SFTP prostřednictvím OpenSSH na AlmaLinux. Poté uvidíme, jak se připojit k serveru z klientského systému AlmaLinux. Nastavení FTP/SFTP je běžným krokem po instalaci AlmaLinuxu nebo migraci z CentOS na AlmaLinux.
V tomto tutoriálu se naučíte:
- Jak nastavit FTP server prostřednictvím VSFTPD
- Jak nastavit server SFTP prostřednictvím OpenSSH
- Jak nastavit uživatelské účty FTP a SFTP
- Jak povolit FTP a SFTP prostřednictvím brány firewall
- Jak se připojit k serveru FTP/SFTP pomocí příkazového řádku
- Jak se připojit k serveru FTP/SFTP prostřednictvím GUI GNOME
Kategorie | Požadavky, konvence nebo použitá verze softwaru |
---|---|
Systém | AlmaLinux |
Software | VSFTPD, OpenSSH |
Jiné | Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz. |
Konvence | # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel |
Nastavení serveru FTP prostřednictvím VSFTPD
Existují různé softwarové balíčky, které lze použít k nastavení FTP serveru, ale jedním z nejlepších je VSFTPD. Tato část vám ukáže, jak nainstalovat a nakonfigurovat VSFTPD pro nastavení FTP serveru na AlmaLinuxu. Pokud je FTP pro váš scénář dostatečně bezpečné a upřednostňujete nastavení SFTP, přejděte dolů na příslušnou sekci níže.
Instalace VSFTPD
Nainstalujte VSFTPD do svého systému zadáním tohoto příkazu do terminálu:
$ sudo dnf install vsftpd
Konfigurace serveru FSFTPD
- Vždy je nejlepším postupem ponechat si záložní kopii původního konfiguračního souboru pro případ, že by se později něco pokazilo. Pojďme přejmenovat výchozí konfigurační soubor:
$ sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
- Vytvořte nový konfigurační soubor VSFTPD pomocí nano nebo libovolného textového editoru, který preferujete:
$ sudo nano /etc/vsftpd/vsftpd.conf
- Zkopírujte do svého souboru následující základní konfiguraci. Tato konfigurace bude stačit pro základní FTP server a později ji lze upravit pro specifické potřeby vašeho prostředí, jakmile ověříte, že funguje správně:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES
Vložte výše uvedené řádky do nově vytvořeného
/etc/vsftpd/vsftpd.conf
soubor a poté uložte změny a zavřete soubor. - Výchozí firewall (firewalld) AlmaLinuxu bude ve výchozím nastavení blokovat FTP provoz, ale následující příkaz vytvoří výjimku pro povolení provozu:
$ sudo firewall-cmd --zone=public --add-service=ftp --permanent $ sudo firewall-cmd --reload
- S uloženým konfiguračním souborem a aktualizovanými pravidly brány firewall restartujte VSFTPD, aby se nové změny uplatnily:
$ sudo systemctl restart vsftpd
Vytvořit uživatele FTP
Náš FTP server je připraven přijímat příchozí připojení, takže nyní je čas vytvořit nový uživatelský účet, který použijeme pro připojení ke službě FTP.
- Tento první příkaz použijte k vytvoření nového účtu s názvem
ftpuser
a druhý příkaz pro nastavení hesla pro účet:$ sudo useradd -m ftpuser $ sudo passwd ftpuser New password: Retype new password: passwd: password updated successfully
- Abyste si ověřili, že vše funguje správně, měli byste uložit alespoň jeden soubor do
ftpuser
domovský adresář. Tento soubor by měl být viditelný, když se v dalších krocích přihlásíme k FTP.$ sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"
Připojte se k serveru FTP pomocí příkazového řádku
Nainstalujte nástroj příkazového řádku FTP pomocí následujícího příkazu:
$ sudo dnf install ftp
Nyní byste měli být schopni se připojit k vašemu FTP serveru buď pomocí IP adresy nebo názvu hostitele. Chcete-li se připojit z příkazového řádku a ověřit, že vše funguje, otevřete terminál a použijte ftp
AlmaLinuxu příkaz pro připojení k vaší adrese zpětné smyčky (127.0.0.1).
$ ftp 127.0.0.1 Connected to 127.0.0.1 (127.0.0.1). 220 (vsFTPd 3.0.3) Name (127.0.0.1:root): ftpuser 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (127,0,0,1,71,72). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 12 Apr 03 01:11 FTP-TEST 226 Directory send OK. ftp>
Váš výstup by měl vypadat jako výše uvedený text, což znamená úspěšné přihlášení a ls
příkaz, který odhalí náš testovací soubor, který jsme vytvořili dříve.
Připojte se k FTP serveru přes GUI GNOME
Pokud chcete, můžete se také připojit k vašemu FTP serveru pomocí GUI. Existuje mnoho možností pro FTP klienty, ale výchozí GUI GNOME na AlmaLinuxu již přichází s možností připojení k FTP serverům ze správce souborů. Zde je návod, jak jej použít pro připojení k vašemu FTP serveru.
- Otevřete správce souborů z nabídky Aktivity.
- Klikněte na „Další umístění“ a zadejte
ftp://127.0.0.1
v poli „Připojit k serveru“ ve spodní části okna a klikněte na připojit.
Připojte se k FTP serveru pomocí správce souborů GNOME - Zadejte přihlašovací údaje účtu FTP, které jsme nastavili dříve, a klikněte na připojit. Zadejte uživatelské jméno a heslo FTP
- Po úspěšném připojení uvidíte testovací soubor, který jste vytvořili dříve. Úspěšné připojení k serveru FTP
Nastavení serveru SFTP prostřednictvím OpenSSH
Pokud již máte na AlmaLinuxu nainstalované a povolené OpenSSH, nepotřebujete ke spuštění serveru SFTP žádný další software. Postupujte podle pokynů níže a proveďte správné úpravy konfigurace, které změní váš systém na server SFTP.
Nainstalujte a nakonfigurujte OpenSSH
- Pokud ještě není nainstalován, použijte k instalaci OpenSSH následující příkaz.
$ sudo dnf install openssh-server openssh-clients
- Jakmile je SSH nainstalováno, musíme provést nějaké změny v konfiguračním souboru SSHD. K otevření použijte nano nebo svůj oblíbený textový editor:
$ sudo nano /etc/ssh/sshd_config
- Posuňte se na konec souboru a přidejte následujících 5 řádků na úplný konec:
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
Výše uvedené řádky umožní uživatelům v
sftp
group pro přístup ke svým domovským adresářům přes SFTP, ale odepře jim normální přístup SSH, takže nikdy nemají přístup k shellu. Po vložení těchto řádků uložte a zavřete konfigurační soubor. - Restartujte službu SSH, aby se tyto nové změny projevily:
$ sudo systemctl restart sshd
- Výchozí firewall (firewalld) AlmaLinuxu bude ve výchozím nastavení blokovat provoz SFTP/SSH, ale následující příkaz vytvoří výjimku, která provoz povolí:
$ sudo firewall-cmd --zone=public --add-service=ssh --permanent $ sudo firewall-cmd --reload
Vytvořit uživatelský účet SFTP
Nyní musíme vytvořit uživatelské účty pro každého, komu chceme udělit přístup SFTP.
- Vytvořte novou uživatelskou skupinu s názvem
sftp
. Všichni naši uživatelé SFTP budou muset patřit do této skupiny.$ sudo groupadd sftp
- Dále vytvořte nového uživatele. Našemu budeme jednoduše říkat
sftpuser
v tomto příkladu. Nezapomeňte také přidat tohoto uživatele dosftp
group.$ sudo useradd -m sftpuser -g sftp
- Nastavte heslo pro nově vytvořený sftpuser:
$ sudo passwd sftpuser New password: Retype new password: passwd: password updated successfully
- A konečně, udělme úplný přístup uživateli v jeho vlastním domovském adresáři, ale odepřeme přístup k adresáři všem ostatním uživatelům v systému:
$ sudo chmod 700 /home/sftpuser/
Naše konfigurace SFTP je dokončena; nyní se můžeme přihlásit, abychom se ujistili, že vše funguje správně.
Připojte se k serveru SFTP pomocí příkazového řádku
Můžete se přihlásit přes SFTP pomocí názvu hostitele nebo IP adresy vašeho systému. Chcete-li otestovat ze stejného systému, na kterém jste právě nakonfigurovali SFTP, připojte se k adrese zpětné smyčky
127.0.0.1
bude fungovat dobře.
- Otevřete terminál a přihlaste se pomocí příkazu sftp:
$ sftp [email protected] The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established. ECDSA key fingerprint is SHA256:VI1OabYHoVZyVtKtDwX5HflcFpBW2txOpdBAqLtP1K8. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts. [email protected]'s password: Connected to [email protected]. sftp>
- Přejděte do domovského adresáře uživatele, protože to je jediné místo, kde má oprávnění. Zde zkuste vytvořit nový adresář, abyste se ujistili, že vše funguje, jak má:
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
Připojte se k serveru SFTP prostřednictvím GUI GNOME
Pokud chcete, můžete se také připojit k serveru SFTP pomocí GUI. Existuje mnoho možností pro klienty SFTP, ale výchozí GUI GNOME na AlmaLinuxu již přichází s možností připojení k serverům SFTP ze správce souborů. Zde je návod, jak jej použít k připojení k vašemu serveru SFTP.
- Otevřete správce souborů z nabídky Aktivity.
- Klikněte na „Další umístění“ a zadejte
sftp://127.0.0.1
v poli „Připojit k serveru“ ve spodní části okna a klikněte na připojit.
Připojte se k serveru SFTP pomocí správce souborů GNOME - Zadejte přihlašovací údaje účtu SFTP, který jsme nastavili dříve, a klikněte na připojit. Zadejte uživatelské jméno a heslo SFTP
- Po úspěšném připojení budete moci otevřít svůj domovský adresář, do kterého můžete nahrávat a stahovat soubory. Úspěšné připojení k serveru SFTP
Úvahy na závěr
V této příručce jsme se naučili, jak vytvořit server FTP nebo SFTP na AlmaLinuxu. Také jsme viděli, jak se připojit k FTP/SFTP serveru pomocí příkazového řádku nebo GUI GNOME. Tuto funkci jsme dokázali realizovat prostřednictvím VSFTPD a OpenSSH, které nám umožňují hostovat FTP nebo SFTP.