2019-09-21

RTX830 設定の見直しと、初期化して反映

syslog を眺めていて、フィルターであれこれブロック設定していても、結局そこでは引っかからず、pp(PPPoE)/ V6プラス(ipv6 / tunnel)のいずれも 「ip filter reject * *」または「ipv6 filter reject * *」で reject されています。

以下「reject all」といい換えます。


つまり WAN からの侵入の試みは「reject all」でブロックされていて、それ以前に個別のフィルターをかましても実態的に意味がない、ということです。


考えてみれば、プライベート IP アドレスを詐称して入ってくるなんて古いやり方はいまの侵入者はやらないのでしょう。

仮に詐称して入ってくる試みがあった場合に、実態的には意味はありませんが、どれくらい詐称して入ろうとする場合があるかを記録することにします。



また、ポート 135 / 137-139 / 445 を狙って入るなんてこともしていないようですね。

仮にあってもこれもすべて「reject all」で済みます。



ならば、in 側は送信した icmp の戻りのみ受け付け、あとはすべて reject で事足りるはずです(pp 側で WireGuard サーバー向けのポート開放はします)。





ただし、出る方は変なプログラムが、135 / 137-139 / 445 を使うかも知れず、一応これは reject 設定します(まだ、ログには記録はされてはいませんが、仮に使用された場合に記録しておきたいので)。




あとは、tcp syn を最初に通し、すべて pass します。



ftp / domain / www /smtp /pop3 /submission / https はダイナミックフィルター設定し、出ていくときにポートを開き、戻ってきたら閉める対象にします(戻ってこなければタイムアウトで閉まります)。


YAMAHA ルーターはダイナミックフィルターが先に適用され、そのあとで静的フィルターが適用されます。


さらに YAMAHA 独自の「不正アクセス検知・拒否」設定もしておきます。




このようにして見直した結果のコンフィグが次のものです。


過去にコンフィグを変更した際の余計な設定を残さず、クリーンに設定して反映させるために、初期化してその後にこのコンフィグファイルをインポートし再起動しました。





しばらくログを見ましたが、すべて「reject all」でブロックされています。
また、出る方は変なポートを使うプログラムはないようです(Mac / Android / iPhone / サーバーなど、つながっている端末のいすれからもありません)。



【設定上の前提条件・プライベートアドレス空間は実際の我が家の設定とは異なります】

・プライベートアドレスは 192.168.0.0/24 とします。

・ルーターのアドレスは 192.168.0.1 とします。

・PPPoE 側に WireGuard(VPN)サーバーを接続設定をフィルター型ルーティングで行います。

・WireGuard サーバーアドレスは 192.168.0.200 とし、開放するポート(WireGuard が待ち受けるポート)は 12321 とします。

・syslog サーバーの IP アドレスは 192.168.0.101とします。



# RTX830 Rev.15.02.10
#
# 2019/09/20 初期化後、本 config0.txt で起動
#
login password *
administrator password *
user attribute connection=serial,telnet,remote,ssh,sftp,http gui-page=dashboard,lan-map,config login-timer=1800
console character en.ascii
#
# デフォルトゲートウェイは 500010 を pp 1 に 適用(WireGuard サーバーを PPPoE 側とする)
# その他は tunnel 1
#
ip route default gateway pp 1 filter 500010 gateway tunnel 1
#
# source-route オプション付きIPパケットを遮断する;
#              source-route オプションとは、始点経路制御のことで、
#              意図的な IP データグラムの経路制御を行う場合に使用されるオプションのこと
ip filter source-route on
#
# 終点IPアドレスが Directed Broadcast アドレス宛になっているIPパケットを遮断する;
#              Directed Broadcast アドレスとは、IPアドレスのホスト部が
#              全て"1"であるアドレスのこと
ip filter directed-broadcast on
#
# PPPoE-WAN からの ping 隠蔽(拒否と違い、WAN アドレスの存在を隠す)

#
ip stealth pp1
#
#------------------------------
# V6plus : IPv6 - LAN インターフェース関連設定
#
ipv6 prefix 1 ra-prefix@lan2::/64
ip lan1 address 192.168.0.1/24
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
#
# lan1 に接続の機器類を GUI でマップ表示する設定
#
switch control use lan1 on terminal=on
#
# description : 説明文なので動作には影響しない
description lan2 V6plus #(任意名)
#
#------------------------------
# V6plus - 不正アクセス検知設定
#
ip lan2 intrusion detection in on
ip lan2 intrusion detection in ip on reject=on
ip lan2 intrusion detection in ip-option on reject=on
ip lan2 intrusion detection in fragment on reject=on
ip lan2 intrusion detection in icmp on reject=on
ip lan2 intrusion detection in udp on reject=on
ip lan2 intrusion detection in tcp on reject=on
ip lan2 intrusion detection in default off
ip lan2 intrusion detection out on
ip lan2 intrusion detection out ftp on reject=on
ip lan2 intrusion detection out winny on reject=on
ip lan2 intrusion detection out share on reject=on
ip lan2 intrusion detection out default off
#
#------------------------------
# IPv6 フィルター適用
#
#  IN : 外からは ping6、プロトコル4(IPinIP:tunnel)、dhcpv6-client は通し、それ以外は拒否
#       icmp6 に関して、IPv6一時アドレスもプリフィックスは同じなので、
#       IPv4 のように中からの ping6 の戻りのみ受け入れる設定はできない
#  OUT: 原則すべて OK(ftp/domain/www/smtp/pop3/submission(587)/https/その他tcp/その他udp は接続時に開く)
#       dynamic が先に適用され、静的フィルターは次に適用される
#
ipv6 lan2 secure filter in 100130 100131 100138 100139
ipv6 lan2 secure filter out 100199 dynamic 100180 100181 100182 100183 100184 100185 100186 100188 100189
#
ipv6 lan2 dhcp service client ir=on
#
#==============================
# PPPoE  設定
#
# WANインターフェースの設定(LAN2ポートを使用)
#
pp select 1
 description pp @pppoe #(任意名)
 pp keepalive interval 30 retry-interval=30 count=12
 pp always-on on
 pppoe use lan2
 pppoe auto disconnect off
 pp auth accept pap chap
 pp auth myname [接続 ID] [接続パスワード]
 ppp lcp mru on 1454
 ppp ipcp ipaddress on
 ppp ipcp msext on
 ppp ccp type none
#
#------------------------------
# PPPoE のフィルター適用
#  IN : 192.168.0.0/24 を詐称して入ってくるパケットを拒否、ping の戻りを受け入れ、
#       開放ポート 12321/udp からを受け入れ、これら以外は拒否
# OUT: 原則すべてOK だが、ポート 135/137-139/445 は出も拒否
#       dynamic が先に適用され、静的フィルターは次に適用される
#     
(ftp/domain/www/smtp/pop3/submission(587)/https/その他tcp/その他udp は接続時に開く)
#
 ip pp secure filter in 200010 200030 200101 200039
 ip pp secure filter out 200020 200021 200022 200023 200024 200025 200098 200099 dynamic 200080 200081 200082 200083 200084 200085 200086 200088 200089
#
#------------------------------
# PPPoE - 不正アクセス検知設定
#
 ip pp intrusion detection in on
 ip pp intrusion detection in ip on reject=on
 ip pp intrusion detection in ip-option on reject=on
 ip pp intrusion detection in fragment on reject=on
 ip pp intrusion detection in icmp on reject=on
 ip pp intrusion detection in udp on reject=on
 ip pp intrusion detection in tcp on reject=on
 ip pp intrusion detection in default off
 ip pp intrusion detection out on
 ip pp intrusion detection out ftp on reject=on
 ip pp intrusion detection out winny on reject=on
 ip pp intrusion detection out share on reject=on
 ip pp intrusion detection out default off
#
 ip pp nat descriptor 1000

# ネットボランチ(YAMAHA の DDNS サービス)の設定 
 netvolante-dns hostname host pp server=1 xxxxxxxx.aaaaaa.netvolante.jp
# xxxxxxxx : 任意、aaaaaa : netvolante が付与
  pp enable 1
#
#------------------------------
# V6plus : IPv4 - WAN インターフェース関連設定
#
tunnel select 1
 tunnel encapsulation map-e
 ip tunnel mtu 1460
#
#------------------------------
# V6plus : IPv4 フィルター適用(ポート開放以外は pp と同じフィルター適用)
#
#  IN : 192.168.0.0/24 を詐称して入ってくるパケットを拒否、中から外への ping の戻りのみ受け入れ、それ以外は拒否
#  OUT: 原則すべて OK だが、ポート 135/137-139/445 は出も拒否
#       dynamic が先に適用され、静的フィルターは次に適用される
#      (ftp/www/smtp/pop3/submission(587)/https/その他tcp/その他udp は接続時に開く)
#
 ip tunnel secure filter in  200010 200030 200039
 ip tunnel secure filter out 200020 200021 200022 200023 200024 200025 200098 200099 dynamic 200080 200081 200082  200083 200084 200085 200086 200088 200089
#
 ip tunnel nat descriptor 1001
 tunnel enable 1
#
#------------------------------
# pp / tunnel 用フィルター定義
#
ip filter 200010 reject 192.168.0.0/24 * * * *
#
ip filter 200020 reject * * udp,tcp 135 *
ip filter 200021 reject * * udp,tcp * 135
ip filter 200022 reject * * udp,tcp netbios_ns-netbios_ssn *
ip filter 200023 reject * * udp,tcp * netbios_ns-netbios_ssn
ip filter 200024 reject * * udp,tcp 445 *
ip filter 200025 reject * * udp,tcp * 445
#
ip filter 200030 pass * 192.168.0.0/24 icmp * *
#
ip filter 200039 reject * *
#
# 以下の2行は、続くコメント内の1行と等価(tcpflagを設定できないリビジョン向け)
# 意味:でていくときに tcp syn を最初に通す(established=ack が立っているパケットを拒否 => syn のみ立っていない)
#
ip filter 200098 reject-nolog * * established
ip filter 200099 pass * * * * *
# ip filter 200098 pass * * tcpflag=0x0002/0x0017 * *
#
#------------------------------
# ポート開放フィルター設定
#
ip filter 200101 pass * 192.168.0.200 udp * 12321
#
# 192.168.0.200 を PPPoE 配下にするフィルター
# 実際の適用は gateway 定義でフィルター型ルーティングで振り向ける
#
ip filter 500010 pass 192.168.0.200 * * * *
#
#------------------------------
#
pp / tunnel 用 dynamic フィルター定義
# [INSPECT] ログを抑止する設定を併せて行う(syslog=off)

#
ip filter dynamic 200080 * * ftp syslog=off
ip filter dynamic 200081 * * domain syslog=off
ip filter dynamic 200082 * * www syslog=off
ip filter dynamic 200083 * * smtp syslog=off
ip filter dynamic 200084 * * pop3 syslog=off
ip filter dynamic 200085 * * submission syslog=off
ip filter dynamic 200086 * * https syslog=off
ip filter dynamic 200088 * * tcp syslog=off
ip filter dynamic 200089 * * udp syslog=off
#
#------------------------------
# PPPoE:1000 側の静的マスカレードでポート 12321 へ振り向け
#
nat descriptor type 1000 masquerade
nat descriptor masquerade static 1000 1 192.168.0.200 udp 12321
nat descriptor type 1001 masquerade
nat descriptor address outer 1001 map-e
#
#------------------------------
# V6プラスの IPv6 用フィルター定義
#
ipv6 filter 100130 pass * * icmp6 * *
ipv6 filter 100131 pass * * 4
ipv6 filter 100138 pass * * udp * 546
ipv6 filter 100139 reject * *
ipv6 filter 100199 pass * * * * *
ipv6 filter dynamic 100180 * * ftp syslog=off
ipv6 filter dynamic 100181 * * domain syslog=off
ipv6 filter dynamic 100182 * * www syslog=off
ipv6 filter dynamic 100183 * * smtp syslog=off
ipv6 filter dynamic 100184 * * pop3 syslog=off
ipv6 filter dynamic 100185 * * submission syslog=off
ipv6 filter dynamic 100186 * * https syslog=off
ipv6 filter dynamic 100188 * * tcp syslog=off
ipv6 filter dynamic 100189 * * udp syslog=off
#
#------------------------------
# syslog を 192.168.0.101 に転送設定 / ファシリティ番号は1とする

# syslog サーバー側でファシリティ番号1のログをどこに記録するかの設定をする
syslog host 192.168.0.101
syslog facility local1
# syslog を有効化
syslog notice on
#
telnetd host lan1
#
#------------------------------
# DHCP 設定(範囲 : デフォルトの 2〜191 は多すぎるので 210〜240 とし、

# 同じく有効期限を 72 時間から 12 時間にする)
#
dhcp service server
dhcp server rfc2131 compliant except remain-silent
dhcp scope 1 192.168.0.201-192.168.0.240/24 expire 12:00 maxexpire 12:00
#
#------------------------------
# DNS 設定(1.1.1.1/1.0.0.1の IPv6 アドレスを設定)
#
dns host any
dns service fallback on
dns server 2606:4700:4700::1111 2606:4700:4700::1001
dns cache max entry 1024
#
dns server select 500010 dhcp lan2 any .
dns private address spoof on
#
#------------------------------
# ntp 同期を毎日 0:00 に行う
schedule at 1 */* 00:00:00 * ntpdate ntp.nict.jp syslog
#
#------------------------------
# その他
#
httpd host lan1
operation external-memory download permit off
external-memory boot permit off
statistics traffic on
statistics nat on
#==============================#





以上です。

参考いただければ。











4 件のコメント:

taro さんのコメント...

rtx830を購入したのでちんぷんかんぷんながら調べていたらこちらを発見し、参考にさせていただいております。上記のコードをインポートし、raspberry pi4 に以前の記事を見ながらwireguard をインストールしたのですが、上手くつながりません。 10.0.0.0/24 からの外向きパケットを通過設定するとあったのですがどう記述すればよいのか分かりません。お教えいただければ幸いです。

bike86-3 さんのコメント...

taro さん、こんにちは。
下記の記事に設定事例を記載しています。

https://bike8615.blogspot.com/2019/09/rtx830_21.html

この中の、

#------------------------------
# PPPoE のフィルター適用
# IN : 192.168.0.0/24 を詐称して入ってくるパケットを拒否、ping の戻りを受け入れ、
# 開放ポート 12321/udp からを受け入れ、これら以外は拒否
# OUT: 原則すべてOK だが、ポート 135/137-139/445 は出も拒否
# dynamic が先に適用され、静的フィルターは次に適用される
# (ftp/domain/www/smtp/pop3/submission(587)/https/その他tcp/その他udp は接続時に開く)
#
ip pp secure filter in 200010 200030 200101 200039

としてある部分の 200101 が通過設定フィルターです。

フィルターの定義は、

#------------------------------
# ポート開放フィルター設定
#
ip filter 200101 pass * 192.168.0.200 udp * 12321
#
# 192.168.0.200 を PPPoE 配下にするフィルター
# 実際の適用は gateway 定義でフィルター型ルーティングで振り向ける
#
ip filter 500010 pass 192.168.0.200 * * * *
#
#------------------------------

に記載していますので、これらを参考していただければよろしいかと思います。

taro さんのコメント...

お返事ありがとうございます。
いただいた回答を参考に試行錯誤して無事に接続することができました。
rtx830内臓のvpnより高速に動作し、大変満足しております。
ただ、alllowed ips を0.0.0.0/0 にすると繋がらず、10.0.0.1/32にすると繋がりました。
lan にアクセスしたいので 192.168.0.0/24 を追加したのですがつながりません。
何が悪いのかお教え頂ければ幸いです。

bike86-3 さんのコメント...

taro さん

Raspberry Pi でポートフォワーディングやファイアウォール等の設定はされましたでしょうか。
WireGuard の導入方法は下記記事に記載しています。

https://bike8615.blogspot.com/2019/04/vpn-wireguard_8.html

rtx830 の設定と、Raspberry Pi の Wiregurad に関連した設定がうまくないと LAN に入り込めないと思います。