FTP接続時に 500 AUTH は認識できません エラーとなる

proFTP設定してるときにエラーとなったので割と悩みました。同じ症状で悩む方の助けになりますように。

エラー

220 FTP Server ready.
AUTH TLS
500 AUTH は認識できません(500 AUTH not understood )
AUTH SSL
500 AUTH は認識できません(500 AUTH not understood )

エラーとしては暗号化がうまくできていないことが原因です。

対応

1.TLSが有効になっているか

「/etc/proftpd.conf」
TLS周りを確認します。証明書も正しいか確認します。

TLSEngine on
TLSRSACertificateFile /usr/local/certs/server1.crt
TLSRSACertificateKeyFile /usr/local/certs/server1.key

チェックコマンドでconf設定に問題ないか確認します。

$ proftpd -t -c /usr/local/etc/proftpd.conf
Checking syntax of configuration file
Syntax check complete.

2.デーモン起動時オプションに「-DTLS」がついていない

設定ファイルの起動オプションの設定を変更します。
「/etc/sysconfig/proftpd」を編集します。

PROFTPD_OPTIONS="-DTLS"

systemdを使用して起動している場合、以下を確認
「/usr/lib/systemd/system/proftpd.service」を編集します。

Environment = PROFTPD_OPTIONS="-DTLS"

xinetdを使用して起動している場合、以下を確認
「/etc/xinetd.d/proftpd」を編集します。

server_args = -DTLS

3.proftpdがTLS対応でコンパイルされているか

以下コマンドでそもそもTLS対応になっているか確認。
「mod_tls.c」が入っているか。

$ proftpd -l
・・・
mod_tls.c
・・・

4.「/etc/proftpd.conf」を確認

以下のようにバーチャルホストでTLSの設定を書いているものの、IPが間違っていたら、当然ながら「500 AUTH は認識できません(500 AUTH not understood )」エラーとなります。

<VirtualHost 192.168.2.51>
ServerName "ftp.example.com FTP server"
・・・
TLSEngine on
TLSLog /var/log/proftpd/example-tls.log
TLSCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
TLSRequired off
TLSRSACertificateFile /usr/local/certs/server1.crt
TLSRSACertificateKeyFile /usr/local/certs/server1.key
TLSVerifyClient off
ExtendedLog /var/log/proftpd/example-all.log ALL allinfo
ExtendedLog /var/log/proftpd/example-write.log WRITE write
ExtendedLog /var/log/proftpd/example-read.log READ read
ExtendedLog /var/log/proftpd/example-auth.log AUTH auth
</VirtualHost>

デフォルトバーチャルホストを追加してそちらに流れるか確認します。

もしくはIPの記載を変更して、正しく接続できるようになるか確認してみてください。