[FreeBSD-users-jp 96274] Re: パケットの横取り

Yoshihiro Hanahara hanahara @ meiko.co.jp
2018年 7月 6日 (金) 06:52:37 UTC


花原@明宏です。

昔、ipfw + divert socket + natd で FreeBSDにNATさせてました。
FreeBSDの標準的なやり方だと思います。

natdはユーザープロセスで動くので、デバッグとかもしやすいし、試してみるの
はいいかもしれません。ソースコードもあるし...。

natd に -v オプションつけて、デーモン化しないて実行してみると、ターミナ
ルにいろいろ出力されて、NATが何やってるのか理解しやすかった記憶がありま
す。

まずは、natd と FreeBSDで、NAT-BOXつくってみて、いじくり回したらいいかも
です。


On Fri, 06 Jul 2018 13:29:17 +0900
もじもじ <mojimoji528 @ yahoo.co.jp> wrote:

> 鯉江様:
> 
> おぉぉぉ!
> なるほどぉ。
> 
> divert socket ってそういう事だったんですか。
> そうそう。FreeBSD って、tcpdump でも、まずは横取りからら
> しいですからね。
> 
> その点、Linux は新しいソケットオプション作って「覗き見」
> しか出来ない様になってるみたいですね。。。。
> 
> やはりカーネルに近すぎて簡単には出来ない世界なのかな・・・
> 
> と思ったら、iptables にも DIVERT の文字が・・・・
> 
> ちょっと詳しく調べてみます!
> ありがとうございました!
> 
> Fri, 06 Jul 2018 13:18:21 +0900 (JST) に、
> KOIE Hidetaka (鯉江英隆) <hide @ koie.org> さんは書きました:
> 
> > 本当はLinuxでやりたいとのことですが
> > FreeBSDでやるなら
> > ipfw + divert socketでパケット横取りして
> > そのまま流すならdivert socketにもどして
> > 捏造パケットで応答したいならIPヘッダから準備して
> > divert socketかRAW socketにsendtoでいけるんじゃないでしょうか。
> > see also: divert(4), rawip(4)
> > 
> > --
> > 鯉江英隆 <hide @ koie.org>
> > 
> >   Message-Id: <20180704190051.5566.60E52F2C @ yahoo.co.jp>
> >   Date:       Wed, 04 Jul 2018 19:00:51 +0900
> >   From:       もじもじ <mojimoji528 @ yahoo.co.jp>
> >   Subject:    [FreeBSD-users-jp 96252] パケットの横取り
> > 
> >   | 識者様:
> >   | 
> >   | 色々考えてるんですが、まだ、実際の作業を出来ていないので
> >   | 机上の空論状態です。
> >   | 
> >   | 出来るのか、出来ないのか、いや、プログラム組めばそりゃ出
> >   | 来るんだろうと思っているのですが、考え方としてどうなのか
> >   | 知りたくてご質問です。
> >   | 本当は Linux で iptables を使った方法を考えていたのです
> >   | が、Linux users group って無いんですか?
> >   | 全然ポインタが無くて・・・・
> >   | 
> >   | 門外漢かもしれません。もし、違ったらポインタ教えてくださ
> >   | い。
> >   | 
> >   | で、やりたいことは、パケットの横取りです。
> >   | 
> >   | まず手始めにパケットの閲覧を考えています。
> >   | かの有名な tcpdump です。これは、使えます。
> >   | 
> >   | ただ、今回の条件は NIC をブリッジ接続した状態での tcpdump
> >   | です。
> >   | 古い情報ですが、
> >   | http://uyota.asablo.jp/blog/2009/02/24/4137825
> >   | でブリッジデバイスが作れるようです。
> >   | 
> >   | tap デバイスも同梱して、tap を tcpdump してもよかろーし、
> >   | bridge デバイスを tcpdump してもよかろーと思う。
> >   | きっと ip アドレス付けなくても tcpdump 出来ますよね?
> >   | 
> >   | A-machine(192.168.10.1)----FreeBSD(Bridge)---(192.168.10.2)B-Machine
> >   | 
> >   | この A-B 間のパケットを FreeBSD で見ることが出来ると考え
> >   | ています。
> >   | この時、通したいパケットを ipfw か pf でコントロール出来
> >   | ると考えています。
> >   | 
> >   | その時、あるパケットだけ、折返しとかしたいと考えた時、そ
> >   | れは実現可能なのでしょうか。
> >   | 
> >   | もちろん、折り返したパケットはあたかも相手から返ってきた
> >   | パケットっぽく偽装したいです。
> >   | つまり、
> >   | A --> B
> >   | とパケットを投げた時、条件に適合したら、あたかも
> >   | B --> A
> >   | と投げたように、FreeBSD(Bridge) がパケットを返して、B に
> >   | はパケットを届けたく無いのです。
> >   | 
> >   | 不可能ではないと思っているのですが、どうやったら実現でき
> >   | るのかわからず、悩んでいます。
> >   | 
> >   | 何かヒントでもあれば、よろしくおねがいします。
> >   | 
> >   | # 本当は FreeBSD のところを Linux, ipfw or pf を iptables
> >   | # でやりたいんですけどねぇ。。。。どこに聞けばいいやら・・・ブツブツ
> >   | 
> >   | -- 
> >   | もじもじ <mojimoji528 @ yahoo.co.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-unsubscribe @ freebsd.org"
> >   | 
> 
> -- 
> もじもじ <mojimoji528 @ yahoo.co.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-unsubscribe @ freebsd.org"

-- 
Yoshihiro Hanahara <hanahara @ meiko.co.jp>




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