ファイアウォールとIDS/IPS
🔥 Vibe プロンプト
「iptablesファイアウォールルールを設定。SQLi検出用のSnort IDSを構成。」
Iptables
# デフォルトポリシー
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# SSH (レート制限)
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Webトラフィック
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Snortルール
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (
msg: "SQL Injection - UNION";
content: "UNION"; nocase;
content: "SELECT"; nocase; within: 30;
sid: 1000001;
)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (
msg: "XSS Attempt";
content: "<script>"; nocase;
sid: 1000003;
)
Fail2Ban
[sshd]
enabled = true
maxretry = 3
bantime = 3600
多層防御
WAF (L7) → Firewall (L3/4) → IDS/IPS (L7) → HIDS (ホスト)
ベストプラクティス
- 多層防御:単一レイヤーに依存しない
- インバウンドはデフォルト拒否
- ブロックトラフィックをすべてログ
- 定期的にルールを見直し
- IaCで自動化(Ansible, Terraform)
重要なポイント
- コアコンセプトをしっかり理解する
- ハンズオンコード例で実践する
- 実世界の問題に応用する
- 演習で知識を強化する
さらに学ぶ
- 公式ドキュメント
- GitHubのオープンソースプロジェクト
- コミュニティフォーラムとディスカッション
- 関連コースとチュートリアル