Jak zabezpieczyć serwer FTP za pomocą SSL/TLS do bezpiecznego przesyłania plików w Centos 7

Jak zabezpieczyć serwer FTP za pomocą SSL/TLS do bezpiecznego przesyłania plików w Centos 7

Po oryginalnym projekcie, Ftp (Protokół Przesyłania Plików) nie jest bezpieczne, co oznacza, że ​​nie szyfruje danych przesyłanych między dwiema maszynami, a także poświadczenia użytkownika. Stwarza to ogromne zagrożenie dla danych, a także bezpieczeństwo serwera.

W tym samouczku wyjaśnimy, jak ręcznie włączyć usługi szyfrowania danych na serwerze FTP w Centos/Rhel 7 i Fedora; Przejdziemy przez różne kroki zabezpieczenia VSFTPD (Bardzo bezpieczny demon ftp) Usługi korzystające z SSL/TLS certyfikaty.

Wymagania wstępne:

  1. Musisz zainstalować i skonfigurować serwer FTP w Centos 7

Zanim zaczniemy, zauważ, że wszystkie polecenia w tym samouczku będą uruchamiane jako źródło, W przeciwnym razie użyj polecenia sudo, aby uzyskać uprawnienia root, jeśli nie kontrolujesz serwera za pomocą konta głównego.

Krok 1. Generowanie certyfikatu SSL/TLS i klucza prywatnego

1. Musimy zacząć od utworzenia podkładu pod: /etc/ssl/ gdzie będziemy przechowywać SSL/TLS Pliki certyfikatu i kluczowe:

# mkdir/etc/ssl/private 

2. Następnie uruchom poniższe polecenie, aby utworzyć certyfikat i klucz dla VSFTPD W jednym pliku tutaj jest wyjaśnienie każdej używanej flagi.

  1. req - jest poleceniem dla x.509 Zarządzanie podpisaniem certyfikatów (CSR).
  2. x509 - oznacza x.509 Zarządzanie danymi certyfikatów.
  3. dni - określa liczbę dni certyfikatu jest ważne dla.
  4. Newkey - Określa kluczowy procesor certyfikatu.
  5. RSA: 2048 - Procesor Klucz RSA, wygeneruje klucz prywatny 2048 -bitowy.
  6. Keyout - Ustawia plik pamięci klucza.
  7. na zewnątrz - Ustawia plik pamięci certyfikatu, pamiętaj, że zarówno certyfikat, jak i klucz są przechowywane w tym samym pliku: /etc/ssl/private/vsftpd.pem.
# Openssl req -x509 -nodes -keyout/etc/ssl/ssl/private/vsftpd.PEM -OUT/etc/ssl/private/vsftpd.PEM -DAYS 365 -NEWKEY RSA: 2048 

Powyższe polecenie poprosi o odpowiedź na poniższe pytania, pamiętaj o użyciu wartości, które mają zastosowanie do twojego scenariusza.

Nazwa kraju (2 -literowy kod) [xx]:W Nazwa stanu lub prowincji (pełna nazwa) []:Niższy Parel Nazwa lokalizacji (np. Miasto) [Domyślne miasto]:Bombaj Nazwa organizacji (np. Firma) [Domyślna firma Ltd]:Tecmint.com Nazwa jednostki organizacyjnej (np. Sekcja) []:Linux i open source Nazwa zwyczajowa (np. Nazwa lub nazwa hosta twojego serwera) []:Tecmint Adres e -mail []:[chroniony e -mail] 

Krok 2. Konfigurowanie VSFTPD do używania SSL/TLS

3. Zanim wykonamy jakiekolwiek konfiguracje VSFTPD, otwórzmy porty 990 I 40000-50000 Aby umożliwić połączenia TLS i zakres portów portów pasywnych do zdefiniowania odpowiednio w pliku konfiguracyjnym VSFTPD:

# Firewall-CMD --Zone = public --Permanent --add-port = 990/tcp # Firewall-CMD --zone = public --Permanent --add-port = 40000-50000/tcp # Firewall-CMD- przeładować 

4. Teraz otwórz plik konfiguracji VSFTPD i określ szczegółowe informacje SSL:

# vi/etc/vsftpd/vsftpd.conf 

Poszukaj opcji ssl_enable i ustaw swoją wartość TAK Aby aktywować użycie SSL, ponieważ TSL jest bezpieczniejszy niż SSL, ograniczymy VSFTPD do zatrudnienia TLS, używając SSL_TLSV1_2 opcja:

ssl_enable = tak ssl_tlsv1_2 = tak ssl_sslv2 = nie ssl_sslv3 = nie 

5. Następnie dodaj poniższe wiersze, aby zdefiniować lokalizację certyfikatu SSL i plik kluczy:

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

6. Następnie musimy zapobiec użyciu anonimowych użytkowników, a następnie wymusić wszystkie nieanonimiczne loginy do korzystania z bezpiecznego połączenia SSL do przesyłania danych i wysyłania hasła podczas logowania:

Zezwalaj_anon_ssl = brak Force_Local_Data_SSL = Tak Force_Local_Logins_SSL = Tak 

7. Ponadto możemy dodać poniższe opcje, aby zwiększyć bezpieczeństwo serwera FTP. Kiedy opcja wymaga_ssl_reuse jest ustawione na TAK, Następnie wszystkie połączenia danych SSL są zobowiązane do wykorzystywania ponownego użycia sesji SSL; udowadniając, że znają ten sam sekret mistrzów, co kanał kontrolny.

Dlatego musimy to wyłączyć.

wymaga_ssl_reuse = nie 

Ponownie musimy wybrać, które szyfr SSL VSFTPD zezwoli na zaszyfrowane połączenia SSL z SSL_CIPHERS opcja. Może to znacznie ograniczyć wysiłki atakujących, którzy próbują wymusić określony szyfr, w którym prawdopodobnie odkryli luki w:

SSL_CIPHERS = HIGH 

8. Teraz ustaw zakres portów (min i maksymalny porty) portów pasywnych.

PASV_MIN_PORT = 40000 PASV_MAX_PORT = 50000 

9. Opcjonalnie zezwalaj na debugowanie SSL, co oznacza, że ​​diagnostyka połączenia Openssl jest rejestrowana do pliku dziennika VSFTPD z debug_ssl opcja:

debug_ssl = tak 

Zapisz wszystkie zmiany i zamknij plik. Następnie uruchommy usługi VSFTPD:

# Systemctl restart vsftpd 

Krok 3: Testowanie serwera FTP z połączeniami SSL/TLS

10. Po wykonaniu wszystkich powyższych konfiguracji sprawdź, czy VSFTPD używa połączeń SSL/TLS, próbując użyć FTP z wiersza poleceń w następujący sposób:

# ftp 192.168.56.10 połączone z 192.168.56.10 (192.168.56.10). 220 Witamy w Tecmint.Usługa com ftp. Imię (192.168.56.10: Root): Sesje nieanonimowe Ravi 530 muszą używać szyfrowania. Logowanie nie powiodło się. 421 Usługa niedostępna, zdalny serwer ma zamknięte połączenie FTP> 
Sprawdź bezpieczne połączenie FTP SSL

Z powyższego zrzutu ekranu możemy zobaczyć, że istnieje błąd informujący nas, że VSFTPD może pozwolić użytkownikowi na logowanie od klientów obsługujących usługi szyfrowania.

Wiersz poleceń nie oferuje usług szyfrowania, powodując w ten sposób błąd. Aby bezpiecznie połączyć się z serwerem, potrzebujemy klienta FTP, który obsługuje połączenia SSL/TLS, takie jak FileZilla.

Krok 4: Zainstaluj FileZilla, aby bezpiecznie połączyć się z serwerem FTP

11. FileZilla jest nowoczesnym, popularnym i, co ważne, klient FTP, który domyślnie obsługuje połączenia SSL/TLS.

Aby zainstalować FileZilla w Linux, uruchom poniższe polecenie:

--------- Na Centos/Rhel/Fedora --------- # Yum Zainstaluj epel-release filezilla --------- Na Debian/Ubuntu --------- $ sudo apt-get instaluj filezilla 

12. Po zakończeniu instalacji (lub jeśli już ją zainstalowałeś), otwórz ją i przejdź do File => Sites Manager lub (prasa Ctrl+s) aby uzyskać Menedżer witryny interfejs poniżej.

Kliknij Nowa strona przycisk, aby dodać nowe szczegóły połączenia witryny/hosta.

Dodaj nową witrynę FTP w FileZilla

13. Następnie ustaw nazwę hosta/witryny, dodaj adres IP, zdefiniuj protokół do użycia, szyfrowanie i typ logowania jak w poniższym zrzucie ekranu (użyj wartości, które mają zastosowanie do scenariusza):

Gospodarz: 192.168.56.10 Protokół: FTP - protokół przesyłania plików Szyfrowanie: Wymagaj wyraźnego FTP #zalecany typ logowania: Poproś o hasło #zalecany użytkownik: nazwa użytkownika 
Dodaj szczegóły serwera FTP w FileZilla

14. Następnie kliknij Łączyć Aby ponownie wprowadzić hasło, a następnie sprawdź certyfikat używany do połączenia SSL/TLS i kliknij OK Jeszcze raz połączyć się z serwerem FTP:

Sprawdź certyfikat FTP SSL

Na tym etapie powinniśmy pomyślnie zalogować się do serwera FTP przez połączenie TLS, sprawdź sekcję Status połączenia, aby uzyskać więcej informacji z interfejsu poniżej.

Podłączony do serwera FTP przez TLS/SSL

15. Wreszcie, spróbuj przesyłać pliki z komputera lokalnego na sever ftp w folderze plików, spójrz na dolny koniec FileZilla interfejs do wyświetlenia raportów dotyczących transferów plików.

Pliki transferu bezpiecznie za pomocą FTP

To wszystko! Zawsze pamiętaj, że FTP nie jest domyślnie bezpieczne, chyba że skonfigurujemy go do korzystania z połączeń SSL/TLS, jak pokazaliśmy w tym samouczku. Podziel się swoimi przemyśleniami na temat tego samouczka/tematu za pośrednictwem poniższego formularza opinii.