Вопрос или проблема
Мне нужно настроить безопасную передачу файлов с клиентского компьютера на сервер FTP z/OS с использованием защищенного протокола TLS 1.2. Я пытаюсь использовать клиент lftp для этой цели.
Мой сервер Linux находится за брандмауэром. Я знаю, что хост z/OS принимает подключения на порту 990. Поэтому я запросил открытие этого порта в брандмауэре, но соединение по-прежнему завершается с ошибкой тайм-аута.
Из журнала lftp я вижу, что он пытается открыть некоторые другие порты, но не удается:
---- Подключение сокета данных к (9.17.211.82) порт 35854
**** Ошибка сокета (Индикатор соединения истек) - повторное подключение
Он делает много попыток каждый раз к новому порту.
Вопрос: какие порты мне нужно запросить, чтобы lftp работал?
Я на Red Hat:
NAME="Red Hat Enterprise Linux Server"
VERSION="7.7 (Maipo)"
Использую lftp версии 4.4.8
lftp -v
LFTP | Версия 4.4.8 | Авторские права (c) 1996-2013 Александр В. Лукьянов
LFTP является бесплатным программным обеспечением: вы можете перераспределять и/или изменять
его на условиях GNU General Public License, как это издано
Фондом Свободного Программного Обеспечения, либо третьей версии Лицензии, либо
(по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезна,
но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии
ТОРГОВОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. См.
GNU General Public License для получения более подробной информации.
Вы должны были получить копию GNU General Public License
вместе с LFTP. Если нет, смотрите <http://www.gnu.org/licenses/>.
Отправляйте отчеты об ошибках и вопросы на почтовый список <[email protected]>.
Используемые библиотеки: Readline 6.2
Если вы находитесь за брандмауэром или маршрутизатором, вам нужно использовать “пассивный” FTP.
В “обычном” FTP сервер пытается подключиться к клиенту, но инициировать соединение с сервера к клиенту часто невозможно. “Пассивный” FTP использует только соединения, инициированные со стороны клиента.
Все FTP-клиенты поддерживают пассивный FTP, вам просто нужно выяснить соответствующую опцию. В командам обычного FTP это команда PASV
, если я не ошибаюсь.
Ответ или решение
Для успешной настройки безопасной передачи файлов с помощью клиента lftp с Linux на ftp-сервер z/OS, работающий по протоколу TLS 1.2, необходимо учитывать несколько важных аспектов, связанных с конфигурацией брандмауэра и оптимизацией работы клиента.
1. Описание проблемы
Ваш Linux-сервер находится за брандмауэром и использует клиент lftp для подключения к серверу. Вы уже открыли порт 990, что является стандартным портом для FTPS (FTP Secure). Однако, как вы отметили в логах lftp, клиент пытается открыть дополнительные порты, что ведет к ошибкам соединения.
2. Открытые порты для lftp
Для работы lftp в режиме FTPS, необходимо учитывать следующие основные моменты:
Управляющий порт
- Порт 990: Этот порт используется для защищенного подключения. Убедитесь, что он открыт в брандмауэре, чтобы обеспечить возможность инициации управляемых соединений.
Данные
lftp в режиме пассивного FTP (PASV) требует открытия диапазона портов для передачи данных. Это связано с тем, что в режиме PASV сервер отправляет обратно клиенту IP-адрес и порт для подключения, поэтому необходимо следующее:
- Пассивный FTP: Для корректной работы вам нужно открыть определенный диапазон портов для передачи данных. Обычно рекомендуется открыть диапазон от 1024 до 65535. Для более безопасной конфигурации вы можете ограничить диапазон, например, 50000-51000, если ваш сервер так настроен. Вам нужно будет проверить настройки вашего FTP-сервера на предмет диапазона используемых портов.
3. Конфигурация lftp
Для использования пассивного режима FTP с lftp, вы можете добавить следующую настройку в конфиг или просто указать её при запуске:
set ftp:passive on
Это обеспечит использование постоянных исходящих соединений, что улучшит совместимость с брандмауэрами и NAT.
4. Заключение
Чтобы обеспечить надежное открытие соединений и Вам было легче работать с клиентом lftp, вам следует:
- Убедиться, что порт 990 открыт для входящих соединений.
- Открыть диапазон портов, который будет использоваться для пассивного режима передачи данных.
- Настроить lftp на использование пассивного режима, если это еще не сделано.
Эти шаги помогут устранить проблемы с тайм-аутами и обеспечить стабильное соединение для безопасной передачи данных. Убедитесь также в корректной конфигурации самого z/OS сервера для поддержки FTPS и пассивного режима.
Здравствуйте! Столкнувшись с подобной проблемой, хочу предложить альтернативное решение, которое может упростить настройку и обойти ограничения брандмауэра.
Рассмотрите возможность использования SFTP вместо FTPS. SFTP (SSH File Transfer Protocol) работает поверх SSH и использует только один порт — по умолчанию 22. Это значительно упрощает конфигурацию брандмауэра, так как вам не нужно открывать дополнительные порты для передачи данных.
Преимущества SFTP:
Использует единый порт, что облегчает настройку сетевой безопасности.
Обеспечивает шифрование и аутентификацию из коробки.
Широко поддерживается и обычно не требует дополнительных настроек на клиентской стороне.
Если переход на SFTP не возможен из-за ограничений сервера z/OS, можно попробовать следующие шаги:
Ограничьте диапазон пассивных портов на сервере z/OS. Настройте FTP-сервер так, чтобы он использовал определенный диапазон портов для пассивных соединений (например, 50000–51000). Затем попросите открыть этот диапазон в брандмауэре. Это сократит количество открытых портов до необходимого минимума.
Настройте lftp на использование этого диапазона портов. В lftp можно указать параметры для работы с определенным диапазоном пассивных портов, что обеспечит согласованность между клиентом и сервером.
Проверьте настройки брандмауэра на клиентской стороне. Убедитесь, что исходящие соединения из вашего Linux-сервера не блокируются на уровне локального брандмауэра или iptables.
Обновите версию lftp. Вы используете lftp 4.4.8, которая довольно старая. Более новые версии могут содержать исправления и улучшения, касающиеся работы с FTPS и пассивными соединениями.
Также стоит проверить, не включен ли на сервере режим защиты данных (защищенный канал данных). В некоторых конфигурациях FTPS требуется, чтобы и управление, и данные были защищены, что может вызвать проблемы с соединением, если это не учтено на клиенте.
Надеюсь, эти рекомендации помогут вам найти оптимальное решение и наладить стабильную и безопасную передачу файлов. Удачи!