リアルタイムでtcpdumpをFTPにアップロードするには?

リアルタイムでtcpdumpをFTPにアップロードするには?

次のコマンドを使用してtcpdumpを実行できます。

tcpdump -w `date +%F-%Hh-%Mm-%Ss-%N`.pcap src 10.10.10.10 or dst 10.10.10.10

尋ねる:FTPサーバーがあり、ユーザー名はFTPUSER、パスワードはFTPPASSWORDです。 tcpdump "ライブ" アップロード方法 つまり、ダンプを保存する記憶領域が多くなく、FTP 経由でしかアクセスできない場所にアップロードしなければならないという意味です。できますか?」管路"何とかtcpdumpの出力をアップロードしたftpクライアントに送信しますか?[ファイル名も保持する必要があります。" date +%F-%Hh-%Mm-%Ss-%N.pcap"]

だから私はtcpdumpをローカルに保存せずにダンプを「ライブ」にアップロードするソリューションを探しています。

オペレーティングシステムは、tcpdumpが実行されているルーターであるOpenWrt 10.03です。 [ルータに4MBのフラッシュがあり、ローカルに保存できません。 ]

アップデート2:FTPサーバーにSSH接続がなく、FTPのみが接続されています。 [とFTPES、しかし今はそれが重要ではないと思います。]

答え1

SSHが利用できない場合(FTPサーバーを実行しているUNIX / Linuxシステムがない可能性があり、netcat他の方法を使用する場合もあります)、次の手順を実行します。役に立つかもしれません:

使用curl、アップロードできます標準入力からFTP経由でファイルに転送:

tcpdump -w - | curl -u FTPUSER:FTPPASS ftp://ftpserver/where/ever/dump.pcap -T -

tcpdumpソースパケットを出力します(この質問を比較してください)とカールがこの入力を追加します(上書きするかどうかわからない)。これがうまくいくかどうかはわかりませんが、試してみる価値があります。

(ファイル生成のタイムスタンプcurlは練習のままです。)

答え2

-Ctcpdumpオプションを見てください。

   -C     Before  writing  a  raw  packet  to  a savefile, check whether 
 the file is currently larger than file_size and, if so, close the current 
 savefile and open a new one.  Savefiles after the  first savefile  will  have 
 the name specified with the -w flag, with a number after it, starting at 1 
 and continuing upward. The units of file_size are  millions  of  bytes 
 1,000,000  bytes, not 1,048,576 bytes).

サイズフラグをかなり小さい値に設定し、cron毎分新しいオーバーフローファイルがあるかどうかをテストするスクリプトを作成し、FTPを介してオーバーフローファイルをアップロードして削除する前に名前を変更すると、目的の結果が得られます。探したい

cronスクリプトが新しいファイルをアップロードできるよりも速くリンクがあふれている場合、この設定はまだDOSに脆弱であり、SSH機能がある場合はパイプsshトリックを強くお勧めします。@クリスグリーン上記で提供されます。

答え3

tcpdump出力をパイプに記録して他の場所に保存できます。 BPFフィルタも更新しました。

tcpdump -w - host 10.10.10.10  | ssh host2 'cat - > `date +%F-%Hh-%Mm-%Ss-%N`.pcap'

これはパケットを書き込み、次にstdoutsshのホストへの接続を介して書き込みます。反転して他のホストで実行することもできます。

ssh router tcpdump -w - host 10.10.10.10 > `date +%F-%Hh-%Mm-%Ss-%N`.pcap

答え4

FTP同期が機能するには、このファイルストリームがディスクではなくプログラムからのものであることに注意してください。さらに、これを達成することはおそらく非常に難しいでしょう。

sshfsを使用し、正しい資格情報を持つssh / sshfsを使用してリモートファイルシステムをマウントすることをお勧めします(ユーザースペースファイルシステムであるため、システムの融合に関連する構成の変更が最小限に抑えられ、スーパー資格情報は必要ありません)。その後、tcpdumpを使用すると、継続的にキャプチャされたパケットストリームをsshfsマウントファイルシステムのファイルにダンプします。

SSHFSを始めよう:

http://www.linuxjournal.com/article/8904

http://www.lylebackenroth.com/blog/sshfs/

関連情報