パケットフィルタ

LinuC 303における「パケットフィルタ」では、Linuxにおけるファイアウォールの仕組みや、複数のパケットフィルタリングツール(iptables、nftables、ebtablesなど)の使い方についての深い理解が求められます。本記事では、これらのツールの役割、使い方、設定例を通して、実務に役立つ知識を解説します。


目次

1. 一般的なファイアウォールアーキテクチャとDMZ

1.1 ファイアウォールの役割

ファイアウォールは、ネットワークを保護するために、通信トラフィックを監視・制御します。主な機能には以下があります:

  • パケットフィルタリング
  • アクセス制御(IPアドレス、ポートなど)
  • NAT(Network Address Translation)

1.2 DMZ(De-Militarized Zone)

DMZは、外部(インターネット)と内部(LAN)の間に配置される中間ゾーンです。以下のようなサーバーを配置します:

  • Webサーバー
  • メールサーバー
  • DNSサーバー

DMZに置かれたシステムが侵害されても、内部ネットワークへの影響を最小限に抑えます。


2. netfilter, iptables, ip6tables

2.1 netfilterとは

Linuxカーネルの中に組み込まれたパケットフィルタリングの仕組みです。iptablesやnftablesなどのフロントエンドツールを通して制御されます。

2.2 iptablesとip6tables

  • iptables はIPv4向け、ip6tables はIPv6向けです。
  • ルールは以下のチェーンに分類されます:
    • INPUT: ローカルホストへの受信パケット
    • OUTPUT: ローカルホストからの送信パケット
    • FORWARD: ルーターとしての通過パケット

標準モジュールとターゲット

  • モジュール例: tcp, udp, conntrack, multiport
  • ターゲット例: ACCEPT, DROP, REJECT, LOG

テストと確認コマンド

iptables -L -v
ip6tables -L

保存と復元

iptables-save > /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4

3. 接続追跡(Connection Tracking)とNAT

3.1 conntrack

接続状態をトラッキングして、ステートフルなフィルタリングを実現します。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

3.2 NATの設定

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

4. IPセット(ipset)

大量のIPアドレスを管理するための仕組み。

ipset create blacklist hash:ip
ipset add blacklist 192.0.2.1
iptables -A INPUT -m set --match-set blacklist src -j DROP

5. nftablesの基本

nftablesはiptablesの後継として推奨される新しいパケットフィルタです。

nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0; }
nft add rule inet filter input ip saddr 192.0.2.1 drop

nftablesはIPv4/IPv6を統合的に管理でき、より柔軟で高速なルール管理が可能です。


6. ebtablesの基本

ebtablesはブリッジ(レイヤ2)上でのパケットフィルタに使用されます。

ebtables -A INPUT -s AA:BB:CC:DD:EE:FF -j DROP

仮想化環境などでMACアドレスベースの制御に使用されます。


7. conntrackdの認識

  • conntrackd は、クラスタリング環境において接続追跡情報を同期させるためのデーモンです。
  • 冗長構成において、ステート情報を他ノードと共有できます。

8. 代表的コマンドと設定ファイル

ツール説明
iptablesIPv4 パケットフィルタ
ip6tablesIPv6 パケットフィルタ
ipsetIPアドレスの集合管理
nft新しいパケットフィルタエンジン
ebtablesEthernetブリッジ用のパケットフィルタ
iptables-save / restoreルールの保存・復元

■ 章末問題


問題1:iptables -A INPUT -p tcp --dport 22 -j ACCEPT の意味は何ですか?

A. 22番ポートからの出力トラフィックを拒否する
B. SSHポートへの入力接続を許可する
C. TCP 22番ポートの接続をログに記録する
D. 22番ポートのICMPトラフィックを許可する

解説

正解:B

解説: このコマンドは、TCPポート22(通常はSSH)への入力トラフィックを許可するルールを追加します。



問題2:
IPv6パケットフィルタリングに使用するコマンドはどれですか?

A. iptables
B. nft
C. ip6tables
D. netfilter

解説

正解:C

解説: ip6tables は IPv6 トラフィック用のパケットフィルタリングツールです。



問題3:
以下のどのツールが Ethernet フレームレベルでフィルタリングを行いますか?

A. nft
B. ebtables
C. iptables
D. ipset

解説

正解:B

解説: ebtables はブリッジ接続されたインタフェース間の Ethernet フレームをフィルタリングするために使用されます。



問題4:
nftables でルールを定義する際、ルールの集合を格納する構造は何ですか?

A. table
B. chain
C. filter
D. list

解説

正解:B

解説: nftables では、ルールは chain に属し、chaintable に属します。



問題5:
以下のどの機能が NAT を可能にするモジュールですか?

A. filter
B. mangle
C. nat
D. raw

解説

正解:C

解説: nat モジュールはアドレス変換(NAT)を実装するために使用されます。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次