FTP(vsFTPD)の暗号化通信接続設定
条件
:通常のFTP接続が出来ている事
:OpenSSL導入済み
wiresharkでFTPパケットの解析
『FTPの通信は通常の接続であると外部に盗聴された場合
パスワードがそのままパケットを流れているので
筒抜けになってしまいます。』
デフォルトで暗号化されているSCP通信で十分な気がしますが、
一般的にファイル通信はFTPが主流なのでサーバーを複数人に提供する場合はFTPを使っています。
〇設定後のFTPの動き
・FTPSに対応しているクライアントは暗号化接続ができる
・FTPSに対応していないクライアントはFTP接続ができる
・FTPSに対応しているクライアントはFTPとFTPS接続を自由に選べる
という設定を行います。
サーバー証明書の作成
1 |
証明書作成スクリプトの場所へ移動 |
秘密鍵の作成
[bash]# openssl req -new -x509 -days 3650 -key server.key -out ftp.crtCountry Name (2 letter code) [AU]:JP←国名応答
State or Province Name (full name) [Some-State]:Tokyo←都道府県応答
Locality Name (eg, city) []:Chuuo-ku←市区町村応答
Organization Name (eg, company) [Internet Widgits Pty Ltd]:examplecompany.com←ホスト名(又は会社名)
Organizational Unit Name (eg, section) []:←空Enter押下
Common Name (e.g. server FQDN or YOUR name) []:example.com←ホスト名(または管理者名)
Email Address []:postmaster@freebsd.freebsd.com←管理者メールアドレス。
[/bash]
1 |
確認します。
[bash]# lsftp.crt ftp.pem openssl.cnf server.key[/bash]
1 |
1 |
サーバー証明書の作成を行います。 |
1 |
1 |
パーミッションの設定を行います |
vsFTPDの設定
設定を行います。
pasvモードで接続を行うのでpasvポートも設定をしておきます。
[bash]# vi /etc/vsftpd/vsftpd.conf
pasv_min_port=50000
pasv_max_port=50030
※最終行に以下を追加する。
※pasv_address=
はサーバー証明書のホスト名と同じものにする。
#SSLを設定する場合(条件:証明書適用済み)
ssl_enable=YES
pasv_addr_resolve=YES
pasv_address=example.com
rsa_cert_file=/etc/ssl/ftp.pem
require_ssl_reuse=NO
force_local_logins_ssl=NO
force_local_data_ssl=NO
port_enable=YES
allow_anon_ssl=NO
[/bash]
設定の反映行います。
[bash]# service vsftpd restart[/bash]iptablesのポート設定
設定ファイルの編集します。
[bash]# vi /etc/sysconfig/iptables-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
# New FTP(FTPport変更用)
#-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 11121 -j ACCEPT
# FTP Passive
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50000:50030 -j ACCEPT
[/bash]
設定の反映を行います。
[bash]# service vsftpd restart[/bash]FTPクライアントの設定 FFFTPの場合
1.FFFTPの上部タブ「接続」>「ホストの設定」>「設定変更」
2.『拡張』タブを選択
3.”PASVモードを使う”にチェックをいれる
4. 『暗号化』タブを選択
5. ”FTPS(explicit)で接続”にチェックを入れる
6. 接続を行う。
これで暗号化処理されたFTPSによる接続ができます。
FTPSに対応していないクライアントには通常のFTPで接続ができます。