トップページunix
678コメント218KB

*BSDでBBルータを作ろう互助会 4pps

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2007/02/20(火) 13:21:31
前スレ
FreeBSDでBBルータを作ろう互助会 3Gbps
http://pc10.2ch.net/test/read.cgi/unix/1102740133/
0352名無しさん@お腹いっぱい。2008/04/16(水) 19:06:35
>>351
> 「Bフレッツ」の方でサーバー設置してマルチセッションしたらルーティングの設定を行なわなくても

おまえ自身が設定はしてなくても、設定されてるんだってば<ルーティング
0353名無しさん@お腹いっぱい。2008/04/16(水) 19:48:55
質問の仕方も知らないようだし、放置でいいんじゃね。
0354名無しさん@お腹いっぱい。2008/04/16(水) 23:46:39
ウザーズに行ったんじゃなかったのかいな
0355名無しさん@お腹いっぱい。2008/04/17(木) 19:35:04
FreeBSD6.1Releaseから7.0Stableにあげたら繋がらなくなった
mpd4を最新にしたらng0は出てくるようになった。
mpd.confの"open iface"をopenにしたら繋がった。
0356名無しさん@お腹いっぱい。2008/04/17(木) 21:17:53
2008年4月17日 複数デフォルトルータ機能の実現へ向けポート開始
http://gihyo.jp/admin/clip/01/fdt/200804/17
0357名無しさん@お腹いっぱい。2008/04/21(月) 00:54:14
FreeBSD で terming しようとおもうと ng_one2many を使えばいいんですかね?
0358名無しさん@お腹いっぱい。2008/04/22(火) 00:11:44
HEY!YUU!ナイスでCUUL!なFREEBSDでのterming方法をMEにterchしてくれYo!
0359名無しさん@お腹いっぱい。NGNG?2BP(9046)
どこから突っ込めと
0360名無しさん@お腹いっぱい。2008/04/24(木) 22:38:42
>26-40
結局、ng_one2many はどうなったんだ?
まとめておくれ。
0361名無しさん@お腹いっぱい。2008/05/03(土) 10:42:56
pf は全然わからないんですけど、 下のようなことをやっています。
ここで、krfilter.tbl には IP アドレスを書いていますが、
www.rotten.com とか、 ad.jp.doubleclick.net のような URL で
フィルタリングかけるにはどうしたらよいでしょうか?

  table <krfilter> persist file "/etc/pf_tables/krfilter.tbl"

  block in  log quick on $ext_if from <krfilter> to any
  block in  log quick on $ext_if from any to <krfilter>
  block out log quick on $ext_if from <krfilter> to any
  block out log quick on $ext_if from any to <krfilter>

よろしくお願いします・
0362名無しさん@お腹いっぱい。2008/05/03(土) 10:52:05
よく知らんけど、うまくできてもタイムアウトまで待たされてウゼェ事になるんじゃねーの?
ブラウザでどうにかした方が良くね?
0363名無しさん@お腹いっぱい。2008/05/03(土) 10:59:44
あ、そうですか。ウゼェことになりますか。
いちおう、adblock plus 使ってるんですが、ときどきぶっ壊れることがあるので根元からと思ったんですが、…
どうも、ありがとうございました。
0364名無しさん@お腹いっぱい。2008/05/03(土) 13:10:28
>>361
URLでフィルタリングって、HTTPリクエストの中身まで見てフィルタするってこと?
そういう機能はpfにはない。
やるならtransparent proxyあたりを使ってやるのがいいと思う。

そうでなく、単にIPアドレスでなくホスト名でってことなら、テーブルのファイル内に
そのままホスト名書けそうな気がするけど、試したことはない。
まあ、ホスト名書いたら書いたで名前解決的に意味のある設定にするのは面倒だけど。
0365名無しさん@お腹いっぱい。2008/05/03(土) 14:25:34
DNSプロキシであさっての方に向ける方が素直だと思うけどね。
0366名無しさん@お腹いっぱい。2008/05/03(土) 15:54:34
自分でnamed上げるでしょ
0367名無しさん@お腹いっぱい。2008/05/04(日) 00:23:31
outをブロックするときはresetを返してやれば、うぜぇ事にならない。
0368名無しさん@お腹いっぱい。2008/05/06(火) 01:26:17
>>365
偽のルーティング情報を流してみるとか
0369名無しさん@お腹いっぱい。2008/05/07(水) 19:58:17
どなたか助けてくださいorz
mpd5でpppoe接続しようとしたらエラーしか出ない・・・・

[L1] [L1] Link: OPEN event
[L1] LCP: Open event
[L1] LCP: state change Initial --> Starting
[L1] LCP: LayerStart
[L1] can't create tee node at ".:"->"l0": No such file or directory
[L1] PPPoE: can't connect "[8]:"->"mpd61269-0" and "[0]:"->"left": No such file or directory
[L1] Link: DOWN event
[L1] LCP: Down event
こんな感じなんですが何が悪いんですかね?設定は上で張られてるmpc.confを参考にしてみたんですが。
どうかお願いいたします。
0370名無しさん@お腹いっぱい。2008/05/07(水) 23:44:27
なにか足りないんだろ
mpd.confをさらしてみれば親切な人が相手してくれるかもね
犬小屋も可って感じ
03713692008/05/08(木) 01:02:27
mpd.confはこんな感じです。
サンプルそのままなんですけどね
必要なng系は全部組み込み済みです
default:
load pppoe_client


pppoe_client:


create bundle static B1
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0

create link static L1 pppoe
set link action bundle B1
set auth authname ""
set auth password ""
set link max-redial 0
set link mtu 1460
set link keep-alive 10 60
set pppoe iface bge0
set pppoe service ""
open

足りないものが分かりません。どうかお願いします。
0372名無しさん@お腹いっぱい。2008/05/08(木) 11:12:33
>>371
> mpd.confはこんな感じです。
> サンプルそのままなんですけどね

ドキュメントあるから、それ見て自分で一から書いてみて見比べてみれば。
0373名無しさん@お腹いっぱい。2008/05/08(木) 13:20:08
>>371
必要なng系は組み込み済みって、もしかしてng_teeとか入れ忘れてたりしない?

必要なのは全部カーネルに組み込んじゃって、/boot/kernel/*.ko使わずに
済ませようとしてる?
0374名無しさん@お腹いっぱい。2008/05/08(木) 16:12:54
>>369
うちの動いてるmpd5設定ファイル
このスレに載ってたのを参考にさせて貰ってこんな感じ
適当に書き換えして使っておくれ

default:
load PPPoE_Excite
PPPoE_Excite:
create bundle template Excite
set iface route default
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface up-script /usr/local/etc/mpd4/excite.sh
set iface mtu 1454
set iface enable tcpmssfix
set iface idle 0

create link Excite-link pppoe
set auth authname userid@excite.co.jp
set link action bundle Excite
load client_common
client_common:
set link no acfcomp protocomp
set link disable pap chap
set link accept chap
set link mtu 1454
set link mru 1454
set link keep-alive 10 60

set pppoe iface em1
set pppoe service ""
open
03753692008/05/09(金) 00:13:29
>373
ありがとうございます。ビンゴでした。カーネル再構築の際にoptions NETGRAPH_TEEを
記載し忘れておりました。書き足して再構築をかけたところ無事につながるようになりました。
>374
さっそく参考にさせていただきます。
お騒がせしました。本当にありがとうございます。
0376名無しさん@お腹いっぱい。2008/05/09(金) 13:54:23
ng_*って自分で組み込まなくてもmpdが勝手にkldloadしてくれるのでは?
0377名無しさん@お腹いっぱい。2008/05/09(金) 16:30:00
うむ。
0378名無しさん@お腹いっぱい。2008/05/09(金) 17:05:17
*.ko使わずに済ませたいってことなのでは。
コンパクトフラッシュなんかをディスク代わりにする場合とかで、
容量をできるだけ削りたければ、不要な*.koは外したくなるかもね。
0379名無しさん@お腹いっぱい。2008/05/10(土) 10:52:16
mpd4だとng_etherだけはloader.confかなにかで
ロードしておかないと、mpdでよきにはららってくれなかった
0380名無しさん@お腹いっぱい。2008/05/11(日) 14:51:08
lagg(4)でいいんじゃ。LACPしてくれるぞ。
L2SWにやさしいし。
0381名無しさん@お腹いっぱい。2008/05/13(火) 01:44:07
pppoeパススルーってできるのかな
0382名無しさん@お腹いっぱい。2008/05/14(水) 12:19:03
>>381
pppoeパススルーがこういうことかどうかは知らないけど、内側のネットワークの人が
PPPoEをしゃべって、外側にいるAccess Concentrator (PPPoEのサーバ)に接続し
IPアドレスを得るのは試しにやってみたらできた。
ルータマシンではmpd4を動作させた状態。

方法は、if_bridgeで内と外をブリッジして、ipfwでブリッジするパケットを
ethertype 0x8863,0x8864,0x3c12,0x3c13だけにする感じ。
0x3c12,0x3c13はいらないかもしれない。

ただ、ルータマシン自身が外側ネットワークにPPPoE以外のパケットを
投げないようにするのはブリッジのフィルタではできないので、そのフィルタの
設定はさらに必要。ブロードキャスト・マルチキャストのパケットがやっかい。
まあ、気にしなければいいという話もあるにはあるけど。
0383名無しさん@お腹いっぱい。2008/05/15(木) 08:54:49
ipfw2 やら dummynet を使う際に、カーネルオプションじゃなく .ko 設定だけで使えるんでしょうか?
0384名無しさん@お腹いっぱい。2008/05/16(金) 00:35:10
もちろん使えますよ
0385名無しさん@お腹いっぱい。2008/05/25(日) 14:54:33
皆、IP変わった時のddnsの更新スクリプトを晒してくれ。
0386名無しさん@お腹いっぱい。2008/05/25(日) 17:24:55
>>385
1ヶ月に1度は更新しないと消されちゃうところだから
cronで一日に一度wget呼んでるだけだし
PPPoEが切断されてIPアドレス変わっちゃったって場合には
mpd.linkupがwget呼んでくるだけだから
特に晒せるスクリプトって無いです(´Д⊂
0387名無しさん@お腹いっぱい。2008/05/25(日) 17:35:14
自分のもろくなスクリプトでないし、晒せるほど汎用的に作ってもいないw
FreeBSDでこれから設定するならportsのdns/ez-ipupdateとか使えばいいんでない?
使ったことないけど。
0388名無しさん@お腹いっぱい。2008/05/25(日) 23:53:19
PR-200NE をブリッジして mpd で使っています。2コネクション使い切ってる
ので、フレッツスクエアv6に接続しようと rtsol しても v6 アドレスが振っ
てきません。tcpdump すると ICMP6 router advertisement は見えてるのです
が……。うまく接続できてる方いますか?ブリッジが悪いのかなぁ。
03893852008/05/26(月) 00:02:05
スクリプトの勉強も兼ねて、自分で作ってみようと思った。
ifconfig ng0 | grep inet | awk '{print $2}'
これで、ng0 の IP をぬけるようになったが、
ddns のドメインから IP ぬくのが難しくて・・・
0390名無しさん@お腹いっぱい。2008/05/26(月) 00:31:24
>>388
router advertisement がフィルタでブロックされちゃってるとか?
0391名無しさん@お腹いっぱい。2008/05/26(月) 00:43:56
>>390
アドレスを付与しようとしてる i/f で tcpdump した結果が以下ですが、これっ
て advertisement は見えてるってことですよね?

00:25:17.362962 IP6 (class 0xe0, hlim 255, next-header: ICMPv6 (58), length: 64) fe80::XXXX:XXXX:XXXX:XXXX > ff02::1: ICMP6, router advertisement, length 64
0392名無しさん@お腹いっぱい。2008/05/26(月) 00:51:30
構成がわかんないから何とも言えないけど、router advertisement 受けたいマシンは
フィルタをかけてないの?
mpdやってるみたいだからフィルタもしてそうだけど……

ちなみに、tcpdump (bpf) はフィルタよりも前に受信したパケットをつかまえるので、
tcpdump にパケットが出てるからと言ってフィルタにかかってないとは言えないよ。
03933852008/05/26(月) 01:32:11
ぐぐったらあった。
nslookup $myhost | awk 'BEGIN{flg=0}/Name:/{flg=1;next}flg==1 && /Address:/{print $2}'
0394名無しさん@お腹いっぱい。2008/05/27(火) 17:35:41
ddns を更新した直後に↑を実行するならば、 DNS問い合わせ先によっちゃ 古い(キャッシュされた)アドレスを返してくれるけどいいの??
0395名無しさん@お腹いっぱい。2008/05/27(火) 19:22:27
dig でも host でもいいが自分の DynamicDNS ゾーンの権威サーバに
直接聞きに行くようにした方が良くないかね
03963852008/05/29(木) 16:34:00
5分程度で更新されているようなので、7分毎に動かしてみることにした。
0397名無しさん@お腹いっぱい。2008/06/08(日) 11:35:30
mpdの話です。ちょっと、教えてください。

pppoeのセッションが切れたり、再接続した時のログは
/var/log/ppp.log に残ります?

うちのログは↓これしかないんですけど
mpd: [PPPoE] LCP: no reply to 1 echo request(s)
これはpppoeのリンクが切れてるわけじゃないし。
0398名無しさん@お腹いっぱい。2008/06/08(日) 21:19:21
どういうログを吐くかはmpdの設定による。mpd付属のマニュアル嫁。
0399名無しさん@お腹いっぱい。2008/07/11(金) 22:04:49
one2manyつかってゴニョゴニョしてたら、
em0とem1の2本繋がないとパケットロスするようになった・・・orz
0400名無しさん@お腹いっぱい。2008/07/17(木) 17:46:24
FreeBSD 6.2R + mpd + pf + miniupnpd でBフレッツ用ルータにしてます。
そこにNNT東のVoIPを接続しているのですが、SIP接続失敗で動作してくれません。
miniupnpdは5060,5090,5091(UDP)に穴あけてくれているので動作はしているようです。

>>41 >>215 にて214さんが pf + miniupnpd で厄介だったと書かれているようですが、
解決方法ご存じの方がいらっしゃったらご教示ください。
0401名無しさん@お腹いっぱい。2008/07/17(木) 17:50:47
東のVOIPって、最初の設定をPPPoEで拾いにいくんじゃなかったっけ?
04024002008/07/17(木) 18:08:39
>>401
あ、失礼。設定書いてなかったですね。
ネットワークはPPPoEを外してIPをDHCP取得にしてあります。
市販の有線ルータに接続して動作確認はできてますので設定に問題はないのかと。
また、有線ルータの前にFreeBSD4.2 + ppp + ipfw + Linux-igd でやっていたのですが、
明示的にマスカレード設定して逃げてましたが、現環境ではそれでも動かないので。

ちなみにXBOX Live!等UPnPを使う物も問題なく動作しています。
このVoIPは特殊なんでしょうか・・・
0403名無しさん@お腹いっぱい。2008/07/17(木) 18:29:36
router箱上でtcpdumpで取ったパケットを他のマシンでwiresharkかけてみたら
いいんでない?
wiresharkならSIPも解析してくれそうだし。
直接router箱上でwireshark動かせるならそれでもいいけど。

あと、pfctl -v -s stateでどういうstateがあるのか見てみた方がいいかも。
04044002008/07/17(木) 20:23:23
>>403
Etherealはwiresharkに名前が変わったのですね。
ひとまず解析してみます。
数年に一度ルータを構築し直してる程度なのですっかり知識が飛んでしまってます。

pfctl -v -s state は
self tcp 192.168.1.197:1024 -> 125.xxx.xxx.xxx:63543 -> 210.173.163.178:80       FIN_WAIT_2:FIN_WAIT_2
self udp 192.168.1.197:5060 -> 125.xxx.xxx.xxx:59436 -> 218.40.158.58:5060       SINGLE:NO_TRAFFIC
この2本だけで、外部から入ってくるパケットはないようです。

UPnPはこのようにちゃんと通ってます。
rdr pass on ng0 inet proto udp from any to any port = 5060 label "g101app (192.168.1.197:5060) 5060 UDP" -> 192.168.1.197 port 5060
rdr pass on ng0 inet proto udp from any to any port = 5090 label "g101app (192.168.1.197:5090) 5090 UDP" -> 192.168.1.197 port 5090
rdr pass on ng0 inet proto udp from any to any port = 5091 label "g101app (192.168.1.197:5091) 5091 UDP" -> 192.168.1.197 port 5091
0405名無しさん@お腹いっぱい。2008/07/17(木) 23:20:42
今までのルータが SIP-NAT に対応してただけじゃないの
STUN とか、グローバルIP 教えてあげればいい
0406名無しさん@お腹いっぱい。2008/08/03(日) 21:59:27
FreeBSD6.2R+mpd+pfな構成にftp-proxy噛ましてFTP接続も出来るようになったが、
Firefoxだと見れんのだが対策ある?
0407名無しさん@お腹いっぱい。2008/08/03(日) 22:11:37
って、調べてたらFirefoxじゃ透過FTPプロキシとの通信ができないみたいだな。
0408名無しさん@お腹いっぱい。2008/08/31(日) 20:50:36
ちょっとこっちで質問させてください

FreeBSD6.1+mpd3+ipf+ipnatの時は、5060:udpを問題なくリダイレクト出来て
いたんですが、FreeBSD7.0+mpd4+ipf+ipnatに変えたとたん、リダイレクトさ
れなくなってしまいました。

お陰で鯖の内側のVOIPアダプタがSIP登録できずに悩んでいます。

色々検索してみると、FreeBSD6.2→6.3の変更の際に似たような症状に出会っ
た人や、m0n0wallについて以下のような発言が見つかりました。

ttp://www.usenet-forums.com/ipfilter/396962-ipfilter-inbound-nat-rdr-problem-sip.html


これって何らかの設定で回避出来る問題でしょうか?
0409名無しさん@お腹いっぱい。2008/08/31(日) 21:46:45
あっちのスレから見てたけど、普通の設定じゃSIPは通らんはずなんだけどなぁ。


http://www.rtpro.yamaha.co.jp/RT/docs/sip-nat/index.html
0410名無しさん@お腹いっぱい。2008/08/31(日) 22:27:54
>>409
しかし6.1では実際に出来ていたわけで。
余ってるマシンで6.1鯖立てて、inとoutのtcpdump取ってみるから待っててくれ。
0411名無しさん@お腹いっぱい。2008/08/31(日) 22:58:11
>普通の設定じゃSIPは通らんはずなんだけどなぁ。

dump結果見たけど、これについては簡単で、NATの内側にいるVOIPアダプタは
外に向けてSIPメッセージ投げるときは、SIPメッセージ内のIPについては最初
からglobal-IPを記述してる。

FreeBSDのNATの問題と思って書いてなかったけど、実際には鯖はDDNS登録して
いて、かつVOIPアダプタにはhost名を設定しています。

やっぱ6.2(←6.1じゃなくて6.2の勘違いデスタ)だとうまく動くよなぁ。
6.3以降の不具合のような気もするんだが・・・
0412名無しさん@お腹いっぱい。2008/08/31(日) 23:02:54

ていうか、この辺はUPnPに対応していれば、NAT内側の機器はDDNSに頼らなく
てもGlobal-IP取得出来て、同じような動作になるんじゃない?余談だけど。
0413名無しさん@お腹いっぱい。2008/08/31(日) 23:20:00
SIPってヘッダにIPとデータ部にもIP入ってるけど、そっちも大丈夫?
0414名無しさん@お腹いっぱい。2008/08/31(日) 23:30:52
大丈夫って、なにが?
0415名無しさん@お腹いっぱい。2008/08/31(日) 23:43:48
pf 使ってみたら?
0416名無しさん@お腹いっぱい。2008/08/31(日) 23:50:41
>>415
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J
04174162008/09/02(火) 06:01:37
>>415
と思いましたが、姫井議員並に熟慮した結果、これを機会にpfを試す事に
します。何事も経験だよね。♂×♂だって実際やってみたら気持ち良いか
も知れないし。

あーでもALTQだけはマジマンドクサ('A`
dummynetは簡単で良かったんだが。
0418名無しさん@お腹いっぱい。2008/09/02(火) 08:49:16
ふつうALTQなんか放置だろ
0419名無しさん@お腹いっぱい。2008/09/02(火) 09:27:48
じゃあどうやって帯域制御するんだよ?
0420名無しさん@お腹いっぱい。2008/09/02(火) 13:46:22
dummynet併用すりゃいいじゃん
04214162008/09/02(火) 16:41:06
だめだ、pfでも全く話にならん。

root# cat pf.test

# macros
ext_if = "ng0"
int_if = "em0"

# options
set block-policy drop
set loginterface $ext_if

# scrub
scrub in all
scrub out on $ext_if all random-id max-mss 1414

# nat all int -> ext
nat on $ext_if from $int_if:network to any -> ($ext_if)
rdr pass on $ext_if inet proto udp from any to any port sip -> 192.168.0.230 port sip

# default filter
pass in all
pass out all

root#

これしか書いてないのに、SIPメッセージがリダイレクトされないとか、それ
何の冗談 orz
0422名無しさん@お腹いっぱい。2008/09/02(火) 17:04:05
VoIPアダプタは何つかってるんだ?
0423名無しさん@お腹いっぱい。2008/09/02(火) 17:51:57
>>421
nat on $ext_if proto udp from 192.168.0.230 port sip to any -> ($ext_if) static-port

nat on $ext_if from $int_if:network to any -> ($ext_if)
の前に入れてみたら?
0424名無しさん@お腹いっぱい。2008/09/02(火) 19:40:50
俺はupnpに逃げたから、416には期待してる。
0425名無しさん@お腹いっぱい。2008/09/02(火) 20:07:21
>>424
416にナニを期待してるのか分からんけど、upnpつーても「壁に穴あけ」「ポー
トリダイレクト」を自動でやってくれるつーだけで、その裏にはpfなりipfがい
るんじゃねーの?

0426名無しさん@お腹いっぱい。2008/09/02(火) 20:26:59
わかってないなら黙ってろ。
0427名無しさん@お腹いっぱい。2008/09/02(火) 21:00:42
voipアダプタがupnpクライントなって、グローバルIPとポートを取得、
SIPのメッセージ内のIPやSDP内のIPをグローバルにしてセッションする。
ポートフォワーディングはNATでやる。

ってな事が手持ちの本に書いてる。
0428名無しさん@お腹いっぱい。2008/09/03(水) 00:57:19
理解出来ていないのは >426 ですね。わかります。
0429名無しさん@お腹いっぱい。2008/09/03(水) 01:28:45
いや、426は半分正解。
0430名無しさん@お腹いっぱい。2008/09/03(水) 01:29:16
↑>425の間違い
0431名無しさん@お腹いっぱい。2008/09/03(水) 01:30:02
だから、わかってないのは黙ってろ。
0432名無しさん@お腹いっぱい。2008/09/03(水) 01:53:16
オマエモナー
0433名無しさん@お腹いっぱい。2008/09/07(日) 23:11:41
pftpx使ってる人いてますかぁ〜?
0434名無しさん@お腹いっぱい。2008/09/08(月) 00:41:27
あぁ、使ってるよ。
04354332008/09/08(月) 00:58:23
mpd+pf+pftpxでやってみたんですけど、うまく動いたのは動いたんですけど、ちょっとわからない点がありまして。

PCルーター兼ftpサーバでして、
ext_if="ng0"
int_if="em0"
ftp_srv="192.168.1.1"
nat on $ext_if from $int_net to any -> ($ext_if)
nat-anchor "pftpx/*"
rdr-anchor "pftpx/*"
rdr pass on $ext_if inet proto tcp from any to any port ftp -> 127.0.0.1 port 8021
anchor "pftpx/*"
block log all
pass quick on lo0 all
pass quick on $int_if all
という設定(抜粋)で、外から内のftp、内から外のftpに見れるようにはなったんですけど
内から内のftpにつなげなくなりました。

ローカルで同じネットワークアドレスなので、natとかrdrとか関係なくて繋がるはずだと思ってたんですが、無理でした。
フィルターでblockされているのかとも思い、"tcpdump -n -e -ttt -i pflog0" で覗いてみましたがblockされてませんでした。

で、なぜか↓の一文を入れると動きました。
rdr pass on $int_if inet proto tcp from any to $ftp_srv port ftp -> 127.0.0.1 port 8021
なぜ?
0436名無しさん@お腹いっぱい。2008/09/08(月) 13:59:41
だってproxyやんか。両方向ないとあかんやろ。
04374332008/09/08(月) 18:00:15
rdr pass on $ext_if inet proto tcp from any to any port ftp -> 127.0.0.1 port 8021
この一文で指定してるのは「外部インターフェイス(ng0)に流れるport21のパケットはproxyにリダイレクトする」という意味ですよね?

192.168.1.55(XPでFFFTP)でem0(192.168.1.1)に向かって接続する分にはng0を通らないので、リダイレクトされず、
proxyを経由せずに192.168.1.1:21に向かうはずですよね?

俺、なんか勘違いしてます?
0438名無しさん@お腹いっぱい。2008/09/09(火) 08:02:07
FFFTPでなくftpコマンドで、21番ポートすら通らないのか、PORT/PASVが通らないのか
切り分けしてみては。
0439名無しさん@お腹いっぱい。2008/09/09(火) 08:08:40
man
0440名無しさん@お腹いっぱい。2008/09/09(火) 11:48:51
> という設定(抜粋)で
関係ないと思って秘密にしたところに問題があるんだろ。
04414332008/09/09(火) 17:40:47
>438
192.168.1.55(XPでFFFTPでPASVで)繋いだ時のem0 port21をダンプしてみた。

リダイレクトを
rdr pass on $ext_if inet proto tcp from any to any port ftp -> 127.0.0.1 port 8021
だけに設定した場合。(ローカルから接続不可)

# tcpdump -i em0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes
23:31:12.595892 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: R 2594405633:2594405633(0) ack 394357041 win 0
23:31:12.613883 IP 192.168.1.55.1794 > hoge.hoge.jp.ftp: S 2214447583:2214447583(0) win 65535 <mss 1414,nop,wscale 2,nop,nop,sackOK>
23:31:12.613964 IP hoge.hoge.jp.ftp > 192.168.1.55.1794: S 1331947073:1331947073(0) ack 2214447584 win 65535 <mss 1414,nop,wscale 3,sackOK,eol>
23:31:12.614123 IP 192.168.1.55.1794 > hoge.hoge.jp.ftp: . ack 1 win 65044
23:31:12.638733 IP hoge.hoge.jp.ftp > 192.168.1.55.1794: F 1:1(0) ack 1 win 8307
23:31:12.638990 IP 192.168.1.55.1794 > hoge.hoge.jp.ftp: . ack 2 win 65044
23:31:12.639112 IP 192.168.1.55.1794 > hoge.hoge.jp.ftp: R 1:1(0) ack 2 win 0
04424332008/09/09(火) 17:40:53
リダイレクトを
rdr pass on $ext_if inet proto tcp from any to any port ftp -> 127.0.0.1 port 8021
rdr pass on $int_if inet proto tcp from any to $ftp_srv port ftp -> 127.0.0.1 port 8021
の二文を設定した場合。(この場合は接続できています)

# tcpdump -i em0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes
23:28:47.060610 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: S 2594405596:2594405596(0) win 65535 <mss 1414,nop,wscale 2,nop,nop,sackOK>
23:28:47.060686 IP hoge.hoge.jp.ftp > 192.168.1.55.1791: S 394356940:394356940(0) ack 2594405597 win 65535 <mss 1414,nop,wscale 3,sackOK,eol>
23:28:47.060851 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: . ack 1 win 65044
23:28:47.070117 IP hoge.hoge.jp.ftp > 192.168.1.55.1791: P 1:21(20) ack 1 win 8307
23:28:47.076845 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: P 1:13(12) ack 21 win 65039
23:28:47.077231 IP hoge.hoge.jp.ftp > 192.168.1.55.1791: P 21:55(34) ack 13 win 8307
23:28:47.082839 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: P 13:31(18) ack 55 win 65030
23:28:47.091945 IP hoge.hoge.jp.ftp > 192.168.1.55.1791: P 55:78(23) ack 31 win 8307
23:28:47.099456 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: P 31:37(6) ack 78 win 65024
23:28:47.099858 IP hoge.hoge.jp.ftp > 192.168.1.55.1791: P 78:101(23) ack 37 win 8307
23:28:47.206646 IP 192.168.1.55.1791 > hoge.hoge.jp.ftp: . ack 101 win 65019

PASVが通ってないんですかね?
04434332008/09/09(火) 17:52:11
>440
以下全文です。(改行が多いっていわれたので分けます)

ext_if="ng0"
int_if="em0"
int_net="192.168.1.0/24"
www_srv="192.168.1.1"
ftp_srv="192.168.1.1"

set timeout { interval 10, frag 30 }
set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
set timeout { icmp.first 20, icmp.error 10 }
set timeout { other.first 60, other.single 30, other.multiple 60 }
set timeout { adaptive.start 0, adaptive.end 0 }
set limit { states 10000, frags 5000 }
set loginterface ng0
set optimization normal
set block-policy drop
04444332008/09/09(火) 17:52:29
scrub in on $ext_if all fragment reassemble
scrub out on $ext_if all max-mss 1414

nat on $ext_if from $int_net to any -> ($ext_if)

rdr on $ext_if inet proto tcp from any to any port 80 -> $www_srv port 80
rdr on $ext_if proto tcp from any to ($ext_if) port 22 -> ($int_if) port 22
nat-anchor "pftpx/*"
rdr-anchor "pftpx/*"
rdr pass on $ext_if inet proto tcp from any to any port ftp -> 127.0.0.1 port 8021
rdr pass on $int_if inet proto tcp from any to $ftp_srv port ftp -> 127.0.0.1 port 8021
rdr-anchor "miniupnpd"
anchor "miniupnpd"
anchor "pftpx/*"

block log all
pass quick on lo0 all
pass quick on $int_if all
pass in quick on $ext_if proto tcp from any to $www_srv port 80 flags S/SA modulate state
pass in quick on $ext_if proto tcp from any port > 1023 to ($int_if) port 22 keep state
pass in quick on $ext_if inet proto icmp all icmp-type echoreq keep state
pass out quick on $ext_if proto { udp, tcp, icmp } from any to any keep state
0445名無しさん@お腹いっぱい。2008/09/10(水) 00:07:02
なんだ、単にftpdの設定を見直せって話か
04464332008/09/10(水) 00:18:28
ではなぜこの一文でPASVで繋がるんでしょうか?
rdr pass on $int_if inet proto tcp from any to $ftp_srv port ftp -> 127.0.0.1 port 8021
0447名無しさん@お腹いっぱい。2008/09/10(水) 00:49:34
> 内から内のftpにつなげなくなりました。
ということだけど
> hoge.hoge.jp
これローカルなアドレスなのか?
04484332008/09/10(水) 01:02:49
クライアントからはftp://192.168.1.1でつなぎに行ってます。
em0のダンプを出したときに勝手にドメイン名に変えて出力してるみたいです。
ちなみに、正引きできない名前です。
04494332008/09/10(水) 01:14:51
'-n' 付けてみましたが・・・

# tcpdump -n -i em0 port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em0, link-type EN10MB (Ethernet), capture size 96 bytes
01:13:41.860704 IP 192.168.1.55.3776 > 192.168.1.1.21: R 1047316341:1047316341(0) ack 631648578 win 0
01:13:41.879697 IP 192.168.1.55.3780 > 192.168.1.1.21: S 2602868932:2602868932(0) win 65535 <mss 1414,nop,wscale 2,nop,nop,sackOK>
01:13:41.879781 IP 192.168.1.1.21 > 192.168.1.55.3780: S 3258941258:3258941258(0) ack 2602868933 win 65535 <mss 1414,nop,wscale 3,sackOK,eol>
01:13:41.879936 IP 192.168.1.55.3780 > 192.168.1.1.21: . ack 1 win 65044
01:13:41.902322 IP 192.168.1.1.21 > 192.168.1.55.3780: F 1:1(0) ack 1 win 8307
01:13:41.902555 IP 192.168.1.55.3780 > 192.168.1.1.21: . ack 2 win 65044
01:13:41.902806 IP 192.168.1.55.3780 > 192.168.1.1.21: R 1:1(0) ack 2 win 0
0450名無しさん@お腹いっぱい。2008/09/10(水) 07:06:11
pf_enable="NO", mpd_enable="NO", pftpx_enable="NO" で起動して
ftp が繋がるか試してみれば?
0451名無しさん@お腹いっぱい。2008/09/10(水) 10:59:39
anchorあるじゃんか。
■ このスレッドは過去ログ倉庫に格納されています