初心者もOK! FreeBSD質問スレッド その5

このエントリーをはてなブックマークに追加
805ななしさん@おなかいっぱい
>>727
まず最初に書いとくけど、わたしは別に「すごい人」とかじゃくて、単に
べんきょー中のしろーと。なので、(もちろん、嘘書くつもりはないけど)
間違ってるかもしんないんで、その辺はよろしく。

ipfw+natdのルールの記述についてちょいと混乱があるようなので、まずは
http://home.jp.freebsd.org/cgi-bin/thread?mesid=%3c200107091039%2ef69AdCG77688%40sakura%2emk%2ebsdclub%2eorg%3e
のスレッドをを読んでみるのがお奨め。絶対役に立つから。特に今野さんの
http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-net-jp/3222
は重要。まるまんまいんよーするけど、
>o divert の前 (の番号) にルールを書くならば、 natd でアドレスが
> 変換される前の状態で書く。
>o divert の後 (の番号) にルールを書くならば、 natd でアドレスが
> 変換された後の状態で書く。
ってことをきちんと押さえとかなきゃなんない。
それを念頭に置いてルールを眺め直せば、
${fwcmd} add pass udp from 192.168.0.0:255.255.255.0 6257 to any in via vr0 keep-state
って記述は意図した通りには働かないことが解ると思う。つまりここは
${fwcmd} add pass udp from 172.25.0.2 6257 to any in via vr0 keep-state
じゃなきゃいけない……と思うんだがどうよ? それと、divertの後だと
「in via vr0」なパケットのソースはどうせ(変換がかかって) 172.25.0.2
になるんで
${fwcmd} add pass udp from any 6257 to any in via vr0 keep-state
で良いんじゃないかと思う。……しかしこれ、ルールがおかしいような。
udp/6257を「開ける」ってんなら、
${fwcmd} add pass udp from any to any 6257 in via vr1 keep-state
じゃないの? 宛先IPをanyで書いてる理由はさっきと同じ。

さて次
>>781
>#ipfw add 1001 deny tcp from cocoa.2ch.net to [local IP] 80
>#ipfw add 1002 deny tcp from cocoa.2ch.net to [local IP] 8080
>#ipfw add 1003 deny tcp from cocoa.2ch.net to [local IP] 3128
>#ipfw add 1004 deny tcp from 2ch.net to [local IP] 80
>#ipfw add 1005 deny tcp from 2ch.net to [local IP] 8080
>#ipfw add 1006 deny tcp from 2ch.net to [local IP] 3128
ってのは、どういう意図? 外部からtcpな接続を許したくないんなら、
単に
ipfw add deny tcp from any to any in via ${oif}
とか書きゃいいやん。で、内部から外部にtcpで自由に接続させたいな
ら、上のルールの前に
ipfw add check-state
ipfw add deny tcp from any to any in via ${oif} established
ipfw add allow tcp from any to any setup out via ${oif} keep-state
ってなルール(この例はipfw(8)に出てる)を入れとけば良いんではな
いかい?