基本情報技術者 2011年 春期 午前(科目A) 問44
問題文
社内ネットワークとインターネットの接続点にパケットフィルタリング型ファイアウォールを設置して、社内ネットワーク上のPCからインターネット上のWebサーバ(ポート番号80)にアクセスできるようにするとき、フィルタリングで許可するルールの適切な組合せはどれか。

選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
パケットフィルタリングによるHTTPアクセス制御【午前解説】
正解の理由
正解: ウ
HTTP(TCP/80)の場合、クライアント(PC)がSYNを送るときは送信元ポートがエフェメラル(1024以上)、宛先ポートが80です。サーバの応答は送信元ポート80、宛先がクライアントのエフェメラルポートになります。パケットフィルタリング型ファイアウォールで両方向のパケットを許可するには、クライアント発のパケット(1024以上→80)とサーバ発の応答(80→1024以上)をそれぞれ許可する必要があり、ウの組合せだけがこれと一致します。
HTTP(TCP/80)の場合、クライアント(PC)がSYNを送るときは送信元ポートがエフェメラル(1024以上)、宛先ポートが80です。サーバの応答は送信元ポート80、宛先がクライアントのエフェメラルポートになります。パケットフィルタリング型ファイアウォールで両方向のパケットを許可するには、クライアント発のパケット(1024以上→80)とサーバ発の応答(80→1024以上)をそれぞれ許可する必要があり、ウの組合せだけがこれと一致します。
解法ステップ
- 通信の役割を確認する:クライアント(PC)→サーバ(Web, port 80)。
- TCP接続の基本を想起する:クライアントはエフェメラル(1024以上)→サーバ80で接続要求、サーバは80→クライアントのエフェメラルで応答。
- 選択肢と照合する:PC→Webが「送信元1024以上、宛先80」かつWeb→PCが「送信元80、宛先1024以上」になっているものが正解。これがウです。
選択肢別の誤答解説
- ア:PC→Webで送信元を80としている(誤り)。クライアント側の送信元は通常1024以上です。Web→PCはサーバ送信元80で宛先1024以上となっているが、片方が間違っているため不正解。
- イ:PC→Webで送信元80、Web→PCで送信元1024以上と逆になっている(両方逆)。どちらも役割が入れ替わっており不正解。
- ウ:PC→Webは送信元1024以上→宛先80、Web→PCは送信元80→宛先1024以上と正しく表現しており正解。
- エ:PC→Webは正しいが、Web→PCが送信元1024以上→宛先80となっておりサーバの送信元が誤っているため不正解。
よくある誤解
- クライアントの送信元ポートを80と勘違いする:サーバが80を使い、クライアントは通常エフェメラルポートを使用します。
- 「外向き許可だけでよい」と考える:ステートレスなパケットフィルタでは戻りパケットも個別に許可する必要があります(ステートフルなら別)。
- エフェメラルポートの範囲を無視する:実務ではOSや設定で範囲が異なるが、試験想定では「1024以上」を指すことが多いです。
補足コラム
- エフェメラルポートの範囲はOSにより異なりますが、試験的な記述では「1024以上」と表現されることが多いです。
- 実務ではほとんどのファイアウォールはステートフルであり、「アウトバウンドのTCP SYNを許可すれば、確立済みの戻りトラフィックは自動的に許可」されます。試験問題が「パケットフィルタリング型」と明記している場合はステートレスの振る舞い(ポート番号で明示的に許可)を想定します。
- NATを通す場合、送信元ポートが変わることがありますが、サーバ側から見た応答先はNAT後のエフェメラルポートになるため、基本的な方向性(クライアント側エフェメラル→サーバ80、応答は80→エフェメラル)は変わりません。
FAQ
Q1: ステートフルファイアウォールならどう設定すればよいですか?
A1: 多くは「内部ネットワークから外向きのTCP(80)を許可」するルールだけでよく、戻りは「ESTABLISHED/RELATED」で自動的に許可されます。
A1: 多くは「内部ネットワークから外向きのTCP(80)を許可」するルールだけでよく、戻りは「ESTABLISHED/RELATED」で自動的に許可されます。
Q2: クライアントが1024未満のポートを使うことはありますか?
A2: 権限のあるプロセス(rootなど)が低い番号を使うことはありますが、一般的なクライアントアプリケーションはエフェメラルポート(1024以上)を使用します。
A2: 権限のあるプロセス(rootなど)が低い番号を使うことはありますが、一般的なクライアントアプリケーションはエフェメラルポート(1024以上)を使用します。
Q3: UDPでも同じ考え方でよいですか?
A3: 基本は同じで、クライアントはエフェメラルポートを使い、サーバ側は特定の固定ポートを使います。ただし、UDPは接続の概念が異なるためステートフルな追跡の扱いがTCPと異なる点に注意してください。
A3: 基本は同じで、クライアントはエフェメラルポートを使い、サーバ側は特定の固定ポートを使います。ただし、UDPは接続の概念が異なるためステートフルな追跡の扱いがTCPと異なる点に注意してください。
関連キーワード: パケットフィルタリング、ファイアウォール、TCP、HTTP、エフェメラルポート、送信元ポート、宛先ポート、ステートフル、NAT、ルール設計

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

