ssh:如何找出ssh用户发送和接收的总字节数

在我工作的地方,有多个用户通过sshlogin到任何服务器,并执行各种任务。 一般来说,它们只能在服务器上运行命令,而不能将文件从服务器中复制出来。 是的,他们有root权限。

我需要弄清楚的是,用户从每个服务器传出的数据量。 换句话说,从用户login到断开连接的那一刻,我需要找出在它们的服务器和ssh服务器之间传输的数据,也就是发送和接收的数据。 这可能有助于跟踪那些可能已经将大量敏感数据从服务器中转移出去的用户。 服务器上有一些大文件。

由于用户拥有root访问权限,因此您在机器上所做的任何事情都是值得信赖的。 您应该使用stream量嗅探器,该stream量嗅探器configuration为查看所有进出观察服务器的stream量(通过在智能以太网交换机中设置监控端口)。 stream量嗅探器将无法解密任何SSH会话的内容,但它可以看到交换的数据量,这就是你所感兴趣的。

我可以考虑两种方法将stream量嗅探器上观察到的TCPstream与用户关联起来。

如果可以通过远程系统(SSH客户端)的IP地址识别该通信所属的用户,例如,如果客户端都具有静态IP地址,则使用该地址。

否则,请在观察的服务器上configuration远程系统日志,并从远程系统日志服务器上的authentication日志中获取信息。 每次打开会话时,OpenSSH都会logging下这样的消息:

Feb 15 12:04:59 OZoNE sshd[20227]: Accepted publickey for **** from *.*.*.* port 48025 ssh2 

由于TCP端口号和用户名都在系统日志消息中find,所以可以确定TCP数据stream(由数据包嗅探器捕获)属于哪个用户。

对于第二种解决scheme,用户仍然有机会妥协系统。 由于他们具有root访问权限,他们可以修改发送到远程系统日志服务器的日志消息,如果他们真的想要的话。 尽pipe如此,使用远程系统日志服务器使得用户干扰日志logging变得更具挑战性,事实上也不可能做到这一点。