AlmaLinux 9 に FTP サーバーを構築する際にハマったこと

Linux
記事内に広告が含まれています。
スポンサーリンク

AlmaLinux 9 に FTP サーバーを構築する機会があり、vsftpd で設定したがうまくいかず、結局 ProFTPD にしたという話。

環境

  • OS:AlmaLinux release 9.4 (Seafoam Ocelot)
  • FTPd:vsftpd(version 3.0.5)⇒ ProFTPD(Version 1.3.8b)
  • 暗号化モード:TLS 1.2、Implicit
  • クライアント:NextFTP4(Ver4.95.00 / 64bit)

vsftpd の設定

CentOS 7 からの移行だったので、以前の環境から使用していた vsftpd をインストールしました。

Let's Encrypt で取得した SSL 証明書を使って FTPS(Implicit モード)を設定します。

vsftpd の設定(SSL 周りを抜粋)は下記のとおりです。

NextFTP クライアントから接続すると、問題なく接続できます。ところがファイルをアップロードしていると止まってしまう場合があり、サーバー上に 0 バイトのファイルが作られた状態でエラーになります。

エラーログを見ると、SSL 関連のエラーが出ています。

strict_ssl_read_eof の値を変えたり、ssl_ciphers の設定を色々弄ってみたのですが、どれもうまくいかず結局 ProFTPD に乗り換えることにしました。

ProFTPD の設定

ProFTPD の設定は不慣れなため Include /etc/proftpd/conf.d/*.conf でオーバーライドせずに、proftpd.conf にすべてベタ書きしました。

ログインするユーザーは 1 人だけで、Web サイト(/var/www/html)の更新ができれば良いという事なので、MySQL でのアカウント管理なども連携していません。

Implicit にするために TLSOptions に UseImplicitSSL を追加し、Port を 990 にしています。

この他にも /etc/ftpusers を編集してログインしないユーザーを追記しておきました。

クライアント(NextFTP)でアクセスして、当該ファイルを含めて問題なくアップロードできる事を確認しました。

まとめ

FTP が不調の間 SFTP を使用してもらいましたが、WinSCP の転送設定が適切でなかったため Perl の CGI ファイルがバイナリモードで転送されてしまい、Internal Server Error になってしまいました。

とはいえ、サーバー側(sshd_config)で chroot の設定と、クライアント側(WinSCP)でテキストモード転送の設定をちゃんとすれば、FTP を使わず SFTP で代用可能なケースも多いかもしれません。

コメント

タイトルとURLをコピーしました