Mai 21 2009

Gerando segunda senha para SSH aleatória.

Olá,

Ontem mostrei para você como deixar seu SSH mais seguro e até mesmo como pedir outra senha no mesmo. Mas me deu uma idéia na cabeça que está senha poderia ser gerada aleatoriamente todos os dias. Então pensei e cheguei a seguinte idéia. Todos os dias, em tal hora, será gerada uma segunda senha nova. Está será enviada para mim por e-mail. Ou seja ao acessar o SSH precisarei colocar a senha do meu usuário, logo em seguida a senha que foi gerada e está em meu e-mail.

Shell-script para gerar senha Aleatoria (.gerarSenha):

caracteres=(a b c d e f g h i j k l m n o p q r s t u v w y x z 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V X W Y Z)
total=(${#caracteres[*]})
for ((i=1; i<=10; i++)); {
Valor=$((RANDOM%$total))
String=”$String${caracteres[$Valor]}”
}
echo $String > .senhaDoDia

Este arquivo criara uma seqüência aleatória de caracteres e salvara ela no arquivo “.senhaDoDia”

Script para pegar a senha do .senhaDoDia (.leitorLinha):

while read linha
do
senhaGerada=$linha
done

Este arquivo lê o conteúdo do arquivo que for passado como “parâmetro”

Arquivo PHP que envia a senha para meu e-mail (sendMail.php):

<?
$s = $_GET['s'];
mail(“E-MAIL”, “ASSUNTO”, “Sua senha de hoje é $s”);
?>

Script para enviar senha (.enviarSenha):

source .secure/.leitorLinha < .secure/.senhaDoDia
wget http://www.suapagina.com/sendMail.php?s=$senhaGerada -q
rm -rf sendMail.php?s=$senhaGerada

Este arquivo utiliza o .leitorDeLinha para colocar a .senhaDoDia em $senhaGerada e faz uma requisição ao endereço que tem a função de enviar e-mail. O mais correto era configurar o próprio servidor para enviar o e-mail não dependendo assim de duas máquinas. Eu simplesmente fiz assim, pois não estou com vontade de configurar um servidor de e-mail no momento e para testes resolvi utilizar minha hospedagem.

As mudanças no seu .profile devem ser as seguintes (.profile):

source .secure/.leitorLinha < .secure/.senhaDoDia
echo Digite sua senha de segurança:
read senha
if [ $senha == $senhaGerada ]

Pronto, agora você tem um script que gera uma senha aleatoria, envia para seu e-mail e pede a mesma quando você se logar no seu SSH. Lembrando que você deve colocar o .gerarSenha para ser executado sempre tal dia em tal horário ou uma condição que você preferir. Lembro também que caso está máquina seja a sua caseira, que você utiliza o X e coisas do tipo, talvez possam ocorrer problemas se você se logar em uma tela já do ambiente gráfico pois acredito que ele pedira a senha de segurança. Não testei em um computador com o X, então enquanto isso recomendo está prática apenas para “servidores” ou computadores que terão seu SSH acessado remotamente (não esqueça você vai precisar de internet para pegar a senha em seu e-mail)

Matheus Bratfisch

Arquivos para gerar, enviar, ler segunda senha do ssh.

PS: Desculpe-me se ficou algo confuso, sabe como são essas idéias malucas né? Mas qualquer dúvida entre em contato comigo.

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment