私が試したことは次のとおりです。
1) vsftpd.pem created using the following self-signed certificate:
openssl req -x509 -nodes -newkey rsa:4096 -keyout $certname -out $certname -days 365
2) owner/permissions: root/0600
3) vsftpd config:
pam_service_name=vsftpd
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
#ssl_ciphers=HIGH
ssl_ciphers=TLSv1.2
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
pasv_min_port=40000
pasv_max_port=40010
anon_mkdir_write_enable=NO
anon_root=/srv/ftp
anon_upload_enable=NO
chroot_local_user=NO
ftpd_banner=Welcome message
idle_session_timeout=900
log_ftp_protocol=YES
max_clients=10
max_per_ip=3
pasv_enable=YES
ssl_sslv2=NO
ssl_sslv3=YES
ssl_tlsv1=YES
xferlog_enable=YES
debug_ssl=YES
すべてが正しく構成されていることを知っていますが、問題が見つからないようです。これは、次のコマンドを実行したときの結果です(xxx.xxx.xxx.xxxはローカルIPアドレスを表し、localhostも試しましたが結果は同じです)。
openssl s_client -connect xxx.xxx.xxx.xxx:21 -showcerts -starttls ftp
CONNECTED(00000003)
write:errno=32
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 72 bytes and written 10 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1561132486
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
strace を実行すると、先頭に次のメッセージが表示されます。
strace /usr/sbin/vsftpd /etc/vsftpd.conf
sapr3pr:/etc/ssl/private # strace /usr/sbin/vsftpd /etc/vsftpd.conf
execve("/usr/sbin/vsftpd", ["/usr/sbin/vsftpd", "/etc/vsftpd.conf"], [/* 62 vars */]) = 0
brk(0) = 0x55a42f75a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7faf6a044000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=120628, ...}) = 0
mmap(NULL, 120628, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7faf6a026000
close(3) = 0
「該当するファイルやディレクトリはありません」! ! ? ?それはどういう意味ですか?構成ファイルに生成されたファイルのパスが正しいです。
構成ファイル:
ls -ltrha /etc/ssl/private/
total 16K
drwxr-xr-x 1 root root 72 Feb 25 2018 ..
lrwxrwxrwx 1 root root 22 Jun 21 11:40 vsftpd.pem -> 20190621_CERT.pem
drwx------ 1 root root 90 Jun 21 11:40 .
-rw------- 1 root root 5.4K Jun 21 11:43 20190621_CERT.pem
注:ソフトリンクまたは直接リンクは同じ結果を生成します。
アドバイスをいただきありがとうございます。ありがとうございます。