Skip to main content

Włączenie SSL/TLS dla vsftpd na serwerze VPS

Zakładam, że masz już zainstalowany vsftpd na swoim serwerze.

Aby włączyć szyfrowanie połączenia SSL/TLS musimy wygenerować najpierw samopodpisany (self-signed) certyfikat X.509 w formacie PEM (plik zawierający CSR i KEY).

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout vsftpd.pem -out vsftpd.pem

Jeśli chcesz wykonać powyższe polecenie w systemie Windows, możesz zainstalować Win32 OpenSSL:
https://slproweb.com/products/Win32OpenSSL.html

Podajemy dane o jakie nas prosi program, w większości są to dane opcjonalne, ale niektóre lepiej nadpisać, niż stosować domyślne wartości jak np. Default Company Ltd. (zależnie od programu) – nie wygląda to ładnie.
W polu Common Name podajemy adres naszego serwewa: host, FQDN lub IP.

Opis poszczególnych parametrów:

  • -req
    PKCS#10 X.509 Certificate Signing Request (CSR) Management.
  • -nodes
    If this option is specified then if a private key is created it will not be encrypted.
  • -days n
    When the -x509 option is being used this specifies the number of days to certify the certificate for, otherwise it is ignored. n should be a positive integer. The default is 30 days.
  • -newkey arg
    This option creates a new certificate request and a new private key.
  • -keyout filename
    This gives the filename to write the newly created private key to. If this option is not specified then the filename present in the configuration file is used.
  • -out filename
    This specifies the output filename to write to or standard output by default.

Pozostało już tylko zmodyfikowanie pliku konfiguracyjnego naszego serwera FTP.

# Konfiguracja SSL/TLS
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/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
# Koniec konfiguracji SSL/TLS

Restartujemy serwer:

service vsftpd restart

Po zrestartowaniu serwera FTP pierwsze logowanie przez FileZilla na nasz serwer powinno wyglądać mniej więcej tak:

Jest zawarta informacja o nieznanym certyfikacie, który musimy zaakceptować.
Zaznaczamy checkbox „Zawsze ufaj certyfikatowi w kolejnych sesjach” i to wszystko.

Została opisana najprostsza konfiguracja. Klucz prywatny nie jest zabezpieczony hasłem, ale nie wykorzystuję go także nigdzie indziej.
Jeśli masz klucz prywatny, którym podpisujesz różne certyfikaty, możesz go jak najbardziej użyć.

Odpowiada za to parametr:

  • -key filename
    This specifies the file to read the private key from. It also accepts PKCS#8 format private keys for PEM format files.

Więcej o dostępnych parametrach znajdziesz na stronie OpenSSL:
https://www.openssl.org/docs/manmaster/man1/openssl-req.html

markac

Full-stack Web Developer

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.