Понимание и настройка FTP за маршрутизатором с моей конфигурацией

Я пытаюсь настроить свой FTP, работающий на моем локальном компьютере, который подключается к моей панели управления (162.0.0.1), имеющей встроенный FTP-клиент. Мой локальный сервер (192.168.1.30) подключен к панели управления как игровой сервер с общедоступным IP-адресом (152.5.5.5). Порт 20/21 перенаправлен на мой маршрутизатор, но по какой-то причине я не могу заставить этот FTP-сервер работать на моем локальном компьютере с доступом извне моей локальной сети. Возможно, я неправильно настроил конфигурацию FTP, но при запуске FTP-сервера можно получить доступ локально, а не извне.

  • 192.168.1.30 — Локальный FTP-сервер с запущенным на нем демоном & игровой сервер за моим маршрутизатором.
  • 152.5.5.5 — Мой внешний IP-адрес
  • 162.0.0.1 — Веб-сервер панели управления с веб-клиентом FTP. Это VPS в lalaland.

Config162.0.0.1 -> 152.5.5.5 -> 192.168.1.30

Панель управления Multicraft для управления игровыми серверами. У них есть встроенный FTP-клиент, который использует net2ftp в браузере, который в данном случае подключается к FTP-серверу 152.5.5.5/192.168.1.30.

Это все машины Linux, а маршрутизатор — это ASUS с прошивкой merlin. Порт 21, 20, порты 5000-6000 перенаправляются на маршрутизатор для FTP.

Вот файл конфигурации, с которым я работаю, он находится на компьютере 152.5.5.5/192.168.1.30.

  [ftp] ## Включать или нет встроенный FTP-сервер, true/false ## default: trueenabled = true ## IP для прослушивания FTP-подключений, раскомментировать использование  то же, что ## для демона. ## 0.0.0.0 означает прослушивание всех доступных интерфейсов (всех IP-адресов) ## по умолчанию: то же, что и настройка "ip" для демона, см. выше ftpIp = 192.168.1.30 ## См. описания  из «externalIp» и «ip» для демона выше ## по умолчанию: то же, что и «externalIp», если «ftpIp» равен «0.0.0.0», иначе «ftpIp» #ftpExternalIp = 152.5.5.5 ## Маскарадный IP-адрес для использования в пассивном  FTP-соединения, когда ## Multicraft работает за маршрутизатором. ## default: emptyftpNatIp = 152.5.5.5 ## Диапазон портов, используемый для пассивной передачи данных.  Если это не ## указано, FTP-сервер будет использовать случайные порты. ## Формат: 4000-8000 ## default: emptyftpPasvPorts = 5000-6000 ## Порт для прослушивания входящих FTP-соединений.  Измените это на ## что-нибудь еще, если вы уже используете FTP-сервер в этой ## системе. ## default: 21ftpPort = 21 ## Файлы сопоставления регулярных выражений, которыми пользователи ## никак не могут управлять.  Если вы хотите, чтобы пользователи могли загружать свои ## плагины вместо тех, которые вы им предоставляете, вы можете ## просто закомментировать эту опцию. ## default: emptyforbiddenFiles = ## Установите уровень детализации журнала FTP-сервера  сообщения в multicraft.log. ## Ошибки всегда будут регистрироваться независимо от этого параметра. ## Доступные уровни: ## полный - Регистрировать все сообщения ## базовый - Не регистрировать обмен данными между клиентом и сервером ## none - Нет протоколирования FTP ## default: fullftpLogLevel = full ## Если этот параметр включен, FTP-сервер не будет  запускаться при запуске основного процесса демона ##.  Вы можете запустить FTP-сервер отдельно, используя ## "start_ftp" вместо "start" в качестве параметра для команды демона. ## default: falseftpSeparate = false ## PID-файл для процесса только FTP.  Путь указывается относительно "baseDir" ## default: multicraft_ftp.pidftpPidFile = multicraft_ftp.pid ## Файл журнала для использования только для процесса FTP.  Этот параметр не действует, если ## FTP-сервер запускается как часть основного процесса демона (т.е. если ## "ftpSeparate" ложно. ## default: multicraft.log (то же, что и демон) ftpLogFile = multicraftftp.log #  # Ограничение пропускной способности FTP (экспериментально) ## Ограничение входящего трафика (Кб/с) ## по умолчанию: 0 (неограниченно) #ftpThrottleIn = 0 ## Ограничение исходящих данных (КБ/с) ## по умолчанию: 0 (неограниченно) #ftpThrottleOut  = 0  

Я попытался установить ftpPasvPorts = на 5000-6000, но мне не повезло. Также переключение настроек IP/ExternalIp не дало результатов. В настоящее время я не знаю, что Я делаю это из-за недостатка идей.

Чтобы добавить к этому, на локальном сервере 152.5.5.5/192.168.1.30 работает демон, который использует FTP-сервер. Конфигурация демона следующая. следует ниже.

  ## Демон будет прослушивать следующий IP/порт. ## 0.0.0.0 для прослушивания всех доступных интерфейсов (всех IP). Обратите внимание, что ##  вам нужно будет использовать настройку "externalIp" ниже, если вы установите это ##  на 0.0.0.0, поскольку контрольной панели необходимо знать, куда подключаться. ip = 192.168.1.30 port = 25465 ## Если внешний адрес отличается от адреса прослушивания ##, вы можете установить здесь внешний адрес.  Этот параметр будет ## сохранен в БД и использован панелью управления для подключения к демону. ## default: то же, что и "ip" externalIp = 152.5.5.5  

Они все в одном файле конфигурации.

Демон подключается к панели управления на 162.0.0.1, которая затем позволяет управлять игровым сервером вместе с FTP-сервером. Я включил пассивный FTP в панели управления.

Примечание * FTP работает локально. Я могу получить доступ к FTP-серверу 152.5.5.5/192.168.1.30 локально с помощью filezilla, но не извне.

РЕДАКТИРОВАТЬ: Ниже приведен журнал ошибок с ftptest.net

   Предупреждение: незащищенный FTP небезопасен.  Вы должны использовать явный FTP через TLS. Статус: Разрешение адреса 152.5.5.5 Статус: Подключение к 152.5.5.5 Предупреждение: Введенный адрес не разрешается в адрес IPv6 Статус: Подключен, ожидает приветственного сообщения ... Ответ: 220  Multicraft 2.1.1 FTP-сервер Команда: CLNT https://ftptest.net от имени 152.5.5.5 Ответ: 500 Команда "CLNT" не понята. Команда: ПОЛЬЗОВАТЕЛЬ cisnet.3 Ответ: 331 Имя пользователя в порядке, отправить пароль. Команда: PASS ********** Ответ: 230 Успешный вход в систему Команда: SYSTReply: 215 Тип UNIX: L8 Команда: FEATReply: 211-Поддерживаемые функции: Ответ: EPRTeply: EPSVReply: MDTMReply: тип MLST *; разрешение *; размер  *; изменить *; уникальный *; unix.mode; unix.uid; unix.gid; Ответ: REST STREAMReply: SIZEReply: TVFSReply: UTF8Reply: 211 End FEAT.Command: PWDReply: 257 "/" - текущий каталог.  Текущий путь:/Команда: TYPE IReply: 200 Тип установлен на: Binary.Command: PASVReply: 227 Переход в пассивный режим (192,168,1,30,186,215). Ошибка: сервер вернул немаршрутизируемый частный IP-адрес в ответе PASV  

РЕДАКТИРОВАТЬ # 2 Я наконец понял основную проблему FTP. FTP теперь работает с внешнего адреса 152.5.5.5, который подключается к моей локальной машине 192.168.1.30, изменив ftppasv = 152.5.5.5. Панель управления, однако, не хочет подключаться к FTP даже в пассивном режиме … пытается найти журналы панели управления, чтобы раскрыть скрытый секрет …. Также порт FTP был изменен с 21 на 513.


Вопрос в настоящее время помечен sftp, но вообще не упоминает SFTP.

Большинство современных протоколов будут полагаться на информацию в IP заголовок. Маршрутизаторы, поддерживающие такие функции, как «переадресация портов» (для входящего трафика) и «преобразование сетевых адресов» (NAT) (для исходящего трафика), как правило, просматривают заголовки в IP-пакетах и ​​вносят соответствующие изменения.

FTP — довольно уникальный протокол. Как и чат ICQ, это очень старый протокол, который включает IP-адреса в полезные данные IP-пакета. Это ужасно ломает ситуацию, когда брандмауэры блокируют входящий трафик, за исключением известных портов.

Маршрутизаторы в середине могут изменять заголовки IP, переводя адреса между общедоступными IP-адресами и частными IP-адресами, а номера портов TCP могут быть изменены. в процессе. Обычно это нормально, если маршрутизаторы могут отслеживать отдельные разговоры и постоянно изменять IP-адреса (и, возможно, номера портов TCP) согласованным образом. Однако FTP ожидает, что полезные данные также будут соответствовать используемым IP-адресам и номерам портов TCP. Маршрутизаторы обычно не регулируют раздел полезной нагрузки данных IP-адреса, поэтому он ломается.

Правильным решением этой ситуации является отказ от использования FTP, который обычно требует аутентификации и передает данные аутентификации без шифрования и передача файлов без шифрования, а также проблемы с межсетевыми экранами (что произошло из-за того, что FTP был разработан в эпоху до того, как межсетевые экраны были распространены). Вместо этого используйте SFTP, SCP, HTTPS или, может быть, FTPS.

Есть еще один подход, который может решить проблему. В отличие от ICQ, у которого была такая же проблема, FTP — это более старый протокол, который исторически был довольно популярен. Многие маршрутизаторы поддерживают функцию, называемую «FTP-прокси». По сути, это заставляет брандмауэр больше мешать FTP-связи и изменять полезную нагрузку данных таким образом, чтобы FTP-соединения работали..

Итак, это ваши варианты.

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

Таким образом, FTP работает (с использованием FTP в «активном режиме») так, что FTP-клиент создает TCP-соединение с FTP-сервером (обычно это прослушивание TCP-порта 21). Вы можете войти в систему и увидеть списки файлов. Затем, когда пользователь запрашивает передачу файла программному обеспечению, FTP-сервер сообщает FTP-клиенту, какой TCP-порт FTP-клиент должен слушать, а FTP-сервер создаст второе TCP-соединение, которое обычно включает TCP-порт 20.

В «пассивном режиме» FTP клиент FTP создает TCP-соединение с FTP-сервером (который обычно прослушивает TCP порт 21). Вы можете войти в систему и увидеть списки файлов. Затем, когда пользователь запрашивает передачу файла программой, FTP-сервер сообщает FTP-клиенту, какой TCP-порт FTP-сервер будет прослушивать для второго TCP-соединения, а затем FTP-клиент создаст второе TCP-соединение, которое обычно включает TCP-порт 20.

Итак, в пассивном режиме, если FTP-клиент находится за маршрутизатором, проблема может быть в в основном обходится. Однако для этого потребуется, чтобы FTP-сервер не находился за маршрутизатором без прокси, который может менять адреса. Если у вас есть FTP-сервер, который не находится за маршрутизатором без прокси, который может менять адреса, этот один компьютер может без проблем обслуживать множество FTP-клиентов. Поэтому многие люди пытались использовать пассивный режим FTP и думали, что они научились тому, что «пассивный режим FTP» — это некий процесс, который, кажется, волшебным образом исправляет эти странные ошибки с FTP, которые позволяют просматривать списки каталогов, но не передавать файлы.

Однако использование пассивного режима просто перекладывает ответственность с клиента на сервер. Люди, использующие FTP-клиенты и пробующие «пассивный режим», могли обнаружить, что это «волшебное» исправление работает на некоторых FTP-сайтах, но не работает на других. Более того, когда все больше людей заинтересовались запуском FTP-серверов, они обнаружили, что «пассивный режим FTP» ничего не исправляет.

Итак, вы можете попробовать обходной путь использования пассивного режима, но поймите, что такой обходной путь не решает все сценарии.

Некоторая доступная документация, обсуждающая это: OpenBSD pf: FTP.

Итак, еще раз, чтобы повторить варианты:

  • Можно попробовать пассивный режим. Не исправит все сценарии.
  • Можно включить FTP-прокси.. Позволяет FTP работать, но не устраняет критические недостатки конфиденциальности (отслеживаемые пароли, отслеживаемое содержимое файловых данных).
  • Используйте другие протоколы:
    • SFTP (отличный выбор , никаких недостатков кроме того, поддерживает ли программное обеспечение этот отличный выбор)
    • HTTPS (часто используется для загрузки файлов, инициируемой вручную, из-за широко распространенных связанных клиентов, которые его поддерживают)
    • SCP (решает проблемы, но вряд ли получит будущие обновления)
      • Комментарий о будущих обновлениях основан на некоторой документации, которая исторически была доступна по адресу https://www.openssh.com/faq.html # 2.10 но на данный момент я публикую этот ответ, похоже, что URL возвращает 404, а у Archive.org есть технические проблемы. Возможно, вам повезет, если вы посмотрите это в другой раз.
    • или, возможно, FTPS (по сути, FTP с некоторой поддержкой для повышения безопасности).


Как мне настроить FTP-сервер за маршрутизатором на DNS-323?

-> -> -> -> ->

Шаг 1: Журнал в конфигурацию DNS-323 , щелкните вкладку Дополнительно и выберите FTP-сервер .

Шаг 2: Настройте пользователей Настройки FTP-сервера для доступа пользователей и Сохраните настройки .

Шаг 3: Запустите FTP-сервер.


Если вы находитесь за router , вам нужно будет перенаправить FTP-порт с маршрутизатора на DNS-323 . Возможно, потребуется изменить дополнительные настройки фильтрации и брандмауэра на вашем маршрутизаторе , чтобы разрешить FTP доступ к DNS-323 из Интернет . Как только порт будет перенаправлен на маршрутизатор , пользователи из Интернета получат доступ к FTP. через WAN IP-адрес маршрутизатора .

Шаг 4: Настройте правило перенаправления портов .

** Если вы используете маршрутизатор D-Link , такой как WBR-2310 , используемый в примере ниже , ваше правило переадресации портов должно быть похоже на следующее:

Имя — имя правила FTP-сервера DNS-323.
IP Address — введите IP-адрес DNS-323.
Public Port
— введите общедоступный порт FTP. По умолчанию это порт 21.
Частный порт
— введите частный порт FTP. По умолчанию это порт 21.
Traffic
-Type Установите тип трафика на TCP.

Шаг 5. Сохраните настройки.

Если вы используете FTP-порт, отличный от 21 , то пользователи, получающие доступ к FTP-серверу , используя FTP-клиент должен будет указать нестандартный порт , а пользователи , использующие браузер, должны будут укажите порт в URL-адресе (например, ftp://ftp.dns323.com:3000).

//

-> ->

Оцените статью
logicle.ru
Добавить комментарий