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)

