Alterando Política de Senhas no Exadata DBM
Por default, o Oracle Linux 5 no Exadata DBM em suas versões V2 e X2, vem previamente configurado com uma política forte de Senhas. Essa política inclui complexidade nos passwords, restrições na reutilização de senhas antigas, tempo de expiração, tempo de espera para uma nova tentativa de logon, travamento de senha entre outros.
Segurança realmente é um item importante em um appliance, ainda mais do level do Exadata. De qualquer forma na maioria dos atendimentos que realizei até hoje, o Exadata DBM se encontra em uma rede exclusiva e segura definidas pelas empresas, até mesmo como um pré-requisito de instalação recomendado pela Oracle.
Neste artigo vou demonstrar rapidamente como alterar essa política de senhas no Exadata DBM.
* Vale lembrar que realizando esta alteração o appliance NÃO ESTARÁ 100% compliance com as recomendações Oracle, então é MUITO IMPORTANTE que a empresa proprietária da solução esteja 100% ciente da alteração. Esta alteração também é identificada como crítica na execuçaão do exacheck.
Segue abaixo os passos para evitar os usuários root e oracle de:
- Expirar Senha
- Aguardar 600s entre logons incorretos (senha)
# Alterar restrições de Password do usuário “root” e “oracle”
chage -l $USER
[root@dm02db04 ~]# chage -l oracle
Last password change : Aug 03, 2012
Password expires : Oct 30, 2012
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
[root@dm02db04 ~]# chage -I -1 -m 0 -M 99999 -E -1 oracle
Last password change : Aug 03, 2012
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@dm02db04 ~]# chage -l root
Last password change : Aug 08, 2012
Password expires : Oct 22, 2012
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
[root@dm02db04 ~]# chage -I -1 -m 0 -M 99999 -E -1 root
Last password change : Aug 03, 2012
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
# Alterar restrições de tempo de logon (Somente via Console / ILOM)
Alterar a linha em vermelho de lock_time=600 para lock_time=10 (ou remover o lock_time)
Quem “coordena” as restrições de login e senha (expiração, etc) é o módulo “pam_tally2”
Para verificar os usuários em “lock” para logon, pode-se executar:
pam_tally2
Para “destravar” um usuário (automaticamente permitir o logon sem aguardar “x” segundos)
pam_tally2 –r –u < nome_user>
[root@dm02db04 ~]# cat /etc/pam.d/login
#%PAM-1.0
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
auth include system-auth
auth required pam_tally2.so deny=5 onerr=fail lock_time=10
account required pam_nologin.so
account include system-auth
account required pam_tally.so
password include system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session optional pam_keyinit.so force revoke
session required pam_loginuid.so
session include system-auth
session optional pam_console.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
# Alterar restrições de tempo de logon (para SSH, qualquer sessão)
Dessa maneira, mesmo que a senha seja escrita incorretamente não será necessário aguardar 600s (O system-auth é carregado no sshd_config e login (/etc/pam.d). Recomenda-se realizar um backup do /etc/pam.d/system-auth default do Exadata.
Após realizar o backup, alterar o aquivo /etc/pam.d/system-auth para a configuração default de um linux comum, sem restrições de senha.
Abaixo um arquivo /etc/pam.d/system-auth comum:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
Após estas alterações, mesmo em caso de senha incorreta, será possível fazer o logon normalmente.
Abraço