Lendo um artigo na revista PC & Cia edição 66 (janeiro de 2007) cujo o título é "Login mais seguro em sistemas Linux" foi que me ocorreu a idéia de implementar esta solução infinitamente mais simples no Slackware, que não possui o PAM por default.
1 - Primeiramente criaremos um arquivo /etc/usb_key com um conteúdo completamente aleatório que será a nossa chave. Ex:
2 - Copie este arquivo para a raiz de seu pendrive.
3 - Em seguida daremos a permissão de somente o root ler o arquivo para aumentar a segurança e impedir que outros usuários tenham acesso a nossa chave secreta.
4 - Agora editamos o arquivo /etc/profile, que no Slackware é onde estão todas as variáveis do ambiente bash, e acrescentamos as seguintes linhas:
mount -t auto /dev/sdb2 /mnt/usb
if [ `cat /mnt/usb/usb_key` = `cat /etc/usb_key` ]
then
:
else
echo "Chave inválida"
exit
fi
umount /dev/sdb2
Em meu caso particular sdb2 é segunda partição de meu pen-drive.
Agora para testar experimente remover o pen-drive e tente logar-se como root em outro shell ou mesmo um usuário comum, se estiver tudo OK você não conseguirá, em seguida recoloque o pen-drive e logue-se novamente. Estando tudo OK você conseguirá logar-se normalmente.
[2] Comentário enviado por capitainkurn em 09/07/2007 - 11:01h
Tem muitas formas...
Se você não restringiu o acesso a seu lilo pode entrar em modo single user e remover o trecho de script do /etc/profile, mas suponho que seu boot loader possua tal restrição pois de nada adianta implementar esta solução se hoverem outras forma de acessar o sistema.
Também pode bootar com um live CD e proceder na mesma forma, mas é lógico que em um sistema crítico não se deixa meios de bootar a máquina tão facilmente assim.
Então resta apenas fazer a primeira coisa que todo mundo deveria aprender antes mesmo de tocar em um mouse.... BACKUP, salve a chave em um lugar seguro. Simples assim!