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

- 3616
- 1172
- Klaudia Woś
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:
- 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.
- req - jest poleceniem dla x.509 Zarządzanie podpisaniem certyfikatów (CSR).
- x509 - oznacza x.509 Zarządzanie danymi certyfikatów.
- dni - określa liczbę dni certyfikatu jest ważne dla.
- Newkey - Określa kluczowy procesor certyfikatu.
- RSA: 2048 - Procesor Klucz RSA, wygeneruje klucz prywatny 2048 -bitowy.
- Keyout - Ustawia plik pamięci klucza.
- 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>

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.

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

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:

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.

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.

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.
- « Kto jest root? Dlaczego istnieje root?
- RTOP - interaktywne narzędzie do monitorowania zdalnego serwera Linux przez SSH »