tftpd-hpaを使用してUbuntuサーバーにTFTPサーバーをセットアップする方法

Ubuntuのtftpd-hpaサーバーとtftp-hpaクライアントをインストールしてください。この設定では、ファイルを別のディレクトリから配信し、アップロードされたファイルは別のディレクトリに保存します。Ubuntuのサーバーパッケージとクライアントパッケージの/srv/tftp一覧を確認してください。

セキュリティ: TFTPにはログイン機能や暗号化機能はありません。信頼できるLANへのアクセスのみに限定してください。アクセス可能なクライアントは、利用可能なファイルを読み取ることができ、権限が許せばアップロードも可能です。機密情報は転送しないでください。TFTPの仕様には、そのセキュリティ上の制限事項が記載されています。

TFTPサーバーをセットアップする

1. サーバーとクライアントをインストールする

APTメタデータを更新してから、両方のパッケージをインストールしてください。

sudo apt update
sudo apt install tftpd-hpa tftp-hpa
Ubuntu Serverのターミナルに、tftpd-hpaとtftp-hpaをインストールするコマンドが表示されています。
サーバーパッケージとクライアントパッケージをインストールしてください。

2. TFTPルートを設定する

パッケージ設定ファイルを編集します。

sudo nano /etc/default/tftpd-hpa

これらの値を設定してください

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

--secureデーモンを設定されたルートディレクトリに限定し、--createアップロードを許可し、--umask 027新しいアップロードファイルをモードに制限します0640。これらのオプションについては、 Ubuntu tftpd のマニュアルを参照してください。Ctrl+O で保存し、Enter キーを押してから Ctrl+X を押します。

はクライアントから見えるルート--secureとなるため、ファイル名はそれを基準とした相対パスになります。 を使用し、 は使用しないでください。TFTPクライアントはディレクトリを参照しないため、公開するファイル名とそのパスのリストを保持してください。/srv/tftphello.txt/srv/tftp/hello.txt

ターミナルエディタには、/srv/tftpルート、セキュアモード、アップロード、umask 027で設定されたtftpd-hpaが表示されています。
ファイルの範囲を制限し、アップロードマスクを設定します。

3. ルートディレクトリとアップロードディレクトリを作成します。

メインルートの所有権はrootに保持し、アップロードフォルダへの書き込みアクセスのみを許可します。

sudo install -d -o root -g root -m 0755 /srv/tftp
sudo install -d -o tftp -g tftp -m 0750 /srv/tftp/upload

デーモンはルートを読み取ることができますが、tftp書き込みができるのはアカウントのみです/srv/tftp/upload。 などの権限を使用してツリー全体をワールド書き込み可能にすることは避けてください777。

パブリックルートにあるファイルは、許可されたすべてのクライアントから読み取り可能であるとみなしてください。そのルートには、ブートイメージ、ファームウェア、または当該ネットワーク向けのその他のデータのみを保存してください。プライベートなデータ転送には、認証と暗号化を備えたプロトコルを選択してください。

Ubuntuターミナルで、tftpユーザーとグループ、モード0750を使用して/srv/tftp/uploadを作成しています。
書き込み可能なのはアップロード用サブディレクトリのみです。

4. 提供するファイルを追加する

ルートに既知のファイルを作成します。TFTP のデフォルトの読み取りチェックでは、提供されるファイルがパブリックに読み取り可能である必要があるため、モードを設定します0644。

echo 'TFTP test file' | sudo tee /srv/tftp/hello.txt
sudo chmod 0644 /srv/tftp/hello.txt
Ubuntu Serverのターミナルがhello.txtを/srv/tftpに書き込み、ファイル権限を0644に設定しています。
ダウンロードテスト用の既知のファイルを作成します。

5. サービスを有効にして再起動します

起動時にユニットを有効にし、再起動して設定を適用し、ステータスを確認してください。

sudo systemctl enable tftpd-hpa
sudo systemctl restart tftpd-hpa
sudo systemctl status tftpd-hpa --no-pager

起動に失敗した場合は、サービスログを確認してくださいsudo journalctl -u tftpd-hpa -b --no-pager。

Ubuntu Serverのターミナルコマンドを使用して、tftpd-hpaサービスを有効化、再起動、および検査します。
設定を変更した後は、サービスを再起動してください。

6. ファイアウォールのアクセスを制限する

UFWが有効になっている場合、最初の要求はクライアントサブネットからのみ許可します。例のネットワークを、信頼できるLAN範囲に置き換えてください。

sudo ufw allow from 192.168.1.0/24 to any port 69 proto udp
sudo ufw status

ソースネットワークルールについては、Ubuntu のUFW ガイドを参照してください。TFTP は UDP ポート 69 で開始し、プロトコル仕様に記載されているように、ファイルデータにはサーバーが選択した UDP ポートを使用します。厳格なファイアウォール、ルーター、または NAT デバイスは、要求を許可しても転送をブロックする場合があります。クライアントがタイムアウトする場合は、TFTP 対応の接続追跡または適切なファイアウォール ポリシーを使用してください。すべての UDP ポートを開いたり、TFTP をインターネットに公開したりしないでください。このコマンドはルールを追加するものであり、UFW を有効にするものではありません。SSH 経由でサーバーを管理していて、非アクティブなファイアウォールを有効にする予定がある場合は、リモート アクセスを維持するために、まず SSH を許可してください。

UFWコマンドでUDPポート69を、例として192.168.1.0/24サブネットからのみ許可する。
信頼できるサブネットからの初期リクエストを許可する。

ダウンロードとアップロードのテスト

7. Ubuntuクライアントからダウンロードする

サーバー上で、コマンドを実行しip -brief address、到達可能なLANアドレスをメモしてください。Ubuntuクライアント上で、必要に応じてクライアントをインストールしてください。192.0.2.10以下の部分を実際のサーバーアドレスに置き換えてください。

sudo apt install tftp-hpa
tftp 192.0.2.10
tftp> binary
tftp> get hello.txt
tftp> quit

ファイルはクライアントの現在のディレクトリに保存されます。Ubuntu tftp クライアントのマニュアルにはbinary、および がget記載されています。ファームウェア、ブートイメージ、およびバイト列を変更せずに保存する必要のあるファイルには、バイナリモードの使用をお勧めします。Linux のファイル名は大文字と小文字を区別するため、各リモート名を正確に入力してください。

TFTPクライアント端末がサンプルサーバーに接続し、hello.txtをバイナリモードでダウンロードしている。
既知のファイルをバイナリモードで要求してください。

8. 制限付きフォルダにアップロードする

クライアント側でテストファイルを作成し、サーバーのアップロードディレクトリ内のパスに送信します。

printf 'Upload test' > upload-check.txt
tftp 192.0.2.10
tftp> binary
tftp> put upload-check.txt upload/upload-check.txt
tftp> quit

サーバーの実際のアドレスを使用してください。リモートパスは からの相対パスです/srv/tftp。サーバー上で を使ってアップロードを確認してくださいsudo ls -l /srv/tftp/upload/。TFTPクライアントはディレクトリ一覧を参照するのではなく、既知のファイル名を使用します。

TFTPクライアント端末がupload-check.txtをバイナリモードでupload/upload-check.txtに送信しています。
アップロードされたファイルは、書き込み可能なサブディレクトリ内に保存されます。

よくあるエラーのトラブルシューティング

  • ファイルが見つかりません。ファイル名を相対パスで確認し/srv/tftp、ファイルが存在することを確認してください。
  • アクセス違反:配信されるファイルを公開読み取り可能にする。アップロードの場合は、tftp宛先の所有権を確認し、--create設定されていることを確認する。
  • タイムアウト:クライアントがサーバーの到達可能なアドレスを使用していること、サービスがアクティブであること、およびファイアウォールがネゴシエートされたUDPデータフローを許可していることを確認します。

ネットワークの問題を特定するには、まず同じLAN上のクライアントからテストしてください。それが正常に動作するのに、ルーティングされたクライアントでタイムアウトが発生する場合は、ルーターまたはファイアウォールが、ネゴシエートされたデータポートのTFTP対応処理を行っているかどうかを確認してください。

読み取り専用サービスの場合は、--createから削除しTFTP_OPTIONSて再起動してくださいtftpd-hpa。

コメントを残す

失われたパーティションとハードディスクデータを安全に復元する方法

失われたパーティションとハードディスクデータを安全に復元する方法

TestDiskとPhotoRecを使って、失われたパーティションやファイルを復元する方法を学びましょう。ソースドライブを保護し、安全にスキャンを行い、復元したデータを別のディスクに保存します。

LinuxデスクトップでQRコードをスキャンする方法

LinuxデスクトップでQRコードをスキャンする方法

CoBangを使えば、Webカメラまたは画像ファイルでLinux上でQRコードをスキャンできます。インストールオプション、セットアップ手順、Flatpakカメラへのアクセスに関する修正方法については、こちらをご覧ください。

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使ってLinuxでウェブカメラの設定を変更する方法

Cameractrlsを使用してLinux上でウェブカメラの設定を変更しましょう。露出、色、フリッカー低減などのサポートされているコントロールを調整し、互換性のあるビデオモードを確認できます。

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールする方法:ツールボックス、Tar.gz、Snap、およびAUR

LinuxにPhpStormをインストールするには、JetBrains Toolboxを使用するか、スタンドアロンのtar.gzアーカイブを使用するか、SnapおよびArch AURオプションを選択してください。Javaは既にバンドルされています。

LinuxにCisco Packet Tracerをインストールする方法

LinuxにCisco Packet Tracerをインストールする方法

Cisco Packet Tracer 9.0.1 を Ubuntu 64 ビット版にダウンロードし、APT を使用して DEB パッケージをインストールし、ターミナルでライセンスに同意してサインインすると、ラボを開始できます。

LinuxでCD-ROMをISOイメージとしてバックアップする方法

LinuxでCD-ROMをISOイメージとしてバックアップする方法

Linux上でGNOME Disksまたはddコマンドを使用してCD-ROM ISOイメージを作成します。光学ドライブを識別し、コピーを監視し、イメージを検証し、破損したディスクやオーディオディスクに別のツールが必要な場合を把握できます。

XFCE 4でデュアルパネルを設定する方法

XFCE 4でデュアルパネルを設定する方法

各ディスプレイごとに個別のXFCE 4パネルを作成し、2番目のパネルを右側の出力に割り当て、位置とサイズを調整し、必要なランチャーとステータス項目を追加します。

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って画像を切り抜く方法

LinuxでGIMPを使って写真の背景を削除する方法:被写体をトレースし、選択した背景を削除し、透明度を保持して、再利用可能なPNG形式でエクスポートします。

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearを無料でダウンロード:公式インストールガイド

FlightGearは公式サイトから無料でダウンロードできます。Windows、macOS、Linuxの各パッケージを比較し、データファイルをインストールして、最初のフライトを開始しましょう。

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSampler:キーボードビートのための無料かつシンプルな音楽サンプラー

OKSamplerはMP3クリップをキーボードのキーにマッピングし、音声をループ再生できます。この旧型フリーウェアの機能、旧機能が失われた箇所、ダウンロード前に確認すべき点について解説します。