Cloudflare Spectrum とは
レイヤー3/4で提供している TCP/UDP サービスを DDoS 攻撃から保護すると同時に、オリジンをインターネットに晒すこと無く、Cloudflare が持つルーティングで効率良くコンテンツをお届けすることに最適なソリューション
FTP サービスを Cloudflare Spectrum で保護してみる
- 今回は Windows Server IIS をオリジンとした FTP を構築
- FTP は IIS (Windows Server 2022)
- Spectrum はパッシブモードでの FTP をサポート
- Spectrum をご利用いただくには、Cloudflare アカウントチームへご連絡ください
- Spectrum でご利用いただくサービスのドメインを、Cloudflare ポータルへ登録する必要があります
AWS EC2 インバウンドルールの設定
EC2 のインバウンドルールで接続ポートとデータポートをオープンします
*ハマったポイント
① AWS では FTP デフォルトの 21 番がパッシブモードでデータポートに受け渡せない?ので、210 番をオープン
② IIS の Configuration にて、Data Channel Security を Passive の通信に対して無効にしないとダメ
Spectrum の設定
接続ポート(ここでは 210番)、そしてもう一つデータポート用の設定(私は 20000 - 20020を利用)でもします。
ポートの範囲指定可能。
Windows Server で FTP を立ち上げる
Programs and Freature より、Turn Windows freatures on or off へ進んでください。
ここで重要なのは、FTP Extensiblity も同時に有効にすることです。
これを有効化しないと、ハマったポイント ② の Data Channel Security 機能の操作ができません。
IIS で FTP の設定をしていく
ここでは ポートを指定します。21 ではなく、210 にしています。
External IP Address of Firewall に Spectrum で設定したドメイン(例:ftp.example.com の IP アドレス)を入力
Windows Defender Firewall with Advanced Security にて、Inbound Rules を接続ポート、データポート ともに設定する
その他、ユーザー作成や FTP フォルダの作成がありますが、ググっていただければすぐに参考となる手順が出てくると思います。
FTP の Configuration Editor で system.applicationHost/sites の配下にあります、
matchClientAddressForPasv を False に変更して、Apply します。
説明はこちら
https://learn.microsoft.com/en-us/iis/configuration/system.applicationhost/sites/site/ftpserver/security/datachannelsecurity
この設定ができていないと、データポートを利用するフォルダへのアクセスで切断をくらいます。
Response: 150 Opening BINARY mode data connection.
Response: 550 The network connection was aborted by the local system.
Error: Failed to retrieve directory listing
Configuration Editor なるものが諸々の詳細設定になっているのですね。
ハマっていた期間、Windows といえば「Registry」かと思っていましたが、そこに手を出さずに解決ができたのは幸いです。。。
FTP Serviceを再起動して完了
FTP Service を再起動して、
エラー無く FTP クライアントから接続でき、データ転送を確認してください。
転送がされて 30 - 60秒ほどのタイムラグがありますが、Spectrum 設定一覧でトラフィックが見れます