私は主にSSHトンネリングに使用する約20人のユーザーを持つUbuntuサーバーを持っています。
特定の期間(先週や月など)に各ユーザーが送信したデータの量を確認する方法があるかどうかを知りたいです。
答え1
良い質問です。ビューの回答が見つかりました。
-
iftop -i "$iface" -nPf "tcp and port $sport and port $dport"
$iface
SSH接続用のパケットが送受信されるインターフェイスと送信元および$sport/$dport
宛先TCPポート。送信元と宛先のIPアドレスを指定して、フィルタをさらに絞り込むことができます。 -
実行して
tcpdump -ni eth0 -w dump port 22
すべてのパケットをキャプチャしてからtcpdump -nX -r dump
確認する必要があります。 各ユーザーのSSHトラフィック(帯域幅使用量)を追跡する方法はありますか?
私はiptables所有者モジュールを使用します(おそらく他のクォータ/レポートモジュールと一緒に)。
iptables -A OUTPUT -p tcp --dport 22 -m owner --uid someuser -j ACCEPT
次に、出力を表示して、
iptables -vL
このルールを通過するパケット/バイト数を確認するか、一部のアナライザを使用してiptables統計を解析します。
一定期間のデータを追跡するには、定期的に統計をリセットし、定期的に(たとえば、毎週または毎月)データを収集する必要があります。
分析のために出力をファイルにiptables -vL
リダイレクトします。
iptables -vL > ssh_traffic.txt
統計リセット:
iptables -Z
iptables
SSHトラフィックを追跡するルールの統計をリセットします。
作成、使用、またはbash script
実行して、必要な間隔でスクリプトを自動的に実行してトラフィックを収集および分析することもできます。cron
anacron
別のオプションがありますiptables
、conntrack
と で使用されますが、connmark
直接確認する必要があります。