Podstawowy serwer FTP (vsftpd) – prosta i szybka konfiguracja
Serwer FTP (File Transfer Protocol) to jedno z najprostszych rozwiązań do udostępniania plików w sieci. Jednym z najczęściej używanych serwerów FTP w systemach Linux, w tym Debian i Ubuntu, jest vsftpd (Very Secure FTP Daemon). Jest to lekka, szybka i łatwa w konfiguracji usługa, idealna dla podstawowych zastosowań związanych z wymianą plików. W tym artykule przedstawimy, jak skonfigurować podstawowy serwer FTP przy użyciu vsftpd oraz jak go zabezpieczyć.
1. Co to jest vsftpd?
vsftpd (Very Secure FTP Daemon) to jeden z najbezpieczniejszych i najszybszych serwerów FTP dla systemów Linux. Charakteryzuje się:
✅ Szybką i lekką konfiguracją – zajmuje niewiele zasobów systemowych.
✅ Łatwością w obsłudze – minimalna liczba zależności i prostota wdrożenia.
❌ Brakiem domyślnego szyfrowania – vsftpd w podstawowej konfiguracji obsługuje nieszyfrowane połączenia FTP.
Ze względu na brak szyfrowania, podstawowa konfiguracja vsftpd sprawdzi się głównie w sieciach lokalnych, gdzie bezpieczeństwo nie jest kluczowym problemem.

2. Instalacja vsftpd w systemie Linux
Instalacja vsftpd jest bardzo prosta i możliwa w większości systemów Linux. Wykonaj następujące kroki:
a) Instalacja w systemach Debian i Ubuntu
sudo apt update
sudo apt install vsftpd -y
b) Instalacja w systemach CentOS i RHEL
sudo dnf install vsftpd -y
c) Instalacja w systemie Arch Linux
sudo pacman -S vsftpd
Po zakończeniu instalacji warto sprawdzić, czy usługa vsftpd działa:
sudo systemctl status vsftpd
Jeśli nie działa, można ją uruchomić:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
3. Konfiguracja podstawowego serwera FTP
Plik konfiguracyjny vsftpd znajduje się w katalogu:
/etc/vsftpd.conf
Edytujemy go, np. za pomocą nano:
sudo nano /etc/vsftpd.conf
Wprowadzamy podstawowe zmiany:
a) Włączenie dostępu anonimowego (opcjonalnie)
Jeśli chcemy, aby użytkownicy anonimowi mogli pobierać pliki z serwera:
anonymous_enable=YES
UWAGA: Anonimowy dostęp nie wymaga logowania i może stanowić zagrożenie!
b) Zezwolenie na logowanie użytkowników systemowych
Jeśli chcemy, aby użytkownicy systemowi mogli korzystać z FTP:
local_enable=YES
write_enable=YES
Dzięki temu użytkownicy mogą przesyłać pliki na serwer.
c) Ustawienie katalogu domyślnego dla użytkownika FTP
Aby użytkownicy FTP byli ograniczeni do własnych katalogów domowych:
chroot_local_user=YES
allow_writeable_chroot=YES
d) Ustawienia portów i maksymalnej liczby połączeń
pasv_min_port=40000
pasv_max_port=50000
max_clients=10
max_per_ip=5
Po wprowadzeniu zmian zapisujemy plik i restartujemy serwer:
sudo systemctl restart vsftpd
4. Tworzenie użytkownika FTP
Tworzymy nowego użytkownika, np. ftpuser, który będzie miał dostęp do serwera FTP:
sudo adduser ftpuser
sudo passwd ftpuser
Nadajemy uprawnienia do katalogu domowego:
sudo chmod 750 /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser
Teraz użytkownik ftpuser może logować się do serwera FTP.
5. Testowanie serwera FTP
Serwer FTP można przetestować za pomocą dowolnego klienta FTP, np.:
- Linux/macOS:
ftp localhost
- Windows:
Można użyć FileZilla, wpisując:- Host:
ftp://adres_ip_serwera
- Użytkownik:
ftpuser
- Hasło:
hasło_ustawione_dla_ftpuser
- Host:
Jeśli połączenie się powiedzie, oznacza to, że serwer działa poprawnie.
6. Zabezpieczenie serwera FTP
Podstawowa konfiguracja vsftpd nie zapewnia szyfrowania, co oznacza, że dane przesyłane są w formie otwartego tekstu. Oto kilka sposobów na zwiększenie bezpieczeństwa:
a) Wyłączenie logowania anonimowego
Jeśli nie chcemy, aby użytkownicy anonimowi mieli dostęp do serwera:
anonymous_enable=NO
b) Ograniczenie dostępu tylko do wskazanych użytkowników
Dodajemy plik user_list
, w którym wpisujemy dozwolonych użytkowników:
sudo nano /etc/vsftpd.user_list
Wpisujemy np.:
ftpuser
Następnie w pliku konfiguracyjnym ustawiamy:
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
c) Ograniczenie dostępu do określonego katalogu
Tworzymy katalog FTP w /srv/ftp
i ustawiamy uprawnienia:
sudo mkdir -p /srv/ftp
sudo chown ftpuser:ftpuser /srv/ftp
W pliku vsftpd.conf ustawiamy katalog domyślny:
local_root=/srv/ftp
7. Alternatywa: FTP przez SFTP
Jeśli chcesz szyfrowane połączenia, zamiast klasycznego FTP lepiej użyć SFTP (SSH File Transfer Protocol), który działa przez SSH i jest znacznie bezpieczniejszy:
sftp ftpuser@adres_ip
Podsumowanie
Serwer vsftpd to lekkie i proste rozwiązanie do podstawowego udostępniania plików przez FTP. Jego konfiguracja zajmuje kilka minut i może być użyteczna w lokalnych sieciach. Należy jednak pamiętać, że brak szyfrowania w podstawowej konfiguracji sprawia, że vsftpd nie nadaje się do przesyłania wrażliwych danych. W przypadku większych wymagań warto rozważyć użycie SFTP zamiast klasycznego FTP.