Zum Konfigurieren der Smartcard-Umleitung auf einer virtuellen Ubuntu-/Debian-Maschine (VM) installieren Sie die Bibliotheken, von denen die Funktion abhängt, und das Stammzertifikat der Zertifizierungsstelle (CA), um die vertrauenswürdige Authentifizierung von Smartcards zu unterstützen. Außerdem müssen Sie einige Konfigurationsdateien bearbeiten, um des Einrichten der Authentifizierung abzuschließen.
In einigen der Beispiele im Verfahren werden Platzhalterwerte verwendet, um Entitäten in Ihrer Netzwerkkonfiguration darzustellen, z. B. den DNS-Namen Ihrer Active Directory-Domäne. Ersetzen Sie die Platzhalterwerte durch spezifische Informationen für Ihre Konfiguration, wie in der folgenden Tabelle gezeigt.
Platzhalterwert |
Beschreibung |
dns_IP_ADDRESS |
IP-Adresse Ihres DNS-Namenservers |
mydomain.com |
DNS-Name Ihrer Active Directory-Domäne |
MYDOMAIN.COM |
DNS-Name Ihrer Active Directory-Domäne in Großbuchstaben |
MYDOMAIN |
DNS-Name der Arbeitsgruppe oder NT-Domäne, in der sich Ihr Samba-Server befindet, in Großbuchstaben |
ads-hostname |
Hostname Ihres AD-Servers |
ads-hostname.mydomain.com |
Vollqualifizierter Domänenname (FQDN) Ihres AD-Servers |
mytimeserver.mycompany.com |
DNS-Name Ihres NTP-Zeitservers |
AdminUser |
Benutzername des VM-Administrators |
Prozedur
- Installieren Sie die erforderlichen Bibliotheken auf der Ubuntu/Debian-VM.
sudo apt-get install -y pcscd pcsc-tools pkg-config libpam-pkcs11 opensc libengine-pkcs11-openssl libnss3-tools
- Installieren Sie ein Stamm-CA-Zertifikat.
- Laden Sie ein Stamm-CA-Zertifikat herunter und speichern Sie es in /tmp/certificate.cer auf der Ubuntu-VM. Siehe How to export Root Certification Authority Certificate.
- Übertragen Sie das heruntergeladene Stamm-CA-Zertifikat in eine .pem-Datei.
sudo openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
- Kopieren Sie das Stamm-CA-Zertifikat in das Verzeichnis /etc/pam_pkcs11/cacerts.
sudo cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
- Erstellen Sie eine pkcs11-Hash-Datei.
sudo chmod a+r certificate.pem
sudo pkcs11_make_hash_link
- Konfigurieren Sie die pam_pkcs11-Bibliothek.
- Erstellen Sie eine pam_pkcs11.conf-Datei mit dem standardmäßigen Beispielinhalt.
- (Ubuntu 20.04, Debian 10.x) Führen Sie die folgende Befehlssequenz aus.
sudo mkdir /etc/pam_pkcs11
sudo zcat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz | tee /etc/pam_pkcs11/pam_pkcs11.conf
- (Ubuntu 20.04.1 und höher, Ubuntu 22.04, Debian 11.x/12.x) Führen Sie die folgende Befehlssequenz aus.
sudo mkdir /etc/pam_pkcs11
sudo cat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example | tee /etc/pam_pkcs11/pam_pkcs11.conf
- Bearbeiten Sie die Datei /etc/pam_pkcs11/pam_pkcs11.conf, wie im folgenden Beispiel gezeigt.
use_pkcs11_module = opensc;
...
pkcs11_module opensc {
module = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so;
description = "OpenSC PKCS#11 module";
slot_num = 0;
ca_dir = /etc/pam_pkcs11/cacerts;
crl_dir = /etc/pam_pkcs11/crls;
support_threads = false;
cert_policy = ca,signature;
token_type = "Smart card";
}
...
use_mappers = cn, null;
...
mapper cn {
debug = false;
module = internal;
ignorecase = true;
mapfile = file:///etc/pam_pkcs11/cn_map;
}
- Bearbeiten Sie die Datei /etc/pam_pkcs11/cn_map , damit sie die folgende Zeile enthält.
- Bearbeiten Sie die Konfigurationsdatei /etc/pam.d/gdm-password. Platzieren Sie die Autorisierungszeile pam_pkcs11.so vor der Zeile common-auth, wie im folgenden Beispiel gezeigt.
#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_succeed_if.so user != root quiet_success
auth sufficient pam_pkcs11.so
@include common-auth
auth optional pam_gnome_keyring.so
@include common-account
- Führen Sie die folgenden Befehle aus, um die Smartcard-Hardware und die auf der Smartcard installierten Zertifikate zu überprüfen.
sudo pcsc_scan
sudo pkcs11_listcerts
sudo pkcs11_inspect
- Um die Smartcard-SSO-Funktion und den VMware Greeter zu unterstützen, wenn SSO deaktiviert ist, konfigurieren Sie die Datei /etc/vmware/viewagent-greeter.conf. Siehe Bearbeiten von Konfigurationsdateien auf einem Linux-Desktop.
- Installieren Sie das Paket Horizon Agent mit aktivierter Smartcard-Umleitung.
sudo ./install_viewagent.sh -m yes
Hinweis: Wenn Sie eine Fehlermeldung erhalten, die Sie auffordert, die Standard-PC/SC-Lite-Bibliothek zu installieren, deinstallieren Sie die benutzerdefinierte PC/SC-Lite-Bibliothek, die derzeit auf der Maschine vorhanden ist, und installieren Sie die Standard-PC/SC-Lite-Bibliothek mithilfe des folgenden Befehls.
sudo apt-get install --reinstall pcscd libpcsclite1
Anschließend können Sie das Horizon Agent-Installationsprogramm ausführen.
- Wenn Sie eine benutzerdefinierte PC/SC Lite-Bibliothek verwenden, konfigurieren Sie die Optionen pcscd.maxReaderContext und pcscd.readBody in der Datei /etc/vmware/config.
- Starten Sie die Ubuntu-VM neu und melden Sie sich erneut an.