rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

ひかり電話 HGW PR-600MIのIPv6パケットフィルタを無効にしてもTCP廃棄発生

2021-06-09 22:00:00 | ひかり電話
PR-600MIのファームウェア 01.00.0007になってから
ひかり電話 HGW PR-600MIのfirmware更新とIPv6パケットフィルターの不具合」「ひかり電話 HGW PR-600MIのIPv6パケットフィルターがネットボランチDDNS登録をTCP廃棄」と不具合が発生している。ファームウェアを01.00.0005に戻すファームウェア提供もされない。
「詳細設定」「IPv6パケットフィルタ設定(IPoE)」の「IPv6セキュリティレベル」「IPv6ファイアウォール機能」を「無効」にしてみた。単純に無効にすると「China Telecom領域からのIPv6スキャンをフィルタする」が問題となる。そこで、「ひかり電話 HGW PR-600MIのIPv6スループットを確認する」で使用したDebian10サーバに「ip6tables」フィルタを設定してからPR-600MIのIPv6ファイアウォール機能を無効にした。


(1)ip6tables設定
このスクリプトを実行してip6tables設定を行う
go-filter
#!/bin/sh
## --- Multi Interfaces Gateway ---
# enp3s0/enp6s0/enp7s0
# br0 enp1s0f0 ( pr-600mi wan )
#       enp1s0f1 (pr-600mi uni )
## Link Local Address
NTTGW="fe80::0212:e2ff:feab:cdef"
XPSBR="fe80::215:17ff:fe34:abcd"
PR600WAN="fe80::2ae9:8eff:fe12:3457"
PR600LAN="fe80::2ae9:8eff:fe12:3456"
PREFIX="2409:10:XXXX:YY00::/56"
## --
ip6tables -F
ip6tables -X
ip6tables -N TCP
ip6tables -N UDP
ip6tables -N PR600TCP
ip6tables -N PR600UDP
##--- basic policies
ip6tables -P INPUT DROP
ip6tables -P OUTPUT DROP
ip6tables -P FORWARD DROP
# --- interfaces
ip6tables -A INPUT ! -i br0 -j ACCEPT
ip6tables -A OUTPUT ! -o br0 -j ACCEPT
ip6tables -A FORWARD ! -i br0 ! -o br0 -j ACCEPT
# --- enable statefull rules
ip6tables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# --- drop invalid state packet
ip6tables -A INPUT -m conntrack --ctstate INVALID -j DROP
ip6tables -A OUTPUT -m conntrack --ctstate INVALID -j DROP
ip6tables -A FORWARD -m conntrack --ctstate INVALID -j DROP
## --- input chain
ip6tables -A INPUT -i br0 -p ipv6-icmp -s fe80::/10 -j ACCEPT
#ip6tables -A INPUT -i br0 -p ipv6-icmp --icmpv6-type echo-request -m conntrack --ctstate NEW -s $PREFIX -j ACCEPT
ip6tables -A INPUT -i br0 -p ipv6-icmp -m conntrack --ctstate NEW -s $PREFIX -j ACCEPT
ip6tables -A INPUT -i br0 -p udp -s $NTTGW  --sport 547 --dport 546 -j ACCEPT #dhcpd6
ip6tables -A INPUT -i br0 -p udp -s $PR600WAN --sport 546 -d ff02::/16 --dport 547 -j ACCEPT #dhclient
ip6tables -A INPUT -i br0 -p udp -m conntrack --ctstate NEW -d $PREFIX -j UDP
ip6tables -A UDP -p udp -m recent --update --rsource --second 60 --name UDP-PORTSCAN -j REJECT --reject-with icmp6-port-unreachable
ip6tables -A INPUT -i br0 -p tcp --syn -m conntrack --ctstate NEW -d $PREFIX -j TCP
ip6tables -A TCP -p tcp -m recent --update --rsource --second 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
ip6tables -A TCP -p tcp --dport 22 -j ACCEPT #ssh
ip6tables -A TCP -p tcp --dport 5201 -j ACCEPT #iperf3
#### -- dhcpd6 is no answer from decliner on the same server --- ####
ip6tables -A INPUT -i br0 -p udp -s $XPSBR --dport 547 -j DROP
# -- log
ip6tables -A INPUT -j LOG --log-level debug --log-prefix '[FW INPUT]: ' 
ip6tables -A INPUT -i br0 -p udp -m recent --set --rsource --name UDP-PORTSCAN -j REJECT --reject-with icmp6-port-unreachable
ip6tables -A INPUT -i br0 -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
ip6tables -A INPUT -j REJECT --reject-with icmp6-port-unreachable
#ip6tables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited
## --- output chain
ip6tables -A OUTPUT -o br0 -p ipv6-icmp -d fe80::/10 -j ACCEPT
ip6tables -A OUTPUT -o br0 -p udp -s $XPSBR --sport 546 -d ff02::/16 --dport 547 -j ACCEPT
ip6tables -A OUTPUT -o br0 -p udp -s $XPSBR --sport 547 -d $PR600WAN --dport 546 -j ACCEPT 
ip6tables -A OUTPUT -o br0 -d $PREFIX -j ACCEPT
ip6tables -A OUTPUT -o br0 -s $PREFIX -j ACCEPT
ip6tables -A OUTPUT -j LOG --log-level debug --log-prefix '[FW OUTPUT]: ' 
## --- forward chain
ip6tables -A FORWARD -m conntrack --ctstate NEW -s $PREFIX -j ACCEPT
ip6tables -A FORWARD -i br0 -p ipv6-icmp --icmpv6-type echo-request -m conntrack --ctstate NEW -d ${PREFIX%%00::/[0-9]*}10::11:241 -j ACCEPT
ip6tables -A FORWARD -i br0 -p udp -m conntrack --ctstate NEW -d $PREFIX -j PR600UDP
ip6tables -A PR600UDP -p udp -m recent --update --rsource --second 60 --name UDP-PORTSCAN -j REJECT --reject-with icmp6-port-unreachable
ip6tables -A PR600UDP -p udp -d ${PREFIX%%00::/[0-9]*}20::12:1 --dport 500 -j ACCEPT
ip6tables -A PR600UDP -p udp -d ${PREFIX%%00::/[0-9]*}20::12:1 --dport 4500 -j ACCEPT
ip6tables -A FORWARD -i br0 -p tcp --syn -m conntrack --ctstate NEW -d $PREFIX -j PR600TCP
ip6tables -A PR600TCP -p tcp -m recent --update --rsource --second 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
ip6tables -A PR600TCP -p tcp -d ${PREFIX%%00::/[0-9]*}10::11:241 --dport 80 -j ACCEPT
ip6tables -A PR600TCP -p tcp -d ${PREFIX%%00::/[0-9]*}10::11:241 --dport 443 -j ACCEPT
# --- plala imaps servers
ip6tables -A FORWARD -i br0 -p tcp -m conntrack --ctstate NEW -s 2400:7800:0:502e::51 --sport 993 -j ACCEPT
ip6tables -A FORWARD -i br0 -p tcp -m conntrack --ctstate NEW -s 2400:7800:0:502e::52 --sport 993 -j ACCEPT
ip6tables -A FORWARD -i br0 -p tcp -m conntrack --ctstate NEW -s 2400:7800:0:502e::53 --sport 993 -j ACCEPT
ip6tables -A FORWARD -i br0 -p tcp -m conntrack --ctstate NEW -s 2400:7800:0:502e::54 --sport 993 -j ACCEPT
ip6tables -A FORWARD -j LOG --log-level debug --log-prefix '[FW FORWARD]: ' 
ip6tables -A FORWARD -i br0 -p udp -m recent --set --rsource --name UDP-PORTSCAN -j REJECT --reject-with icmp6-port-unreachable
ip6tables -A FORWARD -i br0 -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
ip6tables -A FORWARD -j REJECT --reject-with icmp6-port-unreachable


(2)PR-600MI(firmware version 01.00.0007)結果
IPv6ファイアウォール機能を無効にした後、二度再起動を実施した


セキュリティログ(IPv6)を確認すると

「有効」「無効」設定に無関係に「TCP 廃棄[パケットフィルタ]」が記録されパケットが廃棄される。

どういう事?
ソフトバンクの「IPv6 IPoE + IPv4(IPv6⾼速ハイブリッド)接続⽅式」では、ひかり電話HGWのIPv6ファイアウォール機能を無効にしろとしているが何も問題になっていないのだろうか?

01.00.0005に戻したい!

 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする