Зробити командний рядок Linux ftp клієнтом ігнорувати локальну IP-адресу в пасивному режимі


3

Я намагаюся підключитися до FTP-сервера, який знаходиться за NAT. Локальний IP-сервер - 172.23.11.41, а загальнодоступний IP-адреса - 194.239.61.58, і я підключаюся до публічного IP-адреси.

При введенні пасивного режиму сервер повертає свою локальну IP-адресу, яка є марною. Приклад:

227 Введення пасивного режиму (172,23,11,41,234,113).

Ft-клієнт командного рядка Linux не може встановити канал даних, коли це відбудеться.

Мені потрібно, щоб клієнт ftp ігнорував IP-адресу, повернуту пасивним режимом (PASV), або замість цього використовував розширений пасивний режим (EPSV), який повертає тільки номер порту. Приклад:

229 Введення розширеного пасивного режиму (||| 64607 |).

Чи є спосіб зробити це?

Редагувати: Мені сказали, що ми використовуємо ftp.x86_64, встановлену за допомогою виклику sudo yum install ftp.


1
Це має бути вирішене на рівні NAT (через модуль FTP ip_conntrack)
Eugen Rieck

Ви можете розглянути можливість використання активного режиму у вашому FTP-клієнті (і ваше запитання дійсно має сказати, який саме ви використовуєте; існує декілька FTP-клієнтів, які є частиною дистрибутивів Linux).
Toby Speight

Відповіді:


4

Виправити сервер. Він повинен бути налаштований, щоб повідомляти про свою зовнішню IP-адресу. Або NAT повинен бути налаштований для перекладу IP в PASV відповідь.

Загальний * nix ftp клієнт командного рядка не може бути налаштований для використання EPSV або використовувати підключення IP керування замість IP, що повертається в PASV відповідь.

Або використовуйте інший FTP-клієнт, наприклад tnftp (використовувати epsv4 або) curl (за замовчуванням - EPSV ).


Дякую. Я думаю, що деякі користувачі сервера пройшли через natting, а деякі ні, тому ми не можемо виправити сервер, оскільки він повідомляє правильну адресу для деяких користувачів. Ми можемо налаштувати додаткове накладання для наших вихідних дзвінків, як ви запропонували, але це не дуже. Ми просто використаємо іншого клієнта. Дякую.
Martin Ørding-Thomsen

0

Мартін Прикрил:

"Виправити сервер. Він повинен бути налаштований, щоб повідомляти про свою зовнішню IP-адресу. Або NAT повинен бути налаштований на переклад IP-адреси у відповідь PASV."

Я адміністратор FTP у великій установі, де ми використовуємо 4 вузли HA кластерного середовища FTP. 2 активних і 2 режими очікування, всі навантаження збалансовані і NAT. Проблема не обов'язково є "виправленням сервера". Наші сервери відповідають на локальні IP-адреси для PASV-з'єднань. Однак, якщо конфігурація LB і NAT правильно налаштована, клієнт повинен ігнорувати IP-адресу PASV і використовувати IP-з'єднання під час керування через з'єднання LB. Проблема ACTUAL - це помилка клієнта Linux FTP / S. Наша конфігурація - це звичайна, стандартна конфігурація, яка чудово працює з усіма іншими клієнтами, які підключаються до наших FTP-систем. Цю проблему ми бачимо тільки при використанні FTP / S на коробках linux або на нашому мейнфреймі. У linux і IBM z / OS клієнт FTP / S не дозволить підключення PASV, якщо PASV відрізняється від IP-каналу керування.

Просто хотів пояснити це.

До оригінального плаката: При цьому, можливо, спробуйте: ftp: ignore-pasv-address і переконайтеся, що це дозволить вам зробити підключення до каналу даних.


1
"КЛІЄНТ повинен ігнорувати IP PASV" - Чому? Де у FTP RFC ви бачили таку претензію?
Martin Prikryl

Тому що це звичайна конфігурація, коли FTP-сервери сидять за громадськими обличчям та внутрішніми брандмауерами, і повинні обслуговувати як внутрішніх, так і зовнішніх клієнтів. Це, зрештою, причина того, що практично (віртуально) кожен клієнт FTP має можливість ігнорувати відповідь IP PASV. Що стосується NAT, що переводить IP-адресу у відповідь PASV, на зашифрованих з'єднаннях NAT не знає вмісту пакета, що містить відповідь PASV.
Curtis Reynolds

Далі, оскільки RFC для FTP неоднозначно визначає відповідь PASV ... тобто не визначає конкретно, який вузол і порт повинні бути повернуті, тільки який вузол і порт для прослуховування сервер буде використовувати ... це не питання FTP RFC. Це питання конфігурації мережі та доступності клієнта.
Curtis Reynolds

Я трохи здивований, що автор програмного забезпечення FTP-клієнта потребує цього простого факту.
Curtis Reynolds

Це не те, що мені потрібно це пояснювати. Я вас розумію. Я просто не згоден. Imo, це завдання адміністратора зробити свій / її сервер працюючим з кожним FTP-клієнтом, який відповідає RFC. І якщо це неможливо, просто використовуйте іншу технологію, наприклад SFTP. - Я розумію, що вам може знадобитися зробити прагматичне рішення - це якісь випадки. Але не стверджуйте, що це те, чого слід дотримуватися в кожному випадку, не ставлячи під сумнів.
Martin Prikryl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.