プログラムへの接続のログ


9

さらに、着信接続をログに記録するためにiptablesを使用します。

ソースのないサービスへの確立されたインバウンド接続をログに記録する方法はありますか(サービスがこのようなものをそれ自体でログに記録しないと想定してください)?私がやりたいことは、誰が接続しているかに基づいて情報を収集し、サービスが最も頻繁に使用されている時間や、世界の主要なユーザーベースなどを伝えられるようにすることです。

私はそれを使用netstatしてcronスクリプトに接続するだけでよいことは承知していますが、スクリプトは1分ほどしか実行できないため、正確ではない可能性があります。

これが私が今考えていることです:

  • 常にポーリングするプログラムを作成netstatし、以前のポーリングに現れなかった確立された接続を探します。ただし、新しい接続がない可能性があるため、このアイデアはCPU時間の浪費のように見えます。
  • サービスが実行されている任意のポートでインバウンド接続を受け入れるラッパープログラムを記述しますが、その接続を実際のサービスに渡す方法がわかりません。

編集:私には確信がありませんが、この質問はスタックオーバーフローに適しているかもしれないと思いました。これが間違った場所なら申し訳ありません。


なぜiptablesの使用を除外するのですか?アプリケーションはどのポートをリッスンしていますか?
user9517 2012年

主に、ロギングをより詳細に制御したいためです。理想的には、新しい接続が検出されたときはいつでも、希望どおりにロギングを処理できるようにしたいと思います。任意のポート。これを使用する特定のアプリケーションはありません。そのため、ユーザー名などの詳細なログを記録する方法を尋ねていません。
Zac

iptablesを使用して、新しい着信接続を任意のポートに記録することができます。いくつかのボックスでそれを行います。Iainのすばらしい質問を繰り返します。なぜiptablesの使用を除外するのですか?
MadHatter、2012年

アプリケーションの前にプロキシを配置できますか?リクエストを受け取り、ログに記録して渡す非常にシンプルなものである必要があります。着信信号をプロキシにポート転送してから、元のポートでアプリケーションにリレーすることができます。
John Gardeniers、2012年

回答:


4

したがって、iptablesを使用して新しい接続をログに記録できます

iptables -I INPUT -m state --state NEW -j LOG --log-level 1 --log-prefix "New Connection "

これにより、新しいSSH接続のためにこのようなメッセージが追加されます

Oct 6 10:58:23 centosカーネル:新しい接続IN = eth0 OUT = MAC = 00:0c:29:5b:a5:ea:00:0c:29:2d:94:a0:08:00 SRC = 192.168。 1.72 DST = 192.168.254.187 LEN = 52 TOS = 0x00 PREC = 0x00 TTL = 126 ID = 15498 DF PROTO = TCP SPT = 59221 DPT = 22 WINDOW = 8192 RES = 0x00 SYN URGP = 0

または新しいhttp接続のためにこれのように

Oct 6 11:03:56 centosカーネル:新しい接続IN = eth0 OUT = MAC = 00:0c:29:5b:a5:ea:00:0c:29:d2:2c:38:08:00 SRC = 192.168。 254.188 DST = 192.168.254.187 LEN = 60 TOS = 0x10 PREC = 0x00 TTL = 64 ID = 10345 DF PROTO = TCP SPT = 52488 DPT = 80 WINDOW = 14600 RES = 0x00 SYN URGP = 0

システムへの新しい接続ごとに、以下同様です。は、syslogがkern.warningメッセージを送信するように構成されている場所に記録されます。


周りを見回した後、この方法が私の最善の策のようです。これをrsyslogと組み合わせて、別のファイルにログを記録します。あなたの有益な答えイアンをありがとう!
Zac

0

auditdを使用して、1日の終わりにこれらのログラインに基づいていくつかの統計を計算できます。または、snmpソリューションにアクセスすることもできますが、おそらく独自のmibを作成しているはずです


0

tcpdumpまたはwiresharkはどうですか?


もう少し答えを広げてください。おそらく、ユーザーにtcpdumpとWiresharkがトラブルシューティング作業にどのように役立つかを提案します。
マゼラン

完全なパケットをログに記録できるtcpdumpマニュアル。tcpdumpでパケットをキャプチャし、wiresharkでそれらを分析することもできますtcpdump -i <interface> -s 65535 -w <some-file>。さらに、十分なパケットをキャプチャしたと思われる場合は、^ Cでキャプチャを終了する必要があります。
Guntis、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.