Konfiguracja serwera FTP z ProFTPD w systemie Linux
ProFTPD (Professional FTP Daemon) to popularna alternatywa dla vsftpd, oferująca większe możliwości konfiguracji i elastyczność w zarządzaniu użytkownikami oraz dostępem do zasobów. Jego konfiguracja przypomina Apache HTTP Server, co sprawia, że jest bardziej intuicyjny dla administratorów systemów.
🔹 Dlaczego warto używać ProFTPD?
✅ Zaawansowana konfiguracja – możliwość stosowania reguł dostępu i autoryzacji.
✅ Obsługa wirtualnych użytkowników – możliwość konfiguracji użytkowników FTP bez kont systemowych.
✅ Integracja z bazami danych – wsparcie dla MySQL i PostgreSQL.
✅ Obsługa TLS/SSL – możliwość szyfrowania połączeń dla zwiększenia bezpieczeństwa.
W tym artykule omówimy:
✔ Instalację i konfigurację ProFTPD w Ubuntu/Debian
✔ Podstawowe ustawienia i opcje konfiguracyjne
✔ Konfigurację użytkowników oraz zabezpieczeń
✔ Testowanie działania serwera FTP
1. Instalacja ProFTPD w Ubuntu/Debian
Na początek zainstaluj pakiet ProFTPD:
sudo apt update
sudo apt install proftpd -y
Podczas instalacji pojawi się pytanie o tryb uruchamiania:
🔹 Standalone – serwer działa jako osobny proces (zalecane).
🔹 Inetd – uruchamiany na żądanie przez superdemona inetd/xinetd.
Jeśli nie wiesz, którą opcję wybrać, pozostaw Standalone.
Po instalacji sprawdź status usługi:
sudo systemctl status proftpd
Jeśli serwer nie działa, uruchom go ręcznie:
sudo systemctl start proftpd
sudo systemctl enable proftpd
2. Podstawowa konfiguracja ProFTPD
Plik konfiguracyjny ProFTPD znajduje się w:
/etc/proftpd/proftpd.conf
Edytuj go:
sudo nano /etc/proftpd/proftpd.conf
🔹 Krok 1: Ustawienie nazwy serwera
Zmień linijkę:
ServerName "Serwer FTP Linux"
Możesz wpisać dowolną nazwę serwera.
🔹 Krok 2: Ustawienia dostępu
Zalecane ustawienia dla lepszego bezpieczeństwa:
DefaultRoot ~
RequireValidShell off
UseIPv6 off
🔹 Krok 3: Zezwolenie na logowanie użytkowników
Aby umożliwić dostęp tylko lokalnym użytkownikom:
<Global>
RequireValidShell off
</Global>
Dzięki temu użytkownicy FTP nie muszą mieć powłoki systemowej.
🔹 Krok 4: Ograniczenie liczby połączeń
Aby zapobiec przeciążeniu serwera:
MaxClients 10
MaxClientsPerHost 2
Zapisz plik (Ctrl + X
, Y
, Enter
) i zrestartuj ProFTPD:
sudo systemctl restart proftpd
3. Tworzenie użytkowników FTP
🔹 Krok 1: Dodanie nowego użytkownika
sudo adduser ftpuser
Nadaj użytkownikowi hasło i skonfiguruj katalog domowy.
🔹 Krok 2: Ograniczenie dostępu do katalogu domowego
Dodaj użytkownika do pliku proftpd.conf
:
<Directory /home/ftpuser>
Umask 022
AllowOverwrite on
</Directory>
Teraz użytkownik ftpuser będzie miał dostęp wyłącznie do swojego katalogu.
🔹 Krok 3: Sprawdzenie dostępu
Połącz się z serwerem FTP za pomocą klienta, np.:
ftp localhost
Wpisz nazwę użytkownika i hasło, a następnie sprawdź dostęp do plików.

4. Konfiguracja serwera ProFTPD z SSL/TLS
Aby zapewnić bezpieczne połączenia FTP, skonfiguruj SSL/TLS.
🔹 Krok 1: Instalacja OpenSSL
sudo apt install openssl -y
🔹 Krok 2: Generowanie certyfikatu SSL
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -days 365 -nodes
🔹 Krok 3: Włączenie TLS w ProFTPD
Edytuj plik konfiguracyjny:
sudo nano /etc/proftpd/proftpd.conf
Dodaj na końcu pliku:
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2 TLSv1.3
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSRequired on
</IfModule>
Zapisz plik i zrestartuj serwer:
sudo systemctl restart proftpd
5. Konfiguracja firewalla dla ProFTPD
Jeśli korzystasz z ufw
, otwórz porty FTP:
sudo ufw allow 21/tcp
Dla iptables
:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
6. Testowanie serwera ProFTPD
📌 Sprawdzenie logów serwera FTP
sudo tail -f /var/log/proftpd/proftpd.log
📌 Połączenie przez FTP
Z innego komputera spróbuj połączyć się za pomocą klienta FTP (np. FileZilla) lub użyj konsoli:
ftp adres_IP_serwera
📌 Połączenie przez FTP z SSL/TLS
Jeśli używasz szyfrowania, sprawdź logi TLS:
cat /var/log/proftpd/tls.log
7. Zalety ProFTPD względem vsftpd
Cecha | ProFTPD | vsftpd |
---|---|---|
Łatwość konfiguracji | ✅ Intuicyjna, podobna do Apache | ❌ Plik konfiguracyjny mniej elastyczny |
Obsługa baz danych | ✅ Tak (MySQL, PostgreSQL) | ❌ Brak |
Obsługa wirtualnych użytkowników | ✅ Tak | ✅ Tak, ale mniej elastyczne |
Obsługa TLS/SSL | ✅ Tak, łatwa konfiguracja | ✅ Tak, ale trudniejsza konfiguracja |
Obsługa IPv6 | ✅ Tak | ✅ Tak |
Zaawansowane reguły dostępu | ✅ Tak | ❌ Ograniczone możliwości |
📌 ProFTPD to lepszy wybór dla zaawansowanych konfiguracji FTP.
📌 vsftpd jest prostszy i bardziej odpowiedni do podstawowych zastosowań.
Podsumowanie
✅ ProFTPD to potężny serwer FTP z zaawansowanymi opcjami konfiguracji.
✅ Łatwa konfiguracja użytkowników, TLS i integracja z bazami danych.
✅ Doskonały wybór dla bardziej skomplikowanych środowisk.
Jeśli potrzebujesz bezpiecznego i elastycznego serwera FTP, ProFTPD jest świetnym rozwiązaniem.