#author("2020-10-19T12:04:41+09:00","","")
*** オレオレ証明書の作成 [#k9c0f40b]
- /etc/ssl/unofficial_for_ftp/vsftpd.pem にファイルを作成
- &ref();

*** vfsptd の SSL 接続有効化 [#wec5cebc]
- &ref(vsftpd.conf);
 #
 # This option specifies the location of the RSA certificate to use for SSL
 # encrypted connections.
 #ssl_enable=NO
 rsa_cert_file=/etc/ssl/unofficial_for_ftp/vsftpd.pem
 rsa_private_key_file=/etc/ssl/unofficial_for_ftp/vsftpd.pem
 ssl_enable=YES
 ssl_tlsv1=YES
 ssl_sslv2=NO
 ssl_sslv3=NO
 #ssl_ciphers=HIGH
 force_local_data_ssl=NO
 force_local_logins_ssl=NO
 #allow_anon_ssl=NO
 #require_ssl_reuse=NO
 ssl_ciphers=kEECDH+AESGCM+AES128:kEECDH+AESGCM:kEECDH+AES128:kEECDH+AES:!aNULL:!eNULL:!LOW:!EXP

*** ftp Active mode connection [#rf6c0927]
- &ref(ftp_protocol.jpg);

*** Passive モードの有効化 [#e899f074]
- Passive モードの必要性 = クライアント側の FW を通過させるため
-- パッシブ ftp は、クライアント側ファイアウォールで発生した問題を緩和するためにクライアントが要求できる FTP モード
--- アクティブ ftp は「FTPサーバがFTPソフトに対して接続要求をする」
--- ファイアーウォールは内から外への接続はかなり緩やかに許可するが、外から内への接続は非常に厳しく制限
--- パッシブ ftp はサーバーが利用するポートをクライアントに通知し、改めてクライアントからそのポートにアクセスさせる
-- このプロセスが機能するためには、クライアントとサーバの両方でパッシブ FTP がサポートされている必要があります。
-- パッシブ FTP を使用する場合、クライアントがサーバへの接続を開始します。ほとんどのファイアウォールでは、クライアントが開始したセッションからの着信トラフィックが許可されるためこのプロセスが有効
-- パッシブ FTP 接続プロセスは次のとおり
--- クライアントがポート 21 で FTP サーバに PASV コマンドを送信
--- 送信元ポートは、ランダムな大きな番号のポートです。宛先ポートは 21 
--- サーバが PORT コマンドで応答
--- &color(red){PORT コマンドは、クライアントが接続できるランダムな大きな番号の(エフェメラル)ポートを指定};
--- 通常は IANA 登録ポートの範囲外の 1024-65535 を全て開放するようにサーバーを設定するが広すぎる
--- &color(red){今回は 60000-60030 に限定}; する → このポートへのアクセスを許可する
--- クライアントはこのエフェメラル ポートでサーバへの接続を開始します。
--- サーバが ACK で応答します。FTP セッションが確立されます。
- vsftp.conf で passive mode を明示的に有効にする(デフォルトでは設定項目がなかった)
 #----------------------------------------------------------------------
 # passive mode setting (added Muna) to support SSL connection
 #----------------------------------------------------------------------
 pasv_enable=YES
 pasv_promiscuous=YES
 pasv_address=119.245.194.30
 pasv_min_port=60000
 pasv_max_port=60030

*** ftp Passive mode connection [#e59608dc]
- &ref(ftp_protocol2.jpg);

*** SSL でのセッション確立が成功したが LIST コマンド(=ディレクトリ取得)でエラー [#rf33a831]
 状態:	kgb.hmuna.com のアドレスを解決中
 状態:	119.245.194.30:21 に接続中...
 状態:	接続を確立しました, ウェルカム メッセージを待っています...
 状態:	TLS を初期化しています...
 状態:	証明書を検証中...
 状態:	TLS 接続が確立されました.
 状態:	ログインしました。
 状態:	ディレクトリ一覧を取得中...
 コマンド:	PWD
 レスポンス:	257 "/" is the current directory
 コマンド:	TYPE I
 レスポンス:	200 Switching to Binary mode.
 コマンド:	PASV
 レスポンス:	227 Entering Passive Mode (119,245,194,30,234,126).
 コマンド:	LIST
 エラー:	Connection timed out after 20 seconds of inactivity
 エラー:	ディレクトリ一覧表示の取り出しに失敗しました
--  Entering Passive Mode (119,245,194,30,234,126) の意味は
--- FTPサーバ 119.245.194.30 の &color(red){ポート番号 234x256+126(=60,030番)」に対してデータ転送用の接続を行ってください};
--- サーバーは &color(red){接続毎に設定範囲の中でどのポートを利用するかをクライアントに指定する}; ので常に上記と同じとはならない
--- レスポンス:	227 Entering Passive Mode (119,245,194,30,234,120) → この例では 60,024 番ポートが指定された

*** 自宅のルーターでポートマッピングの設定 (= Gateway の設定)を行う必要がある [#z5cf21b4]

*** 参考 URL [#y9bb5124]
- [[FTP サーバー : Vsftpd over SSL/TLS:https://www.server-world.info/query?os=CentOS_8&p=ftp&f=5]]
- [[vsftpd + pasv + SSL(FTPS)でファイル一覧が取得でき無いときに確認すること:https://se.ykysd.com/2017/05/19/vsftpd_pasv_ssl_ftps/]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS