Bezpieczny serwer FTP (vsftpd z SSL/TLS) – szyfrowanie i konfiguracja
Linux

Bezpieczny serwer FTP (vsftpd z SSL/TLS) – szyfrowanie i konfiguracja

Bezpieczny serwer FTP (vsftpd z SSL/TLS) – szyfrowanie i konfiguracja

Bezpieczeństwo w transmisji danych to kluczowy element każdej infrastruktury IT. Protokół FTP, choć popularny, w swojej podstawowej formie nie zapewnia szyfrowania, co naraża przesyłane dane na przechwycenie. Rozwiązaniem tego problemu jest konfiguracja vsftpd (Very Secure FTP Daemon) z wykorzystaniem protokołu SSL/TLS, który szyfruje dane przesyłane między klientem a serwerem.

W tym artykule przedstawimy, jak skonfigurować bezpieczny serwer FTP z SSL/TLS, generować certyfikaty oraz zwiększyć bezpieczeństwo transmisji danych.


1. Dlaczego warto używać FTP z SSL/TLS?

Szyfrowana transmisja – zapobiega podsłuchiwaniu danych przez niepowołane osoby.
Zabezpieczone logowanie – dane uwierzytelniające nie są przesyłane jako otwarty tekst.
Kompatybilność – większość klientów FTP obsługuje SSL/TLS, np. FileZilla.
Prosty sposób na zwiększenie bezpieczeństwa – konfiguracja jest łatwa i nie wymaga dużych zasobów systemowych.

Wymaga certyfikatów SSL/TLS – trzeba je wygenerować lub uzyskać od zaufanego urzędu certyfikacji.
Mniejsza wydajność – szyfrowanie danych może zwiększyć obciążenie serwera.

Bezpieczny serwer FTP (vsftpd z SSL/TLS) – szyfrowanie i konfiguracja
Bezpieczny serwer FTP (vsftpd z SSL/TLS) – szyfrowanie i konfiguracja

2. Instalacja vsftpd i OpenSSL

Najpierw należy zainstalować serwer vsftpd oraz narzędzie do generowania certyfikatów OpenSSL.

W systemach Debian/Ubuntu:

sudo apt update
sudo apt install vsftpd openssl -y

W systemach CentOS/RHEL:

sudo dnf install vsftpd openssl -y

W systemie Arch Linux:

sudo pacman -S vsftpd openssl

Po instalacji warto sprawdzić status usługi:

sudo systemctl status vsftpd

Jeśli serwer nie działa, uruchamiamy go:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. Generowanie certyfikatu SSL/TLS

vsftpd wymaga certyfikatu do szyfrowania połączeń. Możemy użyć własnego certyfikatu samopodpisanego lub uzyskać certyfikat od zaufanego urzędu certyfikacji (np. Let’s Encrypt).

Czytaj  Jak instalować i konfigurować certyfikaty TLS/SSL w IIS na Windows Server

Aby utworzyć samopodpisany certyfikat dla serwera FTP, wykonujemy następujące kroki:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Podczas generowania certyfikatu należy podać podstawowe informacje, np.:

  • Country Name (PL – Polska)
  • State or Province Name
  • Locality Name
  • Organization Name
  • Common Name (nazwa serwera, np. ftp.mojadomena.com)

Po wygenerowaniu certyfikat będzie znajdować się w /etc/ssl/private/vsftpd.pem.


4. Konfiguracja vsftpd z SSL/TLS

Teraz edytujemy plik konfiguracyjny vsftpd:

sudo nano /etc/vsftpd.conf

Dodajemy lub modyfikujemy następujące linie:

a) Włączenie obsługi SSL/TLS

ssl_enable=YES

b) Wskazanie ścieżki do certyfikatu SSL/TLS

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

c) Wymuszenie szyfrowania dla logowania i transferu plików

force_local_logins_ssl=YES
force_local_data_ssl=YES

d) Ustawienia trybu TLS

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

e) Ograniczenie dostępu do określonych użytkowników

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO

Tworzymy plik vsftpd.user_list i dodajemy do niego użytkowników, którzy mają dostęp:

echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list

f) Tryb pasywny (opcjonalnie)

Jeśli używasz trybu pasywnego, dodaj:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

Zapisujemy zmiany (Ctrl + X, potem Y i Enter) i restartujemy serwer:

sudo systemctl restart vsftpd

5. Testowanie połączenia z klientem FTP

Aby sprawdzić, czy serwer działa, możemy użyć klienta FTP, np. FileZilla:

  1. Otwórz FileZilla.
  2. Wpisz:
    • Host: ftps://adres_IP_serwera
    • Nazwa użytkownika: ftpuser
    • Hasło: ustawione_hasło
    • Port: 21
  3. W zakładce Szyfrowanie wybierz Wymagaj użycia FTP przez TLS.
  4. Połącz się z serwerem.

Jeśli wszystko działa poprawnie, FileZilla wyświetli komunikat o bezpiecznym połączeniu.


6. Dodatkowe zabezpieczenia serwera FTP

Aby zwiększyć bezpieczeństwo serwera FTP, warto zastosować dodatkowe środki:

a) Blokowanie dostępu dla użytkownika root

ftp_username=root

b) Ustawienie limitu połączeń

max_clients=5
max_per_ip=3

c) Zabezpieczenie firewalla

Otwieramy porty dla FTP i TLS (jeśli używamy trybu pasywnego):

sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

Podsumowanie

Konfiguracja vsftpd z SSL/TLS pozwala na bezpieczną transmisję plików i szyfrowanie połączenia FTP. Dzięki wykorzystaniu certyfikatów SSL/TLS możemy chronić dane przed przechwyceniem, zapewniając większe bezpieczeństwo użytkownikom. Warto pamiętać, że vsftpd obsługuje różne mechanizmy zabezpieczeń, ale w przypadku wrażliwych danych lepiej rozważyć użycie SFTP (SSH File Transfer Protocol), który oferuje natywne szyfrowanie.

Czytaj  Jakie są najlepsze dystrybucje Linuksa do zastosowań serwerowych?
Polecane wpisy
Docker vs. Kubernetes: Porównanie Rozwiązań Konteneryzacji w Linuxie
Docker vs. Kubernetes: Porównanie Rozwiązań Konteneryzacji w Linuxie

Docker i Kubernetes to dwa najpopularniejsze rozwiązania do konteneryzacji w Linuxie. Oba rozwiązania oferują szereg zalet, ale różnią się pod Czytaj dalej

Konfiguracja uprawnień i kontrola dostępu w Debianie: Bezpieczeństwo systemu na najwyższym poziomie
Konfiguracja uprawnień i kontrola dostępu w Debianie: Bezpieczeństwo systemu na najwyższym poziomie

Konfiguracja uprawnień i kontrola dostępu w Debianie: Bezpieczeństwo systemu na najwyższym poziomie Debian, jako jedna z najpopularniejszych dystrybucji systemu Linux, Czytaj dalej