SSH Authentificatie met een Yubikey

Door Dhr_Soulslayer op maandag 12 maart 2012 23:46 - Reacties (11)
Categorie: ICT, Views: 5.568

Nadat ik 2 dagen heb lopen stoeien heb ik het dan toch voor elkaar:
Inloggen op mijn ubuntu test machine via SSH terwijl de authentificatie loopt via een OTP(One Time Password) plus een lokaal password.
Het installeren van deze configuratie was achteraf gezien erg eenvoudig en daarom wil ik hem met jullie delen.

Mijn test virtual machine bestaat uit een kale Ubuntu 10.04 LTS installatie. Deze is geŘpdate via apt-get update & apt-get upgrade.
Daarna heb ik de ssh server ge´nstalleerd met het commando apt-get install openssh-server
Hiermee is de basis omgeving klaar en kunnen we beginnen met bouwen.

Als eerste de C Compileer omgeving installeren door apt-get install build-essential. Daarna de pakketten voor het gebruik van een Yubikey op Ubuntu:
apt-get install libpam0g-dev libykclient3 libykclient-dev

Vervolgens wordt de PAM module gedownload en ge´nstalleerd:
1. wget http://yubico-pam.googlecode.com/files/pam_yubico-2.4.tar.gz
2. tar xfz pam_yubico-2.4.tar.gz
3. cd pam_yubico-2.4
4. ./configure
5. make check install
6. ln -s /usr/local/lib/security/pam_yubico.so /lib/security

Als dit zonder fouten is verlopen gaan we verder met instellen van het debuggen.
Dit is een optionele stap maar is wel handig voor het testen.
1. touch /var/run/pam-debug.log
2. chmod go+w /var/run/pam-debug.log
3. tail -F /var/run/pam-debug.log &

Als volgende stap wordt het bestand aangemaakt waarin wordt bepaald welke gebruiker aan welke Yubikey wordt gekoppeld. Dit gebeurd via het commando nano /etc/yubikeyid
Binnen dat bestand wordt de koppeling als volgt genoteerd: username:yubikeyid(yubikey id is in dit geval de eerste 12 karakters van je OTP)

Open vervolgens het bestand /etc/pam.d/sshd, in dit bestand staat de PAM configuratie voor het inloggen via SSH. Voeg de volgende regel toe aan bovenaan het bestand: auth required pam_yubico.so authfile=/etc/yubikeyid id=YubikeyApiID debug . De Yubikey API ID kan je opvragen door bij https://upgrade.yubico.com/getapikey/ je email adres op te geven en een OTP.

Nu zijn we alweer bij de een na laatste stap. Op nu het bestand /etc/pam.d/common-auth. Zoek vervolgens de regel auth [succes=1 default=ignore] pam_unix.so nullok.secure en zet achter nullok.secure de tekst try_first_pass
De regel wordt dus:
auth [succes=1 default=ignore] pam_unix.so nullok.secure try_first_pass

Herstart nu de SSH deamon via het commando /etc/init.d/ssh restart
Als je daar inlogt via SSH wordt er gevraagd om je Username en je Wachtwoord.
Het wachtwoord bestaat uit je lokaal password met direct daar achteraan je OTP.
Username: test
Wachtwoord: welkomvvejvhlrtnubikdfvglevchgrlbclrrithvddudkrrft

Mocht je er niet uitkomen check altijd of je alles goed getypt/ingevult hebt. Mocht je er dan echt niet uitkomen kun je altijd kijken of Google het antwoord heeft. De forums van yubico willen soms ook nog wel eens het antwoord hebben. Kijk daarvoor even hier:http://forum.yubico.com/