web-dev-qa-db-ja.com

VSFTPDと暗黙のSSL

Debian専用サーバーがあり、VSFTPDを使用して暗黙のSSLを有効にしたいのですが、困っています。

私はオンラインで読みましたが、実際に見つけることができる唯一のものは、SSLを有効にする方法であり、manページに1つの暗黙のsslコマンドがリストされています。しかし、暗黙のsslは2番目のリスナー(デフォルトでは990)を使用するため、それをDebianで動作させる方法がわかりません。

誰かがこれをうまく動かすことができましたか?

これが私の設定です:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
pam_service_name=vsftpd
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

implicit_SSL = YESを含めると、サーバーは起動しません。

ありがとう

6
Luma

明らかに、どこにでも行くために設定ファイルでimplicit_ssl=YESを設定する必要があります。

ただし、そうすると、サーバーを起動できなくなります。したがって、最初に行うことは、/ var/log/vsftpd.log内のサーバーのログを確認することです(または、メッセージが/var/log/user.logまたは/ var/log/messagesに送信された可能性がありますが、そうではありません) )。

それがなければ、実際には何が問題なのかをお伝えすることはできませんが、おかしな推測として、サーバーのSSL証明書が見つからない可能性はかなり高いと思います。問題のその他の可能性のある候補には、許可の問題、SELinuxの失敗(有効になっている場合)、またはvsftpdが指定した構成オプションのセットを好まないことだけです。安全でない状態で構成されたままにします。または、他の可能性が欠けているわけではありません。それがログが必要な理由です。

4
C Pirate

暗黙的-サーバーはSSLを使用して暗号化されたすべてのものを想定していると想定します。これは、クライアントが最初にサーバーに接続するときに、コマンド接続でSSL接続を直ちにネゴシエートすることを意味します。通常、暗黙的な接続は、ポート99などの別のポートにもあります。したがって、暗黙モードでvsftpdを実行するには、オプションを設定する必要があります

implicit_ssl=YES
listen_port=990 

または

implicit_ssl=YES
listen_port=21 

そして、接続に21ポートを使用するようにftp clientを構成します。 (たとえば、FileZillaクライアントは、暗黙のサーバータイプに接続するときに、デフォルトで990ポートを使用します)。

8
Viktor

私は同様の問題がありました、これはあなたの設定が読むべきものです:

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
pam_service_name=vsftpd
ssl_enable=YES
#The following line enables implicit mode
implicit_ssl=YES
allow_anon_ssl=NO
#This will force secure data connections, not required, but recommended
force_local_data_ssl=YES
#This will force secure logins, not strictly required, but REALLY recommended
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#The next line is the magic which I suspect will make this work for you.
#Some distros require explicit private key designation. You may need to regenerate your
#certificate / key pair. A lot of Debian based distros seem to need this step, and will not
#start the server without it.
rsa_private_key_file=<path to private key>.key

それは私にとってはトリックでした。また、sslではなくtlsを使用しているため、サーバーは実際には通常のftpポートで機能するはずです。一方、ほとんどのclientsは、デフォルトでftps接続のポート990を探しますが、実際にポート990でサー​​ビスを提供したい場合を除いて、これについて実際にできることは何もありません。ただの痛み。また、セキュリティ、セキュリティの強化、クライアント接続の容易さのために、仮想ユーザー、chroot監獄、パッシブモードをそれぞれ検討することもできます。乾杯、-マティアス

4
M. Antioch

Vsftpdのソースコードを見ると、implicit_sslを含む最初のvsftpバージョンがバージョン2.1.0であることがわかります。変更ログは2.0.7のこの機能について言及しています!

また、Cソースコードの構成パーサーを見ると、ドキュメントが正しいことがわかります。これを有効にするには、構成オプションをすべて小文字で記述する必要があります。

例:implicit_ssl = yes

2
cysk

「implicit_ssl」(すべて小文字)を指定してください。Implicit_SSLは機能しません。前述のとおり、サーバーは起動しません。

1
BlackTigerX

fTPがポート990だけにあることを確認しますか? implicit_sslを明示的に設定しない場合、構成listen_portはポート21でftpをアクティブにする必要があります。

Vsftpdがリッスンしているポートを確認し、ポート21のftp経由で接続してみます。

それでも機能しない場合は、debug_ssl=YESを設定してログを確認してください。

もう1つの可能性は、implicit_sslをサポートしないdebian vsftpdバージョンを使用していることです。どのバージョンのdebianおよびvsftpdを使用していますか?このオプションは、バージョン2.0.7で追加されました。

0
Christian