一般在設定 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