アクセスリスト項目の編集画面でIPV4すべてを選択できません。

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Tue Nov 08, 2022 12:24 am

VPN SERVERのアクセスリスト項目の編集画面でIP4すべてを選択(IPV6すべてを選択)しようとしても出来ません。

例えばIPV4すべてを通過させる場合とか、IPV4すべてを破棄する場合とか。
IPV6についても同様です。

以下のような設定ができません(下線部)。

例1.IPV4のTCP/443とTCP/80のみの通信を許可させたい場合
アクセスリストは、並びが重要です。リストの上から順に条件文がチェックされてゆきます。
①通過 DHCP
②通過 DNS
③通過 TCP/443
④通過 TCP/80
⑤破棄 IPV4すべて


例2.IPV4,IPV6混在
IPV4のローカルサブネットのみへの通信を拒否、
IPV6のTCP/443とTCP/80のみの通信を許可させたい場合

①通過 DHCP
②通過 ルータ(IPV4アドレス)への送信
③破棄 ローカルサブネット(IPV4サブネット)への送信
④通過 IPV4すべて

⑤通過 IPV6のICMPV6
⑥通過 IPV6のDHCPV6
⑦通過 IPV6のDNS
⑧通過 IPV6のTCP/443
⑨通過 IPV6のTCP/80
⑩破棄 IPV6すべて
Last edited by hiura on Tue Nov 08, 2022 2:10 pm, edited 1 time in total.

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Wed Nov 09, 2022 7:46 am

選択できないというのは、具体的にはどのような状態でしょうか。
アクセスリスト項目を新規作成した状態で、すべてのIPパケットを対象とする状態になっていると思いますが、その状態でOKボタンを押せないでしょうか。

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Wed Nov 09, 2022 2:00 pm

アクセスリスト画面で「追加I(IPv4)」をクリックして
宛先の名前に 「USER」
プロトコルの種類に 「すべてのIPv4/IPv6プロトコル」
動作に 「破棄」
を選択してOKをクリックすると

アクセスリスト一覧の内容に (ether) DsrUser=USER
と表示されます。
IPV4のフィルター(下線部参照)を設定したつもりでしたが、(ether) となっています。
IPv4フィルターではないようです。IPv6もフィルタリングしていませんか?。

IPv4すべて(IPV4だけ)を破棄したい。それができません。
IPV6についても同様です。
Last edited by hiura on Thu Nov 10, 2022 11:47 pm, edited 1 time in total.

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Wed Nov 09, 2022 11:32 pm

IPv6 のパケットはIPv6のアクセスリストに送られるので、その状態で問題ないかと思います。

追記:この理解は間違っていました。内部的にはアクセスリストは1つになっているようです。

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Thu Nov 10, 2022 12:35 am

>IPv6 のパケットはIPv6のアクセスリストに送られるので、その状態で問題ないかと思います。

IPV4も破棄,IPV6も破棄されているのですか?。
そうであれば、「追加(IPV4)」ボタン名のIPV4の意味は何なんでしょうか?。

ETHERタイプ0X0800のフレームのみを破棄または通過させたい場合はどうすればいいのでしょうか?。
ETHERタイプ0X86DDのフレームのみを破棄または通過させたい場合はどうすればいいのでしょうか?。

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Thu Nov 10, 2022 10:33 am

確かにイーサネットヘッダののプロトコル番号を直接条件に指定することはできませんね。
このあたりのソースコードを見てみると、IP アドレスが指定されていると IP プロトコルのバージョンの判定に入るようです。

https://github.com/SoftEtherVPN/SoftEth ... ub.c#L2227

なので、ちょっと残念な方法ですが IPv4 パケット全てを指定するには、IP アドレスの条件として0.0.0.0/128.0.0.0 と 128.0.0.0/128.0.0.0 を指定するのがよさそうです。(両方0だと無指定扱いになってしまうため)

もうちょっと緩い条件でもよければ、IPv4 と IPv6 のエントリで TCP と UDP を遮断すれば、もう少し分かりやすくルールを書けると思います。

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Sat Nov 12, 2022 7:45 am

>なので、ちょっと残念な方法ですが IPv4 パケット全てを指定するには、IP アドレスの条件として0.0.0.0/128.0.0.0 と 128.0.0.0/128.0.0.0 を指定するのがよさそうです。(両方0だと無指定扱いになってしまうため)

上記指定値では、
IP ADDRESSと指定サブネットマスクのAND計算値と
指定IP ADDRESSと指定サブネットマスクのAND計算値が等しくないケースがあるのでは?。

指定IP ADDRESS:ゼロ以外なんでも可
指定サブネットマスク:0.0.0.0
にすれば、等しくなるのでは?。


送信元:128.0.0.0/0.0.0.0
宛先:128.0.0.0/0.0.0.0

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Sat Nov 12, 2022 10:01 am

たしかにそちらのほうがスマートですね

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Mon Nov 14, 2022 1:19 pm

設定例を添付しました。興味ある方は参考にしてください。

1.アクセスリストの仕組・動作
 アクセスリストは、並びが重要です。リストの上から順に条件文がチェックされてゆきます。
 一致する条件が見つかったところで、通過、または破棄のアクションが実行され、残りのアクセスリストはチェックされません。
 また、どのリストにも一致しなかった場合には、暗黙の「allow any」が実行され通過のアクションが取られます。
 この「allow any」は、作成したアクセスリストの最後に自動的に追加される暗黙の全通過です。
 この「allow any」は、見ることはできません。アクセスリストを作成した時点で自動的に追加されます。

注1:
IPV4アドレス全てを指定するには、IPV4アドレスにゼロ以外、マスクにゼロを設定する方法で対応。
IPV4パケット全てを指定するには、送信元IPV4アドレスを全てに、かつ宛先IPV4アドレスを全てに設定する。
IPV6については、上記IPV4をIPV6に読みかえてください。

2.例3
IPV4のローカルサブネットへの通信は破棄し、以外は通過させる場合
IPV6のTCP:443,UDP:443,TCP:80の3種類の通信は通過させ、以外は破棄する場合

①通過 受信/IPV4&IPV6すべて
②通過 ----/IPV4のDHCP
③通過 送信/IPV4のルータ(IPV4アドレス)宛
④破棄 送信/IPV4のローカルサブネット(IPV4サブネット)宛
⑤通過 送信/IPV4のすべて

⑥通過 ----/IPV6のICMPV6
⑦通過 送信/IPV6のTCP:443
⑧通過 送信/IPV6のUDP:443
⑨通過 送信/IPV6のTCP:80
⑩通過 ----/IPV6のDHCPV6
⑪通過 送信/IPV6のDNS
⑫破棄 送信/IPV6のすべて

注2:
送信とは送信元がUSERであるパケットを意味します。
受信とは宛先がUSERであるパケットを意味します。
アクセスリスト20221113.jpg

以下、個人的な感想です。
現状アクセスリストは一つのため無駄な処理を行っている。
・⑤処理は省略可能であるが、もし⑤処理を省略した場合、⑥から⑫までの処理を余分に行う必要がある。
・IPV6パケットを処理するには、必ず②から⑤までの処理を行う必要がある。無駄である。

なので、パケットフィルターはIPV4用とIPV6用の二つに分けるべきであると思います。
分ければ、上記の様な無駄な処理はなくなります。
You do not have the required permissions to view the files attached to this post.
Last edited by hiura on Thu Nov 17, 2022 11:58 pm, edited 2 times in total.

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Wed Nov 16, 2022 10:18 am

機能の改良についての提案は GitHub の issue に書かれたほうが、開発者の目にとまるのではないかと思います。
(Pull Request であれば、さらに速く反映されると思います。)

https://github.com/SoftEtherVPN/SoftEtherVPN/issues

hiura
Posts: 143
Joined: Wed Mar 10, 2021 1:56 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by hiura » Thu Nov 17, 2022 9:26 am

GitHubに関しては何もわかりません。

GitHub の issue に書くのは無料ですか?。
GitHub のPULL REQUEST に書くのは無料ですか?。

ACCOUNTはいると思いますが。

cedar
Site Admin
Posts: 2070
Joined: Sat Mar 09, 2013 5:37 am

Re: アクセスリスト項目の編集画面でIPV4すべてを選択できません。

Post by cedar » Thu Nov 17, 2022 12:53 pm

GitHub には、プロジェクトを管理するための有料のプランもありますが、既存プロジェクトに参加するだけであれば無料のプランでも問題ないと思います。

Post Reply