GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit FTP server na Ubuntu VPS:The Ultimate Guide

V tomto článku se dozvíte, jak nastavit FTP server na Ubuntu VPS. Budeme používat server vsftpd, který je obecně považován za nejrychlejší a nejbezpečnější FTP server pro systémy typu UNIX.

Co je FTP?

FTP neboli File Transfer Protocol je prostředek pro sdílení souborů mezi počítači přes internetové připojení pomocí protokolu TCP/IP. Využívá také rámec klient-server a zabezpečení SSL/TLS k zajištění bezpečného a spolehlivého přenosu dat.

Je to trochu podobné HTTP (HypertText Transfer Protocol) nebo SMTP (Simple Mail Transfer Protocol). Rozdíl je v tom, že FTP je zodpovědný za přenos souborů přes internet, zatímco HTTP a SMTP zajišťují přenos webových stránek a e-mailů.

Než začneme, mějte na paměti, že vás provedeme konfigurací FTP serveru na Ubuntu 18.04. Proto se musíte ujistit, že váš VPS běží na tomto konkrétním OS.

Jak nastavit FTP server na Ubuntu

Tento tutoriál vyžaduje, abyste věděli, jak se připojit k serveru prostřednictvím SSH. Pokud vlastníte Hostinger's VPS, přihlašovací údaje jsou k dispozici na Serveru hPanel.

Krok 1 – Instalace vsftpd

  1. Nejprve musíme získat aktualizace našich balíčků, než budeme pokračovat s vsftpd instalace. Začněte spuštěním následujícího příkazu:
    sudo apt-get update

    Počkejte na dokončení všech procesů a po dokončení aktualizace se zobrazí potvrzení.

  2. Jakmile budete hotovi, nainstalujte vsftpd démona pomocí příkazu níže:
    sudo apt-get install vsftpd

    Budete vyzváni potvrzovací zprávou, která bude vyžadovat zadání Y a stiskněte Enter pokračovat v instalaci.

  3. Po dokončení instalace byste měli zálohovat původní soubor, abyste mohli začít s prázdným konfiguračním souborem:
    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original

    Nyní jsme připraveni nakonfigurovat firewall.

Krok 2 – Povolení provozu FTP z brány firewall

  1. Aby mohl FTP server Ubuntu komunikovat přes internet, musí si projít firewallem. Nejprve se však podívejme, zda je brána firewall na vašem počítači již povolena nebo ne. Jednoduše spusťte tento příkaz a ověřte stav:
    sudo ufw status

    Pokud se zobrazí následující zpráva:

    ufw: command not found

    Znamená to, že firewall není nainstalován. Můžete jej nainstalovat a povolit zadáním:

    sudo apt-get install ufw
    sudo ufw enable
  2. Pokud je již aktivní, musíte se ještě ujistit, že je povolen provoz FTP. Chcete-li to provést, spusťte jeden po druhém následující příkazy:
    sudo ufw allow OpenSSH
    sudo ufw allow 20/tcp
    sudo ufw allow 21/tcp
    sudo ufw allow 990/tcp
    sudo ufw allow 40000:50000/tcp

    Tato řada příkazů otevře několik portů:

    • OpenSSH je vyžadováno, pokud stále chcete přistupovat k serveru přes SSH. Někdy je tato možnost ve výchozím nastavení povolena.
    • porty 20 a 21 pro provoz FTP.
    • porty 40000:50000 bude vyhrazen pro rozsah pasivních portů, které budou případně nastaveny v konfiguračním souboru.
    • port 990 se použije, když je povoleno TLS.
  3. Nyní se znovu podíváme na stav:
    sudo ufw status

    Výstup by měl vypadat nějak takto:

    Status: active
    To                         Action From
    --                              ------ ----
    OpenSSH                    ALLOW Anywhere
    990/tcp                    ALLOW Anywhere
    20/tcp                     ALLOW Anywhere
    21/tcp                     ALLOW Anywhere
    40000:50000/tcp            ALLOW Anywhere
    OpenSSH (v6)               ALLOW Anywhere (v6)
    20/tcp (v6)                ALLOW Anywhere (v6)
    21/tcp (v6)                ALLOW Anywhere (v6)
    990/tcp (v6)               ALLOW Anywhere (v6)
    40000:50000/tcp (v6)       ALLOW Anywhere (v6)

Krok 3 – Vytvoření adresáře uživatelů

  1. Jakmile je firewall nastaven, musíme vytvořit uživatele, který bude používat FTP přístup. Postupujte takto:
    sudo adduser hostinger

    Nezapomeňte změnit uživatelské jméno podle svých vlastních preferencí.

  2. Poté zadejte heslo pro uživatele a vyplňte všechny požadované údaje.
    V ideálním případě by měl být FTP z bezpečnostních důvodů omezen na jeden konkrétní adresář. Protovsftpd používá chroot vězení , který ve výchozím nastavení omezuje místního uživatele na jeho domovský adresář.
    Je však možné, že kvůli vsftpd zabezpečení, uživatel nemusí být schopen zapisovat do tohoto adresáře. Abychom to napravili, nemusíme odstraňovat oprávnění k zápisu z domovské složky. Místo toho vytvoříme ftp adresář, který funguje jako chroot . Obsahuje zapisovatelný adresář, který bude zodpovědný za uložení požadovaných souborů.
  3. K vytvoření složky FTP použijte následující příkaz:
    sudo mkdir /home/hostinger/ftp

    Poté nastavte vlastnictví pomocí:

    sudo chown nobody:nogroup /home/hostinger/ftp

    Nakonec odeberte oprávnění k zápisu:

    sudo chmod a-w /home/hostinger/ftp

    Nyní použijte následující příkaz k ověření oprávnění:

    sudo ls -la /home/hostinger/ftp

    Výstup by měl vypadat nějak takto:

    total 8
    dr-xr-xr-x 2 nobody nogroup 4096 Oct 8 11:32 .
    drwxr-xr-x 3 hostinger   hostinger 4096 Oct 8 11:32 ..
  4. Dále vytvoříme adresář pro uložení souborů a přiřadíme vlastnictví:
    sudo mkdir /home/hostinger/ftp/files
    sudo chown hostinger:hostinger /home/hostinger/ftp/files

    Nakonec přidejte testovací soubor do adresáře, který bude použit, až budeme později vše testovat:

    echo "vsftpd sample file" | sudo tee /home/hostinger/ftp/files/sample.txt

Krok 4 – Konfigurace vsftpd

Dalším krokem je konfigurace vsftpd a našeho FTP přístupu. V tomto příkladu umožníme jednomu uživateli připojit se pomocí místního shellového účtu. Dvě klíčové konfigurace potřebné k tomu jsou již nastaveny v konfiguraci (vsftpd.conf ) soubor.

  1. Začněte pomocí příkazu nano a otevřete vsftpd konfigurační soubor.
    sudo nano /etc/vsftpd.conf

    Ověřte, že obsah má podobná nastavení jako toto:

    . . .
    # Allow anonymous FTP? (Disabled by default).
    anonymous_enable=NO
    #
    # Uncomment this to allow local users to log in.
    local_enable=YES
    . . .

    Ve stejném souboru odstraníme # (odkomentujte) a ujistěte se, že je povoleno write_enable .

    . . .
    write_enable=YES
    . . .
  2. Musíte také zrušit komentář chroot abyste zajistili, že uživatel FTP přistupuje pouze k souborům v povoleném adresáři. Změňte NE hodnotu na ANO , také. Mějte na paměti, že existují dva řádky jako je tento a musíte oba zrušit komentáře.
    . . .
    chroot_local_user=YES
    . . .
  3. Je zde několik nových hodnot, které byste také měli přidat na konec souboru. První z nich je user_sub_token v cestě k adresáři local_root . Umožní konfiguraci pracovat s aktuálním uživatelem nebo dalšími uživateli, kteří budou následně přidáni:
    user_sub_token=$USER
    
    local_root=/home/$USER/ftp
  4. Aby bylo zajištěno, že bude k dispozici značné množství připojení, omezíme počet portů konfiguračního souboru:
    pasv_min_port=40000
    pasv_max_port=50000
  5. V tomto kurzu chceme umožnit přístup případ od případu. Proto nastavíme konfiguraci tak, aby udělovala přístup pouze uživatelům, které jste výslovně přidali do seznamu:
    userlist_enable=YES
    userlist_file=/etc/vsftpd.userlist
    userlist_deny=NO

    Když nastavíte příznak userlist_deny na NE , budou mít přístup pouze vybraní uživatelé. Po dokončení klikněte na CTRL+X následuje Y uložte jej a stiskněte Enter pro potvrzení změn souboru.

  6. Nakonec vytvoříme seznam uživatelů a přidáme uživatele do souboru:
    echo "hostinger" | sudo tee -a /etc/vsftpd.userlist

    Ověřte, zda je uživatel skutečně aktivní spuštěním následujícího příkazu:

    cat /etc/vsftpd.userlist

    Výstup by měl být „hostinger“, jak je znázorněno na tomto snímku obrazovky:

  7. Restartujte démona pomocí následujícího příkazu k načtení změn konfigurace:
    sudo systemctl restart vsftpd

Krok 5 – Zabezpečení FTP

  1. Ve výchozím nastavení FTP nešifruje data, takže budeme používat SSL/TLS certifikát pro zabezpečení přenosu dat. Prvním krokem je, že musíme vytvořit certifikát SSL pro FTP server Ubuntu.
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

    –dnů flag činí certifikát platným rok a my jsme zahrnuli 2048bitový soukromé RSA zadejte stejný příkaz.

  2. Po zobrazení výzvy zadejte do zobrazeného pole odpovídající osobní údaje.
  3. Po dokončení vytváření certifikátu znovu otevřete konfigurační soubor:
    sudo nano /etc/vsftpd.conf

    Konec souboru by měl obsahovat dva řádky začínající rsa .

    # rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

    Nyní nasměrujeme konfigurační soubor na certifikát, který jsme právě vytvořili. Přidejte následující adresáře přímo pod předchozí řádky:

    rsa_cert_file=/etc/ssl/private/vsftpd.pem
    rsa_private_key_file=/etc/ssl/private/vsftpd.pem
  4. Dále povolíme SSL a zajistíme, aby nás mohli kontaktovat pouze klienti, kteří mají aktivní SSL. Jednoduše zadejte tento řádek:
    ssl_enable=YES

    Poté přidejte následující řádky, abyste zakázali všechna anonymní připojení přes SSL:

    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES

    Nakonfigurujte server pro použití TLS pomocí:

    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
  5. Nyní změníme další dvě možnosti. Nejprve vypněte Opětovné použití SSL aby se zabránilo selhání FTP klientů. Za druhé, použijeme šifrovací sady s vysokým šifrováním, které zajistí, že délka klíčů bude rovna nebo větší než 128 bitů.
    require_ssl_reuse=NO
    ssl_ciphers=HIGH

    Uložte soubor znovu stisknutím CTRL+X následuje Y a poté stiskněte Enter .

  6. Pojďme restartovat vsftpd znovu použít nové konfigurace:
    sudo systemctl restart vsftpd

Skvělá práce! Nyní jste nakonfigurovali FTP server na vašem Ubuntu VPS pro práci s protokolem SSL/TLS.

Krok 6 – Testování připojení s FileZilla

V současné době většina FTP klientů podporuje konfigurace šifrování TLS. Je to skvělý způsob, jak otestovat, zda váš FTP server Ubuntu funguje správně. K otestování připojení použijeme FTP klienta FileZilla.

  1. Začněte spuštěním FileZilla a klikněte na Správce webu ikona. Poté klikněte na Nový web v zobrazeném okně zadejte podrobnosti o serveru FTP Ubuntu.
  2. Vyplňte všechny požadované sloupce informacemi o nově vytvořeném FTP serveru Ubuntu. Protože jsme jej nakonfigurovali tak, aby používal TLS, můžeme také zvolit Použít explicitní FTP přes TLS volba. Konečná konfigurace by měla vypadat takto:
  3. Až budete připraveni, klikněte na Připojit a objeví se obrazovka s výzvou k zadání hesla uživatele FTP. Poté stiskněte OK .
  4. Nakonec budete muset ověřit SSL certifikát vašeho FTP serveru na Ubuntu VPS. Po potvrzení by se nyní na obrazovce měl objevit kořenový adresář s testovacím souborem.

To je vše! Nyní můžete provádět různé přenosy souborů z vašeho počítače na FTP server Ubuntu a naopak.

Závěr

Mít Ubuntu FTP server vám usnadní sdílení souborů mezi vaším Ubuntu VPS/serverem a počítačem. Jde o bezpečný a spolehlivý způsob přenosu dat díky zabezpečení SSL/TLS a protokolu TCP/IP.

V tomto tutoriálu jste se naučili, jak nastavit FTP server na Ubuntu 18.04 pomocí vsftpd. Existuje pět kroků, které byste měli dodržovat. Pojďme se na ně podívat ještě jednou.

  1. Nainstalujte vsftpd na vašem serveru Ubuntu a zálohujte původní konfigurační soubor.
  2. Povolte připojení FTP přes bránu firewall.
  3. Vytvořte uživatelský adresář, ke kterému budou mít přístup pouze vybraní uživatelé.
  4. Nakonfigurujte vsftpd .
  5. Zabezpečte server FTP.
  6. Otestujte své připojení FTP pomocí FileZilla.

Hodně štěstí a nezapomeňte se podívat na naše další výukové programy VPS!


Ubuntu
  1. Jak nastavit WireGuard VPN na Ubuntu (průvodce krok za krokem)

  2. Jak povolit uživateli používat sudo v Ubuntu Linux

  3. Jak nainstalovat Ansible na Ubuntu Server 21.04

  1. Jak nastavit FTP server na vašem Raspberry Pi

  2. Jak nainstalovat FTP server na Ubuntu s vsftpd

  3. Jak nainstalovat FTP server na Ubuntu 20.04

  1. Jak nastavit server OpenVPN na Ubuntu 18.04

  2. Jak nastavit bloky serveru Nginx na Ubuntu 20.04

  3. Jak nainstalovat GUI na Ubuntu Server (snadný průvodce)