← 事例一覧に戻る
Application Services2026年3月25日読了 52 views

Cloudflare Spectrum で FTP サービスを保護する - Amazon Linux 2

DD
DD
所属: Cloudflare Japan 株式会社|得意分野: Cloudflare のこと

Cloudflare Spectrum とは

レイヤー3/4で提供している TCP/UDP サービスを DDoS 攻撃から保護すると同時に、オリジンをインターネットに晒すこと無く、Cloudflare が持つルーティングで効率良くコンテンツをお届けすることに最適なソリューション

FTP サービスを Cloudflare Spectrum で保護してみる

  1. 今回は Amazon Linux 2 をオリジンとした FTP を構築
  2. FTP は vsftpd 3.0.2
  3. Spectrum はパッシブモードでの FTP をサポート
  4. Spectrum をご利用いただくには、Cloudflare アカウントチームへご連絡ください
  5. Spectrum でご利用いただくサービスのドメインを、Cloudflare ポータルへ登録する必要があります

AWS EC2 インバウンドルールの設定

EC2 のインバウンドルールで接続ポートとデータポートをオープンします

Screenshot 2024-03-25 at 12.37.15.png

*ハマったポイント
AWS では FTP デフォルトの 21 番がパッシブモードでデータポートに受け渡せない?ので、210 番をオープン

$ sudo yum install vsftpd
$ vi /etc/vsftpd/vsftpd.conf

vsftpd の設定

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
ls_recurse_enable=YES
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
force_dot_files=YES
tcp_wrappers=NO
pasv_enable=YES

pasv_address=ftp.xxx.net
(ftp.xxx.net には Spectrum で設定したサブドメインを入力します)
pasv_addr_resolve=YES
pasv_promiscuous=YES

listen_port=210
pasv_min_port=20000
pasv_max_port=20020
port_enable=YES

Spectrum の設定

Screenshot 2024-03-25 at 12.48.17.png

接続ポートとデータポート、両方の設定を行います。
データポートは範囲指定可能

Screenshot 2024-03-25 at 12.08.19.png

接続、Ingress、Egress が発生すると転送量など見ることができます。

オフィシャルドキュメントはこちら
https://developers.cloudflare.com/spectrum/about/ftp/
21番ポートでの実装で説明されていますが、環境によっていはハマるポイントでもあるようです

Windows Server IIS 編はこちら
https://qiita.com/dd_cloudflare/items/731b1dc9d3d98ceb41a5

免責事項

本記事は Cloudflare Japan のソリューションエンジニアが技術的な知見の共有を目的として個人の立場で執筆したものです。記事の内容は執筆時点の情報および執筆者の主観的な見解を含んでおり、Cloudflare, Inc. の公式な見解・推奨・仕様保証を構成するものではありません。また、記載された構成や手順がすべてのお客様環境で同様に適用できることを保証するものでもありません。製品の正式な仕様や技術サポートについては、Cloudflare 公式ドキュメントまたは担当チームにお問い合わせください。