web-dev-qa-db-ja.com

openssh-serverを再インストールすると、ホストキーが変更されますか?

私は最近、ubuntuとopenssh-serverを実行する私のサーバーでのいくつかのsshブルートフォース攻撃に気付きました。いくつかの対策を講じる以外に、私は自然に特別な注意を払っています。今朝サーバーにsshしようとすると、dnsなりすましの警告が表示されました。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA Host key for somehost.com has changed,
and the key for the corresponding IP address xx.xx.xxx.xxx
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the Host
and its Host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE Host IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a Host key has just been changed.

IPアドレスはおそらく変更されていますが、それは驚くことではありません。しかし、私は最近ubuntuの設定を変更していません。ただし、次のコマンドを実行してopenssh-serverを再インストールしました

Sudo apt-get remove openssh-server

そしてそれを再インストールする

Sudo apt-get install openssh-server

これ は、ホストキーがディレクトリ/ etc/ssh /にのみ依存することを考えさせます。私の場合、次のようになります。

drwxr-xr-x   2 root root   4096 Sep  3 19:12 .
drwxr-xr-x 160 root root  12288 Sep 27 08:41 ..
-rw-r--r--   1 root root 300261 Aug 11 18:24 moduli
-rw-r--r--   1 root root   1756 Aug 11 18:24 ssh_config
-rw-r--r--   1 root root   2542 Sep  3 19:09 sshd_config
-rw-------   1 root root    668 Apr 21 15:27 ssh_Host_dsa_key
-rw-r--r--   1 root root    606 Apr 21 15:27 ssh_Host_dsa_key.pub
-rw-------   1 root root    227 Apr 21 15:27 ssh_Host_ecdsa_key
-rw-r--r--   1 root root    178 Apr 21 15:27 ssh_Host_ecdsa_key.pub
-rw-------   1 root root    411 Apr 21 15:27 ssh_Host_ed25519_key
-rw-r--r--   1 root root     98 Apr 21 15:27 ssh_Host_ed25519_key.pub
-rw-------   1 root root   1675 Apr 21 15:27 ssh_Host_rsa_key
-rw-r--r--   1 root root    398 Apr 21 15:27 ssh_Host_rsa_key.pub
-rw-r--r--   1 root root    338 Sep  3 19:12 ssh_import_id

今日は9月27日であるため、4月以降、すべてのssh_Host *ファイルは変更されていません。ユーザーの公開キーがホストキーに影響を与えるかどうかは正確にはわかりません。念のため、次のようなユーザーsshディレクトリ〜/ .ssh /を確認しました。

drwx------  2 user user 4096 Sep  5 18:41 .
drwxr-xr-x 49 user user 4096 Sep 27 08:43 ..
-rw-------  1 user user  748 Apr 21 19:20 authorized_keys
-rwx------  1 user user 3326 Jan 21  2016 id_rsa
-rw-rw-rw-  1 user user  748 Jan 21  2016 id_rsa.pub
-rw-r--r--  1 user user 2726 Mai  3 13:00 known_hosts

したがって、ユーザーの公開キーも変更されていません。

質問:ホストキーまたはホストフィンガープリントに影響するものは他にありますか?私が考慮していないことは何ですか? openssh-serverを再インストールすると、ホストキーが変更された可能性はありますか?はいの場合、更新されたファイルはどこにありますか?

[編集]その間、サーバー自体のECDSAフィンガープリントを実行して確認しました(詳細は this をご覧ください)

$ nmap localhost --script ssh-hostkey

指紋は、なりすまし通知に表示されている指紋と一致します。サーバーが変更されたのではなく、サーバーへの接続に使用していたマシン上のknown_hostsファイルが変更されたようです。たぶん、Germarは正しく、IPアドレスは以前に接続したサーバーと一致しました。なりすましの通知を受け取った理由がまだ正確にはわかりません。しかし、nmapコマンドも同様にスプーフィングされていない限り(そうではないと思います)、安全な接続が必要です。

6
codepearlex

openssh-serverまたはapt-get purge openssh-serverのいずれかを使用してapt-get remove --purge openssh-serverを削除した場合、元のホストキーは削除されます。この場合、キーは再生成され、当然異なります。 openssh-serverが削除されたばかりであれば、再インストール時にキーファイルに触れてはいけません。

ホストキーは、sshが他の場所を探すように設定されていない限り、/etc/ssh/のファイルにのみ依存します。これは、/etc/ssh/sshd_config内の異常なHostKey行によって明らかになります。デフォルトのHostKey行は次のとおりです。

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_Host_rsa_key
HostKey /etc/ssh/ssh_Host_dsa_key
HostKey /etc/ssh/ssh_Host_ecdsa_key
HostKey /etc/ssh/ssh_Host_ed25519_key

キーファイルが変更されていないように見えるため、ファイルをチェックして、標準以外の場所からホストキーを使用しているかどうかを確認する価値があります。

サーバー上のキーが期待どおりである場合、警告はほとんどの場合、クライアント側で生成されています。 Germarが言ったように、この問題は、以前に別のサーバーで使用されていた動的に割り当てられたIPアドレスの再利用が原因である可能性があります。

3
Arronical

パッケージを削除して再インストールすると、キーはそのまま残ります。パッケージをパージした場合にのみ削除されます。キーファイルが存在しない場合にのみ作成されます。何が起こっているかを完全に把握するには、次のファイルを読むことができます。

/var/lib/dpkg/info/openssh-server.postinst
/var/lib/dpkg/info/openssh-server.postrm
/var/lib/dpkg/info/openssh-server.preinst
/var/lib/dpkg/info/openssh-server.prerm

これらは、パッケージの削除またはインストール(または再構成)時にdpkgによって実行されるスクリプトです。

1
FredFoo