統計数理研究所の丸山です。

皆様のお陰でだんだん賢くなってゆくような気分です。有難うございます。
やってみたところ、 keep-state なしで

ipfw -q add 30000 allow ip from 192.168.255.0:255.255.255.0 to any

でうまくゆきました。今のところ、これが一番気に入っています。
ipfw.openports を使う手は知っていましたが、nfs以外のものも将来やりたくなっ
た場合も考えると、自分だけがいじれる閉鎖サブネット内は「何でもあり」にし
ておいた方が楽だな、と思って採用せずに、そのために今回の事態に遭遇した、
という事情です。

有難うございました。

Fri, 1 Jul 2016 10:21:23 +0900
Hideki SAKAMOTO <h...@on-sky.net> writes:

>坂元です
>
>NFSサーバを立てる目的であれば、/etc/ipfw.openportsに以下の行を
>追加しておいて、/etc/exportsの方でIPを制限するのがよいかと思い
>ます。
>tcp 111
>udp 111
>tcp 1110
>udp 1110
>tcp 2049
>udp 2049
>tcp 4045
>udp 4045
>
>参考:https://forums.freebsd.org/threads/5123/
>
>元の質問のルール番号については、/etc/ipfw.rulesを見ると、
>・2000番台以下はクライアントとして良きに計らうための設定
>  (よほど自信が無い限りは触れないのが吉)
>・10000番台に/etc/ipfw.openportsで指定されたポートを(サーバとして)
>  解放する設定
>・20000番台に/etc/ipfw.openipで指定されたIPアドレスに来る通信を
>  許可する設定
>  (なので上の代わりに"192.168.255.1"って書いても一応目的は叶い
>    ますが、やっちゃダメです(^^;;)
>という思惑が見てとれますので、/etc/ipfw.customで指定するルールの
>番号は30000 - 63999あたりを使うようにすれば、
>
>ipfw -q add 30000 allow ip from 192.168.255.0:255.255.255.0 to any keep-state
>
>の1行だけで済むかと思います。keep-stateはあってもなくてもよいはず
>です(返りのパケットを1000番のcheck-stateでパスするかどうかの違い)。
>
>あと蛇足ながら、
>> 00020 allow ip from any to any via lo0
>は、lo0インターフェイス(127.0.0.1/::1)を経由するすべての通信を許可
>するという意味なので、localhost<->localhostの通信のみが対象です。
>
>
>On 2016/06/30 18:57, 丸山直昌 wrote:
>> 平野 様、川崎 様、鯉江 様
>> 
>> 丸山です。有難うございました。お陰様にて少し私の理解が進んだように思いま
>> す。
>> 
>>   02000 allow ip from any to any out keep-state
>> 
>> を
>> 
>>   00110 allow ip from 133.58.124.49 to any
>> 
>> で上書きしちゃっているので、133.58.124.49 で DNS response が受け取れなく
>> なった、という結論でしょうか。
>> 
>> 自宅の PC では今
>> 
>> ipfw -q add 1200 allow ip from 192.168.255.1 to any keep-state
>> ipfw -q add 1200 allow ip from 192.168.255.0:255.255.255.0 to any
>> 
>> として、問題解決しました。
>> 
>> で、何でこんなことしたかというと、NFSサーバーを仕立てて、サブネット内の
>> 他のマシンからマウントしたかったのです。ですから to any ではなく、もっと
>> ポートを絞れるのですが、面倒だから to any にしてこういうことになってしまっ
>> たという次第です。
>> 
>> で、追加でお尋ねしますが、こういう状況で
>> 
>> 設定1
>> ipfw -q add 1200 allow ip from 192.168.255.1 to any keep-state
>> ipfw -q add 1200 allow ip from 192.168.255.0:255.255.255.0 to any
>> 
>> 設定2
>> ipfw -q add 1200 allow ip from 192.168.255.1 to any keep-state
>> ipfw -q add 1201 allow ip from 192.168.255.0:255.255.255.0 to any
>> 
>> 設定3
>> ipfw -q add 1201 allow ip from 192.168.255.1 to any keep-state
>> ipfw -q add 1200 allow ip from 192.168.255.0:255.255.255.0 to any
>> 
>> 設定4
>> ipfw -q add 1200 allow ip from 192.168.255.0:255.255.255.0 to any keep-state
>> 
>> のどれが「正解」、あるいはお勧めでしょうか。
>> 
>> localhost = 192.168.255.1 で、 DNSサーバーへの query はこのインターフェー
>> スを通ります。
>> 
>> (恥ずかしながら keep-state の意味がわかっていないので、こういう質問をし
>> ております。)
>> 
>> Thu, 30 Jun 2016 18:11:19 +0900
>> Akihiro HIRANO <hir...@t.kanazawa-u.ac.jp> writes:
>> 
>>> 平野@金沢大です。
>>>
>>> On 2016/06/30 17:39, 丸山直昌 wrote:
>>>> # ipfw list
>>>> 00020 allow ip from any to any via lo0
>>>> 01000 check-state
>>>> 01050 allow tcp from any to any established
>>>> 01100 allow udp from any to any established
>>>> 02000 allow ip from any to any out keep-state
>>>> 02050 allow ip6 from any to any out keep-state
>>>> 02100 allow ipv6-icmp from any to any keep-state
>>>> 02150 allow icmp from any to any keep-state
>>>> 10000 allow udp from any to any dst-port 5353 in keep-state
>>>> 10001 allow tcp from any to any dst-port 22 in keep-state
>>>> 64000 deny log ip from any to any
>>>> 65535 allow ip from any to any
>>>>
>>>> この状態では dig @133.58.32.12 ism.ac.jp ns は正常に結果を表示。
>>>
>>>  DNSの問い合わせを送信するパケットが
>>>
>>>> 02000 allow ip from any to any out keep-state
>>>
>>> に合致して、その後のセッションを許可する動的ルールが生成されて、
>>> という流れのようです。
>>>
>>>> # ipfw list
>>>> 00020 allow ip from any to any via lo0
>>>> 00110 allow ip from 133.58.124.49 to any
>>>> 01000 check-state
>>>> 01050 allow tcp from any to any established
>>>> 01100 allow udp from any to any established
>>>> 02000 allow ip from any to any out keep-state
>>>> 02050 allow ip6 from any to any out keep-state
>>>> 02100 allow ipv6-icmp from any to any keep-state
>>>> 02150 allow icmp from any to any keep-state
>>>> 10000 allow udp from any to any dst-port 5353 in keep-state
>>>> 10001 allow tcp from any to any dst-port 22 in keep-state
>>>> 64000 deny log ip from any to any
>>>> 65535 allow ip from any to any
>>>>
>>>> このとき、
>>>>
>>>> % dig @133.58.32.12 ism.ac.jp ns
>>>
>>>  この場合は、
>>>
>>>> 00110 allow ip from 133.58.124.49 to any
>>>
>>> で送信パケットを許可して、後はなにもしないので、
>>> 戻りパケットは
>>>
>>>> 64000 deny log ip from any to any
>>>
>>> で拒否される、かと。
>>>
>>>  おそらく、
>>>
>>> /etc/ipfw.custom
>>>         ipfw -q add 1200 allow ip from 133.58.124.49 to any keep-state
>>>
>>> あたりで動くのではないかと思います。
>>> 番号はそのまま110でも良いのですが、
>>> 許可済みのセッションはcheck-stateやestablishedで早めに合致させたい
>>> という趣旨だと思いますので、これらよりは後がいいと思います。
>>>
>>> 【ご参考】
>>> http://www.wakhok.ac.jp/~kanayama/semi/bsd/node141.html
>>> ----
>>> 平野晃宏@金沢大学 大学院 自然科学研究科 電子情報科学専攻
>>> hir...@t.kanazawa-u.ac.jp
>> 
>> --------
>> 丸山直昌@統計数理研究所

--------
丸山直昌@統計数理研究所
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信