Para configurar o redirecionamento de cartão inteligente em uma máquina virtual (VM) Ubuntu/Debian, instale as bibliotecas das quais o recurso depende e o certificado da Autoridade de Certificação (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 em sua configuração de rede, como o nome DNS do seu domínio do AD. Substitua os valores do 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 nomes DNS |
meudomínio.com |
Nome DNS do seu domínio do AD |
MEUDOMÍNIO.COM |
Nome DNS do seu domínio do AD, em letras maiúsculas |
MEUDOMÍNIO |
Nome DNS do grupo de trabalho ou domínio NT que inclui o servidor Samba, em letras maiúsculas |
ads-hostname |
Nome do host do seu servidor AD |
ads-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 |
Procedimento
- Instale as bibliotecas necessárias na VM Ubuntu/Debian.
sudo apt-get install -y pcscd pcsc-tools pkg-config libpam-pkcs11 opensc libengine-pkcs11-openssl libnss3-tools
- Instale um certificado de CA raiz.
- Baixe um certificado de CA raiz e salve-o em /tmp/certificate.cer na VM Ubuntu. Consulte Como exportar o certificado da autoridade de certificação raiz.
- Localize o certificado de CA raiz que você baixou e transfira-o para um arquivo .pem.
sudo openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
- Copie o certificado da CA raiz para o diretório /etc/pam_pkcs11/cacerts.
sudo cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
- Crie um arquivo hash pkcs11.
sudo chmod a+r certificate.pem
sudo pkcs11_make_hash_link
- Configure a biblioteca pam_pkcs11.
- Crie um arquivo pam_pkcs11.conf usando o conteúdo de exemplo padrão.
- (Ubuntu 20.04, Debian 10.x) Execute a seguinte sequência de comandos.
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 e posterior, Ubuntu 22.04, Debian 11.x) Execute a seguinte sequência de comandos.
sudo mkdir /etc/pam_pkcs11
sudo cat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example | tee /etc/pam_pkcs11/pam_pkcs11.conf
- Edite o arquivo /etc/pam_pkcs11/pam_pkcs11.conf conforme mostrado no exemplo a seguir.
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;
}
- Edite o arquivo /etc/pam_pkcs11/cn_map para que ele inclua a seguinte linha.
- Edite o arquivo de configuração /etc/pam.d/gdm-password. Coloque a linha de autorização pam_pkcs11.so antes da linha common-auth, conforme mostrado no exemplo a seguir.
#%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
- Para verificar o hardware do cartão inteligente e os certificados instalados no cartão inteligente, execute os comandos a seguir.
sudo pcsc_scan
sudo pkcs11_listcerts
sudo pkcs11_inspect
- Instale o pacote Horizon Agent, com o redirecionamento de cartão inteligente ativado.
sudo ./install_viewagent.sh -m yes
Observação: Se você receber uma mensagem de erro instruindo-o a instalar a biblioteca PC/SC Lite padrão, desinstale a biblioteca PC/SC Lite personalizada que está atualmente presente na máquina e instale a biblioteca PC/SC Lite padrão usando o seguinte comando.
sudo apt-get install --reinstall pcscd libpcsclite1
Em seguida, você pode executar o instalador Horizon Agent.
- Se você estiver usando uma biblioteca personalizada do PC/SC Lite, configure as opções pcscd.maxReaderContext e pcscd.readBody no arquivo /etc/vmware/config.
- Reinicie a VM do Ubuntu e faça login novamente.