服务器管理员可以看到我通过 SCP 复制的内容吗?

服务器管理员可以看到我通过 SCP 复制的内容吗?

假设我通过 SCP 连接到服务器并将一些文件从远程服务器复制到我的家用计算机。服务器管理员能否知道我复制了某些内容、查看复制的内容或知道谁复制了这些内容?

答案1

一个 ServerFault 问题几乎与此相同。希望您在发布问题之前检查过,但您的问题略有不同,因此我将在这里回答。

简而言之,如果任何人都有权访问和允许某个端点(您正在scp访问或scp正在访问的系统),他们就可以看到发生了什么。如果他们无法访问任何一个端点,他们很可能无法访问或无法解密您正在做的事情(除了可能通过协议号了解应用程序)。

答案最终取决于您的基础设施。不过,最有可能的是,只要没有严密的监控,并且公司不认为 SCP 构成威胁(这将引发危险信号),您的流量就不会被注意到。对于较小的公司来说尤其如此。

正如@SimonRichter提及:如果有人可以在您的系统上执行命令(即管理员或其他人),他们就可以检查您的进程列表并查看命令行scp -args /filepath/。但是,这要求他们记录所有进程活动或在您转移时检查它。此外,如果您从自己工作中的系统转移到另一个系统(例如在家里或其他地方),他们不一定具有这种可见性。

此外,正如@alex.forencich 提到的那样:还可以记录所有系统调用(包括文件打开和读取调用),因此即使您的复制程序(scp、sftp 等)没有记录或泄漏任何内容(命令行参数),仍然可以找出读取或写入了哪些文件。请参阅 linux 审计系统。–

答案2

不只是管理员。

为了测试,我只是/bin从我的服务器复制到我的笔记本电脑上的一个临时目录中。ps服务器上显示

$ ps 24096
  PID TTY      STAT   TIME COMMAND
24096 ?        Ss     0:00 scp -r -f /bin

所有用户通常都可以访问该信息。

答案3

scp借助服务器上运行的代码(sshd及其scp本身)工作。理论上,该服务器代码完全由服务器管理员控制,scp服务器上运行的用于将文件写入到您的连接的 版本与scp计算机上运行的用于发出请求的 版本是分开的。

举个例子,服务器管理员可以将scp服务器上的版本替换为记录所有请求的版本,就像 Web 服务器可以写入日志一样。然后他们可以从这些日志中看到您复制的内容。

他们是否具备专业知识和动力来真正做到这一点尚不确定,但如果他们愿意,那么原则上没有什么可以阻止他们。

我认为这些问题与你的问题类似:https://security.stackexchange.com/questions/14782/is-there-an-easy-way-to-see-a-log-of-scp-activity-on-a-server-ala-var-log-secuhttps://askubuntu.com/questions/659896/where-would-you-find-scp-logs

虽然我不知道所有的细节,但看起来开箱即用scpsshd 有选项可以记录您询问的内容。因此,也许需要的不仅仅是简单的配置,但您无法摆脱管理员控制服务器的事实。

答案4

经验法则是,具有 root 访问权限的人可以知道一切(如果他愿意检查的话)。可能唯一不能访问的是证书加密的文件系统。

期间该行为会scp在远端打开一个进程,可以通过任何人只需调用 即可ps。如果您设法隐藏进程列表中显示的命令行,则lsof(打开文件列表)可以显示正在接触的文件。这非常简单,我实际上这样做是为了观察我启动的某个复制进程有多远,如果我在目前无法查看的终端上启动该进程(文件列表正在输出的位置)。

操作后,使用 进行快速扫描find可以找到最新的文件(如果在复制期间未保留时间戳)。如果文件在会话期间以任何方式被访问或触碰ssh,则.bash_history显示您正在做什么(但您可以根据需要将其删除)。

如果安全性要求非常严格,您可以随时设置额外的监控:您可以使用一个简单的守护进程监听所有文件修改,并记录有关文件系统事务(本地和远程)的所有内容。记录所有用户生成的进程。如果正在进行备份,则删除文件后它们可能仍存储在某处。

相关内容