Поиск по сайту:

Настройка безопасной передачи файлов по FTP с использованием SSL/TLS в RHEL 8


В нашей последней статье мы подробно описали, как установить и настроить FTP-сервер в RHEL 8 Linux. В этой статье мы объясним, как защитить FTP сервер с помощью SSL/TLS, чтобы включить службы шифрования данных для безопасной передачи файлов между системами.

Мы надеемся, что у вас уже установлен и работает правильно FTP-сервер. Если нет, воспользуйтесь следующим руководством для установки его в вашей системе.

  1. Как установить, настроить и защитить FTP-сервер в RHEL 8

Шаг 1. Генерация сертификата SSL/TLS и закрытого ключа

1. Создайте следующий каталог для хранения сертификата SSL/TLS и файлов ключей.

mkdir -p /etc/ssl/vsftpd

2. Затем сгенерируйте самозаверяющий сертификат SSL/TLS и закрытый ключ, используя следующую команду.

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

Ниже приводится объяснение каждого флага, используемого в приведенной выше команде.

  1. req — команда для управления запросом на подпись сертификата X.509 (CSR).
  2. x509 – означает управление данными сертификата X.509.
  3. дней – определяет количество дней, в течение которых действителен сертификат.
  4. newkey – указывает процессор ключа сертификата.
  5. rsa:2048 – процессор ключей RSA генерирует 2048-битный закрытый ключ.
  6. keyout — задает файл хранения ключей.
  7. out — задает файл хранения сертификата. Обратите внимание, что сертификат и ключ хранятся в одном файле: /etc/ssl/vsftpd/vsftpd.pem.

Приведенная выше команда предложит вам ответить на приведенные ниже вопросы. Не забудьте использовать значения, применимые к вашему сценарию.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Шаг 2. Настройка VSFTPD для использования SSL/TLS

3. Откройте файл конфигурации VSFTPD для редактирования с помощью вашего любимого редактора командной строки.

vi /etc/vsftpd/vsftpd.conf

Добавьте следующие параметры конфигурации, чтобы включить SSL, затем выберите версию SSL и TLS для использования в конце файла.

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

4. Затем добавьте параметры rsa_cert_file и rsa_private_key_file, чтобы указать расположение SSL-сертификата и файла ключа соответственно.

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

5. Теперь добавьте эти параметры, чтобы запретить анонимным соединениям использовать SSL и принудительно использовать все неанонимные соединения через SSL.

allow_anon_ssl=NO			# disable anonymous users from using SSL
force_local_data_ssl=YES		# force all non-anonymous logins to use a secure SSL connection for data transfer
force_local_logins_ssl=YES		# force all non-anonymous logins  to send the password over SSL

6. Затем добавьте эту опцию, чтобы отключить любое повторное использование подключений к данным SSL, и установите шифры SSL HIGH, чтобы разрешить зашифрованные SSL-соединения.

require_ssl_reuse=NO
ssl_ciphers=HIGH

7. Вам также необходимо указать диапазон портов (минимальный и максимальный порт) пассивных портов, которые будут использоваться vsftpd для безопасных соединений, используя pasv_min_port и pasv_max_port. параметры соответственно. Кроме того, вы можете дополнительно включить отладку SSL для устранения неполадок, используя параметр debug_ssl.

pasv_min_port=40000
pasv_max_port=50000
debug_ssl=YES

8. Наконец, сохраните файл и перезапустите службу vsftpd, чтобы вышеуказанные изменения вступили в силу.

systemctl restart vsftpd

9. Еще одна важная задача, которую необходимо выполнить, прежде чем вы сможете безопасно получить доступ к FTP-серверу, — это открыть порты 990 и 40000-50000 в системе. брандмауэр. Это позволит подключиться по TLS к службе vsftpd и открыть диапазон пассивных портов, определенный в файле конфигурации VSFTPD соответственно, следующим образом.

firewall-cmd --zone=public --permanent –add-port=990/tcp
firewall-cmd --zone=public --permanent –add-port=40000-50000/tcp
firewall-cmd --reload

Шаг 3. Установите FileZilla для безопасного подключения к FTP-серверу

10. Для безопасного подключения к FTP-серверу вам понадобится FTP-клиент, поддерживающий соединения SSL/TLS, например FileZilla – с открытым исходным кодом. , широко используемый кроссплатформенный клиент FTP, SFTP и FTPS, который по умолчанию поддерживает соединения SSL/TLS.

Установите FileZilla в Linux, используя менеджер пакетов по умолчанию, следующим образом:

sudo apt-get install filezilla   		#Debian/Ubuntu
yum install epel-release filezilla		#On CentOS/RHEL
dnf install filezilla			        #Fedora 22+
sudo zypper install filezilla			#openSUSE

11. После установки пакета Filezilla найдите его в системном меню и откройте. Чтобы быстро подключиться к удаленному FTP-серверу, из главного интерфейса укажите IP-адрес хоста, имя пользователя и пароль пользователя. Затем нажмите Быстрое подключение.

12. Затем приложение попросит вас разрешить безопасное соединение с использованием неизвестного самозаверяющего сертификата. Нажмите ОК, чтобы продолжить.

Если конфигурация на сервере в порядке, соединение должно быть успешным, как показано на следующем снимке экрана.

13. Наконец, проверьте состояние безопасного FTP-соединения, попытавшись загрузить файлы со своего компьютера на сервер, как показано на следующем снимке экрана.

Вот и все! В этой статье мы показали, как защитить FTP-сервер с помощью SSL/TLS для безопасной передачи файлов в RHEL 8. Это вторая часть нашего подробного руководства по установке, настройке и защите FTP-сервера в RHEL 8. Чтобы поделиться любыми вопросами или мыслями, воспользуйтесь формой обратной связи ниже.