原文链接:http://www.dbaleet.org/how_to_modify_exadata_password_policy/
使用onecommand安装Exadata的最后一个步骤会执行一个叫做ResecureMachine的过程。这个过程的主要目的就是对操作系统本身进行一些必要的安全加固。例如:设置ssh的登录超时,移除root用户的等效性,对密码进行策略进行加强等。但是这个过程增强了Exadata安全的同时,也给很多Exadata造成了一些不必要的麻烦。以下来自用户经常遇到的一些与密码有关系的case:
case 1: 无法从oracle用户/grid su到root用户;
[oracle@dm01db01 ~]$ su - root Password: su: incorrect password
原因: oracle用户/grid用户不再wheel用户组,所以无法su到root。这是系统默认的行为:
解决方法: 退出以后,直接使用root登录。不从oracle/grid之类的用户su到root。
解除限制:将这些用户加入到wheel组。
#usermod -aG wheel <username>
case 2: 用户需要修改密码, 但是无论怎么输入都无法达到密码复杂度的要求;
原因: Exadata在做ResecureMachine这个步骤修改了pam_passwdqc中的密码复杂度的要求。
解决方法: 选择复杂度更高的密码。
解除限制: 去掉了pam_passwdqc中的密码复杂度限制。
#vi /etc/pam.d/system-auth
将其中的min=disabled,disabled,16,12,8替换为min=1,1,1,1,1。这样你就可以将密码设置为任何值。如果需要明白修改代表什么意思,请查看pam_passwdqc的manpage: http://linux.die.net/man/8/pam_passwdqc
case3: 用户因为输入密码多次错误,导致操作系统用户被锁;
这种情况解决的方法比较复杂,留到下篇文章。
case 4: 90天后,用户密码过期,需要重置;
原因: ResecureMachine这个步骤修改了密码的过期策略。
解决方法:
达到90天阈值以后,用户手工修改这些用户的密码。
解除限制:
#chage -d 14000 -E -1 -m 0 -M -1 <username>
或者
#chage -M 99999 <username>
其中username表示需要修改的用户名称,需要修改的用户包括DB节点的root, oracle, grid用户;cell节点上的root, celladmin, cellmonitor用户。
case 5: 输错一次密码以后,此用户被锁10分钟;
原因: Exadata在做ResecureMachine这个步骤设置了输入错误对其进行锁定的限制。
解决方法:过10分钟以后再登录,并且输入正确的密码。
解除限制: 将/etc/pam.d/sshd 和 /etc/pam.d/login这两个文件中的lock_time条目移除。即将
auth required pam_tally2.so deny=5 onerr=fail lock_time=600
修改为
auth required pam_tally2.so deny=5 onerr=fail
case 6: 节点之间ssh的连通性被移除;
解决方法:ssh的连通性不是必需的,只是在管理上稍微不是太方便。
原因: Exadata在做ResecureMachine这个步骤移除了ssh root用户等效性。
解除限制:
运行/opt/oracle.SupportTools/onecommand/setssh-Linux.sh脚本或者
/opt/oracle.SupportTools/setup_ssh_eq.sh脚本(取决于你所在的版本)手工建立用户等效性。
case 7: ssh登录自动超时;
原因: Exadata在做ResecureMachine这个步骤设置了ssh的登录自动超时。
解决方法:重新登录
解除限制:
#dcli -g all_group -l root "cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig; sed -i 's/^ClientAliveInterval/#ClientAliveInterval/' /etc/ssh/sshd_config; service sshd restart" #dcli -g all_group -l root "cp /etc/profile /etc/profile.orig; sed -i 's/^TMOUT/#TMOUT/' /etc/profile"
Comment