[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 メーリングリストの案内