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

Hideki SAKAMOTO hs @ on-sky.net
2016年 7月 1日 (金) 01:28:20 UTC


坂元です

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 <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 at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org"
> 



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