[FreeBSD-users-jp 95834] Re: ipfwとDNS
Tomoaki AOKI
junchoon @ dec.sakura.ne.jp
2016年 6月 30日 (木) 09:41:12 UTC
青木@名古屋です。
On Thu, 30 Jun 2016 12:59:50 +0900
maruyama at 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 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"
>
--
青木 知明 [Tomoaki AOKI]
junchoon at dec.sakura.ne.jp
freebsd-users-jp メーリングリストの案内