Создание в Windows TFTP сервера, настройка и проверка работоспособности

TFTP – упрощённый протокол передачи данных (о чём и свидетельствует первая буква аббревиатуры протокола, Trivial), характеризующийся простотой реализации и имеющий ряд ограничений, главное из которых – отсутствие аутентификации. По этой причине он не столь распространён, как FTP, но существует немало примеров, когда его использование оказывается более предпочтительным.

Например, в закрытой локальной сети для загрузки операционной системы на рабочие станции, из соображений безопасности или по другим причинам не содержащие собственного жёсткого диска. И хотя здесь имеются кое-какие риски, их можно компенсировать фильтрацией по IP-адресу с использованием транспортного протокола UDP.

Как установить TFTP-сервер на Windows

Протокол Trivial FTP, как вы уже знаете, является очень простым в реализации, и если говорить о низкоуровневой передаче файлов, при условии отсутствия жёстких требований по безопасности, то он был и остаётся весьма востребованным.

Кроме загрузки ОС на рабочие станции, он широко используется для загрузки и модификации конфигураций множества встроенных устройств, являющихся частью домашних сетей и системы «Умный дом».

В частности, этот протокол нередко можно встретить на маршрутизаторах, в мобильных телефонах, в популярных медиа-стримерах. Он используется для передачи единичных файлов на относительно небольшие расстояния. А вот в глобальных сетях, том же интернете, использование TFTP недопустимо из-за низкой защищённости. Там царствует FTP, а если требуются повышенные требования к безопасности, то SFTP.

Если при помощи FTP, требующего ввода логина/пароля, можно осуществлять целый спектр операций с файлами (передача в обоих направлениях, переименование, удаление, просмотр), то в TFTP вы можете файлы только скачивать, и только по одному. Зато здесь используется стек UDP, отличающийся простотой кода, в отличие от распространённого, но достаточно сложного TCP/IP.

У протокола TFTP низкая функциональность компенсируется надёжностью, поэтому серверная часть кода протокола занимает на диске или в памяти очень мало места, что делает его идеальным кандидатом для использования во встроенных устройствах, у которых дефицит памяти – привычное явление.

Итак, если суммировать, для чего нужен клиент TFTP, то можно утверждать, что главное преимущество протокола – простота реализации его клиентской части.

ВНИМАНИЕ. Протокол не предусматривает наличие учётных записей пользователей, поэтому всегда существует риск подключения к TFTP серверу или клиенту других лиц, в том числе и со злонамеренными целями. Поэтому использовать его нужно, если сеть защищена другим способом, например, файерволом.

Хотя TFTP-сервер чаще всего можно встретить в ОС Linux, существует немало решений, предназначенных для Windows и даже для macOS (TFTPD32/64, haneWIN, WhatsUp, WinAGents и др.).

Рассмотрим процедуру установки TFTP-сервера на примере весьма популярной утилиты TFTPD32, созданной на условиях открытого исходного кода. Кроме собственно TFTP-сервера, она включает и другие серверные протоколы (DHCP, DNS, SNTP) и позволяет управлять пулом IP-адресов. Разумеется, ситуации, когда требуется наличие всех перечисленных функций, сложно придумать даже теоретически, но дополнение TFTP одной из них вполне может оказаться полезным.

При скачивании программы можно выбрать portable-версию, если не хотите возиться с инсталляцией.

При запуске утилиты нужно будет указать пару параметров:

  • каталог, куда будут скачиваться файлы (дефолтный путь – место установки программы);
  • IP-адрес сервера, на который нужно будет обращаться клиентам.

Для выполнения простейших операций этого будет достаточно. Но в ряде случаев потребуется дополнительная настройка программы.

Настройка TFTP сервера

Если требуется использование DHCP сервера, например, для выдачи динамических айпишников в пределах малой сети, необходимо зайти в раздел Setting и выбрать вкладку DHCP.

Здесь нам нужно указать:

  • исходный IP адрес (получаемый на маршрутизаторе);
  • диапазон выдаваемых клиентам адресов;
  • указание шлюза сети не является обязательным;
  • четвёртый параметр – маска подсети.

Подтверждаем внесение изменений нажатием ОК.

Поскольку в основе TFTP лежит использование транспортного протокола нижнего уровня UDP, в котором установление соединения не предусмотрено, задача эмуляции соединения становится прерогативой внешнего протокола, в нашем случае – TFTP. Проблема в том, что межсетевые экраны в большинстве случаев не умеют идентифицировать соединения, инициированные протоколом TFTP, так что этот тип трафика он пропускать не в состоянии.

Но если TFTP-сервер располагается в пределах защищённой сети, а клиентские устройства – перед файерволом, то проблем быть не должно, но потребуется внесение изменений в настройки файервола:

  • нужно добавить правило транспортировки пакетов данных из внешнего айпишника на адрес сервера TFTP, указанный в конфигурации программы (через порт 69 TFTP сервера);
  • разрешить перенаправление трафика из внутренней сети на внешний IP-адрес.

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

Проблема в том, что не все сетевые роутеры/маршрутизаторы позволяют выполнить такие настройки. Но многие из них оснащены функцией просмотра трафика, направляемого с использованием протокола TFTP, при этом они в состоянии динамически изменять таблицу трансляции, позволяя пропускать пакеты извне, идущие в локальную сеть. Так, чтобы настроить файервол маршрутизатора Cisco PIX, необходимо выполнить команду fixup protocol tftp.

Существует альтернативный способ решения проблемы: можно обязать сервер TFTP задействовать порт 69 в двух направлениях, не только для приема запросов, идущих от клиентов, но и для пересылки им ответов. Тогда файервол сможет корректно обрабатывать оба типа запросов, руководствуясь записями, имеющимися в таблице трансляций.

Так, чтобы настроить WinAGents TFTP Server подобным образом, необходимо в настройках программы установить галочку напротив опции Enable firewall support.

Проверка работоспособности TFTP сервера

Чтобы проверить, работает ли TFTP сервер, необходимо просто выполнить копирование файла с сервера на клиентское оборудование.

Для этого нужно запустить консоль на клиенте, а затем выполнить команду tftp 192.168.1.35 GET <имя копируемого файла>. Если всё настроено правильно, после паузы, во время которой и происходит передача данных, указанный файл должен появиться на клиентском оборудовании.

Отметим, что копирование будет производиться в каталог, в котором запускалась консоль, если в настройках программы не указан другой путь. Но не все утилиты имеют такие настройки. Например, если вы используете WinAGents TFTP Server, вам нужно будет выполнить последовательно две команды:

  • cd <путь назначения>;
  • tftp168.1.35 GET <имя копируемого файла>.

В этом случае копирование будет производиться в указанную вами директорию.

В утилите TFTPD32 копирование будет выглядеть несколько иначе. На клиентской машине следует запустить приложение, открыть в нём вкладку TFTPClient, а затем указать IP-адрес сервера, а затем имя файла, который мы намереваемся скачать. Сохранить его можно и под другим именем, указав его в соответствующей строке настроек. Завершив все приготовления, жмём кнопку GET и дожидаемся результатов операции.

Как видим, использование TFTP сервера не ставит перед пользователем неразрешимых задач, за исключением случаев, когда требуется доступ за пределы локальной сети. Но для этих случаев существуют другие, более защищённые и безопасные сетевые протоколы.

Источник

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: