Einleitung
Diese Anleitung beschreibt die schrittweise Installation des PKI-Clients der Firma Aladdin sowie die Anpassung des Paketes rdesktop unter Ubuntu 8.04.
Das Ziel ist es mittels des RDP-Protokolls eine Smartcard-Anmeldung auf Windows-Servern zu ermöglichen.
Das hier beschriebene Vorgehen setzt die Anmeldung innerhalb der Shell als Benutzer 'root' voraus.
Vorbereitung
Benötigt werden der Linux-PKI-Client der Firma Aladdin und der Sourcecode des Paketes rdesktop (www.rdesktop.org).
Die Datei Etoken-3-65.3-linux-redhat-i386.tar.gz nach /opt kopieren und dort entpacken.
cd /opt
tar zxvf Etoken-3-65.3-linux-redhat-i386.tar.gz
cd etoken-3-65.3-linux-i386
Installer.pm patchen
vim Installer.pm
Folgende Zeilen sollten geändert werden:
Zeile 212: my @known=qw ( suse enterprise fedora );
in -> my @known=qw ( suse enterprise fedora ubuntu );
Zeile 286: die "you must install pcscd prior to eToken installation\n" unless ( -f "/usr/local/sbin/pcscd" );
in -> die "you must install pcscd prior to eToken installation\n" unless ( -f "/usr/sbin/pcscd" );
Danach die benötigten Pakete mit folgendem Befehl installieren:
apt-get install pcscd libstdc++6
Einen noch nicht vorhandenen aber benötigten Symlink erstellen:
ln -s /usr/lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so.0
Startscript anpassen
vim /etc/init.d/pcscd
Zeile 21 ändern in
PCSCD=/usr/sbin/pcscd
Installation ausführen
./petoken install
Anpassungen für udev und Reader System
dies ermöglicht das automatische Erkennen des eTokens
vim /etc/udev/rules.d/01-etoken.rules
# Check for 64k etoken...
ACTION=="add", BUS=="usb", SYSFS{idProduct}=="0600", SYSFS{idVendor}=="0529", SYMLINK="etokenPro64k", RUN="/etc/etoken/add etokenPro64k"
BUS=="usb", ACTION=="remove", RUN="/etc/etoken/remove"
Um die neuen Regeln zu aktivieren folgenden Befehl ausführen:
udevcontrol reload_rules
Nun sollte der eToken von udev erkannt werden.
Fehlende Scripte erzeugen bzw. kopieren
cp /etc/hotplug.d/usb/etoken.hotplug /usr/local/bin/etoken
mkdir /etc/etoken
cd /etc/etoken
vim add
#!/bin/bash
# If you need anything to be done when inserting the etoken this goes here.
/usr/local/bin/etoken add /dev/etokenPro
vim remove
#!/bin/bash
# When removing the etoken pro 32K USB it goes here.
if [ ${PRODUCT} == \"529/514/100\" ]; then
# We shall only call the remove script, if it was really the
# etokenPro, that was removed.
/usr/local/bin/etoken remove /dev/etokenPro
fi
Dateien ausführbar machen:
chmod +x add
chmod +x remove
reader.conf
vim /etc/reader.conf.d/etoken
# Aladdin eToken virtual reader #0
FRIENDLYNAME "eToken - AKS ifdh"
DEVICENAME /dev/null
LIBPATH /usr/local/lib/aksifdh.so
CHANNELID 0x11111111
# Aladdin eToken virtual reader #1
FRIENDLYNAME "eToken - AKS ifdh"
DEVICENAME /dev/null
LIBPATH /usr/local/lib/aksifdh.so
CHANNELID 0x11111112
# Aladdin eToken virtual reader #2
FRIENDLYNAME "eToken - AKS ifdh"
DEVICENAME /dev/null
LIBPATH /usr/local/lib/aksifdh.so
CHANNELID 0x11111113
# Aladdin eToken virtual reader #3
FRIENDLYNAME "eToken - AKS ifdh"
DEVICENAME /dev/null
LIBPATH /usr/local/lib/aksifdh.so
CHANNELID 0x11111114
Die Inhalte von reader.conf mit folgendem Befehl einlesen:
update-reader.conf
Alle eToken-Dienste stoppen und neu starten
/etc/init.d/etokend stop
/etc/init.d/etsrvd stop
/etc/init.d/pcscd stop
Die Reihenfolge, in der die Dienste gestartet werden ist wichtig!
/etc/init.d/etokend start
/etc/init.d/pcscd start
/etc/init.d/etsrvd start
Damit ist die Konfiguration der Aladdin-eToken-Unterstützung abgeschlossen.
rdesktop mit Unterstützung für Smartkarten kompilieren
Die Version von rdesktop, die mit Ubuntu ausgeliefert wird, ist standardmäßig nicht fähig RDP-Verbindungen mit Smartkarten herzustellen, daher ist es notwendig dieses Feature nachzurüsten. Die Übersetzung mit den distributionseigenen Quellen scheiterte jedoch. Daher wird hier auf das aktuelle Paket des rdesktop-Projekts zurückgegriffen.
Aktuelles Paket rdesktop von www.rdesktop.org herunterladen und in /opt entpacken
cd /opt
tar zxvf rdesktop-1.6.0.tar.gz
cd rdesktop-1.6.0
Weitere benötigte Pakete installieren:
apt-get install libssl-dev libpcsclite-dev
Kompilieren und installieren
./configure --enable-smartcard
make
make install
Testen
rdesktop mit folgendem Befehl als root starten:
/usr/local/bin/rdesktop -u username -d domain -r scard:"eToken Pro 0600"="eToken PRO 0600;AKS" -g 1024x768 -k de -a 16 servername.uni-muenster.de
Troubleshooting
Sollte der eToken nicht erkannt werden, empfiehlt es sich zunächst alle beteiligten Dienste zu stoppen:
/etc/init.d/etokend stop
/etc/init.d/etsrvd stop
/etc/init.d/pcscd stop
Im Anschluss nur den etokend starten und pcscd 'von Hand ausführen':
/etc/init.d/etokend start
pcscd -f
Nun sollte beim Anschließen des eTokens folgende Meldung erscheinen:
05280918 eventhandler.c:438:EHStatusHandlerThread() Card inserted into eToken - AKS ifdh 00 00
00000027 Card ATR: 3B F2 18 00 FF C1 0A 31 FE 55 C8 06 8A
Wird weiteres Debugging von rdesktop zu Fehlerdiagnose benötigt, lässt sich dies mit folgender Option neu übersetzen:
cd /opt/rdesktop-1.6.0
make clean
./configure --enable-smartcard --with-debug-smartcard
make
make install
--
HolgerHempen - 03 Jul 2008