Вопрос или проблема
Я совсем новичок в Linux. Поскольку я хотел настроить FTP-сервер с использованием Ubuntu, я установил его и настроил FTP. Всё было в порядке, пока я не включил SSL в конфигурационном файле vsftpd. Помимо настроек по умолчанию, я добавил следующие строки, чтобы включить FTP SSL на сервере Ubuntu.
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
# Filezilla использует порт 21, если вы не задаёте какой-либо порт
# в Servertype "FTPES - FTP over explicit TLS/SSL"
# Порт 990 используется по умолчанию для протокола FTPS.
# Раскомментируйте, если хотите/необходимо использовать порт 990.
listen_port=990
pasv_min_port=12000
pasv_max_port=12100
Теперь, если я пытаюсь получить доступ к нему с помощью ftps (ftps://), я получаю следующую ошибку после ввода имени пользователя FTP.
Соединение не может быть установлено, потому что целевая машина активно его отвергла.
Подключение не удалось.
Я заметил, что она пытается установить соединение, используя порт 990. Я просто попробовал открыть порт 990, добавив правило в IPtables. Команда, которую я использовал:
sudo iptables -A INPUT -p tcp --sport 990 -j ACCEPT
Но безуспешно.
Прошу помощи у кого-нибудь, чтобы выяснить, почему соединение не устанавливается и как я могу открыть необходимые порты в Ubuntu.
Я бы сделал:
- Полностью отключил бы iptables.
- Сказал бы сервису сделать привязку ко всем доступным интерфейсам, добавив это в конфигурационный файл:
listen_address=0.0.0.0
После этого попробуйте подключиться и сообщите нам результаты.
Ответ или решение
Ваша проблема с подключением к FTPS на порту 990 может быть связана с несколькими факторами. Давайте разберем, что может быть неправильно настроено, и как это можно исправить.
Теория
FTPS (FTP Secure) — это расширение стандартного протокола FTP, которое добавляет поддержку SSL-шифрования. Порт 990 часто используется для FTPS по умолчанию. При настройке vsftpd (Very Secure FTP Daemon) для работы с SSL необходимо убедиться, что все составляющие, такие как конфигурация порта, правила брандмауэра и сетевые интерфейсы, настроены корректно.
Пример
Вы уже внесли изменения в конфигурацию vsftpd для использования SSL, добавив соответствующие параметры и указав порт 990. Однако, ошибка "No connection could be made because the target machine actively refused it" указывает на то, что сервер не принимает входящие соединения на этот порт. Возможно, проблема связана с настройками брандмауэра или сетевыми интерфейсами.
Применение
-
Проверка брандмауэра (iptables):
Убедитесь, что правило для открытия порта 990 правильное. Вместо--sport
используйте--dport
, так как вам нужно открыть порт для входящих соединений на сервер:sudo iptables -A INPUT -p tcp --dport 990 -j ACCEPT
После внесения изменений, сохраните правила iptables:
sudo iptables-save > /etc/iptables/rules.v4
-
Проверка настройки интерфейсов:
Убедитесь, что vsftpd прослушивает все доступные интерфейсы. Для этого добавьте в конфигурационный файл/etc/vsftpd.conf
следующую строку:listen_address=0.0.0.0
Это указание позволяет серверу принимать соединения со всех IP-адресов.
-
Перезапуск службы vsftpd:
После внесения изменений перезапустите службу vsftpd, чтобы изменения вступили в силу:sudo systemctl restart vsftpd
-
Проверка работы:
Попробуйте снова подключиться через FTPS-клиент. Если проблема сохраняется, проверьте системные журналы с помощью:sudo journalctl -u vsftpd
Эти логи могут предоставить дополнительную информацию о причине отказа в соединении.
Следуя этим шагам, вы сможете диагностировать и устранить проблему с подключением к FTPS на порту 990.