Настройка безопасной передачи файлов по FTP с использованием SSL/TLS в RHEL 8
В нашей последней статье мы подробно описали, как установить и настроить FTP-сервер в RHEL 8 Linux. В этой статье мы объясним, как защитить FTP сервер с помощью SSL/TLS, чтобы включить службы шифрования данных для безопасной передачи файлов между системами.
Мы надеемся, что у вас уже установлен и работает правильно FTP-сервер. Если нет, воспользуйтесь следующим руководством для установки его в вашей системе.
- Как установить, настроить и защитить 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
Ниже приводится объяснение каждого флага, используемого в приведенной выше команде.
- req — команда для управления запросом на подпись сертификата X.509 (CSR).
- x509 – означает управление данными сертификата X.509.
- дней – определяет количество дней, в течение которых действителен сертификат.
- newkey – указывает процессор ключа сертификата.
- rsa:2048 – процессор ключей RSA генерирует 2048-битный закрытый ключ.
- keyout — задает файл хранения ключей.
- 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. Чтобы поделиться любыми вопросами или мыслями, воспользуйтесь формой обратной связи ниже.