1. Úvod
Vytvoření FTP serveru na Ubuntu je vysoce praktické řešení pro vývojáře a administrátory, kteří chtějí efektivně přenášet soubory. Zejména při nastavování domácího serveru nebo jednoduchého interního prostředí pro sdílení souborů zůstává FTP (File Transfer Protocol) snadno nasaditelnou a přímočarou volbou.
Co je FTP server?
FTP server je dedikovaný serverový software používaný k přenosu souborů přes internet nebo lokální síť. Uživatelé se k serveru připojují pomocí FTP klientské aplikace, aby nahráli nebo stáhli soubory.
Zatímco bezpečnější alternativy jako SFTP a SCP se staly běžnějšími, FTP je stále široce používáno díky své jednoduchosti a lehkosti. V omezených sítích nebo pro základní případy použití FTP nadále představuje praktický a efektivní protokol.
Role FTP serveru na Ubuntu
Ubuntu je jednou z nejoblíbenějších distribucí Linuxu a je široce používána v serverových prostředích. Nastavením FTP serveru na Ubuntu se sdílení souborů mezi více zařízeními a uživateli výrazně usnadní.
Typické případy použití zahrnují:
- Přenos souborů na webový server
- Integraci s IoT zařízeními, jako je Raspberry Pi
- Sdílení interních firemních dokumentů
Kombinace Ubuntu a FTP serveru umožňuje flexibilní a efektivní správu souborů.
Účel tohoto článku a cílové publikum
Tento článek vysvětluje, jak postavit FTP server na Ubuntu krok za krokem tak, aby byl srozumitelný i pro začátečníky. Je určen čtenářům, kteří:
- Zná základní operace v Ubuntu, ale jsou noví v FTP
- Chtějí vytvořit FTP server pro lokální nebo lehké firemní využití
- Chtějí pochopit bezpečnostní úvahy a problémy, jako je kódování názvů souborů
Dodržením kroků v tomto průvodci budete schopni vytvořit bezpečné a praktické prostředí FTP serveru. V další sekci se zaměříme na instalaci jednoho z nejoblíbenějších FTP serverů: vsftpd.
2. Instalace vsftpd
Při budování FTP serveru na Ubuntu je nejčastěji používaným softwarem vsftpd (Very Secure FTP Daemon). Jak název napovídá, byl navržen s ohledem na bezpečnost a je lehký a stabilní, což jej činí široce přijatým v korporátních i vzdělávacích prostředích.
Tato sekce vysvětluje, jak nainstalovat vsftpd na Ubuntu a nakonfigurovat službu tak, aby se spouštěla automaticky.
Instalace vsftpd
Nejprve nainstalujte vsftpd pomocí balíčkovacího systému Ubuntu (APT). Spusťte následující příkazy v pořadí:
sudo apt update
sudo apt install vsftpd
sudo apt update: Aktualizuje seznam balíčkůsudo apt install vsftpd: Nainstaluje balíček vsftpd
Po dokončení instalace se služba vsftpd spustí automaticky.
Kontrola stavu služby
Pro ověření, že je vsftpd nainstalován a běží správně, použijte následující příkaz:
sudo systemctl status vsftpd
Pokud uvidíte active (running), FTP server funguje normálně.
Povolení automatického spouštění
vsftpd je obvykle nastaven tak, aby se spouštěl automaticky, ale je dobré to potvrdit:
sudo systemctl enable vsftpd
Tím zajistíte, že vsftpd bude spouštěn automaticky po restartu systému.
Nezapomeňte na nastavení firewallu (UFW)
Pokud je na Ubuntu povolen UFW (Uncomplicated Firewall), musíte povolit FTP porty:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Tím otevřete standardní FTP porty: 20 (data) a 21 (příkazy).
Po úpravě pravidel firewallu načtěte UFW znovu:
sudo ufw reload
3. Základní konfigurace
Po instalaci vsftpd je dalším krokem přizpůsobit jeho chování úpravou konfiguračního souboru. Ačkoliv vsftpd nabízí velmi podrobnou kontrolu, mnoho funkcí je ve výchozím nastavení zakázáno, takže je třeba explicitně povolit ty, které potřebujete.
Tato sekce popisuje nejčastější a nejdůležitější konfigurační volby.
Umístění konfiguračního souboru
.Hlavní konfigurační soubor pro vsftpd se nachází v:
/etc/vsftpd.conf
Soubor upravte pomocí následujícího příkazu:
sudo nano /etc/vsftpd.conf
Po provedení změn restartujte vsftpd, aby se nastavení projevilo:
sudo systemctl restart vsftpd
Povolení zápisu (nahrávání, mazání, úpravy)
Ve výchozím nastavení vsftpd neumožňuje nahrávat soubory ani je měnit. Pro povolení zápisu odkomentujte nebo přidejte následující řádek:
write_enable=YES
Tím umožníte uživatelům nahrávat, mazat a upravovat soubory ve svých domovských adresářích.
Povolení přihlášení lokálních uživatelů
Aby se uživatelé systému Ubuntu mohli přihlašovat přes FTP, povolte následující volbu:
local_enable=YES
Tím umožníte uživatelům uvedeným v /etc/passwd přihlásit se pomocí FTP.
Povolení výpisu adresářů
Pokud se ve FTP klientech nezobrazují výpisy adresářů, zkontrolujte následující nastavení:
listen=YES
listen_ipv6=NO
Pokud je ve vašem systému zakázáno IPv6, ale listen_ipv6=YES zůstane povoleno, může dojít k problémům s připojením.
Nastavení uvítací zprávy (volitelné)
Můžete zobrazit vlastní zprávu, když se uživatelé připojí k FTP serveru:
ftpd_banner=Welcome to your custom Ubuntu FTP server!
To je užitečné pro zobrazování provozních oznámení nebo kontaktních informací.
Povolení přenosu v ASCII režimu (pokud je potřeba)
Pokud potřebujete správně přenášet textové soubory s různými formáty konců řádků, povolte ASCII režim:
ascii_upload_enable=YES
ascii_download_enable=YES
Většinou stačí binární režim, ale ASCII režim může být užitečný v specifických prostředích.
vsftpd vyžaduje explicitní povolení pro každou funkci, což činí konfiguraci transparentní a bezpečnou. Po úpravě konfiguračního souboru vždy restartujte službu.
4. Zvyšování bezpečnosti
I když je FTP pohodlné, ve výchozím nastavení nešifruje provoz, což představuje bezpečnostní riziko – zejména při používání přes internet. Správná bezpečnostní konfigurace je nezbytná.
Tato část představuje klíčová bezpečnostní opatření dostupná ve vsftpd.
Omezení přístupu uživatelů pomocí chroot
Umožnění FTP uživatelům přistupovat k adresářům mimo jejich domovský adresář je nebezpečné. Použijte chroot k omezení uživatelů na jejich domovské adresáře.
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_local_user=YESzabraňuje uživatelům přistupovat k adresářům nad jejich domovským adresářem.allow_writeable_chroot=YESje nutné, pokud má domovský adresář povolen zápis.
Bez tohoto nastavení se objeví následující chyba:
500 OOPS: vsftpd: refusing to run with writable root inside chrootOmezení přihlašovaných uživatelů (whitelist)
Povolení všem systémovým uživatelům přihlásit se přes FTP zvyšuje bezpečnostní riziko. Místo toho omezte přístup pomocí whitelistu.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Přidejte povolené uživatele do seznamu:
sudo nano /etc/vsftpd.userlist
ftpuser1
ftpuser2
Pouze výslovně uvedení uživatelé se mohou přihlásit.
Povolení šifrované komunikace pomocí FTPS (SSL/TLS)
Standardní FTP přenáší přihlašovací údaje i data jako prostý text. Pro zabránění odposlechu povolte FTPS (FTP přes SSL/TLS).
Vytvořte SSL certifikát:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Do vsftpd.conf přidejte následující řádky:
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Klienti se nyní mohou připojit pomocí explicitního FTPS.
Zakázání nepotřebných funkcí
Zakázáním nepoužívaných funkcí snížíte útočný povrch:
anonymous_enable=NO
Tím se explicitně zakáže anonymní přihlášení.
5. Podpora japonských názvů souborů
Při přenosu souborů přes FTP se mohou japonské názvy souborů zobrazovat poškozeně kvůli nesouladu kódování – zejména mezi Windows a Ubuntu.
translated markdown.
Běžné příčiny problémů s kódováním názvů souborů
- Locale Ubuntu není nastaveno na UTF-8
- Kódování FTP klienta neodpovídá
- vsftpd nepracuje v režimu UTF-8
Ověření a nastavení locale Ubuntu
locale
LANG=ja_JP.UTF-8
Pokud není UTF-8 povoleno:
sudo update-locale LANG=ja_JP.UTF-8
source /etc/default/locale
sudo locale-gen ja_JP.UTF-8
Ověření podpory UTF-8 ve vsftpd
utf8_filesystem=YES
Tato volba nemusí existovat ve všech verzích, ale systémové locale UTF-8 obvykle stačí.
Nastavení FTP klienta (příklad FileZilla)
- Otevřete Správce serverů
- Vyberte server
- Otevřete kartu Kódování znaků
- Povolit vlastní kódování a nastavit jej na
UTF-8
6. Pasivní režim a konfigurace firewallu
Problémy s FTP, jako neúspěšné výpisy adresářů nebo zablokované přenosy, jsou často způsobeny nesprávným pasivním režimem nebo nastavením firewallu.
Co je pasivní režim?
- Aktivní režim: Server zahajuje datové spojení
- Pasivní režim: Klient zahajuje všechna spojení
Pasivní režim je pro moderní sítě důrazně doporučen.
Povolení pasivního režimu ve vsftpd
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
Specifikace externí IP adresy (prostředí NAT)
pasv_address=203.0.113.45
Otevření požadovaných portů v UFW
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw reload
7. Konfigurace na uživatele
V produkčních prostředích je běžné přiřazovat různá oprávnění a adresáře jednotlivým uživatelům.
Vytvoření dedikovaných FTP uživatelů
sudo adduser ftpuser1
sudo useradd -m -s /usr/sbin/nologin ftpuser2
Doporučená struktura adresářů
/home/ftpuser1/
└── files/
sudo mkdir /home/ftpuser1/files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/files
sudo chmod 755 /home/ftpuser1
Konfigurační soubory specifické pro uživatele
user_config_dir=/etc/vsftpd_user_conf
sudo mkdir /etc/vsftpd_user_conf
sudo nano /etc/vsftpd_user_conf/ftpuser1
local_root=/home/ftpuser1/files
write_enable=YES
8. Ověření provozu
Po dokončení všech kroků nastavení ověřte, že FTP server funguje správně.
Test z příkazové řádky
ftp localhost
ls
cd files
put test.txt
get test.txt
Test GUI klienta (FileZilla)
Ověřte připojení, výpis adresářů, nahrávání a stahování.
9. Řešení problémů
Běžné problémy s FTP a jejich řešení zahrnují selhání přihlášení, chyby oprávnění, nesprávnou konfiguraci pasivního režimu a problémy s kódováním.
10. Závěr
Tento článek vysvětlil, jak vytvořit bezpečný a praktický FTP server na Ubuntu pomocí vsftpd, zahrnující instalaci, konfiguraci, zabezpečení, kódování, pasivní režim, správu uživatelů, ověření a řešení problémů.
Často kladené otázky
Často kladené otázky týkající se nastavení a provozu FTP serveru na Ubuntu.


