IPv6 Firewall

一般在設定 Server 的防火牆規則時,大部分都集中在 IPv4,不過目前宜蘭縣的 IPv6 環境應該非常完整,所以 IPv6 的部分也不能忽視。
參考網站:ip6tables: IPv6 Firewall For Linux

原本沒有設定的畫面
# ip6tables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[@more@]以 Ubuntu Server 14.04 為例
IPv6 的防火牆規則寫在 /etc/rc.local 檔案之中

# vim /etc/rc.local
###—————————————————–###
# 設定 ip6tables 的路徑
###—————————————————–###
echo “Set path of ip6tables”

IP6TABLES=”/sbin/ip6tables”

###—————————————————–###
# 設定對外的網路卡編號
###—————————————————–###
FW_IFACE=”eth0″

###—————————————————–###
# 清除先前的設定
###—————————————————–###
echo “Flush fiter table ……”
echo

$IP6TABLES -F
$IP6TABLES -X
$IP6TABLES -Z

$IP6TABLES -t mangle -F
$IP6TABLES -t mangle -X

###—————————————————–###
# 設定 filter table 的預設政策
###—————————————————–###
$IP6TABLES -P INPUT DROP
$IP6TABLES -P OUTPUT DROP
$IP6TABLES -P FORWARD DROP

# 允許已建立連線和回應的封包通過
$IP6TABLES -A INPUT -i $FW_IFACE -m state –state ESTABLISHED,RELATED -j ACCEPT
$IP6TABLES -A OUTPUT -o $FW_IFACE -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

# 預定開放的服務 22 / 80
$IP6TABLES -A INPUT -i $FW_IFACE -p tcp –dport 80 -j ACCEPT
$IP6TABLES -A INPUT -i $FW_IFACE -p tcp -s 2001:288:a229:1::/64 –dport 22 -j ACCEPT

# 開放 ipv6 icmp
$IP6TABLES -A INPUT -i $FW_IFACE -p ipv6-icmp -j ACCEPT
$IP6TABLES -A OUTPUT -o $FW_IFACE -p ipv6-icmp  -j ACCEPT

讓設定生效
# service rc.local start

IPv6 防火牆規則
# ip6tables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all      ::/0                 ::/0                 state RELATED,ESTABLISHED
ACCEPT     tcp      ::/0                 ::/0                 tcp dpt:80
ACCEPT     tcp      2001:288:a229:1::/64  ::/0                 tcp dpt:22
ACCEPT     icmpv6    ::/0                 ::/0

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all      ::/0                 ::/0                 state NEW,RELATED,ESTABLISHED
ACCEPT     icmpv6    ::/0                 ::/0