Solaris: ログインパスワードの有効文字数
Solaris におけるユーザのパスワードは、デフォルトでは 8文字以内でしか利用できない。
9文字以上のパスワードを設定しても、実際にチェックされるのは先頭8文字だけである。
・パスワード設定
1: # passwd root
2: 新しいパスワード: 「password1234」と入力
3: 新しいパスワードを再入力してください: 「password1234」と入力
4: passwd: root のパスワードが変更されました
・パスワード確認
1: $ su -
2: パスワード: 「password」と入力
3: Sun Microsystems Inc. SunOS 5.10 Generic January 2005
4: # id
5: uid=0(root) gid=0(root)
このように、su でも telnet でも ftp でも、先頭8文字さえわかればログインできてしまうのだ。
9文字以上のパスワードを正しく使えるようにするためには、パスワード暗号アルゴリズムを変更する必要がある。
まず、どのアルゴリズムが使用できるか、crypt.conf を確認する。
下記の例だと、「1」が「MD5」となっていることがわかる。 (2a: Blowfish, md5: Sun MD5, 5: sha256, 6: sha512)
・/etc/security/crypt.conf
1: # cat /etc/security/crypt.conf
2: #
3: # Copyright 2008 Sun Microsystems, Inc. All rights reserved.
4: # Use is subject to license terms.
5: #
6: #ident "@(#)crypt.conf 1.2 08/05/14 SMI"
7: #
8: # The algorithm name __unix__ is reserved.
9:
10: 1 crypt_bsdmd5.so.1
11: 2a crypt_bsdbf.so.1
12: md5 crypt_sunmd5.so.1
13: 5 crypt_sha256.so.1
14: 6 crypt_sha512.so.1
そして、policy.conf を編集する。
・/etc/security/policy.conf
CRYPT_DEFAULT=__unix__ |
↓
CRYPT_DEFAULT=1 |
この段階ではまだ、既存のパスワードは古い暗号化のままなので、パスワードを再設定する。
1: # grep root /etc/shadow
2: root:K6pbRTjC7L0A6:15122::::::
3: # passwd root
4: 新しいパスワード:「password1234」と入力
5: 新しいパスワードを再入力してください:「password1234」と入力
6: passwd: root のパスワードが変更されました
7: # grep root /etc/shadow
8: root:$1$z6atQD7B$3P25WD9Y/TC8ThO7l9u8D.:15122::::::
/etc/shadow を見ると暗号化アルゴリズムが変わり、セキュリティが強化されたことがわかる。
最後に、先頭8文字だけではログインできないことを確認。
1: $ su -
2: パスワード: 「password」と入力
3: su: Sorry
参考:
http://pooh.gr.jp/?p=841
http://d.hatena.ne.jp/matoken/20090129/1233239258
0 件のコメント:
コメントを投稿