如何修改Exadata密码策略?

原文链接: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"

Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *