Как установить FTP-сервер vsftpd с SSL/TLS на CentOS 8
На этой странице
- Предпосылки
- Установить VSFTPD
- Создание пользователя для VSFTPD
- Настройка VSFTPD
- Настройка брандмауэра и SELInux
- Подключение к серверу VSFTPD
- Настройка VSFTPD с поддержкой TLS
- Проверьте соединение VSFTPD TLS
- Заключение
FTP — это широко используемый протокол, используемый для передачи файлов между сервером и клиентом. В настоящее время доступно множество FTP-серверов с открытым исходным кодом, включая FTPD, VSFTPD, PROFTPD и pureftpd. Среди них VSFTPD — безопасный, быстрый и наиболее широко используемый протокол во всем мире. Его также называют «Демон протокола передачи очень безопасных файлов». Он также поддерживает SSL, IPv6, явный и неявный FTPS.
В этом руководстве мы покажем вам, как установить VSFTPD на сервер CentOS 8 и защитить его с помощью SSL/TLS.
Предпосылки
- Сервер под управлением CentOS 8.
- На вашем сервере настроен пароль root.
Установить VSFTPD
По умолчанию VSFTPD доступен в репозитории CentOS 8 по умолчанию. Вы можете установить его, выполнив следующую команду:
dnf install vsftpd -y
После завершения установки запустите службу VSFTPD и включите ее запуск после перезагрузки системы с помощью следующей команды:
systemctl start vsftpd
systemctl enable vsftpd
На этом этапе ваш сервер VSFTPD установлен и работает. Теперь вы можете перейти к следующему шагу.
Создайте пользователя для VSFTPD
Далее вам нужно будет создать нового пользователя для VSFTPD. Таким образом, вы можете получить доступ к своему FTP-серверу, используя этого пользователя.
Выполните следующую команду, чтобы создать нового пользователя с именем vyom, как показано ниже:
adduser vyom
Далее устанавливаем пароль для пользователя с помощью следующей команды:
passwd vyom
Как только вы закончите, вы можете перейти к следующему шагу.
Настройка VSFTPD
Затем откройте файл конфигурации VSFTPD по умолчанию, расположенный в каталоге /etc/vsftpd, как показано ниже:
nano /etc/vsftpd/vsftpd.conf
Измените следующие строки:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=NO
Сохраните и закройте файл, когда закончите. Затем перезапустите службу VSFTPD и проверьте состояние службы с помощью следующей команды:
systemctl restart vsftpd
systemctl status vsftpd
Вы должны увидеть следующий вывод:
? vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2020-02-21 00:43:57 EST; 6s ago Process: 2698 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 2699 (vsftpd) Tasks: 1 (limit: 6102) Memory: 1020.0K CGroup: /system.slice/vsftpd.service ??2699 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf Feb 21 00:43:57 centos8 systemd[1]: Stopped Vsftpd ftp daemon. Feb 21 00:43:57 centos8 systemd[1]: Starting Vsftpd ftp daemon... Feb 21 00:43:57 centos8 systemd[1]: Started Vsftpd ftp daemon.
На этом этапе ваш сервер VSFTPD настроен. Теперь вы можете перейти ко всем VSFTPD через SELinux и брандмауэр.
Настройте брандмауэр и SELInux
По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет настроить SELinux для VSFTPD.
Вы можете настроить SELinux для разрешения FTP-доступа с помощью следующей команды:
setsebool -P allow_ftpd_full_access=1
Далее вам нужно будет разрешить службу FTP через firewalld. Вы можете разрешить это с помощью следующей команды:
firewall-cmd --zone=public --permanent --add-service=ftp
Затем перезагрузите службу firewalld, чтобы применить изменения конфигурации брандмауэра:
firewall-cmd --reload
На этом этапе ваш брандмауэр и SELinux настроены на разрешение входящего FTP-соединения с удаленной системы. Теперь вы можете приступить к тестированию FTP-соединения.
Подключиться к серверу VSFTPD
Теперь ваш сервер VSFTPD установлен и настроен. Теперь пришло время подключить FTP-сервер из клиентской системы.
Для этого перейдите в клиентскую систему и выполните следующую команду для подключения к FTP-серверу:
ftp 172.20.10.3
Вам будет предложено указать пользователя FTP и пароль, как показано ниже:
Connected to 172.20.10.3. 220 (vsFTPd 3.0.3) Name (172.20.10.3:root): vyom 331 Please specify the password. Password: 230 Login successful.
После того, как соединение было успешно установлено, вы должны увидеть следующий вывод:
Remote system type is UNIX. Using binary mode to transfer files. ftp>
Теперь введите exit и нажмите кнопку Enter, чтобы выйти из сеансов FTP.
Настройка VSFTPD с поддержкой TLS
Из соображений безопасности рекомендуется шифровать FTP-передачи с помощью SSL/TLS. Для этого вам потребуется сгенерировать сертификат SSL и настроить сервер VSFTPD для его использования.
Во-первых, вам нужно будет установить пакет OpenSSL в вашей системе. Вы можете установить его с помощью следующей команды:
dnf install openssl -y
После установки создайте новый каталог для хранения SSL-сертификата:
mkdir /etc/ssl/private
Затем сгенерируйте самоподписанный сертификат с помощью следующей команды:
openssl req -newkey rsa:2048 -nodes -keyout /etc/ssl/private/vsftpd.key -x509 -days 365 -out /etc/ssl/private/vsftpd.crt
Предоставьте всю необходимую информацию, как показано ниже:
Generating a RSA private key ...+++++ ...........+++++ writing new private key to '/etc/ssl/private/vsftpd.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:IN State or Province Name (full name) []:GUJ Locality Name (eg, city) [Default City]:JUN Organization Name (eg, company) [Default Company Ltd]:IT Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:ftpserver Email Address []:
После создания SSL-сертификата вам необходимо настроить VSFTPD для использования этого сертификата.
Откройте файл конфигурации VSFTPD по умолчанию, как показано ниже:
nano /etc/vsftpd/vsftpd.conf
Добавьте в конец файла следующие строки:
#Path of the SSL certificate rsa_cert_file=/etc/ssl/private/vsftpd.crt rsa_private_key_file=/etc/ssl/private/vsftpd.key #Enable the SSL ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES #TSL is more secure than SSL so enable ssl_tlsv1_2. ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH #Enable SSL debugging to store all VSFTPD log. debug_ssl=YES
Сохраните и закройте файл, когда закончите. Затем перезапустите службу VSFTPD, чтобы применить изменения:
systemctl restart vsftpd
На этом этапе ваш сервер VSFTPD настроен на использование SSL-сертификата. Теперь вы можете перейти к следующему шагу.
Проверка соединения VSFTPD TLS
Теперь ваш сервер VSFTPD защищен поддержкой SSL/TLS. Затем попробуйте подключиться к FTP-серверу из командной строки, как показано ниже:
ftp 172.20.10.3
Вы должны увидеть ошибку в следующем выводе:
Connected to 172.20.10.3. 220 (vsFTPd 3.0.2) Name (172.20.10.3:root): vyom 530 Non-anonymous sessions must use encryption. Login failed. 421 Service not available, remote server has closed connection ftp>
Вы не можете подключиться к своему серверу VSFTP из клиента командной строки. Потому что он не поддерживает поддержку SSL/TLS.
Поэтому вам нужно будет загрузить и протестировать соединение VSFTPD с помощью FTP-клиента, который поддерживает соединения TLS.
Для этого перейдите в клиентскую систему и установите клиентский пакет FileZilla.
После установки FileZilla откройте программное обеспечение FileZilla, как показано ниже:
Затем откройте диспетчер сайтов, как показано ниже:
Нажмите кнопку «Новый сайт», чтобы добавить новое FTP-соединение, как показано ниже:
Укажите IP-адрес вашего FTP-сервера, выберите FTP-протокол, выберите «Использовать явный FTP через TLS», выберите «Запросить пароль», укажите имя пользователя вашего FTP-сервера и нажмите кнопку «Подключиться». Вам будет предложено ввести пароль пользователя FTP, как показано ниже:
Укажите свой пароль FTP и нажмите кнопку ОК. Вам будет предложено проверить сертификат, используемый для соединения SSL/TLS, как показано ниже:
Нажмите кнопку OK, чтобы проверить сертификат. После успешного установления соединения вы должны увидеть следующий экран:
Заключение
В приведенном выше руководстве мы установили сервер VSFTPD на CentOS 8. Мы также настроили сервер VSFTPD для использования сертификата SSL/TLS. Теперь ваш FTP-сервер защищен. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.