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 は動作するようになりました。