Два экземпляра vsftpd – проверьте пассивный порт на FTPS

Вопрос или проблема

Я настроил VSFTPD на машине CentOS для работы на двух экземплярах, с файлами vsftpd.conf и vsftpd2.conf. Вот содержание второго конфигурационного файла:

anonymous_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
connect_from_port_20=YES
dirmessage_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ftpd_banner=Hello.
listen=YES
listen_port=30
local_enable=YES
local_umask=022
pam_service_name=vsftpd
pasv_enable=YES
pasv_address=192.168.100.162
pasv_max_port=389
pasv_min_port=389
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
ssl_ciphers=HIGH
user_config_dir=/etc/vsftpd/user_conf
userlist_enable=NO
write_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog2
xferlog_std_format=NO
dual_log_enable=YES
log_ftp_protocol=YES

Первый конфигурационный файл идентичен, за исключением файла журнала xferlog, отсутствующего listen_port и значений pasv_max_port/pasv_min_port, которые равны 65000/60000.

Таким образом, у меня есть один FTPS, работающий на 21 порту, и другой на 30 порту. Оба работают нормально, но я хочу убедиться, что 389 действительно используется. Итак, я запустил сеанс с Wireshark, где я мог увидеть все свои TCP-пакеты на порт 30, но ни одного на 389. Вместо этого я вижу пакеты на мой удаленный сервер на порту 49276.

Как я могу убедиться, что это работает нормально?

Я только что узнал из другого источника, что vsftpd не может резервировать порты ниже 1024 для PASV.

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-ftp-vsftpd-conf.html

Я отмечу вопрос как прочитанный, так как нам не нужно проверять TCP-пакеты, поскольку с помощью FTP-клиента мы можем увидеть команду PASV. Пример для 30000.

227 Entering Passive Mode (192,168,100,162,117,48)

Ответ или решение

Настройка двух экземпляров vsftpd и проверки пассивного порта FTPS

Введение

Простейший способ настроить файл конфигурации для двух экземпляров vsftpd на системе CentOS заключается в создании отдельных конфигурационных файлов – vsftpd.conf и vsftpd2.conf. В данной ситуации мы имеем переменные настройки для второго экземпляра, который, как ожидается, работает на порту 30 и использует ограниченный диапазон пассивных портов (259) для передачи данных.

Настройка второго экземпляра

Ваша конфигурация второго экземпляра ftps включает следующие ключевые параметры:

anonymous_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES
connect_from_port_20=YES
dirmessage_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ftpd_banner=Hello.
listen=YES
listen_port=30
local_enable=YES
local_umask=022
pam_service_name=vsftpd
pasv_enable=YES
pasv_address=192.168.100.162
pasv_max_port=389
pasv_min_port=389
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
ssl_ciphers=HIGH
user_config_dir=/etc/vsftpd/user_conf
userlist_enable=NO
write_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/xferlog2
xferlog_std_format=NO
dual_log_enable=YES
log_ftp_protocol=YES

Основные параметры:

  • listen_port=30: экземпляр будет слушать на порту 30.
  • pasv_enable=YES: включение пассивного режима.
  • pasv_address=192.168.100.162: IP адрес для пассивного соединения.
  • pasv_max_port=389 и pasv_min_port=389: используются для указания диапазона пассивных портов.

Проверка использования порта 389

Для проверки того, что ваш сервер ftps использует порт 389, а не любые другие порты, вы можете выполнить следующие действия:

  1. Тестирование с FTP-клиентом: Запустите сессию FTP-клиента и выполните команду PASV. Вы должны увидеть сообщение вида:

    227 Entering Passive Mode (192,168,100,162,1,133)

    В этом случае последние два числа в скобках должны соответствовать тому, что ожидается от порта 389. Следовательно, если ваш диапазон был установлен правильно, то это укажет, что используется именно этот порт.

  2. Логи и сетевой мониторинг: Обратите внимание на логи вашего FTP-сервера, а также на сетевой мониторинг (например, с использованием tcpdump или Wireshark), хотя вы уже отметили, что анализирование TCP-пакетов не требуется, так как тестирование с клиентом подтверждает корректную работу. Тем не менее наличие пакетов к портам, отличным от 389, может указывать на ошибки конфигурации.

Ограничения vsftpd

Как вы уже упомянули, vsftpd может иметь ограничения в резервировании портов ниже 1024 для пассивного режима. По этой причине вы не сможете использовать порт 389, так как он находится под этим ограничением. Это также означает, что ваш экземпляр ftps, настроенный с пассивными портами 389, возможно, будет автоматически перенаправлен на другой доступный порт, как вы и заметили (например, 49276).

Заключение

Конфигурация vsftpd с двумя экземплярами может быть полезной для улучшения управления FTP-соединениями на вашем сервере. Важно убедиться, что настройки пассажирских портов указаны правильно, сочетая проверку с помощью FTP-клиента и анализ логов. Примечание о недостатках reserving port 389 помогает избежать непредвиденных проблем, следовательно, стоит отдать предпочтение диапазону пассивных портов в нормальном диапазоне.

Эти шаги и рекомендации должны помочь вам уверенно управлять вашими экземплярами четвёртого протокола передачи файлов и обеспечить высокий уровень надежности и безопасности соединений.

Оцените материал
Добавить комментарий

Капча загружается...