Ubuntu - 再起動時にFTPのVSFTPD設定が失敗します。

Ubuntu - 再起動時にFTPのVSFTPD設定が失敗します。

Ubuntu仮想マシンでFTPサーバーを設定する必要がありますが、VSFTPDで構成ファイルを構成するのに問題があります。

オンラインチュートリアルで選択できるさまざまなオプションとさまざまな推論が引き続き表示されます。わからない設定を有効にせずに、シンプルで安全な設定をしたいだけです。

これまで、次のオプションを使用することを選択しました。/etc/vsftpd.conf

Listen=NO
Anonymous_enable=NO
Local_enable=YES
wrtite_enable=YES
dirmessage_enable=YES
use_localtime=YES
connect_from_port_20=YES
xferlog_enable=YES
ftpd_banner=Welcome to Toms FTP Server.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

私が理解している限り、これらのオプションは次のことを行います。

スタンドアロンのリスニング可能、匿名の認証されていないログインの拒否、書き込み可能なファイルの書き込みを許可する、dirメッセージはディレクトリの解釈、ローカル時刻はファイルの日付を指定するために使用される時間、ポート20は説明が必要です。xferlogはログを生成/型の種類ですか? 、バナーは説明を必要とせず、chrootはユーザーが自分のディレクトリに制限されることを指定し、そのディレクトリに制限されていないユーザーはchroot_listにリストされます。

私が経験している問題は、次のように、実際にアクセス権を持つユーザーが指定されているユーザーのリストへのチュートリアル参照が引き続き表示されることです。

user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

これは私のファイルには存在せず、手動で入力しようとするたびにVSFTPDが再起動時に起動しなくなります。ほとんどすべてのチュートリアルでこれを見ましたが、私の設定ファイルには含まれていませんか? ? ?

私は間違って設定しようとしましたか?

セキュアVSFTPD構成の最小要件は何ですか?

このユーザーリストはサポートされなくなりましたか?

このユーザーリストは引き続き必要ですか?

そのファイルを削除して再起動してもエラーコードが消えず、サービスが完全に中断され、毎回再インストールする必要があります。エラーコードは次のとおりです。

systemctl status vsftpd.service

● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-04-26 13:58:09 UTC; 14min ago
  Process: 30588 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
  Process: 30584 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
 Main PID: 30588 (code=exited, status=2)

Apr 26 13:58:09 ubuntu systemd[1]: Starting vsftpd FTP server...
Apr 26 13:58:09 ubuntu systemd[1]: Started vsftpd FTP server.
Apr 26 13:58:09 ubuntu systemd[1]: vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Apr 26 13:58:09 ubuntu systemd[1]: vsftpd.service: Failed with result 'exit-code'.

答え1

コメントを付けるか削除してもう一度use_localtimeやり直してください。

#use_localtime=YES

答え2

listen=NO方法その他着信ネットワーク接続のリスニングを処理します。これはクラシックinetd、a xinetd、または.socket単位ですsystemd

主なポイントは、構成時にlisten=NOプロセスが開始されたすべてがすぐに着信接続を提供し、その接続が終了すると、開始されたものが新しい接続の新しいインスタンスを開始するために終了できることを前提としていますvsftpd。このように設定して簡単なものから始めると、プロセスの標準入力と出力に接続されたネットワークソケットを提供することが期待されます。vsftpdvsftpdvsftpdsystemctl start vsftpdvsftpdsystemdvsftpd

ただし、vsftpd.serviceデバイスはこのタイプのソケット転送(少なくとも1つのラインStandardInput=socketとそのvsftpd.socketデバイスが必要です)用に設定されていないため、vsftpdプロセスは単一の双方向ネットワークソケット以外の標準入力と出力を取得して失敗し、結果が表示されます。 「無効なパラメータ」エラーが発生しました。

最初から開始する予定の場合は、vsftpd着信FTP接続を受信する役割を担うsystemctl start vsftpd.serviceので、vsftpdそのように設定する必要がありますlisten=YES

これを使用することを選択した場合は、userlist_file1行に1つずつ単純なユーザー名のリストを含むファイルをポイントする必要があります。場合、userlist_deny=NOファイルにリストされているユーザーは次のようになります。ログインが許可された唯一の人FTP経由。この設定を有効にすると、userlist_deny=YESユーザーリストファイルにリストされているユーザーはいつも断られた、パスワードを聞く前にも同様です。

関連情報