Ubuntu 18.04 LTSにTFTPサーバ(tfptd-hpa)をインストールする!

Ubuntu 18.04 LTSにTFTPサーバ(tftpd-hpa)をインストールします。ルータやスイッチの設定のバックアップ等で、TFTPサーバが使用したくなった場合のみ使用する想定です。

vsftpdのインストール

aptコマンドで、tfptdをインストールします。tftpは、稼働確認程度の使用を想定しています。

$ sudo apt install tftpd-hpa tftp-hpa

tftpdの起動状況確認をします。インストール直後には、起動がかかっています。リモートから接続確認してみましょう。

$ systemctl status tftpd-hpa
● tftpd-hpa.service - LSB: HPA's tftp server
   Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
   Active: active (running) since Sun 2020-11-08 11:46:15 JST; 3min 58s ago

tftpd-hpaの自動機能の状態の確認

サービスを確認すると「generated」となっており、自動起動されます。

$ systemctl list-unit-files | grep tftpd-hpa
tftpd-hpa.service                              generated      

tftpd-hpaの設定の確認

tftpd-hpaの設定を確認します。ファイルを配置したり、アップロードされるディレクトリは、「TFTP_DIRECTORY」で指定します。

$ cat tftpd-hpa 
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

アップロードを可能にするためには、「TFTP_OPTIONS」を以下のように「TFTP_OPTIONS="--secure --create"」に変更します。この設定を行わないと、putしたときに「Error code 1: File not found」のエラーでアップロードできません。

$ cat tftpd-hpa 
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"

ディレクトリのアクセス権の変更

アップロードを可能にするためは、ディレクトリのアクセス権の変更も行う必要があります。ダウンロードのみであれば、デフォルトのままで可能です。

$ ls -ld /var/lib/tftpboot
drwxr-xr-x 2 root nogroup 4096 Nov  8 12:21 /var/lib/tftpboot
$ sudo chgrp tftp /var/lib/tftpboot
$ sudo chmod 775 /var/lib/tftpboot
$ ls -ld /var/lib/tftpboot
drwxrwxr-x 2 root tftp 4096 Nov  8 12:21 /var/lib/tftpboot

おわりに

tftpd-hpaで、アップロードを可能にするためには、設定変更が必要になります。