Aby zainstalować i skonfigurować serwer FTP (vsftpd) z obsługą TLS na Debianie, wykonaj następujące, szczegółowo opisane kroki. Ten poradnik przeznaczony jest zarówno dla początkujących, jak i bardziej zaawansowanych użytkowników Linuksa i uwzględnia najlepsze praktyki bezpieczeństwa.
1. Instalacja vsftpd
Na początek zainstaluj pakiet vsftpd z oficjalnych repozytoriów Debiana:
sudo apt update sudo apt install vsftpd -y
Sprawdź, czy usługa została poprawnie uruchomiona:
sudo systemctl status vsftpd
Jeżeli usługa jest aktywna, możesz przejść dalej.
2. Utwórz kopię zapasową konfiguracji
Zanim wprowadzisz zmiany, utwórz kopię zapasową oryginalnego pliku konfiguracyjnego:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
To pozwoli Ci łatwo przywrócić domyślne ustawienia w razie problemów.
3. Utworzenie użytkowników FTP (opcjonalnie)
Jeżeli chcesz używać dedykowanych kont do logowania przez FTP:
sudo adduser ftpuser
Dodaj użytkownika do listy uprawnionych do logowania (opcjonalnie):
echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
To rozwiązanie jest szczególnie przydatne do ograniczenia dostępu do serwera wybranym użytkownikom.
4. Generowanie certyfikatu SSL/TLS
Aby nawiązywać szyfrowane połączenia FTP, musisz posiadać certyfikat. Jeśli nie masz certyfikatu od zaufanego CA, możesz wygenerować certyfikat samopodpisany:
sudo openssl req -new -newkey rsa:2048 -days 365 -nodes \ -keyout /etc/ssl/private/vsftpd.key \ -out /etc/ssl/certs/vsftpd.crt
Podczas generowania wypełnij pola opisujące Twój serwer (kraj, organizacja itd.). Upewnij się, że uprawnienia do pliku klucza są odpowiednie:
sudo chmod 600 /etc/ssl/private/vsftpd.key
5. Konfiguracja vsftpd z TLS
Otwórz plik /etc/vsftpd.conf
edytorem tekstu (np. nano):
sudo nano /etc/vsftpd.conf
Znajdź i ustaw (lub dodaj) poniższe opcje, by włączyć SSL/TLS:
# Włączenie TLS ssl_enable=YES # Użycie protokołów SSL/TLS – tylko TLS (SSL to protokół przestarzały) allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1_2=YES ssl_tlsv1_3=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH # Ścieżki do certyfikatu i klucza rsa_cert_file=/etc/ssl/certs/vsftpd.crt rsa_private_key_file=/etc/ssl/private/vsftpd.key # Dodatkowe zalecane opcje bezpieczeństwa chroot_local_user=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000
Krótko wyjaśnienie najważniejszych opcji:
- ssl_enable=YES – włącza obsługę szyfrowania.
- forcelocaldatassl/forcelocalloginsssl=YES – wymóg szyfrowania logowania i przesyłania danych.
- ssltlsv12/ssltlsv13=YES – wymusza bezpieczne wersje TLS, wyłączając stare, niebezpieczne protokoły.
6. Dodatkowa konfiguracja użytkowników i katalogów
Zalecane jest utworzenie bezpiecznych katalogów dla użytkowników:
sudo mkdir -p /home/ftpuser/ftp/upload sudo chown nobody:nogroup /home/ftpuser/ftp sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload sudo chmod a-w /home/ftpuser/ftp
Przykład dla jednego użytkownika, analogicznie dla kolejnych.
7. Restart usługi
Po zapisaniu zmian uruchom ponownie usługę:
sudo systemctl restart vsftpd
Zweryfikuj status usługi:
sudo systemctl status vsftpd
8. Testowanie połączenia TLS
Do testowania połączenia użyj klienta, który obsługuje FTPS, np. FileZilla. Podaj adres serwera, login, hasło oraz ustaw tryb połączenia na FTP przez TLS (FTPS). Połączenie powinno być zaszyfrowane. Jeśli pojawi się ostrzeżenie o certyfikacie, należy je zaakceptować, ponieważ jest to certyfikat samopodpisany.
9. Dodatkowe zabezpieczenia (zalecane)
- Wyłącz dostęp anonimowy –
W pliku/etc/vsftpd.conf
ustaw:
anonymous_enable=NO
- Włącz chroot –
Blokuje użytkownika w jego katalogu domowym:
chroot_local_user=YES
-
Ogranicz otwierane porty dla trybu pasywnego –
Dodaj porty, np.pasv_min_port=30000
,pasv_max_port=31000
i otwórz je na firewallu. -
Ze względów bezpieczeństwa dodaj użytkowników tylko do pliku
/etc/vsftpd.userlist
i ustawuserlist_enable=YES
,userlist_file=/etc/vsftpd.userlist
,userlist_deny=NO
.
10. FAQ i typowe problemy
-
Połączenie nie jest szyfrowane –
Upewnij się, że Twój klient FTP wymusza FTPS/Explicit TLS. Sprawdź konfigurację TLS na serwerze. -
Problem z logowaniem –
Zweryfikuj, czy użytkownik jest na liście dozwolonych, ma katalog i poprawne uprawnienia.
11. Podsumowanie
Po przejściu powyższych kroków otrzymujesz bezpieczny serwer FTP z obsługą TLS, zapewniający prywatność przesyłanych danych oraz zgodność z nowoczesnymi standardami bezpieczeństwa.
Taka konfiguracja to niezbędne minimum, jeśli pliki mają być przesyłane bezpiecznie przez sieć – szczególnie w środowiskach produkcyjnych.