- PR -

SSH2接続(ホスト公開鍵)

投稿者投稿内容
トリックスター
大ベテラン
会議室デビュー日: 2003/04/16
投稿数: 104
投稿日時: 2005-12-21 18:58
引用:

cn009さんの書き込み (2005-12-20 22:32) より:
当然すぎて思い浮かばなかったのでしょうけど、そのユーザも書き換えられますよね。


引用:

さらに、ユーザのマシンで ssh-agent が動いている場合、ユーザのマシンに
侵入したクラッカーがサーバに接続して、~/.ssh/authorized_keys を書き換えるかもしれません。


引用:

それから、ssh-agent を立ち上げたまま席を外したり、とかいう場合も
~/.ssh/autorized_keys を書き換えられる危険性がありますね。



これらは各ユーザの自己責任ということで切り分けたつもりでいました。

引用:

書き換えたのがrootでもそのユーザでもない可能性もあります。
サーバ上のsuExecのCGIスクリプトの脆弱性等を攻撃されて書き換えられることもあるでしょうし。



このへんになってくると、すでに侵入されているわけで、authorized_keysが
書き換えられたどころの騒ぎではなくなります。

ちょっと、話が噛み合っていないかもしれません。
私は、ユーザー環境の脅威について話していて、cn009さんはサーバー全体の脅威の
お話をされているようです。同じっちゃぁ同じですが。

引用:

引用:

結局ホスト認証はTelnetで
繋いでいるのと大差ないような。



ホスト認証だとパスワードやパスフレーズが不要なので楽ですね。
LAN内ではあまり心配は無いと思いますが、盗聴されたり偽のサーバに繋がされたりする危険性も無いですし。
その環境では必要ない気もしますが、scp や sftp、それにポートフォワーディングも使えますし。



そうですね。SSHで繋ぐ方が望ましいですね。

■/etc/shosts.equiv
----
192.168.1.2
192.168.1.3
----
と書いてみたのですが、
Permission denied (publickey,keyboard-interactive,hostbased).
です。

デバッグモードで実行してみました。
何かおわかりになりませんでしょうか?

# ssh -v 192.168.1.3
----
OpenSSH_4.2-chrootsshp1, OpenSSL 0.9.7f 22 Mar 2005
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22.
debug1: Connection established.
debug1: identity file /home/[user]/.ssh/identity type -1
debug1: identity file /home/[user]/.ssh/id_rsa type -1
debug1: identity file /home/[user]/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.2-chrootssh
debug1: match: OpenSSH_4.2-chrootssh pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2-chrootssh
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.3' is known and matches the DSA host key.
debug1: Found key in /etc/ssh/ssh_known_hosts:1
debug1: ssh_dss_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,keyboard-interactive,hostbased
debug1: Next authentication method: hostbased
ssh-keysign not enabled in /etc/ssh/ssh_config
ssh_keysign: no reply
key_sign failed
debug1: Next authentication method: publickey
debug1: Trying private key: /home/[user]/.ssh/identity
debug1: Trying private key: /home/[user]/.ssh/id_rsa
debug1: Trying private key: /home/[user]/.ssh/id_dsa
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,keyboard-interactive,hostbased
debug1: No more authentication methods to try.
Permission denied (publickey,keyboard-interactive,hostbased).
----

cn009
ベテラン
会議室デビュー日: 2004/05/13
投稿数: 72
投稿日時: 2005-12-23 00:45
引用:

引用:

書き換えたのがrootでもそのユーザでもない可能性もあります。
サーバ上のsuExecのCGIスクリプトの脆弱性等を攻撃されて書き換えられることもあるでしょうし。



このへんになってくると、すでに侵入されているわけで、authorized_keysが
書き換えられたどころの騒ぎではなくなります。



suExec の CGI スクリプトの脆弱性を攻撃された場合は、侵入されたといっても、
そのユーザの権限の範囲内ですから、それがすぐにシステム全体の危険というわけではありません。

とは言っても、そのユーザの権限で可能であればイロイロ出来る(セキュリティホールの種類によります)わけなので、
情報漏えいとかの危険はありますし、環境によっては大騒ぎになるでしょうけど。

引用:

ちょっと、話が噛み合っていないかもしれません。
私は、ユーザー環境の脅威について話していて、cn009さんはサーバー全体の脅威の
お話をされているようです。同じっちゃぁ同じですが。



ちょっと話がかみ合わなかったのはそのせいのようですね。
rootが悪さをするとか、ミスをするとか、ということを考え始めると
そのサーバ上のユーザ環境とかは保証できないんですよね。
それでサーバー全体の話をしていました。
# 不勉強なのですが、SELinux でポリシーをがちがちにすれば何とかなるんでしょうかねぇ。

引用:

ssh-keysign not enabled in /etc/ssh/ssh_config
ssh_keysign: no reply
key_sign failed



ssh_config のマニュアルによると、ssh_config で
EnableSSHKeysign yes
を設定しないといけないようです。

# そういえば ssh が setuid されなくなっていますね。
トリックスター
大ベテラン
会議室デビュー日: 2003/04/16
投稿数: 104
投稿日時: 2005-12-24 00:18
お世話になっております。

引用:

ssh_config のマニュアルによると、ssh_config で
EnableSSHKeysign yes
を設定しないといけないようです。



設定してみました。
今度はこんなエラーです。
----
not a valid request
ssh_keysign: no reply
key_sign failed
Permission denied (publickey,keyboard-interactive,hostbased).
----

で、/etc/ssh/ssh_host_dsa_key のパーミッションを 600 から 644 に
変えたら繋がったのですが、/var/log/messages に下記のメッセージが
表示されるので、元に戻しました。
----
Dec 23 23:51:22 [myhost] sshd[12864]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Dec 23 23:51:22 [myhost] sshd[12864]: error: @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
Dec 23 23:51:22 [myhost] sshd[12864]: error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Dec 23 23:51:22 [myhost] sshd[12864]: error: Permissions 0644 for '/etc/ssh/ssh_host_dsa_key' are too open.
Dec 23 23:51:22 [myhost] sshd[12864]: error: It is recommended that your private key files are NOT accessible by others.
Dec 23 23:51:22 [myhost] sshd[12864]: error: This private key will be ignored.
Dec 23 23:51:22 [myhost] sshd[12864]: error: bad permissions: ignore key: /etc/ssh/ssh_host_dsa_key
Dec 23 23:51:22 [myhost] sshd[12864]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
Dec 23 23:51:22 [myhost] sshd[12864]: Disabling protocol version 2. Could not load host key
Dec 23 23:51:22 [myhost] sshd[12864]: sshd: no hostkeys available -- exiting.
----
cn009
ベテラン
会議室デビュー日: 2004/05/13
投稿数: 72
投稿日時: 2005-12-26 00:10
引用:

今度はこんなエラーです。
----
not a valid request
ssh_keysign: no reply
key_sign failed
Permission denied (publickey,keyboard-interactive,hostbased).
----



う〜ん、ちょっとログが少なすぎてよく分かりません。
ssh-keysign は suid されていますよね?
suid されていない場合は、cannot open とかになる気がしますし。

ただ、色々と調べてみると、クライアントが認識しているクライアントのホスト名と、
サーバが接続元アドレスを逆引きして得られるホスト名が異なる場合、問題が起きるようです。
How do I get trusted-host (SSH-2 "hostbased", SSH-1 "RhostsRSA") authentication working?

サーバ1は外部からアクセスできるようですが、ホスト名が FQDN になっていたりしませんか?
そして、サーバ2で 192.168.1.2 を逆引き出来なかったり、異なるものになったりしませんか?

引用:

で、/etc/ssh/ssh_host_dsa_key のパーミッションを 600 から 644 に
変えたら繋がったのですが、/var/log/messages に下記のメッセージが
表示されるので、元に戻しました。



なぜそれで繋がったのか、いまいち分かりませんが、
ホスト秘密鍵を誰にでも読めるようにするのはセキュリティ上かなり問題ありです。
特にホストベースの認証を行っている場合は、信頼関係にあるサーバに任意のユーザで
ログインできる様になると思います。
# 多分改造したsshクライアントが必要になると思いますけど。

スキルアップ/キャリアアップ(JOB@IT)