私は最近、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コマンドも同様にスプーフィングされていない限り(そうではないと思います)、安全な接続が必要です。
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アドレスの再利用が原因である可能性があります。
パッケージを削除して再インストールすると、キーはそのまま残ります。パッケージをパージした場合にのみ削除されます。キーファイルが存在しない場合にのみ作成されます。何が起こっているかを完全に把握するには、次のファイルを読むことができます。
/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によって実行されるスクリプトです。