Вопрос или проблема
После миграции на AlmaLinux 9 с CentOS 7 я внезапно столкнулся с проблемой загрузки файлов по ftp с удаленных серверов (пример из оболочки)
curl -u user:password 'ftp://example.com/folder1/file1.zip' -o /var/www/html/df/file1.zip
Результат
curl: (7) Не удалось подключиться к example.com порт 21: Соединение отклонено
Когда я останавливаю только сервис CSF (LFD и IPTABLES оставляю работающими) – все работает, тот же удаленный файл будет загружен той же командой ftp.
Включаю сервис CSF обратно – и снова “Соединение отклонено”
Так что логически проблема где-то внутри CSF – хотя собственный IP сервера в файле /etc/csf/csf.allow.
Конфигурация VSFTPD
pasv_enable=YES
pasv_min_port=35000
pasv_max_port=35999
port_enable=YES
Конфигурация CSF
# Разрешить входящие TCP порты
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,35000:35999"
# Разрешить исходящие TCP порты
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,35000:35999"
нет никаких “специфичных для страны” настроек
Среда – Almalinux 9 последняя версия, версия CSF v14.22 (generic)
Буду очень признателен за любые идеи, как найти корень проблемы,
Ответ или решение
Проблема с загрузкой файлов по FTP в AlmaLinux 9 с включенным CSF
После миграции на AlmaLinux 9 с CentOS 7 вы столкнулись с проблемой, при которой загрузка файлов по FTP с удалённых серверов (например, с использованием команды curl
) блокируется CSF (Config Server Security & Firewall). Несмотря на то, что все необходимые порты открыты, CSF блокирует соединение, вызывая ошибку curl: (7) Failed to connect to example.com port 21: Connection refused
. Давайте рассмотрим возможные причины этой проблемы и их решения.
1. Работа CSF и его настройки
CSF является мощным фаерволом, который управляет входящим и исходящим трафиком на сервере. Поскольку работа CSF влияет на сетевые соединения, важно убедиться, что его конфигурация правильная. Вы предоставили следующие настройки для TCP_IN и TCP_OUT:
# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,35000:35999"
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995,35000:35999"
Эти настройки выглядят корректными и включают необходимые порты для FTP (21, 20) и пассивных режимов (35000-35999).
2. Проверка правил CSF
Для поиска проблемы, выполните следующие шаги:
-
Проверьте журнал CSF:
- Журнал CSF может содержать информацию о том, почему соединения блокируются. Посмотрите файлы журналов (обычно
/var/log/lfd.log
и/var/log/csf.log
), чтобы увидеть, не блокируются ли IP-адреса или порты.
- Журнал CSF может содержать информацию о том, почему соединения блокируются. Посмотрите файлы журналов (обычно
-
Проверьте наличие дополнительных ограничений:
- Убедитесь, что в CSF нет дополнительных ограничительных правил или правил, связанных с аномальным трафиком (например,
CT_LIMIT
), которые могут блокировать FTP-соединения.
- Убедитесь, что в CSF нет дополнительных ограничительных правил или правил, связанных с аномальным трафиком (например,
-
Проверьте
/etc/csf/csf.allow
:- Включение вашего IP-адреса в чёрный список (
csf.allow
) является хорошей практикой. Вы упомянули, что серверный IP указан, но убедитесь, что он указан именно в правильной форме.
- Включение вашего IP-адреса в чёрный список (
3. Проверка конфигурации VSFTPD
Ваша конфигурация VSFTPD выглядит корректной:
pasv_enable=YES
pasv_min_port=35000
pasv_max_port=35999
port_enable=YES
Однако рекомендуется убедиться, что VSFTPD действительно прослушивает нужные порты и что ни одно другое приложение не блокирует доступ к ним (например, проверьте с помощью команды netstat -tuln | grep vsftpd
).
4. Тестирование
Чтобы протестировать, работает ли FTP в пассивном режиме, попробуйте выполнить команду:
curl -u user:password --ftp-pasv 'ftp://example.com/folder1/file1.zip' -o /var/www/html/df/file1.zip
Если соединение всё ещё не установлено, рассмотрите отключение CSF на тестовый период для установки соединения и проверки конфигурации.
5. Обновление CSF и AlmaLinux
Убедитесь, что у вас установлены последние обновления CSF и AlmaLinux. Иногда проблемы могут возникать из-за устаревшего ПО.
Заключение
Проблема с блокировкой загрузок по FTP при включенном CSF часто связана с неправильными настройками фаервола или конфигурации сервера. Следуя указанным выше рекомендациям, вы сможете выявить и устранить причину проблем со соединением. Если после выполнения всех шагов проблема всё ещё существует, может потребоваться более глубокий анализ сетевых настройках или консультация с поддержкой CSF.