Режимы работы ftp серверов
Главная » Заметки » Разное » Режимы работы ftp серверов
Для FTP необходимо 2 соединения — первое для команд и второе для данных.Первое соединение (с данными) всегда идет от клиента на сервер, а вот направление второго различается для активного и пассивного режимов.
В случае активного FTP второе соединение идет от сервера на клиентский компьютер, но так как такое соединение стало невозможно из-за NAT-ов и Firewall-ов, то изобрели пассивный режим, в котором сервер говорит клиенту (через первое соединение) на какой порт открывать второе соединение (обычно порт выбирается сервером случайно в каком-то диапазоне) и второе соединение тоже открывается с клиентского компьютера на сервер.
Одним важным моментом является то, что большинство FTP серверов (по крайней мере, под Windows) не позволяют ограничивать диапазон портов для второго соединения, что усложняет конфигурацию Firewall-ов и делает невозможной нормальную защиту для многих из них. Например, Serv-U — один из немногих позволяет ограничивать этот диапазон.
Из «ЧАВО» TMeter
FTP-протокол подразумевает два различных соединения между клиентом и FTP-сервером. Первое соединение называется «управляющим» (control connection). Оно предназначено для «входа» клиента в FTP-сервера, перехода между каталогами в FTP-сервере и т.п. Для того, чтобы получить список файлов с сервера, скачать файл с сервера или закачать файл на сервер, используется второе соединение, называемое «соединение для передачи данных» (data connection).
Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
В активном режиме, когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.
В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.
Главное отличие между активным режимом FTP и пассивным режимом FTP — это сторона, которая открывает соединение для передачи данных. В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.
Пример активного соединения:
[1] Control Connection: Client port 1026 > Server port 21 [2] Data Connection: Client port 1027 < Server port 20
Пример пассивного соединения:
[1] Control Connection: Client port 1026 > Server port 21 [2] Data Connection: Client port 1027 < Server port 2065