TFTP сервер

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук

Версія 1 (бета)

Встановлення та налаштування TFTP серверу.

За мотивами:

man 8 tftpd, man 1 tftp

http://www.gentoo.org/doc/en/diskless-howto.xml


Зміст

Вступ

Trivial File Transfer Protocol (TFTP) - простий протокол передачі файлів. Переважно використовується для передачі бездисковим станціям ядра і початкової файлової системи; та конфігураційних файлів і спеціалізованих операційних систем маршрутизаторам. Так, як всі ядра і файлові системи знаходяться на TFTP сервері то зручно його створювати на DHCP сервері DHCP сервер з якого завантажуються бездискові станції, інструкцію по їх налаштуванню можна прочитати тут: Встановлення бездискових робочих станцій (вузлів). tftpd сервер прослуховує 69 порт.

Встановлення TFTP серверу

Дуже бажано використовувати TFTP саме з http://www.kernel.org/pub/software/network/tftp/ tftp-hpa є портом OpenBSD TFTP серверу для Лінукс, перенесений автором SYSLINUX і дуже добре працює з pxelinux. Для інсталяції в Gentoo виконайте

# emerge net-ftp/tftp-hpa

Налаштування TFTP сервера

Створюємо кореневу директорію для tftpd, її tftpd ніяк не захищає, тому не зберігайте в ній конфіденційних файлів, цінні файли тримайте в режимі тільки для читання для користувача nobody (tftp).

# mkdir -p /diskless/boot

Обов'язково використовуйте змінну INTFTPD_PATH для задання кореневої директорії та змінну INTFTPD_OPTS для задання опцій з якими запускається сервер. Для Gentoo:

$ cat /etc/conf.d/in.tftpd
# Config file for /etc/init.d/in.tftpd
# Remove the -l if you use [x]inetd
INTFTPD_PATH="/diskless/boot"
INTFTPD_OPTS="-l -s ${INTFTPD_PATH}"

-l опція вказує що сервер прослуховує мережу сам, а без неї він запускатиметься суперсервером - xinetd.

-a [address][:port] опція використовується тільки разом з -l і вказує адрес та порт на якому прослуховувати запити.

-c дозволяє створення нових файлів. Без неї tftpd тільки дозволяє змінювати існуючі файли. Файли створюються з такими допусками, що кожен може їх читати та модифікувати. Для встановлення точних допусків використовуйте опції -p чи -U.

-v опція вказує на багатослівний режим.

-s опція /var/diskless вказує на корінь TFTP сервера.

-u username опція вказує під яким користувачем запускати tftpd по замовчуванню "nobody".

-U umask опція встановлює маску допуску на новостворені файли по замовчуванню 000 - кожен має всі допуски.

-p опція вказує не здійснювати додаткові перевірки прав допуску, звичні в системі, для користувача вказаного через опцію -u.

Детальніше дивіться: tftpd(8)

Запуск TFTP сервера

Якщо Ви використовуєте опцію -l і сервер сам прослуховує мережу тоді: Для запуску TFTP сервера з опціями вказаними в попередньому пункті виконуємо:

# /etc/init.d/in.tftpd start

Щоб TFTP сервер автоматично стартував при включені комп'ютера додаємо його до завантажувального рівня default

# rc-update add in.tftpd default

Якщо бажаєте TFTP сервер запускати суперсервером xinetd, що і рекомендується робити, то для цього потрібно створити файл:

$ cat /etc/xinetd.d/tftp
# default: off
# description: tftp-hpa is an TFTP server.

service tftp
{
   socket_type         = dgram
   protocol            = udp
   wait                = yes
   user                = root
   server              = /usr/sbin/in.tftpd
   server_args         = -u nobody -s /diskless/boot
   nice                = 1
   only_from           = 10.0.0.0/24
   disable             = no
   per_source          = 11
   cps                 = 100 2
}

Та перевантажити суперсервер:

# /etc/init.d/xinetd restart

Помилки та шляхи їх розв'язання

Спробуйте вручну зв'язатись з сервером і зтягнути ядро:

# cp /boot/kernel-2.6.13.3 /diskless/boot
# tftp -v -m binary -c get 10.0.0.10:/kernel-2.6.13.3
mode set to octet
getting from 10.0.0.10:/kernel-2.6.13.3 to kernel-2.6.13.3 [octet]
Received 3920267 bytes in 1.3 seconds [24124720 bits/sec]

Шлях до файлу є відносно /diskless/boot директорії (відповідно до опції "-s /diskless/boot" tftp серверу).

Детальніше користування tftp протоколом описане в: tftp(1)

Якщо не вдалось, уважно читаємо та аналізуємо логи :-)

Література

--Svyat 23:34, 27 серп 2005 (EEST)

Особисті інструменти