私はLinuxシステム管理者であり、ローカルネットワーク上のすべてのシステムにログインします。 whoコマンドで私のIPを表示したくありません。たとえば、誰かが次のように入力した場合:
$ 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サーバーがlocalhostの他のポート(1234)でのみリッスンするようにすることです。次に、「プロキシ」(socat、netcat)を実行してpublic_ip:22からlocalhost:1234に渡します。
SSHサーバーの設定/etc/ssh/sshd_configを変更します。
ポート1234
SSHサーバーシステムでエージェントを実行します。
socat TCP-LISTEN:22, フォーク TCP:localhost:1234
これで、すべてのutmpログ(who
、、last
)に同じ、役に立たないローカルホストIPが表示されます。
ノートおそらく、ユーザーはまだ実際の接続を見ることができますnetstat
。ユーザースペースプロキシの代わりに着信SSHトラフィックにNATおよびMASQUERADINGルールを設定するsocat
こともできます()。iptables
または、いつでも追加の「ssh hop」を使用して、常に同じIPからログインできます。これは読者に練習問題として残す。 ;)
答え2
このwho
ユーティリティはデータベースのデータを解析します/var/run/utmp
。login
システムにログインすると(他の多くのユーティリティの場合は参考資料を参照)、このデータベースが更新され、ファイルが存在する場合はデータがman utmp
常に記録されます。/var/log/wtmp
これらの記録は、システムがクラッシュまたは失敗し始める理由と時期を追跡するのに役立ち、修正しないでください。
したがって、答えは次のようになります。 sumを作成するプログラムの動作を変更したり、これらの(バイナリ)ファイルを直接変更しないと、これをwho
行うことはできません。これにより、システムが1)安全でなくなり、2)エラーが発生した場合に診断が困難になる可能性があるため、これを行わないでください。/var/run/utmp
/var/log/wtmp