私はインターネットにさらされたUbunuサーバーを管理しており、事後分析が可能な方法ですべてのネットワーク活動を監視および追跡する必要があります。
私は私にあまりにも多くの詳細を提供するtsharkまたはtcpdump、私が望む詳細を提供しないvnstat(帯域幅のみを表示します)、リアルタイムモニタリングツールとしてはまともなtcptrackなどのいくつかのツールを試しましたが、さらなる分析のためのロギングオプションは提供されません。
私が考えているのはtcptrackとvnstatの間です。
すべての接続を記録し、必要に応じてすべての接続とすべての接続試行のIP、ポート、およびタイムスタンプを示す包括的なレポートを提供するデーモンです。理想的には(そしてこれはただのボーナスポイントです)、情報をmysqlやpostgresqlなどの一部のSQLデータベースに保存して、任意の選択ステートメントを実行してカスタムレポートを取得できます(たとえば、すべてのアクティビティの監視)。単一のIP、または特定のサービスを使用するすべてのIPのリストを抽出します。
ログにはtcpdumpを使用し、結果を表示するためにtcptrackを使用するなど、いくつかのツールを組み合わせてみましたが、期待どおりに動作しません。
それでは、この「アイデア」に近いツールはありますか?
答え1
目的を達成する最も簡単な方法は、iptables
LOGまたはULOGターゲットのロギングを使用することです。
これにより、次の種類のログ情報が残ります。
8月13日 14:42:07 srv1 IN=eth0 OUT= MAC=00:0c:29:8c:2b:6c:00:d0:02:eb:e8:0a:08:00 SRC=75.125.70.194 DST =XXX .XXX.XXX.XXX LEN=40 TOS=00 PREC=0×00 TTL=54 ID=9566 PROTO=TCP SPT=57144 DPT=445 SEQ=2770468863 ACK=0 WINDOW=512 SYN URGP=0
8月13日 14:45:29 srv1 IN=eth0 OUT= MAC=00:0c:29:8c:2b:6c:00:d0:02:eb:e8:0a:08:00 SRC=75.125.70.194 DST =XXX .XXX.XXX.XXX LEN=40 TOS=00 PREC=0×00 TTL=55 ID=13702 PROTO=TCP SPT=58528 DPT=445 SEQ=1217789951 ACK=0 Window=512 SYN URGP=0
次に、そのシステムで何が起こっているのかを確認したいときawk
。grep
2これらのルールは、着信または発信する「新しい」接続をすべて記録する必要があります。ルールを見つけやすくするために、ルールの前に以下が追加されます。
iptables -I INPUT -m state --state NEW -j LOG --log-prefix "New Connection: "
iptables -I OUTPUT -m state --state NEW -j LOG --log-prefix "New Connection: "
その結果、次のログエントリが生成されます。
[2134.566659] 新しい接続: IN=OUT=wlan0 SRC=192.168.178.229 DST=192.168.178.21 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=65094 DF PROPT=UDP