我是 Linux 系统管理员,我会登录本地网络的每个系统。我不想通过 who 命令显示我的 IP。例如,如果有人输入:
$ who
Run Code Online (Sandbox Code Playgroud)
它揭示了我的IP。有什么办法可以在 who Linux 命令中隐藏我的 IP?
[由 chrips 编辑]
这对于那些担心他们的个人实用程序服务器被黑客入侵的人来说很重要!显然,您希望对攻击者隐藏您当前的家庭 IP,以免他们发现您的载体!
最简单的是,您可以使 utmp 日志文件不可读。这甚至在utmp 手册页中提到:
与通过删除文件可以禁用 utmp 日志记录的各种其他系统不同,utmp 必须始终存在于 Linux 上。如果您希望禁用谁(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)
Run Code Online (Sandbox Code Playgroud)
因此,这将who
完全禁用,而不仅仅是跳过 IP 地址。
仅隐藏 IP 的另一个想法(可能有点傻)可能是让您的 ssh 服务器在另一个端口(1234)和仅在本地主机上侦听。然后运行一个“代理”(socat,netcat)从 public_ip:22 转发到 localhost:1234:
更改 ssh 服务器配置,/etc/ssh/sshd_config:
端口 1234
在 ssh 服务器机器上运行代理:
socat TCP-LISTEN:22,fork TCP:localhost:1234
现在所有 utmp 日志 ( who
, last
) 将显示相同且无用的 localhost IP。
请注意,也许您的用户仍然可以通过netstat
. 除了用户空间代理 ( socat
),您还可以为iptables
传入的 ssh 流量设置NAT 和 MASQUERADING 规则。或者,您始终可以使用额外的“ssh 跃点”来始终从同一 IP 登录。这留给读者作为练习。;)