如何对 linux who 命令隐藏我的 IP

如何对 linux who 命令隐藏我的 IP

我是一名 Linux 系统管理员,我将登录本地网络的每个系统。我不希望我的 IP 通过 who 命令显示。例如,如果有人输入:

$ who

它暴露了我的IP。有什么方法可以对 who Linux 命令隐藏我的 IP 吗?

[由 chrips 编辑]

这对于那些担心个人实用服务器被黑客攻击的人来说非常重要!显然,您希望向攻击者隐藏您当前的家庭 IP,以免他们发现您的向量!

答案1

最简单的是,您可以使 utmp 日志文件不可读。这甚至在utmp 手册页

与其他各种系统不同,可以通过删除文件来禁用 utmp 日志记录,utmp 必须始终存在在 Linux 上。如果你想禁用 who(1) 则执行以下操作不是让 utmp 成为世界可读的

像这样:

sudo chmod go-r /var/log/wtmp /var/run/utmp
who        # shows nothing, not even an error!
sudo who   # still works for root
rudi     :0           2017-04-18 19:08 (console)

因此,这将who完全禁用,而不仅仅是跳过 IP 地址。

另一个想法(也许有点愚蠢)仅隐藏 IP 可能是让您的 ssh 服务器仅在本地主机上侦听另一个端口(1234)。然后运行“代理”(socat、netcat)从 public_ip:22 转发到 localhost:1234:

  1. 更改 ssh 服务器配置 /etc/ssh/sshd_config:

    端口 1234

  2. 在 ssh 服务器机器上运行代理:

    socat TCP-LISTEN:22,fork TCP:localhost:1234

现在所有 utmp 日志 ( who, last) 将显示相同且无用的本地主机 IP。

笔记也许您的用户仍然可以通过 看到真实的连接netstatsocat您还可iptables以为传入的 ssh 流量设置 NAT 和 MASQUERADING 规则,而不是用户空间代理 ( )。或者您始终可以使用额外的“ssh hop”来始终从同一 IP 登录。这留给读者作为练习。 ;)

答案2

who实用程序解析数据库中的数据/var/run/utmplogin当您登录到系统时(以及许多其他实用程序,请参阅 参考资料),该数据库将被更新,并且如果该文件存在,man utmp数据将被持久记录。/var/log/wtmp

这些记录对于追踪系统可能崩溃或开始出现故障的原因和时间非常有用,并且不应修改。

所以答案是:如果不修改写入和who的程序的行为,或者自己修改这些(二进制)文件,就不能这样做。您不应该这样做,因为这可能会使系统 1) 不安全,2) 在发生故障时难以诊断。/var/run/utmp/var/log/wtmp

相关内容