2-step verification no Debian/Ubuntu

Por Sem Comentários , , ,

Neste post vou mostrar para você como instalar e configurar o Google Authenticator junto com o SSH.

Para começar instale o libpam-google-authenticator.

[krix@rogue]$ sudo apt-get install libpam-google-authenticator

Em seguida execute o google-authenticator para gerar a chave secreta e adicionar o arquivo no home do usuário.

[krix@rogue]$ google-authenticator
https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/krix@sorceress%3Fsecret%3DKKKKKKKKKKKKKKKK
 
Your new secret key is: KKKKKKKKKKKKKKKK
Your verification code is 065211
Your emergency scratch codes are:
42231304
79413861
58506139
15737255
89850700
 
Do you want me to update your "~/.google_authenticator" file (y/n) y
 
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
 
By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y
 
If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Use o aplicativo do Google Authenticator para ler o QRCode gerado ou adicione manualmente:

          

Para ativar esta autenticação no ssh você precisa alterar o arquivo /etc/pam.d/sshd.

[krix@rogue]$ sudo vi /etc/pam.d/sshd
 
auth required pam_google_authenticator.so

No arquivo de configuração do ssh adicione a linha abaixo:

[krix@rogue]$ sudo vi /etc/ssh/sshd_config 
 
ChallengeResponseAuthentication yes

Reinicie o SSH para que as alterações sejam carregadas.

[krix@rogue]$ sudo service ssh restart

Agora é só testar :)

[krix@rogue]$ ssh localhost
Verification code:
Password:

Você pode fazer isso não somente para o SSH, mas para o login. Basta adicionar a linha abaixo no arquivo de configuração do lightdm ou do gdm:

auth required pam_google_authenticator.so

Diretórios Montados Via SSH

Por Sem Comentários , , ,

Olá,

Se você acha chato ficar usando o comando scp onde, tem-se que digitar aquelas informações e depois digitar a senha para poder assim transmitir algo, é melhor utilizar o SSHFS. O SSHFS (Secure SHell FileSystem) é um sistema de arquivo capaz de operar arquivos de um computadore remoto, ou seja, é como se você montasse o diretório de um outro computador no seu ou onde você montou. Ele usa o SSH (Secure Shell) para fazer o login no computador remoto.

A implementação de onde o SSHFS será montado é feita por meio de um módulo do Kernel chamado FUSE (Filesystem in Userspace).

A instalação é bem rápida e simples:

[krix@rogue]# apt-get install sshfs

Adicione seu usuário no grupo fuse:

[krix@rogue]# usermod -a -G fuse krix

Crie um diretório onde você irá montar o diretório do computador remoto:

[krix@rogue]# mkdir  /media/videos

Montando um diretório:

[krix@rogue]# sshfs  krix@192.168.5.86:/backup /media/videos

Onde:

krix = É o login do usuário;
192.168.5.86 = É o IP do computador remoto, também podendo ser o nome do servidor;
/backup = É o diretório no computador remoto que irei montar;
/media/videos = É o diretório criado na máquina local onde terá /backup montando.

Desmontando o diretório:

[krix@rogue]# fusermount -u /media/pcremoto

:wq!

Criando Uma Chave de Acesso SSH

Por Sem Comentários , , ,

Olá,

Hoje em dia é algo bastante comun quando se vai logar em algum servidor você usar uma chave ssh para logar via rede. A geração é bastando simples, apesar de parecer complicadíssimo pra quem não sabe ou quem está aprendendo…

[krix@rogue]$ ssh-keygen -t [rsa/rsa1/dsa] -f /home/$USER/.ssh/id_[rsa/identity/dsa] -b [1024/2048]

Blz! Mas pra que serve esse -t, -f, -b e o que danado é ssh-keygen?? Abaixo coloquei uma explicação bem rápida sobre a função de cada uma das opções deste comando:

-t é referente ao tipo do algoritmo usado para a geração da chave.

-f designa o caminho onde ficará a sua chave.

-b é referente a quantidade de bits usado pelo algoritmo.

ssh-keygen é o utilitário que irá gerar o par de chaves pública/privada onde no servidor o qual desejo acessar deve conter minha chave pública, somente, para poder conseguir logar via chave. Lembre-se a privada é so e exclusivamente sua.

Espero que tenha ajudado.

:wq!