※ ChatGPTを利用し、要約された質問です(原文:proftpd inetd に変更する方法?)
Proftpdをinetdに変更する方法
このQ&Aのポイント
Centos8でstandalone方式でFTPサーバーを立ち上げているが、DDNSを使用して外部からアクセスするにはinetd方式に変更する必要がある。
xinetdをインストールして起動し、proftpd.confのServerTypeをinetdに変更する。
proftpdとxinetdを再起動するとproftpdは動作していない状態になる。解決策を探している。
現在、Centos8 準拠の国産の Miracle Linux 8.6 を使って standalone 方式で FTP サーバーを立ち上げましたが、DDNS を使って外部からアクセスできるようにするには、inetd 方式にする必要があることがわかりました。(standaloneだとIPが変わっても追従できない。)
そこで、現在 LAN 内部では正常に動作している standalone 方式の proftpd を inetd 方式に変更したいのですが、やり方がわからず困っています。 ご教示頂きたく、よろしくお願いいたします。
<私の方でやった事>
(1)xinetdをインストール
# dnf -y install xinetd
(2)xinetdを起動
# systemctl start xinetd.service
(3)xinetdの状態確認
# systemctl status xinetd.service
systemctl status xinetd.service
● xinetd.service - Xinetd A Powerful Replacement For Inetd
Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2023-03-25 00:08:38 JST; 4min 33s ago
Docs: man:xinetd
man:xinetd.conf
man:xinetd.log
(以下省略)
Active: active (running) となっているので正常動作中と判断しました。
(4)proftpd.conf を修正する。
# vi /usr/local/etc/proftpd.conf
ServerType standalone から ServerType inetd
(5)proftpd と xinetd を再起動。
# systemctl restart proftpd
# systemctl restart xinetd.service
proftpd 関連の「必要な処理」が何もされていないためか、この状態では proftpd は動作していません。
下記のように Active: failed となります。
# systemctl status proftpd
● proftpd.service - proftpd
Loaded: loaded (/etc/systemd/system/proftpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2023-03-25 00:28:31 JST; 33min ago
Main PID: 1695 (code=exited, status=1/FAILURE)
standalone 方式の時、
/etc/systemd/system/proftpd.service という名で、以下の内容が記載されているファイルを作成しましたが
[Unit]
Description=proftpd
After=network.target
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/local/sbin/proftpd
[Install]
WantedBy=multi-user.target
これが inetd 方式になるとどうなるのか、も良くわかりません。
また上記の「必要な処理」をネットで探したのですが、私には旧方式のもの(systemctl ではなく init.d/xinetd restart のような)しか見つかりませんでした。
以上のような状況です。
解決方法を、ご教示頂きたく、よろしくお願いいたします。
補足
いろいろとありがとうございます。 外部接続可能なサーバーは、サークル活動時の Web サーバーとして使っており、頻繁に再起動したりするのはマズイと思ったので、まずは LAN 内で正常に動作している standalone 方式の別の FTP サーバーを使って、これを inetd 方式に変更する、という事で進めています。 このアプローチは間違っていないでしょうか? このアプローチが問題無い、という事を前提に、ご教示頂いた方法をベースにいろいろと試行錯誤を繰り返していますが、まだ FTP サーバーと接続できていません。今までやった事は下記です。 なお、我が家のサーバーは 全てSELinux を停止、パケットフィルタリングも停止しています。 # systemctl stop proftpd ← proftpdを止める # systemctl disable proftpd ← 次のOSの起動時にproftpdのデーモンが立ち上がらないようにする 前回報告したように、xinetd はインストール済みなので、 # systemctl stop xinetd ← とりあえず xinetd は停止。 # vi /etc/xinetd.d/ftp で、以下の内容の ftp ファイルをネット情報を参考に作成する。 { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/sbin/proftpd なお、最後のラインは実行ファイルが実際に存在するパスが不明だったので、 # find / -name proftpd を実行して、 /usr/local/src/proftpd-1.3.7f/proftpd /usr/local/lib/proftpd /usr/local/include/proftpd /usr/local/sbin/proftpd /var/log/proftpd の結果を得たので、上記の値にしました。 その後、 # systemctl restart xinetd ← xinetdを再起動 # systemctl enable xinetd ← 次のOSの起動時にxinetdが立ち上がるようするを実行 # systemctl status xinetd で状態を確認すると、以下のようにエラーはない事を確認。 ● xinetd.service - Xinetd A Powerful Replacement For Inetd Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled) Active: inactive (dead) since Sun 2023-03-26 16:13:44 JST; 11min ago Docs: man:xinetd man:xinetd.conf man:xinetd.log Process: 1001 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid (code=exited, status=0/SUCCESS) Main PID: 1071 (code=exited, status=0/SUCCESS) 3月 26 15:48:33 XS35V4 xinetd[1071]: removing echo 3月 26 15:48:33 XS35V4 xinetd[1071]: removing echo 3月 26 15:48:33 XS35V4 xinetd[1071]: removing tcpmux 3月 26 15:48:33 XS35V4 xinetd[1071]: removing time 3月 26 15:48:33 XS35V4 xinetd[1071]: removing time 3月 26 15:48:33 XS35V4 xinetd[1071]: xinetd Version 2.3.15 started with loadavg labeled-networking options compiled in. 3月 26 15:48:33 XS35V4 xinetd[1071]: Started working: 0 available services 3月 26 16:13:44 XS35V4 systemd[1]: Stopping Xinetd A Powerful Replacement For Inetd... 3月 26 16:13:44 XS35V4 systemd[1]: xinetd.service: Succeeded. 3月 26 16:13:44 XS35V4 systemd[1]: Stopped Xinetd A Powerful Replacement For Inetd. ここで、 ・proftpd.conf を修正した。 # vi /usr/local/etc/proftpd.conf #ServerType standalone ServerType inetd 念のため、systemctl restart xinetd で xinetd の再起動も行った。 この状態で LAN 内部から、passive 、非passive のどちらのモードでも FTP サーバーに接続できない、という現状です。 気になるのは、systemctl status xinetd で状態を確認しても、ftp という語彙が無い事と、 /etc/xinetd.conf を私は編集した事が無いことです。 以上のような状況です。アドバイスをお願いしたしたく、よろしくお願い申しあげます。