Настройка FTP-сервера при работе через маршрутизатор. |
Немного теории.
При работе по протоколу FTP между клиентом и сервером устанавливается два
соединения - управляющее (по нему идут команды) и соединение передачи данных (по
нему передаются файлы). Управляющее соединение одинаково для Активного и
Пассивного режима. Клиент инициирует TCP-соединение с динамического порта
(1024-65535) к порту номер 21 на FTP-сервере и говорит "Привет! Я хочу
подключится к тебе. Вот мое имя и мой пароль". Дальнейшие действия зависят от
того, какой режим FTP (Активный или Пассивный) выбран.
- Активный режим. Когда клиент говорит "Привет!" он так же
сообщает серверу номер порта (из динамического диапазона 1024-65535) для того,
чтобы сервер мог подключиться к клиенту для установки соединения для передачи
данных. FTP-сервер подключается к заданному номеру порта клиента, используя со
своей стороны номер TCP-порта 20 для передачи данных. Для клиента такое
соединение является входящим. Так что зачастую работа в активном режиме
клиентов, находящихся за файрволлом или NAT затруднена или требует
дополнительных настроек.
- Пассивный режим. В Пассивном режиме, после того как
клиент сказал "Привет!", сервер сообщает клиенту свой IP адрес и номер
TCP-порта (из динамического диапазона 1024-65535), к которому можно
подключиться для установки соединения передачи данных. В дальнейшем будем
называть их пассивными портами. При этом, как легко
заметить, порты в таком соединении, как со стороны клиента, так и со стороны
сервера оказываются произвольными. В пассивном режиме клиент легко может
работать с сервером сквозь свой файрволл, но зачастую для поддержки пассивного
режима сервером требуется соответствующая настройка файрволла уже на стороне
сервера.
Главное отличие между Активным режимом FTP и Пассивным режимом FTP - это
сторона, которая открывает соединение для передачи данных. В Активном режиме
клиент должен суметь принять это соединение от FTP-сервера. В Пассивном режиме
клиент всегда инициирует это соединение сам, и принять его должен уже сервер.
Пассивный режим работы FTP предназначен для соединения
клиентов, находящихся за Firewall. Кроме того, большинство браузеров
используют именно этот режим доступа к данным на FTP. Следовательно, в
домашних сетях именно этот режим работы должен быть
основным режимом FTP-сервера, если Вы хотите, чтобы у
пользователей не было проблем с доступом. Его настройкой мы и будем заниматься
ниже.
Предмет настройки.
Если FTP-сервер подключен к интернету через маршрутизатор, для работы
Активного режима достаточно открыть 21 порт и переадресовать его на FTP-сервер
-больше практически ничего настраивать не требуется. С
Пассивным режимом все обстоит значительно хуже. Вот список проблем,
которые придется решить:
- FTP-сервер сообщает клиенту свой IP адрес. Но он стоит за
маршрутиатором, а это значит, что сервер имеет локальный адрес внутренней сети
и ничего не знает о внешнем адресе, который должен выдавать клиенту. Эта
проблема решается с помощью настройки программы FTP-сервера - ей объясняется,
какой IP надо выдавать внешним клиентам.
- FTP-сервер сообщает клиенту номер TCP-порта (из динамического
диапазона 1024-65535), к которому можно подключиться. Но все эти порты на
вход закрывает маршрутизатор, и он ничего не знает о том, какой порт надо
открыть для установки FTP-сессии ( вариант открытия всех портов не
рассматривается, мы все-таки не самоубийцы ). Для решения этой проблемы мы сами
выберем диапазон в 1-3 пассивных порта, откроем их на маршрутизаторе
и настроим в программе FTP-сервера выдаваемые пассивные порты на
наш выбранный диапазон.
- Порты, которые мы открываем на маршрутизаторе, надо перенаправить на
конкретный локальный IP FTP-сервера. FTP-сервер, подключенный к
маршрутизатору, может получать локальный IP по DHCP ( автоматически в момент
подключения к маршрутизатору ) и он при очередном перезапуске системы может
отличаться от настроенной переадресации портов на маршрутизаторе. Для
этого в маршрутизаторе установим жесткое соответствие между FTP и
его локальным IP.
Все настройки рассмотрим на примере маршрутизатора 3Com OfficeConnect
Wireless 11g 108Mbps Cable/DSL Router и программы FTP-сервера
Gene 6. Почему, собственно, выбраны именно эти
претенденты? Очень просто - именно этот роутер у меня сейчас живет, и я
могу сделать скрин-шоты. С программой чуть интереснее - именно в ней я нашел
все необходимые параметры, которые надо настроить.
Настраиваем маршрутизатор.
Начнем с привязки FTP-сервера к определенному локальному IP-адресу. Это
можно сделать, прописав IP на самом сервере. Второй путь - на
маршрутизаторе определить соответствие MAC-адреса FTP-сервера и IP, который будет
даваться маршрутизатором ( в этом случае на сервере устанавливаем получение IP -
автоматически ). Для этого в меню маршрутизатора выбираем LAN
Settings -> Static DHCP Assignment и вводим MAC и локальный IP
(допустим, он у нас будет 192.168.1.166) FTP-сервера, как показано на
рис. 1.

Рис.1. Определение локального IP-адреса.
Теперь откроем нужные порты и переадресуем их на FTP-сервер. Для этого
войдем в меню Firewall -> Virtual Servers (Рис.
2). Прежде всего, открываем 21 порт для
управляющего соединения и вписываем локальный адрес нашего FTP -
192.168.1.166. Затем выбираем диапазон пассивных портов,
допустим 6021-6023, и так же открываем и переадресуем их на
локальный адрес нашего FTP - 192.168.1.166.

Рис. 2. Перенаправление портов.
Для тех, кто хочет иметь доступ к консоли управления FTP Gene 6 из
интернет, надо открыть порт 8021. Этот порт используется по
умолчанию и может быть изменен на любой другой в программе Gene 6, установленной
на сервере. Кроме того, для удаленного управления сервером вам понадобится
правильный внешний IP от вашего провайдера.
На этом с маршрутизатором покончено. Не забудьте его перезагрузить, нажав
кнопку APPLY, чтобы все изменения вступили в силу.
Настраиваем FTP сервер.
Осталось объяснить нашему FTP-серверу, какой IP и пассивные порты он должен
выдавать своим клиентам. Для этого запускаем консоль
управления и входим в свойства нашего сервера. В свойствах
выбираем Настройки и в пункт "Перенаправить
PASV IP" вписываем ваш IP-адрес, полученный от провайдера. В
"Диапазон портов для пассивного режима" вносим выбранные
нами и открытые на роутере пассивные порты 6021-6021.

Рис. 3. Настройка пассивного режима Gene 6.
Все,о наших клиентах мы позаботились. Но при таких
настройках из локальной сети к FTP-серверу придется присоединяться через внешний
IP-адрес, полученный от провайдера. Т.е. локальный клиент должен
выйти через маршрутизатор с провайдерским IP в интернет и сразу же
зайти обратно через тот же маршрутизатор, чтобы подключиться к локальному
ресурсу. К сожалению, не все маршрутизаторы могут выполнить этот
маневр, поэтому пора позаботится о себе. Для этого настроим Gene 6 так,
чтобы локальным клиентам выдавался не IP провайдера, а локальный
IP:

Рис. 4. Выдача локального IP в локальную
сеть.
Если вы нашли какие-либо неточности или у вас
есть вопросы или дополнения - пишите.
Михаил ( Msoft)
|