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

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

За мотивами:


Вступ

Trivial File Transfer Protocol (TFTP) - простий протокол передачі файлів. Переважно використовується для передачі бездисковим станціям ядра і початкової файлової системи; також конфігураційних файлів і спеціалізованих операційних систем маршрутизаторам. Оскільки всі ядра і файлові системи знаходяться на сервері TFTP, то зручно його мати на тій же машині, що й сервер 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 dir : вказує корінь сервера TFTP.

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

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

-p : забороняє додаткові перевірки прав доступу (окрім тих, що робить система для користувача, що вказаний опцією -u).

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

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

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

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

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

# rc-update add in.tftpd default

Якщо ж ви бажаєте запускати сервер TFTP суперсервером xinetd (що і рекомендується робити), то для цього потрібно створити файл /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).

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

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

Література

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