Difference between revisions of "Karty"
(→Podpisy v aplikaci PES na linuxu) |
|||
| (9 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
Na linuxu budete potřebovat konkrétně [http://www.oksystem.com/cz/produkty/oksmart libokpkcs11.so], jejíž základní funkce v aktuální verzi knihovny 3.0.0 fungovaly minimálně na RHEL7 a Fedora 22. Podporována je ale pouze 64bitová varianta linuxu resp. aplikací, které jsou na něm provozovány (tj. např. v 32bit Adobe Acrobatu si na linuxu nic nepodepíšete). | Na linuxu budete potřebovat konkrétně [http://www.oksystem.com/cz/produkty/oksmart libokpkcs11.so], jejíž základní funkce v aktuální verzi knihovny 3.0.0 fungovaly minimálně na RHEL7 a Fedora 22. Podporována je ale pouze 64bitová varianta linuxu resp. aplikací, které jsou na něm provozovány (tj. např. v 32bit Adobe Acrobatu si na linuxu nic nepodepíšete). | ||
| − | + | Na Mac OS X se dají smart karty používat prakticky stejným způsobem jako v linuxu jen je nutné použít libokpkcs11.dylib (místo linuxové libokpkcs11.so) | |
=Použítí certifikátů z ČVUT karty= | =Použítí certifikátů z ČVUT karty= | ||
| Line 32: | Line 32: | ||
Windows přístup pomocí karty funguje na stejném principu použití privátního a veřejného klíče jako je tomu na linuxu. Je jen potřeba použít SSH klienta s podporou karet, jako je například [https://risacher.org/putty-cac PuTTY-CAC]. To je standardní aktuální verze putty, která v možnostech konfigurace SSH autentizace nabízí další položku CAPI, kde lze vybrat certifikát uložený na kartě a po nahrání zobrazeného veřejného klíče do <tt>~/.ssh/authorized_keys</tt> na server je možné pro přihlášení použít ČVUT kartu a PIN. | Windows přístup pomocí karty funguje na stejném principu použití privátního a veřejného klíče jako je tomu na linuxu. Je jen potřeba použít SSH klienta s podporou karet, jako je například [https://risacher.org/putty-cac PuTTY-CAC]. To je standardní aktuální verze putty, která v možnostech konfigurace SSH autentizace nabízí další položku CAPI, kde lze vybrat certifikát uložený na kartě a po nahrání zobrazeného veřejného klíče do <tt>~/.ssh/authorized_keys</tt> na server je možné pro přihlášení použít ČVUT kartu a PIN. | ||
| + | |||
| + | ==Podpora smartcard v OpenSSL knihovně== | ||
| + | |||
| + | Přístup přímo z CLI | ||
| + | |||
| + | openssl | ||
| + | OpenSSL> engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/plna/cesta/k/libokpkcs11.so -pre PIN:1234 | ||
| + | OpenSSL> ... | ||
| + | |||
| + | Přístup s konfiguračním souborem openssl.conf | ||
| + | |||
| + | openssl_conf = openssl_def | ||
| + | |||
| + | [openssl_def] | ||
| + | engines = engine_section | ||
| + | |||
| + | [engine_section] | ||
| + | pkcs11 = pkcs11_section | ||
| + | |||
| + | [pkcs11_section] | ||
| + | engine_id = pkcs11 | ||
| + | dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so | ||
| + | MODULE_PATH = /plna/cesta/k/libokpkcs11.so | ||
| + | PIN = 1234 | ||
| + | init = 0 | ||
| + | |||
| + | # použití konfiguračního souboru | ||
| + | OPENSSL_CONF=openssl.conf | ||
| + | openssl ... | ||
| + | |||
| + | ==Práce s certifikáty pomoci <tt>pkcs11-tool</tt>== | ||
| + | |||
| + | pkcs11-tool --module /plna/cesta/k/libokpkcs11.so ... | ||
| + | |||
| + | ==Práce s certifikáty pomoci <tt>p11tool</tt>== | ||
| + | |||
| + | export GNUTLS_PIN=1234 | ||
| + | p11tool --provider /plna/cesta/k/libokpkcs11.so ... | ||
| + | |||
| + | ==Podpora smartcard pro obecné NSS úložiště certifikátů== | ||
| + | |||
| + | Aplikacím používajícím k práci s certifikáty knihovnu NSS lze (pravděpodobně) přidat podporu práce s certifikáty na kartě i ručně pomocí CLI rozhraní | ||
| + | |||
| + | # kořenové certifikáty CESNETu jsou dostupné na https://pki.cesnet.cz | ||
| + | certutil -N -d /directory/with/your/nssdb | ||
| + | certutil -A -d /directory/with/your/nssdb -i CESNET_CA_Root.pem -n 'CESNET CA Root' -t 'TC,,' | ||
| + | certutil -A -d /directory/with/your/nssdb -i PersonalSigning.pem -n 'CESNET Personal Signing CA' -t 'TC,,' | ||
| + | certutil -L -d sql:/directory/with/your/nssdb -h all | ||
| + | certutil -L -d sql:/directory/with/your/nssdb -n 'CESNET CA Root' | ||
| + | certutil -L -d sql:/directory/with/your/nssdb -n 'CESNET Personal Signing CA' | ||
| + | modutil -add "OKsmart 3.0 PKCS#11 Module" -dbdir /directory/with/your/nssdb -libfile /path/to/oksystems/library/libokpkcs11.so | ||
| + | modutil -list -dbdir /directory/with/your/nssdb | ||
==Úložiště certifikátů pro Firefox== | ==Úložiště certifikátů pro Firefox== | ||
| Line 77: | Line 129: | ||
**konfigurace: about:preferences#advanced -> security devices -> Load -> zadat cestu k libokpkcs11.so | **konfigurace: about:preferences#advanced -> security devices -> Load -> zadat cestu k libokpkcs11.so | ||
**použití karty: podpis OK (nefunkční vydávání nového certifikátu) | **použití karty: podpis OK (nefunkční vydávání nového certifikátu) | ||
| + | |||
| + | ===Troubleshooting=== | ||
| + | |||
| + | * použijte nový čisty profil firefoxu | ||
| + | * smažte Java cache (např. odstraňte celý <tt>`rm -rf ~/.java`</tt> adresář) | ||
| + | ** z neznámého důvodu firefox resp. java applet začal hlásit, že nemůže načíst neexistující knihovnu <tt>libeatpkss.so</tt> | ||
==Přihlašování do Windows v doméně== | ==Přihlašování do Windows v doméně== | ||
| − | zatím neotestováno | + | zatím neotestováno, [https://blogs.msdn.microsoft.com/spatdsg/2008/04/17/smartcard-in-2008-and-vista-national-id-card-no-upn-no-eku-no-problem/ návod] |
==Získání kerberos ticketu v linuxu== | ==Získání kerberos ticketu v linuxu== | ||
| − | + | Zatím nezprovozněno (nutné provést odpovídající konfigurace na straně AD)!!! | |
| + | |||
| + | # zjištění certid pro odpovídající certifikát na smartcard | ||
| + | pkcs11-tool --module /plna/cesta/k/libokpkcs11.so --list-objects | ||
| + | # získání kerberos ticketu | ||
| + | kinit -X X509_user_identity=PKCS11:module_name=/plna/cesta/k/libokpkcs11.so:slotid=0:certid=a0aa370d68e55f27db19c07878326062 \ | ||
| + | -X X509_anchors=FILE:ca-chain.crt username@FJFI.CVUT.CZ | ||
| + | # výše uvedené parametry je možné specifikovat v konfiguraci kerbera /etc/krb5.conf | ||
| + | [realms] | ||
| + | FJFI.CVUT.CZ = { | ||
| + | kdc = krb1.fjfi.cvut.cz:88 | ||
| + | kdc = krb2.fjfi.cvut.cz:88 | ||
| + | kdc = krb3.fjfi.cvut.cz:88 | ||
| + | admin_server = krb.fjfi.cvut.cz:749 | ||
| + | default_domain = fjfi.cvut.cz | ||
| + | pkinit_anchors = FILE:/etc/pki/tls/certs/cesnet-ca-chain.crt | ||
| + | pkinit_identities = PKCS11:/plna/cesta/k/libokpkcs11.so | ||
| + | pkinit_eku_checking = kpServerAuth | ||
| + | pkinit_kdc_hostname = wc.fjfi.cvut.cz | ||
| + | pkinit_cert_match =&&<EKU>msScLogin,<KU>digitalSignature | ||
| + | } | ||
| + | |||
| + | |||
| + | ==Přihlašování pomocí smartcard do linuxu (CentOS7)== | ||
| + | |||
| + | Instalace potřebných balíčků (předem musí být zprovozněn <tt>pcscd</tt> daemon, který zprostředkovává přístup ke smartcard) | ||
| + | |||
| + | yum install pam_pkcs11 | ||
| + | |||
| + | Konfigurace PKCS11 PAM modulu | ||
| + | |||
| + | # /etc/pam_pkcs11/pam_pkcs11.conf | ||
| + | pam_pkcs11 { | ||
| + | ... | ||
| + | use_pkcs11_module = oksmart; | ||
| + | ... | ||
| + | pkcs11_module oksmart { | ||
| + | module = /plna/cesta/k/libokpkcs11.so | ||
| + | slot_num = 0; | ||
| + | nss_dir = /etc/pki/nssdb; | ||
| + | cert_policy = ca, signature; | ||
| + | } | ||
| + | ... | ||
| + | # až bude zprovozněno získávání kerberos ticketů pomocí smartcard | ||
| + | # pak bude vyhédnější použít mapování na kerberos principal a nebude | ||
| + | # tím pádem nutné udržovat mapování subjektu certifikátu na jméno | ||
| + | use_mappers = subject; | ||
| + | ... | ||
| + | mapper subject { | ||
| + | module = internal; | ||
| + | ignorecase = false; | ||
| + | mapfile = file:///etc/pam_pkcs11/subject_mapping; | ||
| + | } | ||
| + | ... | ||
| + | } | ||
| + | |||
| + | # /etc/pam_pkcs11/subject_mapping | ||
| + | DC=cz,DC=cesnet-ca,DC=personal-signing,O=CTU in Prague,CN=Ing. Petr Vokáč,serialNumber=252509@cvut.cz -> vokacpet | ||
| + | |||
| + | # /etc/pam_pkcs11/pkcs11_eventmgr.conf | ||
| + | # v tomto souboru lze zkonfigurovat aktivaci screensaveru při vytažení | ||
| + | # karty ze čtečky ... netestováno, protože způsob zalockování obrazovky | ||
| + | # se v linuxu každou chvíli měni | ||
| + | |||
| + | Konfigurace NSS | ||
| + | |||
| + | # kořenové certifikáty CESNETu jsou dostupné na https://pki.cesnet.cz | ||
| + | certutil -N -d /etc/pki/nssdb | ||
| + | chmod +r /etc/pki/nssdb/* | ||
| + | certutil -A -d /etc/pki/nssdb -i CESNET_CA_Root.pem -n 'CESNET CA Root' -t 'TC,,' | ||
| + | certutil -A -d /etc/pki/nssdb -i PersonalSigning.pem -n 'CESNET Personal Signing CA' -t 'TC,,' | ||
| + | |||
| + | Konfigurace přihlašování pomocí PAMu | ||
| + | |||
| + | # /etc/pam.d/system-auth | ||
| + | auth required pam_env.so | ||
| + | auth [success=1 default=ignore] pam_succeed_if.so service notin login:gdm:xdm:kdm:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid | ||
| + | auth sufficient pam_pkcs11.so card_only | ||
| + | auth sufficient pam_unix.so nullok try_first_pass | ||
| + | auth requisite pam_succeed_if.so uid >= 1000 quiet_success | ||
| + | auth required pam_deny.so | ||
| + | |||
| + | Testování konfigurace | ||
| + | |||
| + | pkcs11_setup list_modules | ||
| + | pkcs11_setup use_module | ||
| + | pkcs11_inspect debug | ||
| + | pkcs11_listcerts debug | ||
| + | # otestování <tt>pam_pkcs11.conf</tt> včetně mapování na lokální účet | ||
| + | pklogin_finder debug | ||
Latest revision as of 10:04, 29 June 2016
Tato stránka obsahuje různé informace k použití ČVUT karet resp. certifikátů, které na ní mohou být uloženy.
Contents
- 1 Oficiální FJFI návod
- 2 Zpřístupnění informací na ČVUT kartě
- 3 Použítí certifikátů z ČVUT karty
- 3.1 Připojení přes SSH
- 3.2 Podpora smartcard v OpenSSL knihovně
- 3.3 Práce s certifikáty pomoci pkcs11-tool
- 3.4 Práce s certifikáty pomoci p11tool
- 3.5 Podpora smartcard pro obecné NSS úložiště certifikátů
- 3.6 Úložiště certifikátů pro Firefox
- 3.7 Úložiště certifikátů pro Thunderbird
- 3.8 Podepisování PDF dokumentu v Acrobat Readeru
- 3.9 Podepisování dokumentu v LibreOffice
- 3.10 Vzdálené podepisovaní z linuxu na Windows Terminal Serveru
- 3.11 Podpisy v aplikaci PES na linuxu
- 3.12 Přihlašování do Windows v doméně
- 3.13 Získání kerberos ticketu v linuxu
- 3.14 Přihlašování pomocí smartcard do linuxu (CentOS7)
Oficiální FJFI návod
Zpřístupnění informací na ČVUT kartě
Pro práci s certifikáty na ČVUT kartě je potřeba knihovna od OKSystems, která komunikuje s aplikací na kartě starající se o správu certifikátů a poskytující PKCS11 rozhraní.
Na linuxu budete potřebovat konkrétně libokpkcs11.so, jejíž základní funkce v aktuální verzi knihovny 3.0.0 fungovaly minimálně na RHEL7 a Fedora 22. Podporována je ale pouze 64bitová varianta linuxu resp. aplikací, které jsou na něm provozovány (tj. např. v 32bit Adobe Acrobatu si na linuxu nic nepodepíšete).
Na Mac OS X se dají smart karty používat prakticky stejným způsobem jako v linuxu jen je nutné použít libokpkcs11.dylib (místo linuxové libokpkcs11.so)
Použítí certifikátů z ČVUT karty
Připojení přes SSH
Linux
Certifikát na kartě lze použít pro přihlášení k serveru pomocí SSH. Využívá se principu běžných uživatelských klíčů (privátní+veřejný), kde jako privátní klíč se místo ~/.ssh/id_algroritmus použije přímo privátní klíč uložený na kartě. Pro přihlášení pak nutně potřebujete fyzicky vlastnit konkrétní kartu pro níž jste na serveru přidali do ~/.ssh/authorized_keys odpovídající veřejné klíče z karty.
# vypsání seznamu všech public klíčů na kartě ssh-keygen -D /plna/cesta/k/libokpkcs11.so
Vypsaný a vybraný veřejný klíč uložte na server kam se chcete přihlašovat pomocí ČVUT karty do ~/.ssh/authorized_keys stejně, jako se to dělá při práci s lokálními SSH klíči vygenerovanými příkazem ssh-keygen.
# přihlášení na server pomocí privátního klíče na kartě ssh -I /plna/cesta/k/libokpkcs11.so username@nazev.pocitace.cz
Po zadání tohoto příkazů budete dotázání na PIN pro "OKsmart 3.0 MiniOs" a po jeho správném zadání dojde k přihlášení.
Windows
Windows přístup pomocí karty funguje na stejném principu použití privátního a veřejného klíče jako je tomu na linuxu. Je jen potřeba použít SSH klienta s podporou karet, jako je například PuTTY-CAC. To je standardní aktuální verze putty, která v možnostech konfigurace SSH autentizace nabízí další položku CAPI, kde lze vybrat certifikát uložený na kartě a po nahrání zobrazeného veřejného klíče do ~/.ssh/authorized_keys na server je možné pro přihlášení použít ČVUT kartu a PIN.
Podpora smartcard v OpenSSL knihovně
Přístup přímo z CLI
openssl OpenSSL> engine dynamic -pre SO_PATH:/usr/lib64/openssl/engines/engine_pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/plna/cesta/k/libokpkcs11.so -pre PIN:1234 OpenSSL> ...
Přístup s konfiguračním souborem openssl.conf
openssl_conf = openssl_def [openssl_def] engines = engine_section [engine_section] pkcs11 = pkcs11_section [pkcs11_section] engine_id = pkcs11 dynamic_path = /usr/lib64/openssl/engines/engine_pkcs11.so MODULE_PATH = /plna/cesta/k/libokpkcs11.so PIN = 1234 init = 0
# použití konfiguračního souboru OPENSSL_CONF=openssl.conf openssl ...
Práce s certifikáty pomoci pkcs11-tool
pkcs11-tool --module /plna/cesta/k/libokpkcs11.so ...
Práce s certifikáty pomoci p11tool
export GNUTLS_PIN=1234 p11tool --provider /plna/cesta/k/libokpkcs11.so ...
Podpora smartcard pro obecné NSS úložiště certifikátů
Aplikacím používajícím k práci s certifikáty knihovnu NSS lze (pravděpodobně) přidat podporu práce s certifikáty na kartě i ručně pomocí CLI rozhraní
# kořenové certifikáty CESNETu jsou dostupné na https://pki.cesnet.cz certutil -N -d /directory/with/your/nssdb certutil -A -d /directory/with/your/nssdb -i CESNET_CA_Root.pem -n 'CESNET CA Root' -t 'TC,,' certutil -A -d /directory/with/your/nssdb -i PersonalSigning.pem -n 'CESNET Personal Signing CA' -t 'TC,,' certutil -L -d sql:/directory/with/your/nssdb -h all certutil -L -d sql:/directory/with/your/nssdb -n 'CESNET CA Root' certutil -L -d sql:/directory/with/your/nssdb -n 'CESNET Personal Signing CA' modutil -add "OKsmart 3.0 PKCS#11 Module" -dbdir /directory/with/your/nssdb -libfile /path/to/oksystems/library/libokpkcs11.so modutil -list -dbdir /directory/with/your/nssdb
Úložiště certifikátů pro Firefox
V menu zvolte "Preferences" -> "Advanced" -> "Security devices" a v zobrazeném dialogu klikněte na tlačítko "load". Zobrazí se další dialog a v něm musíte vyplnit jméno modulu (libovolně) a hlavně cestu ke knihovně sloužící pro vytvoření PKCS11 rozhraní pro ČVUT kartu (tj. např. /plna/cesta/k/libokpkcs11.so). Po přidání tohoto nového bezpečnostního zařízení budete moci začít používat (všechny) certifikáty uložené na ČVUT kartě podobně jako ty, které máte uloženy v lokalním úložišti certifikatů. Před prvním použitím privátního klíče z karty budete muset zadat PIN.
TODO: info o podepisování v PES
Úložiště certifikátů pro Thunderbird
Konfiguruje se prakticky stejně jako Firefox, certifikáty lze poté používat k podepisování mailů. Tento use-case bych ale moc nedporučoval, protože když vám někdo pošle odpověď zašifrovanou Vaším veřejným klíčem z ČVUT karty (veřejný klíč je součástí Vámi podepsaných mailů), tak pro přečtení takového mailu samozřejmě budete opět potřebovat privátní klíč z Vaší ČVUT karty. Ten si ale nemužete (z principu fungovaní těchto karet) nikam zálohovat, takže když o kartu přijdete, tak se k takto zašifrovaným mailům už nikdy nedostanete.
Podepisování PDF dokumentu v Acrobat Readeru
Na Windows lze v Akrobatu jednoduše otestovat, jestli máte na počítači korektní instlaci driverů a ČVUT karta funguje. Stačí zvolit menu "View" -> "Fill & Sign" a v zobrazeném panelu vybrat "Sign with Certificate" a postupovat dle informací v zobrazeném dialogu.
Podepisování dokumentu v LibreOffice
LibreOffice používá pro podepisování úložiště certifikátů z Firefoxu, který je nejprve nutné zkonfigurovat podle výše uvedeného návodu. Potom lze dokukmenty podepisovat přes "File" -> "Digital Signatures...". Pří výběru "signature" budete dotázáni na heslo, kterým máte zabezpečeno uložiště certifikátů Firefoxu.
Vzdálené podepisovaní z linuxu na Windows Terminal Serveru
Jak rdesktop tak i xfreerdp mají podporu redirectu pro smartcards (hlavně to nehledejte pod redirectem USB zařízení, což nebude fungovat, jelikož tyto aplikace maji implemenovan specialní způsob práce přímo se smartcards). V praxi bohužel (ne)funkčnost zavisí nejen na verzi klientů, ale i na verzi terminál serveru k němuž se připojujete. Zde je stručný přehled stavu z konce roku 2015.
- freerdp-1.0.2 (default package in RHEL7)
- cmd: xfreerdp --plugin rdpdr --data scard: -- jmeno_ts_serveru.fjfi.cvut.cz
- pouziti karty: windows 7 OK, ani tuk s w2k12r2 (kompletne nefunkcni redirect?)
- freerdp-1.2 (GIT be8f8f72387e7878717b6f04c9a87f999449d20d, CentOS7 balicky http://yum.fjfi.cvut.cz/clean-epel-7-x86_64)
- cmd: xfreerdp /sec:nla /u:username /smartcard /v:jmeno_ts_serveru.fjfi.cvut.cz
- pouziti karty: windows 7 OK, w2k12r2 podpis OK (nefunkcni vydavani noveho certifikatu)
vylepseny cmd: xfreerdp /size:1500x1100 /bpp:32 /smart-sizing /compression /decorations /clipboard /auto-reconnect /fonts /microphone:sys:alsa /sound:sys:alsa /multimedia:sys:alsa /sec:nla /cert-ignore /drive:work,/home/username/work /drive:mnt,/mnt /smartcard /u:username /v:jmeno_ts_serveru
- rdesktop-1.8.3 (default package in Fedora 23)
- cmd: rdesktop -r scard jmeno_ts_serveru.fjfi.cvut.cz
- pouziti karty: windows 7 OK, w2k12r2 nelze pripojit (FJFI konfigurace nepodporuje starou "rdp" autentizaci a rdesktop neumi ani "tls" ani "nla")
Podpisy v aplikaci PES na linuxu
- použití karty přímo v linuxu (podpora pouze x86_64)
- instalace: Oracle java (http://java.com/en/download/manual.jsp)
- knihovna:
- konfigurace: about:preferences#advanced -> security devices -> Load -> zadat cestu k libokpkcs11.so
- použití karty: podpis OK (nefunkční vydávání nového certifikátu)
Troubleshooting
- použijte nový čisty profil firefoxu
- smažte Java cache (např. odstraňte celý `rm -rf ~/.java` adresář)
- z neznámého důvodu firefox resp. java applet začal hlásit, že nemůže načíst neexistující knihovnu libeatpkss.so
Přihlašování do Windows v doméně
zatím neotestováno, návod
Získání kerberos ticketu v linuxu
Zatím nezprovozněno (nutné provést odpovídající konfigurace na straně AD)!!!
# zjištění certid pro odpovídající certifikát na smartcard
pkcs11-tool --module /plna/cesta/k/libokpkcs11.so --list-objects
# získání kerberos ticketu
kinit -X X509_user_identity=PKCS11:module_name=/plna/cesta/k/libokpkcs11.so:slotid=0:certid=a0aa370d68e55f27db19c07878326062 \
-X X509_anchors=FILE:ca-chain.crt username@FJFI.CVUT.CZ
# výše uvedené parametry je možné specifikovat v konfiguraci kerbera /etc/krb5.conf
[realms]
FJFI.CVUT.CZ = {
kdc = krb1.fjfi.cvut.cz:88
kdc = krb2.fjfi.cvut.cz:88
kdc = krb3.fjfi.cvut.cz:88
admin_server = krb.fjfi.cvut.cz:749
default_domain = fjfi.cvut.cz
pkinit_anchors = FILE:/etc/pki/tls/certs/cesnet-ca-chain.crt
pkinit_identities = PKCS11:/plna/cesta/k/libokpkcs11.so
pkinit_eku_checking = kpServerAuth
pkinit_kdc_hostname = wc.fjfi.cvut.cz
pkinit_cert_match =&&<EKU>msScLogin,<KU>digitalSignature
}
Přihlašování pomocí smartcard do linuxu (CentOS7)
Instalace potřebných balíčků (předem musí být zprovozněn pcscd daemon, který zprostředkovává přístup ke smartcard)
yum install pam_pkcs11
Konfigurace PKCS11 PAM modulu
# /etc/pam_pkcs11/pam_pkcs11.conf
pam_pkcs11 {
...
use_pkcs11_module = oksmart;
...
pkcs11_module oksmart {
module = /plna/cesta/k/libokpkcs11.so
slot_num = 0;
nss_dir = /etc/pki/nssdb;
cert_policy = ca, signature;
}
...
# až bude zprovozněno získávání kerberos ticketů pomocí smartcard
# pak bude vyhédnější použít mapování na kerberos principal a nebude
# tím pádem nutné udržovat mapování subjektu certifikátu na jméno
use_mappers = subject;
...
mapper subject {
module = internal;
ignorecase = false;
mapfile = file:///etc/pam_pkcs11/subject_mapping;
}
...
}
# /etc/pam_pkcs11/subject_mapping DC=cz,DC=cesnet-ca,DC=personal-signing,O=CTU in Prague,CN=Ing. Petr Vokáč,serialNumber=252509@cvut.cz -> vokacpet
# /etc/pam_pkcs11/pkcs11_eventmgr.conf # v tomto souboru lze zkonfigurovat aktivaci screensaveru při vytažení # karty ze čtečky ... netestováno, protože způsob zalockování obrazovky # se v linuxu každou chvíli měni
Konfigurace NSS
# kořenové certifikáty CESNETu jsou dostupné na https://pki.cesnet.cz certutil -N -d /etc/pki/nssdb chmod +r /etc/pki/nssdb/* certutil -A -d /etc/pki/nssdb -i CESNET_CA_Root.pem -n 'CESNET CA Root' -t 'TC,,' certutil -A -d /etc/pki/nssdb -i PersonalSigning.pem -n 'CESNET Personal Signing CA' -t 'TC,,'
Konfigurace přihlašování pomocí PAMu
# /etc/pam.d/system-auth auth required pam_env.so auth [success=1 default=ignore] pam_succeed_if.so service notin login:gdm:xdm:kdm:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid auth sufficient pam_pkcs11.so card_only auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so
Testování konfigurace
pkcs11_setup list_modules pkcs11_setup use_module pkcs11_inspect debug pkcs11_listcerts debug # otestování pam_pkcs11.conf včetně mapování na lokální účet pklogin_finder debug