実践Linux
RockyLinux8 RockyLinux8 目次へ TOP(HOME)へ
FTPS(Vsftpd over SSL/TLS) 2021年7月
FTPの通信をSSL/TLSで暗号化します。
●vsftpd用の自己署名証明書の作成
まず、Makefileをコピーしておく。
# cp /usr/share/doc/openssl/Makefile.certificate /etc/pki/tls/certs/
コピーしたファイル名をMakefileに変更しておく。
Makefileの編集 有効期限が365日に設定されているので、最初のところにあるDAYS=3650(10年)等に変更しておく。
# cd /etc/pki/tls/certs
# make vsftpd.crt 名称はなんでもよい
パスフレーズの入力(2回)。秘密鍵を暗号化するために利用される。
再度、パスフレーズの入力(3回目)。
証明書の情報を入力。(適当に入力)
国名
都道府県名
市区名
組織名
部署名
サーバーFQDN名
監理者のメールアドレス
以上で、サーバーの秘密キー(/etc/pki/tls/certs/vsftpd.key)と証明書(/etc/pki/tls/certs/vsftpd.crt)が作成される。
秘密キーは/etc/pki/tls/private/に移動しておく。
# mv /etc/pki/tls/certs/vsftpd.key /etc/pki/tls/private/
秘密鍵からのパスフレーズの削除
# cd /etc/pki/tls/private
# mv vsftpd.key vsftpd.key.org
# openssl rsa -in vsftpd.key.org -out vsftpd.key パスフレーズの入力
# chmod 700 vsftpd.key
●設定ファイル /etc/vsftpd/vsftpd.conf
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
ssl_enable=YES
force_local_data_ssl=YES 平文でのローカルユーザーのデータ転送を許可しない(クライアントがSSL/TLSに対応してない場合があるときのみ変更)
force_local_logins_ssl=YES 平文でのローカルユーザーのログインを許可しない(クライアントがSSL/TLSに対応してない場合があるときのみ変更)
allow_anon_ssl=NO 匿名ログインでのSSL/TLS通信は許可しない
###### 暗号モード SSL/TLSを使う。sslv2やsslv3は推奨されない。
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
#ssl_ciphers= 暗号方式。デフォルトではDES-CBC3-SHA。
###### PASVポートを固定(パッシブモードで使うポート)
pasv_enable=YES
#pasv_address=
pasv_min_port=51000
pasv_max_port=51010
listen_port=50021 安全性を考慮して、標準FTPポート21も変更しておく
●firewalldの設定
# firewall-cmd --get-services 定義されているサービス一覧
/usr/lib/firewalld/services/ftp.xmlをみると、これは21ポートなっている。
これをコピーして、/etc/firewalld/services/に貼り付け編集する。
<port protocol="tcp" port="50021"/>に変更。
# firewall-cmd --reload firewalldのリロード。
FTPポートとPASVポートを開放
# firewall-cmd --list-service --zone=external externalゾーンに、すでに適用されているサービス。
# firewall-cmd --add-service=ftp --zone=external --permanent
# firewall-cmd --add-port=51000-51010/tcp --zone=external --permanent
# firewall-cmd --reload
●vsftpdサービスの再起動
# systemctl restart vsftpd
Windowsクライアント
●Filezillaの場合
サイトマネージャー
一般
ホスト ***.***.***.***
ポート 50021
プロトコル FTP
暗号化 明示的なFTP over TLS
ログオンの種類 通常
ユーザー ******
パスワード ********
転送設定
転送モード パッシブ
●FFFTPの場合
ホストの設定
基本
ホスト名 ***.***.***.***
ユーザー名 ******
パスワード ********
拡張
PASVモード チェックされていることを確認
ポート番号 50021に変更
暗号化
「暗号化なしで接続を許可する」 チェックをはずす
FTPS(Explict)にチェック
Explicit (明示的)モード
サーバに接続した後にクライアントがAUTHコマンドを実行して、使用するプロトコル(SSLまたはTLS)のネゴシエーションをおこない、適合したプロトコルでのハンドシェイク完了後に暗号化された通信がおこなわれます。クライアントが使用するプロトコルを選択することが可能です。クライアントがAUTHコマンドを発行しなければ暗号化通信は行われません。
Implicit (暗黙)モード
サーバに接続した直後にSSLまたはTLSによるハンドシェイクがおこなわれます。サーバが使用するプロトコルにクライアントが合わせる必要があります。要するに接続したらすぐにFTPSを使用するモードです。現在ではあまり使用されないようです。
TOP(HOME)へ