なぜFTPはファイアウォールと問題を起こしやすいのか
FTP(File Transfer Protocol)は、現在主流の多くのアプリケーションプロトコルとは異なり、通信構造そのものがファイアウォールの設計思想と噛み合いにくいという特徴を持っています。
その最大の理由は、FTPが「制御用」と「データ転送用」で別々のTCPコネクションを使うプロトコルである点にあります。
FTPの基本構造(2つのコネクション)
FTP通信は、常に以下の2種類の接続を使います。
| 種類 |
役割 |
備考 |
| 制御コネクション |
ログイン、コマンド送信 |
通常 TCP 21 |
| データコネクション |
ファイル転送 |
通信ごとに変化 |
制御コネクションは比較的単純ですが、問題はデータコネクションです。
このデータ通信に使われるポート番号や接続方向が、通信の途中で決まるため、ファイアウォールにとっては扱いづらい挙動になります。
ファイアウォールの基本的な考え方
ファイアウォールは一般に、
- 「どのIP・ポート・プロトコルの通信を許可するか」
- 「どの方向(内→外 / 外→内)の通信か」
を事前に定義されたルールで判断します。
そのため、
- 通信途中で新しいポートが指定される
- 外部から内部へ突然新規接続が始まる
といった挙動は、不正通信と区別がつきにくく、遮断対象になりやすいのです。
FTPの2つの動作モードとファイアウォール
FTPには大きく分けて アクティブモード と パッシブモード があります。
この違いが、ファイアウォール越し通信の成否を左右します。
アクティブモード(Active Mode)
通信の流れ(概念)
- クライアント → サーバ
制御コネクション(TCP 21)
- サーバ → クライアント
データコネクション(クライアントが指定したポート)
技術的な補足
- サーバはクライアントから受け取った情報をもとに、クライアントへ向けて新規TCP接続を開始
- 送信元ポートは 一般にTCP 20が使われることが多い が、実装や設定によって必ずしも固定ではない
ファイアウォールとの相性
- クライアント側で「外部からの新規接続」を受ける必要がある
- NATや個人端末のファイアウォール環境では、ほぼ確実に遮断される
現代のインターネット環境では実用性が低く、ほとんど使われない
パッシブモード(Passive Mode)
通信の流れ(概念)
- クライアント → サーバ
制御コネクション(TCP 21)
- サーバ → クライアント
「データ通信用ポート番号」を通知
- クライアント → サーバ
通知されたポートへデータコネクション
特徴
- すべてのTCP接続はクライアント発信
- クライアント側のファイアウォールやNATと相性が良い
重要な注意点(実務での落とし穴)
- サーバ側では
- パッシブ用のポート範囲を事前に固定
- その範囲をファイアウォールで許可
する必要がある
- NAT環境では
- 外部公開IP(PASV応答に返すIPアドレス)の設定
が不適切だと接続に失敗する
「クライアント側が楽になる」だけで、サーバ側の設計は不可欠
ファイアウォールがFTPを扱うための仕組み(FTP ALG)
多くのファイアウォールには FTP ALG(Application Layer Gateway) 機能があります。
FTP ALGの役割
- 制御コネクション内の
- PORT / PASV / EPRT / EPSV
といったFTPコマンドを解析
- これから使われるデータ用ポートを検知
- 必要な通信だけを一時的に許可
注意点
- 平文FTPでは有効に働くことが多い
- FTPS(FTP over TLS)では制御チャネルが暗号化されるため、ALGが内容を解析できない
- その結果
- 通信失敗
- IPやポートの誤変換
といった問題が起きることがある
暗号化環境ではALGに頼らず、パッシブポート範囲を明示的に設計するのが一般的
よくあるFTP×ファイアウォールのトラブル
ログインできるが、転送が始まらない
- TCP 21 は通っている
- データ用ポートが遮断されている
FTP特有の典型トラブル
環境によって繋がったり繋がらなかったりする
- パッシブポート範囲が未固定
- ALGとサーバ設定が干渉
- EPSV / PASV の挙動差
設計の曖昧さが原因
セキュリティ面での整理
FTPは暗号化されない
ファイアウォールがあっても安全とは限らない
ファイアウォールは「通すか遮断するか」を判断する装置であり、
- 通過を許可したFTP通信の中身を守るものではない
- プロトコル自体の脆弱性は解消しない
現代的な代替手段とFWとの相性
| プロトコル |
特徴 |
| FTPS |
FTP + TLS(設定とFW設計がやや複雑) |
| SFTP |
SSHベース、単一ポート(22) |
| HTTPS |
FW・NATと非常に相性が良い |
運用負荷・セキュリティを考えると、SFTPやHTTPSが選ばれることが多い
まとめ(ファイアウォールとFTPの本質的な関係)
- FTPは
- 動的ポート
- 複数コネクション
を前提とした古典的プロトコル
- ファイアウォールは
- 静的ルール
- 単純な接続モデル
を前提に設計されている
- そのため両者は構造的に相性が悪い
- 運用するには
- パッシブモード前提
- 明示的なポート設計
- ALGへの過信を避ける
ことが重要
FTPを使うという選択そのものが、ファイアウォール設計に直接影響するこれが両者の関係性の本質です。
以上、ファイアウォールとFTPの関係性についてでした。
最後までお読みいただき、ありがとうございました。