Фев 13 2009

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

Любой админ, который занимается настройкой всякого «железа», свичей, роутеров и тому подобное, обязательно столкнется с tftp. Любят его производители железа именно за буковку t, которая означает trivial, а именно простой протокол передачи файлов. В состав базовой системы FreeBSD входит как сервер, запускаемый через inetd, так и клиент этого протокола. Настройка сводится к прописыванию в настройках inetd и указании правильных флагов. По умолчанию установлены такие флаги:

tftp    dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot


Для нормальной и удобной работы, нужно добавить флаг -w, он добавляет возможность создания файлов, иначе придется создавать файлы самому, а потом поверх вручную созданного файла вливать нужный файл.
Флаг -l указывает логировать все события
-s и указанная далее директория, указывает tftpd использовать указанную директорию, как корневую для сервера.
По итогу у нас получается такая строка для inetd.conf

tftp   dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -w -s /tftpboot

После чего, нужно перезапустить inetd

/etc/rc.d/inetd restart

Теперь нужно создать нашу корневую директорию /tftpboot и сделать ее владельцем nobody.

mkdir /tftpboot
chown nobody:nogroup /tftpboot

Сделать владельцем nobody мы должны, потому что tftpd операции выполняет от имени этого пользователя, и уж если мы разрешили создавать файлы tftpd, то нужно дать ему возможность создавать файлы.
Проверить работоспособность можно при помощи команды tftp, в каталоге в котором мы будем запускать tftp, есть файл test.txt, сервер запущен по адресу 192.168.0.1, проверим работоспособность:

tftp 192.168.0.1
put test.txt

Если все нормально, файл появится в /tftpboot.
Когда мы убедились, что все работает нормально, стоит защитить наш сервер от постороннего вторжения. Конечно, протокол tftp действительно простой и что бы скачать файл, нужно знать его имя, лучше всего не предоставлять возможности соединится с сервером, просто потому, что использовать его посторонними не нужно. Прикроем с помощью hosts.allow от всех, оставим доступ только для сети 192.168.0.0/24, для этого внесем такие строки:

tftpd : 192.168.0.0/255.255.255.0 : allow
tftpd : ALL :deny

Ну а использовать этот протокол с разных железяк по разному, например с оборудования компании Cisco это выглядит так:

copy running-config tftp://192.168.0.1/
Address or name of remote host [192.168.0.1]?
Destination filename [hilik-confg]?
!!
10436 bytes copied in 3.456 secs (3020 bytes/sec)

В последнее время большая часть оборудования стала поддерживать более сложные протоколы, ftp, scp, а большинство управляемые через вебинтерфейс дают возможность скачивать и заливать прошивки и конфиги по HTTP протоколу. Тем не менее для недорогого оборудования tftp протокол остается актуальным.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть