Установка tftp сервера
Добавлено: 15 сен 2011, 11:03
Вступление:
С ростом оборудования всё чаще и чаще приходилось сталкиваться с тем, что нужен tftp сервер. В качестве примера могу привести:
1) Бекап конфигов (cisco, IP телефоны)
2) Обновление прошивок (cisco, IP телефоны, свитчи)
3) Централизованный конфиг телефонной книги на тех же телефонах
и так далее. В связи с чем озаботился созданием собственного tftp сервера.
Установка:
Идём в порт /usr/ports/ftp/tftp-hpa и выполняем make install clean
После строк
сервер можно считать установленным. Теперь заводим пользователя и домашнюю директорию
Не забываем прописать запуск сервера в /etc/rc.conf - сделать это можно следующий командой:
Теперь нам надо наполнить скрипт запуска сервера (/usr/local/etc/rc.d/tftpd.sh) - вписываем туда следующее:
После /usr/local/etc/rc.d/tftpd.sh start tftp сервис у меня запустился и начал работать. Попробовал на него что-то закачать - всё получилось. Никаких неожиданностей не возникло.
С ростом оборудования всё чаще и чаще приходилось сталкиваться с тем, что нужен tftp сервер. В качестве примера могу привести:
1) Бекап конфигов (cisco, IP телефоны)
2) Обновление прошивок (cisco, IP телефоны, свитчи)
3) Централизованный конфиг телефонной книги на тех же телефонах
и так далее. В связи с чем озаботился созданием собственного tftp сервера.
Установка:
Идём в порт /usr/ports/ftp/tftp-hpa и выполняем make install clean
После строк
Код: Выделить всё
/usr/local/bin/tftp
/usr/local/libexec/in.tftpd
If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
to deinstall the port if this is a concern.
===> Cleaning for tftp-hpa-0.49
Код: Выделить всё
stat# pw groupadd tftpd
stat# pw useradd tftpd -c TFTP\ manager -d /nonexistent -g tftpd -s /usr/sbin/nologin
stat# mkdir /usr/home/tftp
stat# chown tftpd:tftpd /usr/home/tftp
stat# chmod 750 /usr/home/tftp
stat# touch /usr/local/etc/rc.d/tftpd.sh
stat# chmod +x /usr/local/etc/rc.d/tftpd.sh
Код: Выделить всё
stat# echo 'tftpd_enable="YES"' >> /etc/rc.conf
Код: Выделить всё
#!/bin/sh
#
# tftp-hpa init script
# Copyright (c) 2006 by Alexey Tsvetnov, vorakl@fbsd.kiev.ua
#
# PROVIDE: tftpd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
# Define these tftpd_* variables in one of these files:
# /etc/rc.conf
# /etc/rc.conf.local
# /etc/rc.conf.d/tftpd
#
# tftpd_enable (bool): Set it to "YES" to enable tftpd.
# Default is "NO".
# tftpd_pidfile (path): Set full path to tftpd.pid.
# Default is "/var/run/tftpd.pid".
# tftpd_datadir (path): Set full path to directory with data.
# Default is "/var/tftp".
# tftpd_flags (str): Extra flags passed to start command.
# Default is "-cps -u tftpd -U 037 -B 1468".
#
. /etc/rc.subr
name="tftpd"
rcvar=`set_rcvar`
load_rc_config $name
# DO NOT CHANGE THESE DEFAULT VALUES HERE
: ${tftpd_enable="NO"}
: ${tftpd_pidfile="/var/run/tftpd.pid"}
: ${tftpd_datadir="/usr/home/tftp"}
: ${tftpd_flags="--ipv4 -vvcps -u tftpd -U 037 -B 1468"}
extra_commands="reload"
start_cmd="tftpd_start"
stop_postcmd="tftpd_poststop"
reload_cmd="tftpd_reload"
pidfile=$tftpd_pidfile
procname="/usr/local/libexec/in.tftpd"
tftpd_start() {
/bin/echo -n "Starting tftpd"
/usr/local/libexec/in.tftpd $tftpd_flags -l $tftpd_datadir
/bin/ps x | /usr/bin/grep in.tftpd | /usr/bin/grep -v grep | /usr/bin/awk '{print $1}' > $tftpd_pidfile
/bin/echo "."
}
tftpd_poststop() {
/bin/rm -f $tftpd_pidfile
}
tftpd_reload() {
/bin/kill -1 `cat $tftpd_pidfile`
}
run_rc_command "$1"