Версія 1 (бета)
Встановлення та налаштування TFTP серверу.
За мотивами:
- man 8 tftpd
- man 1 tftp
- http://www.gentoo.org/doc/en/diskless-howto.xml
Вступ
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)