YubiKeys

De afgelopen tijd zijn de nodige bedrijven gehackt waaronder ook wat telecombedrijven. M’n baas kreeg daar de kriebels van en heeft een zak met YubiKeys aangeschaft. Of ik de authenticatie met die dingen even kon implementeren voor het hele netwerk.

Met YubiKeys kun je tweeweg authenticatie opzetten, in ons geval LDAP authenticatie in combinatie met de YubiKeys. Maar een LDAP server was er ook nog niet. SSH’en bijvoorbeeld ging met lokale accounts en ik werk wel met keys maar mijn collega’s niet. Vragen om moeilijkheden dus eigenlijk.

Van LDAP had ik weinig kaas gegeten maar uiteindelijk kwam ik na wat tips van mijn chef uit bij OpenDJ, een op Java gebaseerde LDAP directory server. OpenDJ installeren is redelijk eenvoudig, alleen staat nergens beschreven hoe je dit echt veilig moet doen. Het viel me al op dat er in de installatiehandleiding niet-standaard LDAP poorten gebruikt werden hoger dan 1024. Dit zijn unprivileged poorten die geopend mogen worden door gewone gebruikers dus heb het ook zo opgezet, dus dat OpenDJ draait onder een systeemuseraccount wat verder niks mag.

Volgende stap was het opzetten van een RADIUS server voor de YubiKeys. Je kan natuurlijk ook direct tegen de Yubico servers authenticeren maar die kun je voor zover ik weet niet koppelen aan je eigen LDAP server en ook niet goed beheren qua gebruikers. Ik ben degene die bepaalt aan wie welke YubiKey wordt toegewezen die toegang krijgt tot ons netwerk, niet de collega’s zelf. Voor het opzetten van een dergelijke server heb ik de YubiRADIUS Virtual Appliance gebruikt, een VMware image dat ik gedeployed heb op onze ESXi server. Dat is een Debian 6 installatie die ik nog wel wat heb moeten tweaken, ik ga bijvoorbeeld echt geen netwerkinstellingen op een server configureren via Network Manager.

Wat users opgevoerd in LDAP, YubiKeys toegewezen op de YubiRADIUS server, maar hoe nu verder? Hoe zet ik de tweeweg authenticatie op voor bijvoorbeeld SSH toegang? De beschikbare documentatie is summier en wat betreft het opzetten van tweeweg authenticatie met behulp van LDAP en YubiKeys onder Linux is er eigenlijk helemaal geen documentatie beschikbaar. Dit moet je met PAM doen en er is een YubiKey PAM module beschikbaar maar hoe je de authenticatie uiteindelijk moet implementeren wordt nergens beschreven.

Uiteindelijk heb ik het goed werkend gekregen en ik zal proberen om de werkende configuratie om via SSH in te loggen met behulp van YubiKeys en LDAP authenticatie te beschrijven in een vervolgentry.

YubiKeys