Para configurar o redirecionamento de cartão inteligente em uma máquina virtual (VM) SLED / SLES, instale as bibliotecas das quais o recurso depende e o certificado da CA raiz para oferecer
suporte à autenticação confiável de cartões inteligentes. Além disso, você deve editar alguns arquivos de configuração para concluir a configuração da autenticação.
Alguns exemplos no procedimento usam valores de espaço reservado para representar entidades na sua configuração de rede, como o nome DNS do seu domínio do AD. Substitua os valores de espaço reservado por informações específicas para sua configuração, conforme descrito na tabela a seguir.
Valor do espaço reservado Descrição
dns_IP_ADDRESS Endereço IP do seu servidor de nome DNS
meudominio.com Nome DNS do seu domínio do AD
MYDOMAIN.COM Nome DNS do seu domínio do AD, em letras maiúsculas
MYDOMAIN Nome DNS do grupo de trabalho ou do domínio NT que
inclui o servidor Samba, em letras maiúsculas
anúncios-nome do host Nome do host do seu servidor AD
ad-hostname.mydomain.com Nome de domínio totalmente qualificado (FQDN) do seu servidor AD
mytimeserver.mycompany.com Nome DNS do seu servidor de horário NTP
AdminUser Nome de usuário do administrador da VM
Pré-requisitos
Conclua as etapas descritas em Integre um Hine de Mac virtual SLED/SLES com Active Directory para redirecionamento de cartão inteligente.
Procedimentos
1 Instale os pacotes de biblioteca necessários.
a Instale a biblioteca do PAM e outros pacotes.
# zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools pcsc-lite pcsc-ccid opensc coolkey pcsc-tools
Talvez você precise ativar extensões como o PackageHub para instalar todos os pacotes acima
b Para usar os pacotes instalados, habilite extensões como o PackageHub e instale as ferramentas de PC / SC. Por exemplo, você pode executar os seguintes comandos para o SLED / SLES 12 SP3.
# SUSEConnect --list-extensions
# SUSEConnect -p PackageHub/12.3/x86_64
# zypper in pcsc-tools
2 Instale um certificado da Autoridade de Certificação Raiz (CA).
a Baixe um certificado da CA raiz e salve-o em /tmp/certificate.cer no sistema.
Consulte Como exportar o certificado da autoridade de certificação raiz .
b Localize o certificado da CA raiz que você baixou, transfira-o para um arquivo .pem e crie um arquivo hash.
# openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
# cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
# chmod a+r /etc/pam_pkcs11/cacerts/certificate.pem
# cd /etc/pam_pkcs11/cacerts
# pkcs11_make_hash_link
c Instale as âncoras de confiança no banco de dados do NSS.
# mkdir /etc/pam_pkcs11/nssdb
# certutil -N -d /etc/pam_pkcs11/nssdb
# certutil -L -d /etc/pam_pkcs11/nssdb
# certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
d Instale os drivers necessários.
# cp libcmP11.so /usr/lib64/
# modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pam_pkcs11/
nssdb/
3 Edite o arquivo /etc/pam_pkcs11/pam_pkcs11.conf .
a Exclua a linha use_pkcs11_module = nss . Em seu lugar, adicione a linha use_pkcs11_module = mysc .
b Adicione o módulo mysc , conforme mostrado no exemplo a seguir.
pkcs11_module mysc {
module = /usr/lib64/libcmP11.so;
description = "MY Smartcard";
slot_num = 0;
nss_dir = /etc/pam_pkcs11/nssdb;
cert_policy = ca, ocsp_on, signature, crl_auto;
}
c Atualize a configuração do mapeador de Nome Comum, conforme mostrado no exemplo a seguir.
# Assume common name (CN) to be the login mapper cn {
debug = false;
module = internal;
# module = /usr/lib64/pam_pkcs11/cn_mapper.so;
ignorecase = true;
mapfile = file:///etc/pam_pkcs11/cn_map;}
d Exclua a linha use_ma ordem = ms . Em seu lugar, adicione a linha use_ma ordem = cn, nula .
4 Edite o arquivo de configuração / etc / pam_pkcs11 / cn_map para que ele inclua a linha a seguir.
ads-hostname -> ads-hostname
5 Modifique a configuração do PAM.
a Para possibilitar a configuração da autenticação por cartão inteligente, primeiro desative a ferramenta pam_config .
# find /etc/pam.d/ -type l -iname "common-*" -delete
# for X in /etc/pam.d/common-*-pc; do cp -ivp $X ${X:0:-3}; done
b Crie um arquivo chamado common-auth-smartcard no diretório /etc/pam.d/ . Adicione o seguinte conteúdo ao arquivo.
auth required pam_env.so auth sufficient pam_pkcs11.so
auth optional pam_gnome_keyring.so
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass auth required pam_winbind.so use_first_pass
c Substitua a linha auth include common-auth pela linha auth include common-auth-smartcard em ambos os arquivos: /etc/pam.d/gdm e /etc/pam.d/xsccreenaver . 6 Para configurar o serviço pcscd para iniciar automaticamente após o reinício da VM, edite o
arquivo apropriado para a sua versão do SLED / SLES.
n (SLED / SLES 12.x) Adicione a linha rcpcscd start a /etc/init.d/after.local para que o arquivo seja semelhante ao exemplo a seguir.
#! /bin/sh
#
# Copyright (c) 2010 SuSE LINUX Products GmbH, Germany. All rights reserved.
#
# Author: Werner Fink, 2010
#
# /etc/init.d/after.local
#
# script with local commands to be executed from init after all scripts
# of a runlevel have been executed.
#
# Here you should add things, that should happen directly after
# runlevel has been reached.
#
rcpcscd start
n (SLED / SLES 15.x) Adicione a linha WantedBy=multi-user.target a /usr/lib/systemd/
system/cscd.service para que o arquivo seja semelhante ao exemplo a seguir.
[Unit]
Description=PC/SC Smart Card Daemon Requires=pcscd.socket
[Service]
ExecStart=/usr/sbin/pcscd --foreground --auto-exit ExecReload=/usr/sbin/pcscd --hotplug
[Install]
Also=pcscd.socket
WantedBy=multi-user.target
Depois de editar o arquivo peçascd.service , execute o seguinte comando.
systemctl enable pcscd
Observação Se o serviço pcscd não iniciar após a reinicialização da VM, o primeiro login via pam_pkcs11 falhará.
7 Desative o firewall.
# rcSuSEfirewall2 stop
# chkconfig SuSEfirewall2_setup off
# chkconfig SuSEfirewall2_init off
Observação Às vezes, o redirecionamento de cartão inteligente falha quando o firewall está ativado.
8 Atualize a biblioteca PC / SC Lite para a versão 1.8.8.
n Para SLED / SLES 12 SP3 ou 15.x, use a seguinte sequência de comandos. Substitua
<versão-SUSE> pelo número da versão da sua distribuição, por exemplo, 15.2 para SLED / SLES 15 SP2.
# SUSEConnect -p sle-sdk/<SUSE-version>/x86_64
# zypper in git autoconf automake libtool flex libudev-devel gcc
# git clone https://salsa.debian.org/rousseau/PCSC.git
# cd PCSC/
# git checkout -b pcsc-1.8.8 1.8.8
# ./configure -program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
bindir=/usr/bin sbindir=/usr/sbin sysconfdir=/etc datadir=/usr/share --includedir=/usr/include
libdir=/usr/lib64 libexecdir=/usr/libexec localstatedir=/var --sharedstatedir=/var/lib64
--mandir=/usr/share/man --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
# make
# make install
n Para o SLES 12 SP5, use a seguinte sequência de comandos.
# SUSEConnect -p sle-sdk/12.5/x86_64
# zypper in git-core autoconf automake libtool flex libudev-devel gcc
# git clone https://salsa.debian.org/rousseau/PCSC.git
# cd PCSC/
# git checkout -b pcsc-1.8.8 1.8.8
# ./bootstrap
# ./configure -program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/
share includedir=/usr/include libdir=/usr/lib64 libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib64 --mandir=/usr/share/man --infodir=/usr/
share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
# make
# make install
9 (SLED / SLES 15.x) Para garantir que o cartão inteligente funcione corretamente, modifique o arquivo org.gnome.Shell.desktop na VM.
a Abra o arquivo /usr/share/applications/org.gnome.Shell.desktop . b No arquivo, localize e substitua Exec=/usr/bin/gnome-shell pela linha a seguir.
Exec=sh -c "DISPLAY=:${DISPLAY##*:} exec /usr/bin/gnome-shell"
c Salve e feche o arquivo.
10 Instale o pacote Horizon Agent, com o redirecionamento de cartão inteligente habilitado.
# sudo ./install_viewagent.sh -m yes
11 Reinicie a VM e faça login novamente.