Ftp и NAT, gamelton - с блог

Протокол за трансфер на файлове, първият стандартизиран в началото на 1970 г., се отнася до протоколите от приложния слой и предаване на данни съгласно протокола TCP транспорт. FTP е разработен в момент, когато клиенти и сървъри взаимодействат помежду си директно, без посредници и с най-малко препятствия.







FTP проблеми в днешните мрежи

В днешните мрежи (NAT, защитна стена, натоварване стабилизатор), следните характеристики на FTP не позволява тя да работи правилно:

Проблем 1 се дължи на факта, че устройството за маршрутизация или балансьор трябва да поддържа две връзки между един и същ източник и приемник.

Проблем възниква, тъй като 2 FTP може да не работи, ако входящите портове трябва да са силно ограничени само известен окончателно. Т.е. в традиционния FTP режим не само може да работи на открито пристанище част 21, съединение се използва за предаване на команди, но и изисква набор от висока стойност (49152-65534) отворени портове за предаване на данни.

Брой 5 е причинена от устройството за маршрутизация може да прекъсне "висеше" връзка за прехвърляне на команди.

Два режима на трансфер на данни в FTP

FTP поддържа два режима: активни и пасивни. Те се различават по механизма на установяване на връзка за пренос на данни:

  • В активен режим, сървърът е свързан с неговия 20-ти порт за определен клиент порт.
  • В пасивен режим, клиентът се свързва с произволен порт на посочения от Вас порта на сървъра.

По този начин, всички съвременни FTP-клиент се обсъжда със сървъра, от което се прехвърля данни и кой инициира свързване. Клиентът може да определи използването на активен режим на работа. изпращане на команда «PORT», която разказва на сървъра, който искате да се свържете с конкретен IP и порт на клиента, и да започне изпращане на данни. Или клиентът може да използва пасивен режим. Изпрати на команди "PASV" сървър, който дава информация на сървъра, че клиентът очаква ПР и порта на сървъра, за да започнете да получавате данни.

Тъй като клиентът първоначално се свързва със сървъра, за да се установи връзка за предаване на команди, това би било логично, ако връзката за данни е установен като клиент, т.е. Изпратих командата PASV (в същото време елиминира проблемите между FTP и защитна стена). Все пак, това не е така, създателите на спецификацията FTP по някаква причина реши, че предпочитаният начин да бъде най-PORT, PASV и подкрепата от страна на клиента, дори и ненужно.

FTP подкрепя достъпа на потребителско име и парола, но това не е безопасно, защото те се предават в обикновен текст. При използване на уеб браузър, можете да премине директно в URL адреса.







Пример сесии използващи активни и пасивни режими за предаване на данни

Частни проблеми:

PORT режим - FTP клиент е зад NAT или защитна стена

Решение 1. FTP клиент трябва да бъде конфигуриран да използва пасивен режим.

PASV режим - FTP сървър зад защитна стена

Когато един FTP сървър е зад защитна стена, клиентите ще имат проблеми с помощта на пасивен режим, за да се свържете към FTP сървър ефимерна порт. Най-честият проблем, когато защитната стена зад която FTP сървър позволява само връзки с редица известни пристанища и блокира други.

Решение 1: Администраторът може да отвори една група от портове на защитната стена, през която може да се случи връзката с FTP сървъра.

Решение 2: Ако имате подкрепата на защитната стена, администраторът може да бъде конфигуриран така, че пристанищата да се отварят автоматично, за да се установи пасивна връзка с FTP сървъра. Тази настройка е подобна на тази, описана за активните клиенти, намиращи се зад NAT. По този начин, когато защитната стена следи сървъра отговор FTP до поискване пасивен потребител, тя временно отвори порта е посочено в отговора, и то само за периода на разследването, от която е дошъл пасивен поискване.

PASV режим - FTP сървър зад NAT

PASV режим - FTP сървър зад стабилизатор натоварване

Нерешим проблем - защитни стени в двата края

Когато клиентът и сървърът са две зад защитни стени, които ограничават всички входящи връзки, с изключение на групи, известни пристанища, проблемите започват. Клиент не може да използва активен режим на работа, тъй като сървърът не може да се свърже с него, и не може да се използва пасивен режим, тъй като не може да се свърже с FTP сървъра.
В този случай, трябва да промените настройките на защитната стена и по-добре да го направя на сървъра страна.

FTP сървъра с нестандартен порт

Някои маршрутизиращи устройства са способни да обслужват FTP сесия, само ако се стигне до стандартния порт на сървъра. Ето защо, ако FTP сървърът слуша на нестандартен порт, трябва да конфигурирате устройството за маршрутизация, така че тя знаеше, че този порт е разположен FTP сървър и правилно с връзката.

Но дори и в този случай, на защитната стена от страна на клиента може да се предотврати. Това може да се случи, ако страната на клиента защитна стена неподвижно изисква връзка FTP данни от сървъра FTP произхожда от порт 20 (в активен режим). Ако FTP сървър работи на порт N, след това спецификацията FTP на своята връзка за данни ще произхождат от порт N - 1 и блокиран от защитна стена клиент.

Проблемите, предизвикани от защитни стени прекратява програмата FTP сесия

Този проблем възниква най-често при прехвърляне на големи файлове. Когато параметрите на връзката договорени и прехвърлянето е започнало, връзката за изпращане на команди, за да започне на празен ход, докато прехвърлянето на файлове е пълна. Ако устройството за маршрутизация не знае за FTP, и прехвърляне на файлове ще отнеме повече време, отколкото активността контра връзка върху него, връзката от гледна точка на маршрута устройство, за да надминем очакванията на време и ще бъде завършена и входящите пакети са отпаднали.

Решението на този проблем е устройство, което поддържа връзката за изпращане на команди към активно състояние, въпреки че това не е много време за предаване на пакети от него. Друг вариант - Активиране функция "Keep Alive" в стек TCP / IP протокола от страна на клиента или на сървъра, който изпраща пакета за да проверите наличността на равни интервали, а ако дестинация страна не отговори - обикновено се затваря връзката. Ако приемащата страна отговори, връзката от страна на защитната стена е винаги активен.