Forçando uma mudança de senha no OpenBSD

3

No OpenBSD 5.6 eu preciso provisionar um número de contas de usuário com senhas padrão. Eu gostaria que os usuários, após o primeiro login SSH, fossem forçados a alterar suas senhas do padrão.

No CentOS e no Debian eu posso fazer isso usando chage -d 0 $username .

Aparece no manual do login.conf que eu deveria ser capaz de realizar a mesma coisa no OpenBSD com algo como:

  • usermod -f 1 $username ou
  • usermod -f "Jan 1 2015" $username

Defini-lo dessa maneira solicita a alteração apropriada em userinfo $username , mas o login como $ username via SSH não impõe realmente uma alteração de senha - ele abre o shell com alegria, alheio à senha marcada como inativa acima.

Algumas postagens de 2000 falam por gravação de um shell de login de wrapper para forçar uma senha mudança. Dito isso, dado o óbvio andaime em usermod e chpass , parece que isso está embutido, mas não documentado tão amplamente quanto os equivalentes do Linux.

Um BSD pro pode esclarecer a abordagem convencional?

    
por J.C. 24.02.2015 / 01:42

1 resposta

1

De acordo com login.conf (5) , o período de carência padrão para uma senha expirada ("morta") é 0. A menos que esse valor seja definido em /etc/login.conf , um usuário não poderá efetuar login para alterar sua senha se a data atual do sistema for maior que o sexto campo da entrada de senha de um usuário em /etc/master.passwd - consulte passwd (5) .

Para resolver o problema, você precisará especificar uma data formatada em número de segundos desde a época que está dentro do período de carência escolhido. 2 semanas, que você também configurará em /etc/login.conf . Para escolher manualmente um prazo de expiração da senha de ontem, podemos usar:

# date -d yesterday +%s
1463597700

Em seguida, conecte esse valor ao campo nº 6 em /etc/master.passwd usando vipw . A linha relevante será semelhante a esta:

user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh

A execução de usermod como você indicou ( usermod -f "May 17 2016" user ) fará essencialmente a mesma coisa, mas em ambos os casos /etc/login.conf também deve ser alterado anexando o seguinte à default:\ ou seção relevante para sua classe de usuário:

    :password-dead=2w:\
    :password-warn=2w:

A primeira linha permite um período de carência de duas semanas para o usuário alterar sua senha; a segunda linha emitirá avisos de que a senha de um usuário está programada para expirar. Se expirar, seus usuários verão algo como o seguinte:

WARNING: Your password has expired.
You must change your password now and login again!
Changing local password for user.
Old password:
New password:
Retype new password:
Connection to openbsd-server closed.

Você também pode configurar :passwordtime=7776000: em /etc/login.conf para impor uma alteração de senha adicional a cada 90 dias. Observe que, se você precisar de verificações adicionais na complexidade das senhas dos usuários, como proibir a reutilização de senhas, instale e configure o passwordqc dos pacotes ou outro programa verificador de senhas.

    
por 18.05.2016 / 22:02