[FreeBSD-users-jp 95835] Re: ipfwとDNS

丸山直昌 maruyama @ ism.ac.jp
2016年 6月 30日 (木) 09:57:23 UTC


平野 様、川崎 様、鯉江 様

丸山です。有難うございました。お陰様にて少し私の理解が進んだように思いま
す。

  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 <hirano at 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
>----
>平野晃宏@金沢大学 大学院 自然科学研究科 電子情報科学専攻
>hirano at t.kanazawa-u.ac.jp

--------
丸山直昌@統計数理研究所


freebsd-users-jp メーリングリストの案内