Oracle Linux 8 TFTP サーバーの障害

Oracle Linux 8 TFTP サーバーの障害

Oracle Linux 8 で TFTP サーバーを構成していますが、いくつか奇妙な問題が発生しています。

設定ファイル:

tftpサーバサービス
::::::::::::::
[ユニット]
説明=Tftp サーバー
必要条件=tftp-server.socket
ドキュメント=man:in.tftpd

[サービス]
ExecStart=/usr/sbin/in.tftpd -c -p -s /tftpboot
標準入力=ソケット

[インストール]
WantedBy=マルチユーザー.ターゲット
また=tftp-server.socket
::::::::::::::
tftpサーバのソケット
::::::::::::::
[ユニット]
説明=Tftp サーバー アクティベーション ソケット

[ソケット]
リスンデータグラム=69
BindIPv6Only=両方

[インストール]
WantedBy=ソケット.ターゲット

tftp-server と tftp.socket の両方が実行され、有効になっています。

● tftp-server.service - Tftp サーバー
   ロード済み: ロード済み (/etc/systemd/system/tftp-server.service; 有効; ベンダープリセット: 無効)
   アクティブ: 火曜日 2022-12-13 09:08:41 EST からアクティブ (実行中)、11 分前
     ドキュメント: man:in.tftpd
 メイン PID: 6308 (in.tftpd)
    タスク: 1 (制限: 48835)
   メモリ: 200.0K
   Cグループ: /system.slice/tftp-server.service
           └─6308 /usr/sbin/in.tftpd -c -p -s /tftpboot

12月13日 09:08:41 systemd[1]: Tftpサーバーを起動しました。

● tftp.socket - Tftp サーバーアクティベーションソケット
   ロード済み: ロード済み (/usr/lib/systemd/system/tftp.socket; 有効; ベンダープリセット: 無効)
   アクティブ: 火曜日 2022-12-13 09:08:37 EST からアクティブ (実行中)、11 分前
   受信: [::]:69 (データグラム)
    タスク: 0 (制限: 48835)
   メモリ: 0B
   Cグループ: /system.slice/tftp.socket

12月13日 09:08:37 systemd[1]: Tftpサーバアクティベーションソケットを閉じました。
12月13日 09:08:37 systemd[1]: Tftpサーバアクティベーションソケットを停止しています。
12月13日 09:08:37 systemd[1]: Tftpサーバーアクティベーションソケットをリッスンしています。

/tftpboot ディレクトリの権限は、誰でも読み取り可能 (777) に設定されており、ディレクトリ内に誰でも読み取り可能なテキスト ファイルがあります。同じサーバーから TFTP を実行しようとすると、「エラー コード 1: ファイルが見つかりません」というメッセージが表示されます。同じローカル VLAN 上のサーバーから TFTP 取得を実行しようとすると、取得が開始され、最終的に「転送がタイムアウトしました」というエラーが表示されます。サーバーの iptables は、UDP ポート 69 の受信を許可するように構成されています。

何が足りないのかよく分かりません。参考:しかし、ローカルホストからでも接続できません。 何かアイデアがあれば、ぜひ教えてください。

答え1

問題が分かったと思います。ステータス チェックをいくつか実行すると、tftp と tftp-server は両方とも実行されていましたが、異なる設定ファイルを使用していることがわかりました。

systemctl ステータス tftp
● tftp.service - Tftp サーバー
   ロード済み: ロード済み (/usr/lib/systemd/system/tftp.service; 間接; ベンダープリセット: 無効)
   アクティブ: 2022-12-14 10:56:41 EST 水曜日からアクティブ (実行中)、10 分前
     ドキュメント: man:in.tftpd
 メイン PID: 9604 (in.tftpd)
    タスク: 1 (制限: 48835)
   メモリ: 244.0K
   Cグループ: /system.slice/tftp.service
           └─9604 /usr/sbin/in.tftpd -s /var/lib/tftpboot

12月14日 10:56:41 systemd[1]: Tftpサーバーを起動しました。

systemctl ステータス tftp サーバー
● tftp-server.service - Tftp サーバー
   ロード済み: ロード済み (/etc/systemd/system/tftp-server.service; 有効; ベンダープリセット: 無効)
   アクティブ: 2022-12-13 火曜 12:57:45 EST 以降非アクティブ (停止)、22 時間前
     ドキュメント: man:in.tftpd
 メイン PID: 6832 (コード = 終了、ステータス = 0/成功)

12月13日 12:42:45 systemd[1]: Tftpサーバーを停止しました。
12月13日 12:42:45 systemd[1]: Tftpサーバーを起動しました。
12月13日 12:57:45 systemd[1]: tftp-server.service: 成功しました。

/etc/systemd/system/tftp-server.service から /usr/lib/systemd/system/tftp.service に構文をコピーすると、TFTP が再び動作するようになりました。なぜこのようなことが起こったのかは完全にはわかりませんが、少なくとも TFTP は動作するようになりました。

関連情報