
我是 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:
更改 ssh 伺服器配置 /etc/ssh/sshd_config:
埠 1234
在 ssh 伺服器機器上執行代理:
socat TCP-LISTEN:22,fork TCP:localhost:1234
現在所有 utmp 日誌 ( who
, last
) 將顯示相同且無用的本機 IP。
筆記也許您的用戶仍然可以透過 看到真實的連結netstat
。socat
您也可以iptables
為傳入的 ssh 流量設定 NAT 和 MASQUERADING 規則,而不是使用者空間代理程式 ( )。或者您始終可以使用額外的“ssh hop”來始終從相同 IP 登入。這留給讀者當作練習。 ;)
答案2
該who
實用程式解析資料庫中的資料/var/run/utmp
。login
當您登入系統時(以及許多其他實用程序,請參閱 參考資料),該資料庫將會更新,如果該檔案存在,man utmp
資料將會被持久記錄。/var/log/wtmp
這些記錄對於追蹤系統可能崩潰或開始故障的原因和時間非常有用,並且不應修改。
所以答案是:如果不修改寫入和who
的程式的行為,或是自己修改這些(二進位)文件,就不能這樣做。您不應該這樣做,因為這可能會使系統 1) 不安全,2) 在發生故障時難以診斷。/var/run/utmp
/var/log/wtmp