Hatena::ブログ(Diary)

TECHNERD::INIT このページをアンテナに追加

2009-02-17 ip6tables このエントリーを含むブックマーク

IPv6フィルタを行うときは以下のようなシェルを作って対応しています。

#!/bin/sh

# 全てのルールを削除
ip6tables -F
# 全てのユーザ定義チェインを削除
ip6tables -X

# 基本的には外部からのパケットの通過を拒否
ip6tables -P INPUT DROP
#ip6tables -P INPUT ACCEPT
# 基本的には外部へのパケットの通過を許可
ip6tables -P OUTPUT ACCEPT
# 基本的には他のインターフェイスへ再送信を拒否
ip6tables -P FORWARD DROP

# lo( ループバック)からのINPUTを許可
ip6tables -A INPUT -i lo -j ACCEPT

#RS,RA,NS,NAを受け入れる
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type neighbor-solicitation -j ACCEPT
ip6tables -A INPUT -i eth0 -p icmpv6 --icmpv6-type neighbor-advertisement -j ACCEPT

# 個々のアクセス制御を以下に記述
# HTTPアクセスを許可
ip6tables -A INPUT -i eth0 -p tcp -s 2001:1234:1234::/48 --dport 80 -j ACCEPT

# HTTPSアクセスを許可
ip6tables -A INPUT -i eth0 -p tcp -s 2001:1234:1234:1234::cafe/128 --dport 443 -j ACCEPT

# ip6tablesに保存する
ip6tables-save > /etc/sysconfig/ip6tables

このシェルを実行することでルールが適用されます。

# ip6tables -L

でルールを確認することができます。