Tag Archives: сети

NAT не замена межсетевому экрану на примере Juniper SRX

Вы, наверное, слышали утверждение, что NAT не является системой безопасности. Оно появилось из-за того, что некоторые пользователи NAT считают, что, скрыв внутреннюю адресацию сети, можно добиться ее безопасности. На самом деле это не так и использование NAT не отменяет необходимости настраивать межсетевой экран.

Рассмотрим пример публикации внутреннего веб сервера на Juniper SRX.

Перед тем как перейти к конфигурации следует напомнить, как устройства SRX обрабатывают пакет.

На представленной картинке нас интересует порядок обработки NAT и политик безопасности. Если проследить последовательность, то можно заметить следующий порядок действий:

  1. Статический NAT
  2. NAT с преобразованием адреса получателя (Destination NAT)
  3. Применение политик безопасности
  4. Обратный статический NAT
  5. NAT с преобразованием адреса отправителя (Source NAT)

Отсюда следует, что при определении политик безопасности, адреса источника и получателя задаются как адреса конечных точек, а не промежуточного звена NAT.

Читать далее

Удаленный доступ по WMI и PowerShell для неадминистраторв

Это перевод статьи Ondrej Sevecek о настройке удаленного доступа WMI и PowerShell по протоколу WinRM для пользователей без прав администратора.

WinRM, также называемый WSMan, это технология удаленного управления, которая предоставляет для таких средств как WMI, PowerShell, Перенаправление событий (Event Forwarding) и даже Диспетчер сервера (Server Manager) транспорт по протоколу HTTP. WinRM принимает запросы по HTTP или HTTPS протоколу, которые затем передает зарегистрированным в нем провайдерам (плагинам). PowerShell, WMI и Перенаправление событий зарегистрированы в WinRM как соответствующие провайдеры.

Если бы вы были разработчиком клиент-серверного приложения, то вы могли бы создать свой провайдер (плагин) для WinRM, который можно было бы использовать для удаленного управления вашим приложением. Конечно можно и самому написать DCOM или HTTP веб-интерфейс, но WinRM предоставляет стандартный каркас приложения (фреймворк), что облегчает его администрирование.

WinRM поддерживает методы встроенной аутентификации Windows, такие как Kerberos, Negotiate (включая NTLM) и Schannel (сертификаты). Поскольку он использует обычный HTTP, то поддерживаются также методы аутентификации Basic и Digest.

Для удаленного доступа к инструментарию управления Windows (WMI, winmgmt) можно настроить специальный DCOM интерфейс на прием удаленных команд и запросов (WQL), или же использовать WinRM для этого. PowerShell, с другой стороны, не имеет своего собственного сервера, поэтому для приема удаленных команд используются специальные командлеты Enter-PSSession и Invoke-Command, которые передают запросы по WinRM протоколу. PowerShell принимает эти команды, обрабатывает их локально и возвращает ответ по протоколу WinRM.

Таким же образом работает Диспетчер сервера (Server Manager) и Перенаправление событий (Event Forwarding). Хотя у перенаправления событий, есть свой сервис Windows Event Collector (wecsvc), но Microsoft решила использовать WinRM для пересылки сообщений.

Читать далее

PXE Boot на Juniper SRX

Технология PXE boot используется для загрузки по сети установочного образа операционной системы с последующей его установкой. Она является альтернативой использованию установочного диска.

Для работы PXE используются такие протоколы как DHCP и TFTP.

Протокол DHCP предназначен для автоматического присвоения IP адресов клиентам в сети, а также дополнительных сетевых параметров (опций): адреса роутера, адреса DNS серверов и т.д.

Технология PXE использует в своей работе специальные DHCP опции, которые позволяют сетевым клиентам найти загрузочный сервер в сети и загрузить с него загрузочный файл.

Работа DHCP протокола состоит из обмена сообщениями между клиентом и сервером, по завершении которого, клиент присваивает себе определенный IP-адрес, выданный сервером. Эти сообщения: DHCP Discover, DHCP Offer, DHCP Request, DHCP Response.

Поскольку клиент на начальном этапе не имеет своего IP-адреса все сообщения передаются через широковещательную рассылку на адрес 255.255.255.255. Поскольку широковещательные пакеты не передается за пределы подсети, это означает, что DHCP сервер должен быть либо в одной подсети с клиентом, либо должна быть задействована технология Relay Agent, позволяющая передавать DHCP запросы за пределы подсети.

Читать далее

Понятия IP фрагментация, MTU, MSS, PMTUD и их связь

Данный пост написан по мотивам статьи «Resolve IP Fragmentation, MTU, MSS, and PMTUD Issues with GRE and IPSEC» c сайта Cisco, рассказывающей про работу механизма Path Maximum Unit Discovery (PMTUD) в связке с разными механизмами туннелирования IP.

IP фрагментация и обратная сборка

Длина IP пакета может достигать 64 Кбайтов, что может превышать размер фрейма (MTU) протокола нижнего уровня, в который инкапсулируется IP. Поскольку IP может передаваться по средам с разными значениями MTU, в него был встроен механизм фрагментации. Задача принимающей стороны обратно собрать фрагменты в оригинальный IP пакет.
При IP фрагментации IP пакет делится на несколько кусочков (фрагментов), оформленных таким образом, чтобы у принимающей машины была возможность их собрать в оригинальный IP пакет. Для ее работы в заголовке IP пакета используются сл. поля: адрес источника и получателя, идентификационный номер, размер пакета, смещение фрагмента и флаги: «не фрагментировать» (DF) и «у пакета еще есть фрагменты»(MF).

Проблемы с IP фрагментацией

При работе с IP фрагментацией следует помнить о нескольких особенностях.

  • Обратная сборка на маршрутизаторе — очень затратная задача. Задача маршрутизатора — передавать пакеты с максимальной скоростью в нужном направлении. В то время как обратная сборка подразумевает, что устройству необходимо выделить некий буфер, в который будут складываться фрагменты IP пакета, для того чтобы IP пакет собрать и передать дальше.
  • Другая особенность возникает из-за ненадежности сети передачи данных. Если один из фрагментов IP пакета потеряется, то тогда весь IP пакет должен быть отправлен заново; это означает еще один полный цикл фрагментации — сборки. Для примера возьмем протокол NFS. NFS по умолчанию работает с блоками размером 8192 байта, что вместе со всеми заголовками увеличивается до примерно 8500 байтов. Для передачи такого пакета по сети Ethernet, у которой размер MTU равен 1500 байтам, потребуется фрагментация пакета на шесть частей: пять по 1500 байт и один на 1100 байт. Если хотя бы один из этих фрагментов потеряется, потребуется повторная передача всего пакета, что в свою очередь означает запуск повторной фрагментации.

Обход IP фрагментации путем использования TCP MSS.

TCP Maximum Segment Size (MSS) определяет максимальный размер данных, который машина готова получить через один TCP сегмент. Сам TCP сегмент инкапсулируется в IP пакет. Значение MSS передается в заголовке TCP SYN при установлении соединения между двумя узлами (через механизм трехэтапного установления соединения). Обе стороны соединения передают значение своего MSS. В отличие от популярного заблуждения, принимаемое значение MSS не несет характер переговоров. Отправляющий хост обязан ограничить размер своих исходящих TCP сегментов значением равным или меньшим значению, сообщенному ему принимающим хостом.
Значение MSS выбирается таким образом, чтобы предотвратить IP фрагментацию. Механизм работы MSS следующий: при создании TCP соединения, машина определяет размер буфера исходящего интерфейса и MTU этого интерфейса. Дальше эти два числа сравниваются и выбирается наименьшее. Тут следует оговориться, что за MTU выбирается число по формуле MTU минус 40 байт, для учета TCP и IP заголовков. Затем выбранное число сравнивается с размером MSS, переданным принимающей стороной, и снова выберется наименьшее значение.
Пример работы MSS:

  1. Машина А сравнивает размер своего буфера интерфейса (16 Кбайт) со значение MTU этого интерфейса (1500-40 = 1460 байт) и использует наименьшее число как MSS при отправке к машине B.
  2. Машина B принимает значение MSS машины A (1460) и сравнивает его со значением MTU своего исходящего интерфейса (4462 — 40 = 4422 байт).
  3. Машина B выбирает наименьшее из получившихся значений (1460) как значение MSS при отправке TCP сегментов к машине A.
  4. Машина B сравнивает размер своего буфера интерфейса (8 Кбайт) со значение MTU этого интерфейса (4462-40 = 4422 байт) и использует наименьшее число как MSS при отправке к машине A.
  5. Машина A принимает значение MSS машины B (4422) и сравнивает его со значение MTU своего исходящего интерфейса (1500 — 40 = 1460 байт).
  6. Машина A выбирает наименьшее из получившихся значений (1460) как значение MSS при отправке TCP сегментов к машине B.

Таким образом MSS на обеих сторонах установлено равным 1460 байтам, это наиболее частая ситуация.
В данном примере IP фрагментация не будет происходить, поскольку в процессе установления TCP соединения, размер TCP сегментов был взят с расчетом на вмещение в MTU низлежащей сети. Однако, если IP пакет пойдет через сети с меньшим MTU, то может потребоваться фрагментация.
Читать далее

IPsec VPN. Основы.

IPsec представляет из себя не один протокол, а систему протоколов предназначенную для защиты данных на сетевом уровне IP-сетей. В данной статье будет описан теория применения IPsec для создания VPN туннеля.

Введение

VPN основанный на технологии IPsec можно разделить на две части:

  • Протокол Internet Key Exchange (IKE)
  • Протоколы IPsec (AH/ESP/both)

Первая часть (IKE) является фазой согласования, во время которой две VPN-точки выбирают какие методы будут использоваться для защиты IP трафика посылаемого между ними. Помимо этого IKE также используется для управления соединениями, для этого вводится понятие Security Associations (SA) для каждого соединения. SA направлены только в одну сторону, поэтому типичное IPsec соединение использует два SA.

Вторая часть – это те IP данные, которые необходимо зашифровать и аутентифицировать перед передачей методами, согласованными в первой части (IKE). Существуют разные протоколы IPsec, которые могут быть использованы: AH, ESP или оба.

Последовательность установления VPN через IPsec можно кратко описать как:

  • IKE согласовывает защиту уровня IKE
  • IKE согласовывает защиту уровня IPsec
  • защищаемые данные передаются через VPN IPsec

Читать далее

VoIP кратко

VoIP представляет из себя не один протокол, а систему протоколов предназначенную для аудио-визуальной коммуникации через сети IP. Данная статья будет краткой заметкой о наиболее популярных протоколах, используемых в рамках данной модели.

Используемые в VoIP протоколы и их задачи:

  • SIP – установление и разрыв соединения;
  • SDP – переговоры о параметрах мультимедиа;
  • RTP – передача мультимедийного потока;
  • RTCP – контроль передачи мультимедийного потока;
  • G.711 – кодирование аудио аналогового потока;
  • H.264 – кодирование видео потока.

Также для работы VoIP решений используются следующие сервисы:

  • DHCP-сервер – для назначения IP адресов, TFTP и NTP серверов IP-телефонам;
  • TFTP-сервер – для предоставления IP-телефонами конфигурации;
  • NTP-сервер — точного времени.

Общий процесс работы VoIP:

  • IP-телефон подключается в сеть с DHCP сервером;
  • От DHCP-сервера телефон узнает свой IP-адрес, адрес TFTP-сервера и, опционально, прочие VoIP настройки;
  • Получив IP-адрес и настройки с IP-адресом Call Server, IP-телефон осуществляет регистрацию на Call Server, используя SIP-протокол;
  • Во время исходящего звонка IP-телефон посылает SIP-запрос на установление соединения на Call Server;
  • Установив соединение с другим IP телефоном (используя SIP) и обговорив параметры медиа потока (используя SDP) IP-телефон конвертирует аналоговый звук голоса (используя кодек G.711) и начинает передавать медиа поток (используя RTP) самому Call Server или напрямую другому IP-телефону, периодически посылая сообщения о контроле медиа потока (используя RTCP).

Прочие заметки:
Формат SIP-адреса: sip:user@domain:port или sip:phone@domain:port.
Виды SIP-сообщений: request и response (status).
Частота выходного потока у кодека G.711 равна 64 Кбит/сек и получается путем дискретизации аналогового аудио потока с параметрами 8 бит на сэмпл * 8000 сэмплов в секунду.
В задача Call Server может входить как в регистрация и авторизация IP-телефонов с организацией соединений (SIP), так и в пропускании через себя самого медиа потока (RTP).

OSPF неоконченное

OSPF – протокол динамической внутридоменной маршрутизации типа отслеживания состояния канала. Т.е. его задача, среди прочих, автоматизировать заполнения таблицы маршрутизации на маршрутизирующих сетевых устройствах (маршрутизаторах, свитчей третьего уровня) в противовес одному маршруту по умолчанию (default gateway route) или нескольких вручную заданных статичным маршрутам.

Как было сказано выше, OSPF относиться к протоколам маршрутизации с отслеживанием состояния канала (link-state). При работе такого протокола каждое маршрутизирующее устройство рассчитывает карту сети в виде графа, на основе этой карты рассчитывается лучший путь до каждого устройства в сети, который и вносится в таблицу маршрутизации.

Как было сказано выше, OSPF, относиться к протоколам внутридоменной маршрутизации (interior gateway protocol). При работе такого протокола маршрутизирующие устройства обмениваются информацией внутри автономной системы (домена) (Autonomous System). Автономная система это набор сетей публичных IP-адресов, зарегистрированных, как правило, на одного владельца, т.е. имеющих номер автономной системы (Autonomous System Number).

OSPF оперирует понятием зоны (area). Как было сказано выше, каждый маршрутизатор в сети рассчитывает наилучший путь до каждого узла в сети внутри автономной системы. Поэтому, когда кол-во узлов и маршрутизаторов и узлов возрастает и пересекает некоторое кол-во, данные расчеты начинают замедлять работу устройств. Для устранения данного негативного эффекта было введено понятие зоны – логического разграничения масштаба работы протокола. Таким образом, для каждой зоны создается свой рабочий процесс протокола для расчета лучших путей до устройств внутри одной зоны. Зоны обозначаются 32-битными номерами и по написанию напоминают IPv4 адреса. Номер зоны выбирается по желанию за исключением одной – основной (backbone zone), ее номер всегда 0.0.0.0.
Отношения между зонами – иерархическое, где к основной зоне должны быть подключены все остальные зоны. Подключение между зонами выполняет роутер с ролью пограничного (area border router (ABR)). Задача ABR состоит в суммаризации маршрутов одной зоны по отношению к другой, это приводит к уменьшению сетевого трафика.

Для совместной работы в одной зоне, маршрутизаторы должны обладать одной версией БД о состоянии сети. Достигается это путем установления соседства (adjacency) посредством отправки специальных HELLO-сообщений. Общаются OSPF роутеры, используя IP протокол и зарезервированные мультикастовые адреса: 224.0.0.5 (AllSPFRouters) и 224.0.0.6 (AllDRouters). В данных HELLO-сообщениях существуют несколько полей, которые должны быть одинаковыми для обоих роутеров, чтобы сформировать соседство: hello interval, dead interval, area ID, area.

Для уменьшения сетевого траффика в каждой зоне выбираются выделенный (designated router (DR)) и резервный (backup designated router (BDR)) роутеры, с которыми и общаются все остальные роутеры зоны.

Как описано выше, существуют несколько типов общих (не проприетарных) OSPF зон:

  • Backbone area – идентификатор 0.0.0.0 – главная зона, через которую подключаются все остальные зоны.
  • Stub area – зона в которой внешние маршруты (за пределами автономной сети) удаляются и заменяются на маршрут по умолчанию.

Для выбора наилучшего пути используется понятие метрики. По умолчанию метрика OSPF равна 10^8/bandwidth, т.е. для 10 Мбит/с интерфейса метрика будет равна 10. Отсюда возникает необходимости изменять числитель в расчете метрики, если в сети используются линки 100 Мбит/с и выше. В противном случае метрики для 100 Мбит/c и для 1000 Мбит/c
будут одинаковы и равны 1. Также следует знать, что метрики сравниваются только для одного типа. Между разными типами метрик идет предпочтение по сл. списку:

  1. Intra-area
  2. Inter-area
  3. External Type 1
  4. External Type 2

Таким образом какой был не была метрика для Inter-area при наличии Intra-area пути он будет всегда выбран.

Блочные доступ и протоколы

Fibre Channel протокол (FCP) протокол транспортного уровня в сетях хранения данных (аналогично TCP в IP-сетях) используемых для передачи SCSI команд в FC сетях. FC состоит из пяти уровней, четыре нижние из которых обеспечивают физическую среду и адресацию, а по верхнему передается SCSI команды.

World Wide Name (WWN) уникальных 64-х битный идентификатор каждого участника в FC-сетях. Бывает двух видов World Wide Node Name (WWNN) для идентификации свитча и World Wide Port Name (WWPN) для идентификации порта. Поскольку идентифицируют они разные объекты, то поэтому не совпадают никакими частями.

Fibre Channel topologies

Существуют три основных топологии FC, описывающие как соединяются порты между собой для коммуникации.

  • Point-to-point (FC-P2P). Два устройства соединяются напрямую между собой.
  • Arbitrated loop (FC-AL). Устройства соединяются кольцом (петлей). Удаление, выход из строя или добавление устройства в кольцо приводит к перерыву передачи.
  • Switched fabric (FC-SW). Все устройства подключены к FC-свитчу, подобно тому как это делается в Ethernet сетях.

Zoning

Зонирование контролирует доступ одного устройства к другому, разделяя устройства по зонам. Что по функции схоже с понятием VLAN в Ethernet свитчах (еще и тем, что работает на втором уровне SCSI).
Зонирование настраивается на железном уровне (hardware level) с использованием FC-свитчей и разделятся на зонирование по порту (hard zoning) или по WWN (soft zoning).
Зонирование реализуется только в топологии FC-SW.
Зонирование отличается от сокрытия LUN (LUN masking) не только уровнем, но и местом реализации.
Зонирование также отличается от VSAN (полным аналогом VLAN для сетей FC) тем, что при зонировании каждый порт может быть членом нескольких зон, но только одной VSAN.

Soft and Hard zoning
Нежесткое зонирование (soft zoning) работает путем ограничения запроса устройств в FC-сети списком разрешенных, однако зная адрес устройства, сервер может попытаться к нему подключиться
Жесткое зонирование (hard zoning) запрещает любую коммуникацию между устройствами находящимися в разных зонах.

Port and WWN zoning
Зонирование по порту позволяет устройству, подключенному в этот порт, видеть только устройства портов той же зоны.
Зонирование по WWN ограничивает устройство просмотром только WWN устройств, находящихся в той же зоне.

LUN masking

Сокрытие LUN (LUN masking) осуществляется на конечном устройстве презентующем LUN. Таким образом, создается связка «LUN – список хостов, которым разрешен доступ».
Сокрытие LUN работает на 4-ом уровне SCSI.

VSAN

Виртуальная сеть хранения данных (VSAN) состоит из группы портов на FC-свитче, которые объединены в виртуальную сеть хранения данных.
Каждая VSAN представляет собой отдельный набор политик безопасности, зон и пр. со своим трафиком.

Protocols

Существуют несколько протоколов блочного доступа наиболее известные из них: FCP, iSCSI, FCoE.

  • FCP. Стандартный протокол передачи данных использующий отдельную сеть передачи данных (FC-свитчи, оптические кабеля).
  • iSCSI. Использует TCP протокол (порты 860 и 3260) текущей сети TCP/IP. iSCSI инициатор может быть как программным, так и железным.
  • FCoE. Использует 10G Ethernet поверх которого посылаются команды SCSI. Используются специальные конвергентные карты (CNA) способные передавать как сетевой(TCP/IP) траффик, так и трафик данных(FC), однако существуют и софтверные решения с использованием обычных сетевых 10G Ethernet карт.

SFTP и SSHFS

Продолжаем тему FTP и рассмотрим протокол SFTP.

SFTP расшифровывается как SSH File Transfer Protocol — SSH-протокол для передачи файлов. Он предназначен для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Как правило, в качестве базового протокола, обеспечивающего соединение, и используется протокол SSH2, но это необязательно.

В сравнении с другим протоколом, тоже предназначенным для копирования файлов поверх SSH — протоколом SCP, который позволяет только копировать файлы, SFTP даёт возможность выполнять намного больше операций с ними: например, докачивать файл после разрыва соединения или удалять файл на сервере и многие другие операции.

Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Ещё его иногда путают с Simple File Transfer Protocol. SFTP расшифровывается как SSH File Transfer Protocol и ничего общего с Simple File Transfer Protocol не имеет.

Сам по себе протокол SFTP не обеспечивает безопасность работы; это делает нижележащий протокол. Как правило, SFTP используется в сочетании с протоколом SSH2 (он даже был разработан той же рабочей группой). Можно использовать SFTP и с другими протоколами, например SSH1, но это сопряжено с дополнительными трудностями.

Сервер SFTP

SFTP-сервер встроен в OpenSSH. Он реализуется с помощью программы sftp-server. Для того чтобы включить sftp-server в sshd, необходимо указать его в конфигурационном файле sshd_config в качестве подсистемы:

Subsystem sftp /usr/lib/openssh/sftp-server

Как правило, эта строка уже указана в конфигурационном файле sshd по умолчанию, так что SFTP работает сразу и не требует никаких дополнительных действий для включения.

Клиент SFTP

SFTP-клиент sftp встроен в пакет OpenSSH. Пример команд использования клиента SFTP:

sftp user@host:файл1

sftp скачивает файл1 с сервера и записывает его в текущий каталог с под именем файл1

sftp user@host:dir

переводит sftp в интерактивный режим и работа на удалённом сервере начинается с определённого каталога.

В интерактивном режиме команды SFTP клиента похожи на команды FTP: get, cd, ls, mkdir, put, pwd, rm и пр.

Программа sftp использует в качестве транспорта ssh, и аутентификация на удалённом сервере выполняется средствами ssh.

В качестве SFTP-клиента для Windows может использоваться WinSCP, PSFTP из пакета PuTTY или кроссплатформенный ftp-клиент Filezilla.

Клиент SSHFS

Использование SFTP можно не только родным клиентом, но и SSHFS, дающим возможность монтировать файловую систему удаленной машины, на которой включен SFTP.

Пример команды монтирования через SSHFS:

sshfs user@host:dir local_mount_point ssh_options

Пример демонтирования:

fusermount -u local_mount_point

Также если вы часто монтируете одну и ту же директорию по SSHFS, ее можно внести в fstab для автоматического монтирования при включении машины, внеся следующую строку в /etc/fstab:

user@host:dir local_mount_point fuse.sshfs  defaults  0  0

Однако придется каждый раз при попытке монтирования вводить логин и пароль, и чтобы избежать этого, можно настроить авторизацию SSH на основе ключей, которая была описана ранее.

Стоит понимать, что в отличие от NFS/SMB в SSHFS не предустановлено никаких механизмов для контроля доступа к одному файлу нескольких пользователей.

Источник 1
Источник 2
Источник 3
Источник 4
Источник 5
Источник 6

FTP и NAT

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

Проблемы FTP в современных сетях

В современных сетях (NAT, брандмауэр, балансировщик нагрузки) следующие особенности FTP не позволяют ему нормально работать:

  1. Два отдельных соединения TCP / IP: для передачи данных и для передачи команд;
  2. Соединение для передачи данных может быть установлено на случайном номере порта;
  3. Соединение для передачи данных может исходить как от сервера к клиенту, так и от клиента к серверу;
  4. Адрес назначения соединения для передачи данных (выбор режима работы) согласовывается на лету между клиентом и сервером через соединение для передачи команд;
  5. Соединение для передачи команд находится в режиме ожидания, пока происходит передача данных через соединение для передачи данных.

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

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

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

Проблема 5 вызвана тем, что маршрутизирующие устройства могут прерывать «зависшие» соединения для передачи команд.

Два режима передачи данных в FTP

FTP поддерживает два режима работы: активный и пассивный. Они различаются механизмом установления соединения для передачи данных:

  • В активном режиме сервер подключается со своего 20-го порта на оговоренный порт клиента.
  • В пассивном режиме клиент подключается со своего случайного порта на оговоренный порт сервера.

Таким образом, все современные FTP-клиенты обговаривают с сервером то, от кого данные передаются и кто инициирует соединение. Клиент может указать использование активного режима, послав команду «PORT», которая сообщит серверу, что нужно подключиться на определенный IP и порт клиента, и начать отправку данных. Или клиент может использовать пассивный режим, послав команду “PASV” серверу, которая сообщит серверу, что клиент ожидает IP и порт сервера для начала приема данных.

Поскольку клиент изначально подключается к серверу для установления соединения для передачи команд, было бы логичным, если бы соединение для передачи данных устанавливал так же клиент, т.е. отправлял команду PASV (одновременно устраняя проблему между FTP и брандмауэром). Однако это не так, создатели спецификации FTP почему-то решили, что предпочитаемым режимом должен быть PORT, а поддержка PASV на стороне клиента даже необязательна.

Авторизация в FTP

FTP поддерживает доступ по логину и пароль, но это не безопасно т.к. они передаются открытым текстом. При использовании веб-браузера передать можно прямо в URL.

ftp://<user>:<password>@<host>:<port>/<url-path>

Читать далее