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

Sakuma, Takayuki sakuma.takayuki @ jp.fujitsu.com
2018年 7月 6日 (金) 05:01:01 UTC


佐久間です。

どこまで手をかけてもよいのか、わかりませんけど、
ぐりぐりプログラミングしてもよいということであれば。

FreeBSDならば、bpfを使って任意のフレームの送受信できます。
Linuxでもlibpcapで同じようなことはできます。
どちらも、受けたフレームの内容を調べて、必要に応じて書き換えて、
送信するって処理を作ることになりますね。

# 期待した答えでなかったらごめんなさい。

> -----Original Message-----
> From: owner-freebsd-users-jp @ freebsd.org [mailto:owner-freebsd-users-jp @ freebsd.org] On Behalf Of もじもじ
> Sent: Friday, July 06, 2018 1:29 PM
> To: freebsd-users-jp @ freebsd.org
> Subject: [FreeBSD-users-jp 96262] Re: パケットの横取り
> 
> 鯉江様:
> 
> おぉぉぉ!
> なるほどぉ。
> 
> 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"




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