Yubico Yubikey tvåstegsverifiering via SSH inloggning i Ubuntu…

Denna guide kommer beskriva hur man i ubuntu konfiguerar så man får tvåstegsverifiering (two facto authentication) via SSH. Exemplet nedan är utfört på en Ubuntu 12.04 server installation tillsammans med en yubikey standard.

Steg 1: Installera nödvändiga paket


För att detta ska fungera måste man installera några paket för att kunna använda yubikeyn se nedan.

sudo apt-get install libpam-yubico libykclient3

Verifiera nu att paketen installerats korekt och kolla så du har filen enligt nedan exempel

ls -la /lib/security/pam_yubico.so
-rw-r–r– 1 root root 35416 Feb 15 2012 /lib/security/pam_yubico.so

Har du filen kan du gå vidare till nästa steg.

Steg 2: Koppla användare till yubikey inloggning


Innan vi konfigurerar SSH ska vi konfigurerar användare för yubikey. Gör enligt nedan exempel men använd korekt användarnamn.

mkdir /home/username/.yubico/
touch /home/username/.yubico/authorized_yubikeys
chmod 700 /home/username/.yubico

Nu ska vi lägga in användare i filen och koppla till din yubikey. Gå in i filen vi skapade ovan med en texteditor se nedan

nano /home/username/.yubico/authorized_yubikeys

Syntaxen i filen är enligt nedan exempel
username:yubikey id
Vill man ha flera yubikeys kopplade på samma användare gör man enligt nedan
username:yubikey id:yubikey id

Exempel

ubuntu:ccccccbdefgh
För flera yubikeys på samma användare
ubuntu:ccccccbdefgh:ccccccbddfef

Yubikey ID får man av att ta en OTP från sin yubikey och ta dom första 12 tecknen i OTPn det är ID:t.
Gör ovan steg för dom användare som ska köra yubikey.

Steg 3: Konfigurera SSH pam.d för yubikey


Nu måste vi konfigurera SSH att använda yubikey PAM modul. Gå in i filen med valfri editor /etc/pam.d/sshd
Lägg till en ny rad i början av filen som ska likna nedan exempelrad.

Exempel (OBS! detta är en rad inte två så se till att det blir rätt i filen)

auth required pam_yubico.so id=2458 key=ure8aX7mdExlmO0q44idqEICIuE= url=http://api.yubico.com/wsapi/2.0/verify?id=%d&otp=%s

Notera att man måste byta ut key värdet alltså det efter key= och id= till det som motsvarar det som hör till din yubikey. För att skaffa ett yubikey id / key så går man in på nedan URL.
https://upgrade.yubico.com/getapikey/

Note:
I exemplet ovan använder jag required och det betyder att man måste logga in med yubikey OTP + lössenord alltså tvåstegsverifiering. Man kan använda sufficient istället då krävs bara att man anger yubikey OTP och inget lössenord krävs alltså envägsverifiering.

Steg 4: Konfigurera SSHd


Vi måste ändra tre värden i /etc/ssh/sshd_config se nedan

PermitEmptyPasswords no
ChallengeResponseAuthentication yes
UsePAM yes

Det finns dock några olika kombinationer för olika typer av inloggning se nedan.

Nedan två är tänkta att användas med sufficient för pam_yubikey från steg 3.
1: Envägsverifiering med yubikey med lössenord avstängt

PasswordAuthentication no

2: Envägsverifiering med yubikey ELLER lössenord

PasswordAuthentication yes

Detta kräver att man använder sig av required i pam_yubikey för sshd från steg 3.
3: Tvåstegsverifiering med yubikey OCH lössenord

PasswordAuthentication yes

Steg 5: Starta om SSHd


För att nu aktivera detta så måste vi starta om SSHd gör det med nedan kommando.

sudo service ssh restart

Steg 6: Testa löseningen


Nu återstår bara att testa om det fungerar som det ska. Anslut med ssh mot din server och se om det du konfigurerat fungerar se exempel nedan.

username1@host1:~$ ssh username2@host2
Yubikey for `username2′:
Password:
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-57-generic x86_64)

Last login: Tue Dec 10 13:20:39 2013 from host1
username2@host2:~$

Ovan ser man att man först får skicka in en Yubikey OTP och sedan även ange lössenord för username2 användaren.

Slutsats:


Nu om allt fungerar som det ska är nu tvåstegsverifiering aktiverat via SSH på din Ubuntu server. Undrar ni något eller har synpunkter så lämna en komentar eller maila mig.

Källor:


https://github.com/Yubico/yubico-pam/wiki/YubikeyAndSSHViaPAM
http://forum.yubico.com/viewtopic.php?t=822

Tags: , ,

Leave a Reply

Notify via Email Only if someone replies to My Comment