将 SSHD 服务器暴露到互联网时,我应该担心 /bin/sync 吗?

Wil*_*ill 5 security ssh sshd remote-login

我正准备将我的服务器暴露在互联网上,并希望尽可能保证安全。我通过隐秘措施(例如更改默认端口 22)采取了安全措施,我确保 root 登录已禁用,并且我正在查看谁可以登录。最后一部分让我有点担心:

我了解任何指向 /bin/false 或 /usr/sbin/nologin 的登录都将被拒绝或立即退出。所以我知道不用担心这些。但是,运行命令时:
cat /etc/passwd | grep -v /bin/false | grep -v /usr/sbin/nologin

我得到以下输出:

root:x:0:0:root:/root:/bin/bash  
sync:x:4:65534:sync:/bin:/bin/sync
will:x:1000:1000:will,,,:/home/will:/bin/bash  
Run Code Online (Sandbox Code Playgroud)

我一直在尝试查找同步的用途或它的工作原理,但无济于事。我认为可能没有从远程登录到用户“同步”的入口点,但是......这是什么?我是否需要采取任何措施来确保它不存在安全风险以及它的用途是什么?

Kam*_*ski 5

Unix & Linux SE 上有一个问题:Why does Debian set the login shell of user syncto /bin/sync?

唯一的答案是赞成、接受,而且作者信誉很高。答案指出:

这记录在/usr/share/doc/base-passwd/users-and-groups.txt.gz

同步

用户的外壳sync/bin/sync. 因此,如果其密码设置为易于猜测的内容(例如“”),则任何人都可以在控制台上同步系统,即使他们在系统上没有帐户。

这确实是一个历史文物,我不希望sync现在以这种方式设置用户。在过去,拥有这样的用户会很有用,这样能够物理访问控制台的人(例如,在服务器机房或充满工作站的实验室中,就像您在大学中看到的那样)可以降低数据丢失的风险。关闭系统(从恶意进程中恢复或只是为了使用工作站,如果它被以前的用户锁定)。Debian 之前的 Unix 系统往往有一个sync用户和一个shutdown用户,使用该用户您可以在不知道密码的情况下正确关闭系统root。(在我们的 Sun SPARCstation 上,我们只需STOPA boot...)

在我使用的 Linux 操作系统(Debian、Kubuntu)中,用户的密码sync以. 看:*/etc/shadowman 5 shadow

如果密码字段中包含一些不是 的有效结果的字符串crypt(3),例如!*,则用户将无法使用unix密码登录(但用户可以通过其他方式登录系统)。

所以没有什么可担心的。这只是一个神器。如今,您无法通过 SSH 登录sync(尝试一下),除非您的设置发生了重大改变(例如:不使用密码和 ssh-key 登录 SSH?)。