iptables・firewalld によるパケットフィルタリング

〜 Linuxのネットワークセキュリティを守る鉄壁の盾 〜


目次

📌 概要

Linuxでのパケットフィルタリングとは、ネットワークを通過するパケットを条件に応じて許可・拒否する技術です。
iptables(または ip6tables)や、よりモダンなfirewalld、初心者向けのufwなどがあり、NATやポートリダイレクトによる構成も可能です。


🧱 iptablesの基本構造

iptablesはパケットの通過点ごとに「チェーン」へルールを設定して管理します。

チェーン役割
INPUT自ホストに届くパケットに対する処理
OUTPUT自ホストから出るパケットに対する処理
FORWARD他ホストへ転送されるパケットの処理(ルータ用途)
PREROUTING / POSTROUTINGNAT用(DNAT/SNAT)

🔧 基本操作コマンド

# ルールの確認(IPv4)
sudo iptables -L -n -v

# ルール追加(例:SSHを許可)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# デフォルトポリシーの設定(全拒否にする)
sudo iptables -P INPUT DROP

# 設定の保存
sudo iptables-save > /etc/iptables/rules.v4

# 設定の復元
sudo iptables-restore < /etc/iptables/rules.v4

IPv6の場合は ip6tables を使います。


🌐 IPパケットの転送設定(ルータとして使う)

以下のファイルを有効にすることで、パケット転送が可能になります:

# IPv4
echo 1 > /proc/sys/net/ipv4/ip_forward

# IPv6
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

永続化には /etc/sysctl.conf に以下を追記:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

🔁 NAT・ポートリダイレクト(例)

# IPマスカレード(ローカル→インターネットへの変換)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 外部80番 → 内部192.168.1.100:8080に転送(ポートフォワード)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080

📄 /etc/servicesの役割

  • 各ポート番号に対応するサービス名の定義が記述されています。
  • 読みやすさ・保守性向上のためにiptablesルールでサービス名指定が可能。
# 例:HTTPポートをサービス名で指定
iptables -A INPUT -p tcp --dport http -j ACCEPT

🧯 firewalldの特徴と操作

特徴:

  • iptablesよりも抽象度が高く、ゾーンベースの管理
  • iptablesを内部的に使っている(nftables対応も進行中)

主なコマンド(firewall-cmd):

# 現在のゾーン確認
firewall-cmd --get-active-zones

# SSHを許可
firewall-cmd --add-service=ssh --permanent

# ポート追加(HTTP)
firewall-cmd --add-port=80/tcp --permanent

# 変更の適用
firewall-cmd --reload

設定ファイルは通常 /etc/firewalld/ 以下に格納されます。


🛡️ ufw(Uncomplicated Firewall)

  • Ubuntu系に多く採用されている簡易ラッパー
  • 内部的にはiptablesを利用

例:

sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw deny 80
sudo ufw status verbose

⚠️ 攻撃回避のテクニック例

攻撃例対策方法
ポートスキャン必要最小限のポートのみ許可(デフォルトDROP)
SYN Floodiptables--syn -m limit を使用
DNS AmplificationINPUTでUDP53制限、FORWARD拒否
不正IPiptables -s 192.168.0.0/24 -j DROP などで遮断

🧠 試験・実務ポイントまとめ

項目理解ポイント
iptablesチェーンとターゲットの理解(DROP/ACCEPTなど)
NAT・マスカレード-t nat を使用、PREROUTING/POSTROUTINGの使い分け
firewalldfirewall-cmdでの永続設定とゾーンの活用
ufw初心者向け簡易管理ツール、Ubuntu系でよく使われる
設定の保存iptables-save, firewall-cmd --permanentの違いに注意

✅ まとめ

用途ツールコマンド例
パケットフィルタiptables, firewalld, ufwiptables -A INPUT, firewall-cmd
NATiptables -t natMASQUERADE, DNAT, SNAT
設定保存iptables-save, iptables-restore永続化に重要
転送設定/proc/sys/net/ipv4/ip_forwardsysctl.confで設定
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次