時間の経過とともにユーザーごとのSSHを介して送信されるデータ量

時間の経過とともにユーザーごとのSSHを介して送信されるデータ量

私は主にSSHトンネリングに使用する約20人のユーザーを持つUbuntuサーバーを持っています。

特定の期間(先週や月など)に各ユーザーが送信したデータの量を確認する方法があるかどうかを知りたいです。

答え1

良い質問です。ビューの回答が見つかりました。

  1. SSH接続の帯域幅を測定する方法

    iftop -i "$iface" -nPf "tcp and port $sport and port $dport"
    

    $ifaceSSH接続用のパケットが送受信されるインターフェイスと送信元および$sport/$dport宛先TCPポート。送信元と宛先のIPアドレスを指定して、フィルタをさらに絞り込むことができます。

  2. SSHは通常、どのくらいのデータを使用しますか?

    実行してtcpdump -ni eth0 -w dump port 22すべてのパケットをキャプチャしてからtcpdump -nX -r dump確認する必要があります。

  3. 各ユーザーの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 -ZiptablesSSHトラフィックを追跡するルールの統計をリセットします。

iptables(8) - Linux のマニュアルページ

作成、使用、またはbash script実行して、必要な間隔でスクリプトを自動的に実行してトラフィックを収集および分析することもできます。cronanacron

別のオプションがありますiptablesconntrackと で使用されますが、connmark直接確認する必要があります。

関連情報