FTPのSSL対応設定

By siteadministrator, 5 1月, 2020

サーバー側

OpenSSLはインストールされているものとする。

VSFTPDをインストールする。

apt install vsftpd

/etc/vsftpd.confを編集する。

以下変更した箇所

listen=YES
listen_ipv6=NO
anonymous_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES

rsa_cert_file=公開鍵
rsa_private_key_file=秘密鍵

# TLSを有効化
ssl_enable=YES

# 暗号化方式
ssl_ciphers=kEECDH+AESGCM+AES128:kEECDH+AESGCM:kEECDH+AES128:kEECDH+AES:!aNULL:!eNULL:!LOW:!EXP

匿名アクセス不可、ユーザーアクセス制限を設定する。

rsa_cert_fileは、Apacheで使用している物を使用した。vsftpdでは、鍵と証明書を1ファイルにしたものを使うこともできる。

vsftpdを再起動する。

/etc/init.d/vsftpd restart

FTPクライアントからのアクセスはFTPES(FTP Explicit SSL)とする。Filezillaでは、「明示的なSSL/TLS」と表記されている。

ちなみに、8GBのファイル(1ファイル)をSSL有・無でダウンロードしてみた。1Gbpsの環境で

SSL有 8.5MBps(約68Mbps)

SSL無 28.5MBps(約230Mbps)

SFTPクライアント

Linuxではlftpが定番らしいのでインストールする。

apt install lftp

使用方法は

lftp USER@HOST

だが、lftp固有の問題らしいが、

「致命的エラー: Certificate verification: Not trusted」のエラーが吐かれ、putもgetも出来ない。この対策として、/etc/lftp.conf の最終行に一行加える。ただし、これは「SSL証明書の正当性確認を無効にする」方法なので、接続先次第では十分配慮が必要な設定である。

vi /etc/lftp.conf

set ssl:verify-certificate no

ユーザー個別に設定したければ、ユーザーのホームディレクトリで、同様に一行加える。

vi .lftprc

set ssl:verify-certificate no

 

 

 

 

タグ

コメント