手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 tftpd-hpa TFTP サーバー構築

目次に戻る

Overview

tftpd-hpa を使用して TFTP サーバーを構築します。

TFTP (Trivial File Transfer Protocol) は、ファイルをネットワーク上で転送するためのプロトコルの一種で、RFC 1350 で定義されています。TFTP は FTP (File Transfer Protocol) よりも単純で、主にブートローダーなどの小規模なデータの転送に使用されます。

ネットワークプロトコル

TFTP は UDP (User Datagram Protocol) を使用します。ポート番号は 69 を使用します。

主な機能

TFTP は、ネットワーク経由でデバイスのブートストラップやファームウェアの更新を行う際によく使用されます。例えば、PXE (Preboot Execution Environment) やルーターのファームウェアの更新などが挙げられます。

注意事項

TFTP はセキュアではない(非暗号化、非認証)ため、ファイルの転送中にデータが傍受または改ざんされる可能性があります。このため、現在では先述した PXE のような限られた環境での特殊用途でのみで使用することが推奨されます。仮にセキュアな状態で使用したい場合、TFTP over SSH などのトンネリングプロトコルの使用を検討します。

前提条件

  • こちらを参考に基本設定が完了していること。

インストール

tftpd-hpa をインストールします。

myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install tftpd-hpa

/etc/default/tftpd-hpa

tftpd-hpa の設定ファイルは /etc/default/tftpd-hpa です。

デフォルト値

デフォルト値は下記の通りです。特別な要件が無ければ変更は不要です。TFTP_OPTIONS="--secure" はいわゆる chroot で動作させるための設定です。

myadmin@ubuntu:~$ cat /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

設定の有効化

設定を有効化します(設定を変更した場合)。

myadmin@ubuntu:~$ sudo systemctl restart tftpd-hpa.service && systemctl status tftpd-hpa.service

TFTP クライアント

テスト用に TFTP クライアントをインストールします。

myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install tftpd

利用可能なコマンドは以下の通りです。

myadmin@ubuntu:~$ tftp
tftp> ?
Commands may be abbreviated.  Commands are:

connect 	connect to remote tftp
mode    	set file transfer mode
put     	send file
get     	receive file
quit    	exit tftp
verbose 	toggle verbose mode
trace   	toggle packet tracing
status  	show current status
binary  	set mode to octet
ascii   	set mode to netascii
rexmt   	set per-packet retransmission timeout
timeout 	set total retransmission timeout
?       	print help information

限られた用途であるため、細かくは試していませんが、大抵は以下の操作で事足りるのではと思います。注意点として大きいファイルサイズでは転送に失敗するケースもありました。その場合は mode の設定などで対応が必要になるかもしれません。

tftp> connect 192.168.0.69
tftp> put test.txt
tftp> get test.txt

目次に戻る

Ubuntu 22.04 tftpd-hpa TFTP サーバー構築

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る