環境
- ハードウェア: OBS266 128M/16
- linuxカーネル: linux 2.6.26
- OS: debian lenny
OBS266でカーネル2.6.26を使えるようにしてあるものとします。
参考
http://blog.yellowback.net/archives/532-20111107.html
IPv6関連の設定もされているものとします。
参考
http://blog.yellowback.net/archives/531-20111105.html
debian lennyでは /etc/init.d/iptablesでIPv4もしくはIPv6のどちらかを設定ファイル(/etc/default/iptables)で切り替えて使うようになっているようです。
今回はデュアルスタックでiptables, ip6tables両方使いたいので新たに/etc/init.d/ip6tablesを作成します。
# cp /etc/init.d/iptables /etc/init.d/ip6tables
# vi /etc/init.d/ip6tables
(以下を修正)
default=/etc/default/ip6tables
libdir=/var/lib/ip6tables
iptablesと同じ段階で起動するように登録します。
# update-rc.d ip6tables start 10 2 3 4 5 . stop 90 0 1 6 .
/var/lib/ip6tables/active を以下のようにします。(実際にはsave後に修正したもの)
*raw
:PREROUTING ACCEPT [386:56605]
:OUTPUT ACCEPT [128:11872]
COMMIT
*mangle
:PREROUTING ACCEPT [386:56605]
:INPUT ACCEPT [113:30005]
:FORWARD ACCEPT [54:4536]
:OUTPUT ACCEPT [128:11872]
:POSTROUTING ACCEPT [198:17944]
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1:96]
:ocn-in - [0:0]
:ocn-out - [0:0]
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -i ppp1 -j ocn-in
[1:96] -A INPUT -i eth0 -j ACCEPT
[0:0] -A FORWARD -i ppp1 -j ocn-in
[0:0] -A FORWARD -i eth0 -j ACCEPT
[0:0] -A OUTPUT -o ppp1 -j ocn-out
[0:0] -A ocn-in -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A ocn-in -d 2001:XXXX:YYYY:ZZZZ::2/128 -p tcp -m tcp --dport 80 -j ACCEPT
[0:0] -A ocn-in -d 2001:XXXX:YYYY:ZZZZ::2/128 -p udp -m udp --dport 53 -j ACCEPT
[0:0] -A ocn-in -d 2001:XXXX:YYYY:ZZZZ::2/128 -p tcp -m tcp --dport 53 -j ACCEPT
[0:0] -A ocn-in -d 2001:XXXX:YYYY:ZZZZ::3/128 -p tcp -m tcp --dport 25 -j ACCEPT
[0:0] -A ocn-in -p ipv6-icmp --icmpv6-type echo-request -d 2001:XXXX:YYYY:ZZZZ::2/128 -j ACCEPT --match limit --limit 30/minute
[0:0] -A ocn-in -p ipv6-icmp --icmpv6-type echo-request -d 2001:XXXX:YYYY:ZZZZ::3/128 -j ACCEPT --match limit --limit 30/minute
[0:0] -A ocn-in -p icmpv6 -s fe80::/10 -j ACCEPT
[0:0] -A ocn-in -s fe80::/10 -p udp -m udp --dport 547 -j ACCEPT
[0:0] -A ocn-in -s fe80::/10 -p udp -m udp --dport 546 -j ACCEPT
[0:0] -A ocn-in -j LOG
[0:0] -A ocn-out -p udp -m udp --dport 67:68 -j DROP
[0:0] -A ocn-out -p udp -m udp --dport 137:139 -j DROP
[0:0] -A ocn-out -p tcp -m tcp --dport 137:139 -j DROP
COMMIT
外からのアクセスはping, HTTP, DNS, SMTPだけ通すようにしています。(随時変更中)
# /etc/init.d/ip6tables start
で有効になります。
リブート後にもフィルタが有効であることを確認して終了です。