QA@IT

[RHEL7.2] xinetd経由起動のvsftpdにおいて、implicitモードで接続できない

3403 PV

OS:RHEL7.2
vsftpd 3.0.3
xinetd 2.3.15

お世話になります。
今回、FTPSサーバを構築しており、xinetd経由のvsftpd(パッシブ/implicitモード)で運用したいと思っています。

クライアント端末よりlftp-4.4.8-7を使用し接続を試みたところ、以下となります。
$ lftp -u [user] -e "debug 12" ftps://xxxxxx
~認証後?ls、mkdirなどを実行
(パスワードを求められ、正しく入力しているが、この時点では何をいれてもFTPコマンドラインに移る)

xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) ポート 990 に接続中
**** ソケットエラー (接続を拒否されました)
また、WindowsクライアントよりWinSCPで接続した場合も以下が表示され、一覧取得に失敗している模様
対象のコンピューターによって拒否されたため、接続できませんでした。
接続に失敗しました

現状の設定と動作状況です。
・firewalld:21/tcp、990/tcp、[パッシブ用ポート]/tcpを許可していますが、
切り分けのため、stopさせています。
・selinux:切り分けのため、disabledとしています。
・vsftpdは都合上、ソースからmakeインストールしたものです。
・vsftpd.conf抜粋

listen=NO
ssl_enable=YES
implicit_ssl=YES
listen_port=990
ssl_ciphers=HIGH

・xinet.d/vsftpdも適切に指定しているつもり。(explicitでは接続できるので問題ないかと…)
・explicitモードで21番ポートを使用すれば接続できる。
・xinetd経由ではなく、listenをYESにし、vsftpdを直接バックグラウンドで起動すると、implicitモードで接続できる。
$ /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &

他に必要な情報がございましたら、提示いたします。
以上、よろしくお願いします。

  • 経過です。いくつか確認していたところ、
    そもそもxinet.d/vsftpdにservice ftpsの記述が無かったため、
    xinetdが990番ポート受信時にvsftpdを起動しようとしていなかったようです。
    上記にftpsを追記(ftpの記述をコピーし、サービス名をftpsにしただけ)してxinetdを再起動したところ、エラーメッセージが変わりました。
    次のコメントに記載します。
    -
  • ポート 990 に接続中
    GNUTLS: Received record packet of unknown type 53
    **** gnutls_handshake: An unexpected TLS packet was received.
    ls: 致命的エラー: gnutls_handshake: An unexpected TLS packet was received.
    -
  • すみません。
    上記エラーについては、ボンミスでした。
    色々と試した際にlisten=YESのスタンドアロンモードになっていたことが原因だったようです。
    結果、lftpにてftpsでの接続は成功するようになったのですが、winscpではタイムアウトになります。やはりxinetdの設定でしょうか?
    -
  • lftpで繋がる以上、winscpの方の問題なような気がしますね。winscpでパッシブモードにはなってますか?あとはWindows側のファイアーウォールを(セキュリティの問題がなければ)無効化しても繋がらないのか、vsftpdのタイムアウト時間を延ばしても起こるのかなどを確認してみてはどうでしょう。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。