У меня есть TFTP-сервер с несколькими клиентами (допустим, ABCD — это клиенты). Все клиенты должны иметь одинаковую конфигурацию (только IP-адрес сервера). Но некоторые клиенты должны извлекать файлы в определенном каталоге, а другие — в других каталогах. Например, A и B должны извлекать файлы в , /tftp/1
а C, D — в /tftp/2
.
Лучшим решением было бы использовать IP-адрес и подсети для различения («все клиенты в этой подсети получают доступ к этому каталогу»), но я не знаю, может ли TFTP это сделать.
PS: Я не использую TFTP по собственному желанию и не могу использовать ничего другого.
решение1
Из протокола TFTP (RFC1350)
Соображения безопасности
Поскольку TFTP не включает в себя механизмы входа в систему или контроля доступа, необходимо проявлять осторожность в правах, предоставляемых процессу сервера TFTP, чтобы не нарушить безопасность файловой системы хостов сервера. TFTP часто устанавливается с элементами управления, так что через TFTP доступны только файлы, имеющие публичный доступ на чтение, а запись файлов через TFTP запрещена.
Тогда сам протокол не имеет поддержки для ваших нужд.
Вы можете использовать определенный TFTP-сервер, отвечающий вашим потребностям, напримерtftpd-hpa. Этот сервер реализует функцию, называемую«Переназначение имени файла»; --map-файлoption указывает файл, содержащий правила переназначения имен файлов. Набор правил обрабатывает каждый запрос и, например, на основе IP запрашивающего перенаправляет запрос, например, в определенный каталог. См. страницы руководства tftpd-hpa.