Linux の who コマンドから自分の IP を隠す方法

Linux の who コマンドから自分の IP を隠す方法

私は Linux システム管理者で、ローカル ネットワークのすべてのシステムにログインします。who コマンドで自分の IP が表示されないようにしたいのです。たとえば、誰かが次のように入力するとします。

$ who

IP が公開されてしまいます。Linux の who コマンドから 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)

したがって、whoIP アドレスをスキップするだけでなく、完全に無効になります。

別のアイデア(ちょっと馬鹿げているかもしれませんが) IP だけを隠すには、SSH サーバーを別のポート (1234) で、ローカルホストのみで listen するようにします。次に、「プロキシ」(socat、netcat) を実行して、public_ip:22 から localhost:1234 に転送します。

  1. ssh サーバの設定 /etc/ssh/sshd_config を変更します。

    ポート 1234

  2. SSH サーバー マシンでプロキシを実行します。

    socat TCP-LISTEN:22、フォークTCP:localhost:1234

これで、すべての utmp ログ ( wholast) に同じ役に立たない localhost IP が表示されます。

注記おそらく、ユーザーは 経由で実際の接続を見ることができるでしょうnetstat。ユーザー空間プロキシ ( socat)の代わりにiptables、着信 ssh トラフィックに対して NAT および MASQUERADING ルールを設定することもできます。または、常に同じ IP からログインするために、追加の「ssh ホップ」を使用することもできます。これは読者の演習として残しておきます。 ;)

答え2

このwhoユーティリティは、データベース内のデータを解析します/var/run/utmp。このデータベースは、loginシステムにログインすると によって更新され (他の多くのユーティリティによっても更新されます。 を参照man utmp)、そのファイルが存在する場合は、データが に永続的に記録されます/var/log/wtmp

これらの記録は、システムがクラッシュしたり、誤動作し始めた理由と時期を追跡するのに役立ちますが、変更しないでください。

したがって、答えは次のようになります。 または および に書き込むプログラムの動作を変更するか、これらの (バイナリ) ファイルを自分で変更しない限り、 は実行できません。whoまた、これを行うと、システムが 1) 安全でなくなり、2) 故障が発生した場合に診断が困難になる可能性があるため、これを行うべきではありません。/var/run/utmp/var/log/wtmp

関連情報