Проблема с FTP
Добавлено: 21 сен 2017, 08:44
Доброго всем времени суток!
Так уж получилось, что роутер Mikrotik оказался в моих руках второй раз в жизни. Поэтому прошу не пинать, если я не понимаю каких-то вещей, кажущихся более опытным товарищам очевидными.
Итак возникла необходимость организовать в офисе резервный канал Интерента, после недолгих раздумий выбор пал на Mikrotik, как на оптимальный с точки зрения цена-качество-функционал. С первоначальной настройкой и резервным каналом разобрался быстро, благодаря найденным на просторах сети инструкциям. Настраивал через WinBox. Но тут засада обнаружилась там, откуда не ждал. Помимо рабочих станций, потребляющих Интернет с целью веб-серфинга, в организации имеется сервер, на котором поднят FTP (IIS), к нему подключаются для обмена файлами планшеты торговых представителей с Агент+, помимо этого, этот же сервер посредством штатного виндового ftp-клиента отправляет бэкапы SQL на удаленный FTP-сервер. На старом добром TP-Link вся эта конструкция успешно функционировала. На Микротике я пробросил порт 21 из внешних интерфейсов на IP сервера и создал правило masquerade для переправки ftp-пакетов из локальной сети на сервер, когда агентские планшеты стучаться туда по внешнему адресу, сами находясь в офисном Wi-Fi. С подключением извне проблем нет: подключиться можно и в активном, и в пассивном режиме, а вот изнутри к внешним FTP подключиться можно только в пассивном. В активном режиме соединение устанавливается, проходит авторизация и все повисает. Подключиться не может ни встроенный ftp.exe (у него вообще нет пассивного режима), ни FileZilla, ни Total Commander, когда они настроены на активное подключение. Знаю, что при активном FTP после установки управляющего соединения через порт 21, клиент передает серверу рандомный порт из диапазона и тот уже цепляется на него своим портом 20 для передачи данных. Насколько я понимаю именно это подключение и не проходит через Микротик, но как это исправить нигде информации найти я не смог. Отсюда вопрос № 1: Как обучить Микротик переправлять пакеты данных от удаленного сервера к клиенту в локальной сети? Экспериментальным путем обнаружил, что если на вкладке IP->Firewall->Service Ports строку ftp сделать disable, активное подключение изнутри наружу начинает работать. Но найти какое-либо понятное мне описание, что это за "Service Ports", какое их предназначение и к чему приводит их включение-отключение я найти опять же не смог. Вопрос № 2: Для чего нужна вкладка Service Ports и каково ее влияние в моей ситуации? Но даже после отключения строки "ftp" в Service Ports активный режим заработал неполноценно: Total Commander подключается и отправляет/получает файлы нормально, а вот из командной строки встроенным ftp-клиентом отправить файлы не удается: соединение устанавливается, но через несколько секунд ftp.exe выдает "bye" и соединение обрывается (а именно с его помощью у меня происходит отправка резервных копий БД). Из этого делаю вывод, что отключение ftp в Service Ports - есть какая-то полумера, а не решение.
Буду признателен любым подсказкам знатоков! Сроки поджимают, а быстро лопатить тонны англоязычных источников не позволяют скромные знания языка...
Так уж получилось, что роутер Mikrotik оказался в моих руках второй раз в жизни. Поэтому прошу не пинать, если я не понимаю каких-то вещей, кажущихся более опытным товарищам очевидными.
Итак возникла необходимость организовать в офисе резервный канал Интерента, после недолгих раздумий выбор пал на Mikrotik, как на оптимальный с точки зрения цена-качество-функционал. С первоначальной настройкой и резервным каналом разобрался быстро, благодаря найденным на просторах сети инструкциям. Настраивал через WinBox. Но тут засада обнаружилась там, откуда не ждал. Помимо рабочих станций, потребляющих Интернет с целью веб-серфинга, в организации имеется сервер, на котором поднят FTP (IIS), к нему подключаются для обмена файлами планшеты торговых представителей с Агент+, помимо этого, этот же сервер посредством штатного виндового ftp-клиента отправляет бэкапы SQL на удаленный FTP-сервер. На старом добром TP-Link вся эта конструкция успешно функционировала. На Микротике я пробросил порт 21 из внешних интерфейсов на IP сервера и создал правило masquerade для переправки ftp-пакетов из локальной сети на сервер, когда агентские планшеты стучаться туда по внешнему адресу, сами находясь в офисном Wi-Fi. С подключением извне проблем нет: подключиться можно и в активном, и в пассивном режиме, а вот изнутри к внешним FTP подключиться можно только в пассивном. В активном режиме соединение устанавливается, проходит авторизация и все повисает. Подключиться не может ни встроенный ftp.exe (у него вообще нет пассивного режима), ни FileZilla, ни Total Commander, когда они настроены на активное подключение. Знаю, что при активном FTP после установки управляющего соединения через порт 21, клиент передает серверу рандомный порт из диапазона и тот уже цепляется на него своим портом 20 для передачи данных. Насколько я понимаю именно это подключение и не проходит через Микротик, но как это исправить нигде информации найти я не смог. Отсюда вопрос № 1: Как обучить Микротик переправлять пакеты данных от удаленного сервера к клиенту в локальной сети? Экспериментальным путем обнаружил, что если на вкладке IP->Firewall->Service Ports строку ftp сделать disable, активное подключение изнутри наружу начинает работать. Но найти какое-либо понятное мне описание, что это за "Service Ports", какое их предназначение и к чему приводит их включение-отключение я найти опять же не смог. Вопрос № 2: Для чего нужна вкладка Service Ports и каково ее влияние в моей ситуации? Но даже после отключения строки "ftp" в Service Ports активный режим заработал неполноценно: Total Commander подключается и отправляет/получает файлы нормально, а вот из командной строки встроенным ftp-клиентом отправить файлы не удается: соединение устанавливается, но через несколько секунд ftp.exe выдает "bye" и соединение обрывается (а именно с его помощью у меня происходит отправка резервных копий БД). Из этого делаю вывод, что отключение ftp в Service Ports - есть какая-то полумера, а не решение.
Буду признателен любым подсказкам знатоков! Сроки поджимают, а быстро лопатить тонны англоязычных источников не позволяют скромные знания языка...