クライアント・インストール
TFTPサーバーの動作確認用に、TFTPクライアントをインストールしておきます。
-
Fedora 15、CentOS
Fedora 15やCentOSでは以下でインストールできます。
# yum install tftp
インストールが完了すると、tftpコマンドが使用できるはずです。
# which tftp /usr/bin/tftp
サーバー・インストール
-
インストール
Fedora 15やCentOSではyumで tftp-server をインストールできます。
#yum install tftp-server ・・・・ ========================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ========================================================================================== インストールしています: tftp-server x86_64 0.49-8.fc15 fedora 39 k 依存性関連でのインストールをします。: xinetd x86_64 2:2.3.14-36.fc15 updates 121 k トランザクションの要約 ========================================================================================== インストール 2 パッケージ 総ダウンロード容量: 160 k インストール済み容量: 314 k これでいいですか? [y/N]
xintedの設定
Fedora 15やCentOSでは、xinetdを介してTFTPサーバーが起動しますが、インストールしたままだと無効になっています。 そのため、設定を変更してTFTPサーバーを有効にします。
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
disable の項目を yes -> no に変更し、xinted を再起動します。
# service xinetd restart Restarting xinetd (via systemctl): [ OK ]
また、TFTPサーバーの公開ディレクトリをデフォルトから変更したい場合は、server_args の箇所を変更します。
server_args = -s /var/lib/tftpboot
Fedora 15では /var/lib/tftpboot がデフォルトの公開ディレクトリです。
アップロード用の設定
TFTPサーバーにファイルのアップロードを行いたい場合があります。例えば、CISCOルーターのIOSのバックアップを行うような場合です。
しかし、Fedora 15のデフォルトのTFTPサーバーは、アップロードできない設定になっています。 そのため、TFTPサーバーにアップロードしたい場合、設定を変更する必要があります。 方法としては以下の2つがあります。
- TFTPサーバーの起動オプションの変更
- アップロードするファイルと同じ名前のファイルを作成する方法
-
動作確認
アップロードのテストのため、TFTPサーバーの適当なディレクトリにテスト用ファイルを作成します。 今回は「 tt.txt 」というファイル名で、適当に何か文字を書いたテキストファイルを作成しました。これをtftpサーバー( 192.168.1.x )にアップしてみます
# tftp -v 192.168.1.x -c put tt.txt Connected to 192.168.1.x (192.168.1.x), port 69 putting tt.txt to 192.168.1.x:tt.txt [netascii] Error code 1: File not found注. この例では、TFTPサーバーとTFTPクライアントは同じPC上です。
すると、「File not found」というエラーが発生する場合があります。 このエラーは、アップロードしようとしたファイルが存在しないか、または新規ファイル作成で失敗した場合です。 Fedora 15では、デフォルト設定でTFTPサーバーの新規ファイル作成が禁止されていることが原因です。
TFTPサーバーの起動オプションの変更
TFTPサーバーの起動オプションを変更して、新規ファイルのアップロードができるようにします。 そのため、/etc/xinted.d/tftp を変更します。
server_args = -s /var/lib/tftpbootにオプションの -c を追加して
server_args = -c -s /var/lib/tftpboot
に変更します。そしてxinetdを再起動します。
# service xinted restart注意. # service xinted reload では設定が反映されないので、restartします。
次にセキュリティ関係の変更を行います。 Fedora15のデフォルト設定では、TFTPサーバーは nobody で動作します。 そのためアップロード先のディレクトリの所有者を、nobodayに変更します。
# chown nobody:nobody /var/lib/tftpbootTFTPサーバーと同じマシンからファイルのアップして、以下のように成功すれば設定はOKです。
# tftp -v 192.168.1.x -c put tt.txt Connected to 192.168.1.x (192.168.1.x), port 69 putting tt.txt to 192.168.1.x:tt.txt [netascii] Sent 20 bytes in 0.0 seconds [35924 bit/s]
アップロードするファイルと同じ名前のファイルを作成する方法
オプションの"-c"以外の方法として、TFTPサーバーのディレクトリにアップロードするファイルと同じ名前のファイルを先に作成する方法があります。 オプションの”-c”が無い場合、TFTPサーバーは新規ファイルとしてのアップロードは許可しません。 しかし、アップロードするファイル名と同じものがある場合、上書きすることは許可します。 そのため、先にアップロードするファイルと同じ名前のファイルを作成しておくと、アップロードができます。
# touch /var/lib/tftpboot/tt.txt # chown o+w /var/lib/tftpboot/tt.txt注. 新しく作成したファイルに、TFTPサーバーによる書き込みの権限がないと、失敗して以下のようになります。
# tftp -v 192.168.1.x -c put tt.txt Connected to 192.168.1.x (192.168.1.x), port 69 putting tt.txt to 192.168.1.x:tt.txt [netascii] Error code 0: Permission den