Aby zainstalować serwer FTP (vsftpd) z obsługą TLS na Ubuntu, postępuj według poniższego szczegółowego poradnika. Instrukcje przeznaczone są dla administratorów Linuxa oraz użytkowników, którzy chcą zapewnić bezpieczną transmisję plików przez FTP poprzez szyfrowanie TLS/SSL.
1. Aktualizuj system
Zawsze przed instalacją nowego oprogramowania upewnij się, że system jest zaktualizowany:
sudo apt update sudo apt upgrade
2. Instalacja vsftpd
Zainstaluj serwer vsftpd poleceniem:
sudo apt install vsftpd
Po instalacji sprawdź status usługi:
sudo systemctl status vsftpd
Powinieneś zobaczyć informację, że vsftpd jest aktywny (running).
3. Generowanie certyfikatu SSL/TLS
Aby szyfrować połączenia FTP, musisz wygenerować własny certyfikat SSL (tzw. self-signed). Zrobisz to poleceniem OpenSSL:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \ -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Podczas generowania zostaniesz poproszony o podstawowe dane (kraj, organizację, domenę etc.).
4. Kopia zapasowa konfiguracji
Przed edycją pliku konfiguracyjnego utwórz jego kopię zapasową:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
5. Konfiguracja vsftpd – włącz TLS
Otwórz plik konfiguracyjny:
sudo nano /etc/vsftpd.conf
Znajdź i ustaw/zmień następujące opcje (dodaj/zmodyfikuj jeśli trzeba):
# Wyłącz dostęp anonimowy anonymous_enable=NO # Włącz lokalnych użytkowników local_enable=YES # Pozwól na przesyłanie plików write_enable=YES # Chroot dla użytkowników (izolacja katalogu domowego) chroot_local_user=YES # Pliki TLS rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
Wyłącz anonymous_enable (jeżeli nie chcesz publicznego dostępu) oraz skonfiguruj ścieżki do certyfikatu SSL wygenerowanego wcześniej.
6. Utworzenie użytkownika FTP
Dodaj użytkownika na FTP, np.:
sudo adduser nazwauzytkownika
Po utworzeniu użytkownika możesz zalogować się jego danymi przez klienta FTP.
7. Restart usługi vsftpd
Po zmianach w konfiguracji uruchom ponownie usługę, by zastosować nowe ustawienia:
sudo systemctl restart vsftpd
8. Testowanie połączenia FTPS
Do testów użyj FileZilla lub innego klienta FTP i wybierz:
- Host – IP serwera FTP (lub domenę)
- Protokół – FTP
- Szyfrowanie – Explicit FTP over TLS (FTPS)
- Login – Nazwa użytkownika utworzonego wcześniej
- Hasło – Hasło użytkownika
Upewnij się, że nie pozwalasz na nieszyfrowane logowania — wtyczka „forcelocaldatassl=YES” oraz „forcelocalloginsssl=YES” wymusza szyfrowanie.
Dodatkowe informacje i wyjaśnienia
- vsftpd to jeden z najbezpieczniejszych i najwydajniejszych serwerów FTP dla Linuksa, wspiera TLS/SSL natywnie.
- TLS/SSL umożliwia szyfrowanie połączenia FTP, chroniąc dane przed przechwyceniem.
- Domyślny katalog FTP to
/srv/ftp
, jednak możesz zmodyfikować to wedle potrzeb poprzez zmianę katalogu domowego użytkownika FTP. - Jeśli chcesz obsługiwać tylko wybrane wersje TLS, doprecyzuj ustawienia
ssl_tlsv1
,ssl_tlsv1_1
,ssl_tlsv1_2
w pliku konfiguracyjnym vsftpd.
Bezpieczeństwo – rekomendacje
- Regularnie aktualizuj system i vsftpd.
- Używaj silnych haseł dla użytkowników FTP.
- Ogranicz dostęp do FTP poprzez firewall lub domyślne ustawienie „chrootlocaluser=YES”.
- Rozważ stosowanie SFTP przez SSH, jeśli zależy Ci na jeszcze wyższym poziomie bezpieczeństwa.
Przestrzegając powyższych kroków, uzyskasz bezpieczny serwer FTP (vsftpd) z TLS/SSL na Ubuntu, gotowy do produkcyjnych wdrożeń.