So-netフォンが 2021年5月末を以てサービス終了になってしまうということで、代わりに楽天モバイルの「SMARTalk」を契約し、それ用に NVR500 の設定を書き換えて使っていたのですが、どうも「SIPアタック」が以前より酷 いようで、度々通信不能に追い込まれるようになってしまいました。「鎖国フィルタ」なるものを作って対応している方もおられるようですが、その前にちょっと試してみたいことがあったので、NVR500 の設定を書き換えてみることにしました。
これまでは先日書いた下の記事のように RTX830 の LAN に NVR500 をぶら下げただけで IP電話を利用していました。この構成だと NVR500 の余った LANポートをスイッチングハブとして使う事ができるので、気軽に同じネットワークセグメント上に他の機器を繋ぐことができたのですよね。
ところが、SMARTalk の設定に書き換えてから「SIPアタック」の影響で電話が使えない状態になってしまうことが頻発したので、RTX830 配下の NVR500 をローカルルータとする(所謂二重ルーター構成)ように変えてみることにします。
ただ。この構成にすると NVR500 配下のネットーワーク上の機器と RTX830 のネットワーク上の機器との間で通信させるには NAT越えの為の設定が別途必要になります。幸い今のところ LANポート数には余裕があるので今回は目を瞑って電話が使えることを優先し、必要に迫られた場合にはまた改めて方法を考えることにしました。
先日の記事でも書いたとおり、前提となる現在のうちのネットワーク構成は大体左の図のような感じになっています。インターネット接続には主に So-net の「v6プラス」を利用しているのですが、そのまま NVR500 を配下に置いただけでは IP電話を利用出来ないので RTX830 にフィルター型ルーティングの設定を入れて NVR500 への通信は IPv6 IPoE + IPv4 PPPoE で行うようにさせています。ちょっと面倒な構成になっていますがこれは後から IP電話を使えるようにしたためで、v6プラスを使いつつ IP電話も使う環境を最初から構築するのであれば NVR510 の方を使えばこの部分を 1台で済ますことも可能です。
RTX830 と NVR500 の接続については下の図の右側のように変更しました。左側の構成では NVR500 をただのスイッチングハブとしてしか使っていないので NVR500 本体のみ IPv4 PPPoE で接続され、配下の機器については RTX830 と同一のネットワーク上でv6プラスでの接続となっていましたが、右側の構成では NVR500 配下の機器は全て IPv4 PPPoE での接続となります。尚、今回は NVR500 の管理画面にはアクセスできるようにしていますが、相互のネットワーク間での通信まではできるようにしていません。
RTX830 側の設定については下の記事で So-netフォンを使う為に行っていた設定から何も弄っていません。 NVR500 の IPv4アドレスを固定し、フィルター型ルーティングを使って PPPoE で通信するようにさせています。(PPPoE がダウンしている場合はv6プラスで通信するようにもさせています。)
設定を始める前に、NVR500 に新しいファームウェアがリリースされて「Rev.11.00.41(2020.3.31)」が最新版となっていたのでとりあえずアップデートしておきました。(といっても今回の修正はDoS攻撃への脆弱性対応のみだそうです。古い機種なので今後は修正が行われるとしても重大なセキュリティアップデートくらいになるでしょう。)
それでは NVR500 の設定を始めることにします。なるべくゴミを残したくないので一旦初期化しました。工場出荷状態に戻した直後の NVR500 の IPアドレスは「192.168.100.1/24」となります。このまま既存の RTX830 のネットワークに繋いでしまうとややこしいことになるのでさっさと NVR500 の IPアドレスを変更し、RTX830 側のネットワークから NVR500 の管理画面に入れるようにするまではノートPC を使って作業しました。こういう時に古くてもノートPC が 1台あると非常に便利です。
初期化直後の NVR500 の config は以下の通り。
ip lan1 address 192.168.100.1/24 telnetd host lan dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.100.2-192.168.100.191/24 dns private name setup.netvolante.jp analog supplementary-service pseudo call-waiting analog extension dial prefix line analog extension dial prefix sip prefix="9#"
ここから更に不要なものを消去して必要最小限の config にし、RTX830 の下に置くためにネットワークセグメントを変えて予め IPアドレスが被らないように以下の様にしたものをベースとすることにします。
ip lan1 address 192.168.200.1/24 telnetd host lan dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.200.2-192.168.200.50/24
RTX830 の LANポートと NVR500 の WANポートを接続したらネット接続と RTX830 側から NVR500 の「かんたん設定ページ」にアクセス出来るようにしていきます。まずは初期設定(?)から。
・設定諸々 security class 2 on off off console prompt "[NVR500] " login timer 600 syslog notice on syslog debug on ・WAN側にIPアドレスを付与(RTX830側とセットで固定) description lan2 WAN ip lan2 address 192.168.100.4/24 ・経路設定等(RTX830に向けます) ip routing process fast ip route default gateway 192.168.100.1 ip filter source-route on ip filter directed-broadcast on description lan1 LAN ・DNSサーバーはRTX830を使用 dns server 192.168.100.1 dns private address spoof on ・自動時刻補正 schedule at 1 */* 01:30:00 * ntpdate ntp.nict.jp syslog
続いてネット接続ができるようにします。
・IPv4(RTX830 を使った PPPoE)での接続 ip keepalive 1 icmp-echo 10 5 192.168.100.1 ip lan2 nat descriptor 1000 nat descriptor type 1000 masquerade nat descriptor address outer 1000 192.168.100.4 nat descriptor masquerade incoming 1000 discard ・下の行を入れておくと NVR500 の「簡単設定ページ」のトップでネット接続状態が表示されます。 provider lan2 name PRV/0/1/5/0/0/0:(名前は任意で) ・IPv6 IPoE での接続 ipv6 prefix 1 ra-prefix@lan2::/64 ipv6 lan1 prefix ra-prefix@lan2::/64 ipv6 lan1 rtadv send 1
フィルターは RTX830 の方で設定しているので不要な気もしますが一応入れておきました。
ip filter 101000 reject 10.0.0.0/8 * * * * ip filter 101001 reject 172.16.0.0/12 * * * * ip filter 101002 reject 192.168.0.0/16 * * * * ip filter 101003 reject 192.168.200.0/24 * * * * ip filter 101010 reject * 10.0.0.0/8 * * * ip filter 101011 reject * 172.16.0.0/12 * * * ip filter 101012 reject * 192.168.0.0/16 * * * ip filter 101013 reject * 192.168.200.0/24 * * * ip filter 101020 reject * * udp,tcp 135 * ip filter 101021 reject * * udp,tcp * 135 ip filter 101022 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 101023 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 101024 reject * * udp,tcp 445 * ip filter 101025 reject * * udp,tcp * 445 ip filter 101030 pass * * icmp * * ip filter 101031 pass * * established * * ip filter 101032 pass * * tcp * ident ip filter 101033 pass * * tcp ftpdata * ip filter 101034 pass * * tcp,udp * domain ip filter 101035 pass * * udp domain * ip filter 101036 pass * * udp * ntp ip filter 101037 pass * * udp ntp * ip filter 101098 reject-nolog * * established ip filter 101099 pass * * * * * ip filter 500000 restrict * * * * * ip filter dynamic 101080 * * ftp ip filter dynamic 101081 * * domain ip filter dynamic 101082 * * www ip filter dynamic 101083 * * smtp ip filter dynamic 101084 * * pop3 ip filter dynamic 101085 * * submission ip filter dynamic 101098 * * tcp ip filter dynamic 101099 * * udp ipv6 filter 3010 pass * * icmp6 * * ipv6 filter 3011 pass * * tcp * ident ipv6 filter 3012 pass * * udp * 546 ipv6 filter 4000 reject * * * * * ipv6 filter 5000 pass * * * * * ipv6 filter dynamic 3500 * * ftp ipv6 filter dynamic 3501 * * domain ipv6 filter dynamic 3502 * * www ipv6 filter dynamic 3503 * * smtp ipv6 filter dynamic 3504 * * pop3 ipv6 filter dynamic 3505 * * submission ipv6 filter dynamic 3508 * * tcp ipv6 filter dynamic 3509 * * udp ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 ip lan2 secure filter out 101013 101020 101021 101022 101023 101024 101025 101099 dynamic 101080 101081 101082 101083 101084 101085 101098 101099 ipv6 lan2 secure filter in 3010 3011 3012 4000 ipv6 lan2 secure filter out 5000 dynamic 3500 3501 3502 3503 3504 3505 3508 3509
状態や通話履歴などが見れると便利なので RTX830側から NVR500 の管理画面に入れるようにします。
httpd host any nat descriptor masquerade static 1000 1 192.168.200.1 tcp www ip filter 101081 pass * 192.168.200.1 tcp * www ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 101081(←「101081」を追加)
続いて IP電話の設定をしていきます。
・IP電話を使う準備 sip use on sip log on nat descriptor sip 1000 on nat descriptor masquerade static 1000 2 192.168.200.1 tcp 5060 nat descriptor masquerade static 1000 3 192.168.200.1 udp 5060 nat descriptor masquerade static 1000 4 192.168.200.1 udp 5004-5043 ip filter 101082 pass * 192.168.200.1 tcp * 5060 ip filter 101083 pass * 192.168.200.1 udp * 5060 ip filter 101084 pass * 192.168.200.1 udp * 5004-5043 ip lan2 secure filter in 101003 101020 101021 101022 101023 101024 101025 101030 101032 101081 101082 101083 101084 (↑←こちらも「101082~101084を追加)
SMARTalk の設定
・アナログ回線は使いません pstn use off ・TEL1ポートのみ使用、自己SIPアドレスへのみ着信許可、発信時のプレフィックス無し analog use 1 off analog sip arrive permit 1 myname analog sip call myname 1 sip:(SMARTalk SIPアカウント) analog sip call display name 1 NVR500 analog use 2 off analog extension dial prefix sip server=1 ・IP電話サーバーの設定 sip server 1 (SIPサーバーアドレス) register udp sip:(SIPアドレス) (SIPアカウント) (SIPパスワード) sip server display name 1 (SMARTalk電話番号) ・ナンバーディスプレイ機能を有効化 analog arrive number display 1 on
ひかり電話もまだ解約していないので使えるようにしておきます。HGW側の設定については「こちらの記事」の「PR-S300NE 側の設定」を参照ください。
・自己SIPアドレスを登録 analog sip arrive myaddress 1 1 sip:5 ・プリフィックスを設定。「9#」を押してからダイヤルすることでひかり電話での発信となる。 analog extension dial prefix sip server=2 prefix="9#" ・IP電話サーバーの設定 sip server 2 192.168.1.1 register udp sip:5@192.168.1.1 (ユーザー名) (パスワード) sip server session timer 2 300 sip server display name 2 (ひかり電話番号)
以上の設定で、
1. 発信時に「9#」を押してから電話を掛けることでひかり電話経由で発信
(緊急電話番号(110、119 など)や 0570 などの番号が使える)
2. 直接電話番号を入力した場合は SMARTalk で発信
という使い分けができるようにしている点は So-netフォンを使っていた頃と同じです。
世代が古いから仕方ありませんが、やはり NVR500 では config が 1組しか保存できないというのは色々試しながら設定する時にはちょっと不便ですね。この状態で 1週間程使っていますが、今のところ SIPアタックは完全に遮断できているようなのでこのままもうしばらく様子を見てみることにします。