青木@名古屋です。

On Thu, 30 Jun 2016 12:59:50 +0900
maruy...@ism.ac.jp (丸山直昌) wrote:

> 統計数理研究所の丸山です。
> 
> PC-BSD 10.x ではipfw がデフォルトでon になっているため、否応もなくipfw
> のことを勉強せざるを得なくなったのですが、どうも私のアタマでは理解できな
> い現象に遭遇したので、ここにお尋ねします。ipfw の設定によってDNSが引けな
> くなってしまうのです。
> 
> /etc/ipfw.custom に
> 
>   ipfw -q add 110 allow ip from 133.58.124.49 to any
> 
> のようなルールを入れて、ipfw を再起動します。
> 
>   service ipfw restart
> 
> ただし、ここに 133.58.124.49 は default route に向かっているインターフェー
> スです。
> 
> # netstat -rn |head
> Routing tables
> 
> Internet:
> Destination        Gateway            Flags      Netif Expire
> default            133.58.124.99      UGS        bge0
> 127.0.0.1          link#3             UH          lo0
> 133.58.15.0/24     link#2             U          bge1
> 133.58.15.113      link#2             UHS         lo0
> 133.58.124.0/24    link#1             U          bge0
> 133.58.124.49      link#1             UHS         lo0
> 
> という感じ。すると、あろうことか、 DNSが引けなくなってしまうのです。
> 
> # dig @dns-x.ism.ac.jp ism.ac.jp ns
> dig: couldn't get address for 'dns-x.ism.ac.jp': failure
> 
> "deny" ではなく "allow" なのにパケットが受け取れなくなる、というのは
> どうも私のアタマでは理解できません。お助けください。

ルールが一方通行になっているのが原因ではないかと。
ご指定のルールだと、内側から出る方は全て許可されているものの、
戻りのパケットを通すルールが無いので入ってこられないのでは?

下記のような設定を行ったらどうなりますか?

   ipfw -q add 100 check-state
   ipfw -q add 110 pass tcp from 133.58.124.49 to any setup keep-state
   ipfw -q add 120 pass udp from 133.58.124.49 to any keep-state
   ipfw -q add 130 pass icmp from 133.58.124.49 to any keep-state

一応、この設定なら内側から発呼した通信の戻りは通る筈ですが...。


> 
> なお、上記 allow が default route に向かっていないインターフェースのアド
> レスの場合には、問題は起きません。 10.2, 10.3 ともに同じ症状です。

記憶が不確かですが、ipfwで何らかのルールを設定するとデフォルトで
deny allになり、明示的に許可したルール以外全部アウトになったかと。
逆にルールの設定が無い場合はpass allだったかと。


とりあえず外からの怪しげな通信を遮断できればOK、ということであれば、
/etc/rc.firewallのお仕着せのルールセット(PC-BSDもFreeBSD由来ですので、
わざわざ削除していなければ同じかカスタマイズされたものがあると思います)
を使う手もあります。 /etc/rc.confか/etc/rc.conf.localに、クライアントと
しての運用なら、例えば

   firewall_enable="YES"
   firewall_type="CLIENT"

のように指定するのも手です。 "WORKSTATION"でも可ですが、違いはCLIENT
だと

   firewall_client_net=133.58.124.0

のようにin/outとも全通にしたい(ローカルの)ネットワークアドレスを
設定でき、WORKSTATIONだとfirewall_myservicesで他端末からの接続を許す
ポート/プロトコル、firewall_allowservicesでそのサービスへの接続を
許すアドレスを指定することでローカルサーバとしての運用も想定されて
いることでしょうか。

 ※ご指定のIPアドレスだとクラスBになりますが、netstatの出力では/24に
  なっているので、そのレンジで割当てている前提の例にしてあります。

サーバ運用でbge0とbge1を内側・外側で使い分けるのであれば、CLIENTでなく
SIMPLEをベースにカスタムのルールセットを作るのが早そうです。


> 
> よろしく。
> 
> --------
> 丸山直昌@統計数理研究所
> _______________________________________________
> 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"
> 


-- 
青木 知明  [Tomoaki AOKI]
    junch...@dec.sakura.ne.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"

メールによる返信