4.4. 스마트 카드
스마트 카드를 기반으로 하는 인증은 암호 기반 인증 대신 사용됩니다. 사용자 자격 증명이 스마트 카드에 저장되고 특수 소프트웨어와 하드웨어를 사용하여 액세스하게 됩니다. 스마트 카드를 사용하여 인증하려면 사용자가 스마트 카드 리더에 스마트 카드를 둔 다음 스마트 카드의 PIN 코드를 제공해야 합니다.
중요
다음 섹션에서는 pam_pkcs11 및 pam_ krb5 패키지를 사용하여 로컬 사용자로 스마트 카드 인증을 위한 단일 시스템을 구성하는 방법에 대해 설명합니다. 7.4 릴리스 노트 의 더 이상 사용되지 않는 기능에 설명된 대로 이러한 패키지는 더 이상 사용되지 않습니다.
스마트 카드 인증을 중앙에서 구성하려면 SSSD(System Security Services Daemon)에서 제공하는 향상된 스마트 카드 기능을 사용합니다. 자세한 내용은 Linux 도메인 ID, 인증 및 정책 가이드의 ID 관리의 스마트 카드 인증에서 참조하십시오.
4.4.1. authconfig
를 사용하여 스마트 카드 구성
스마트 카드 지원 활성화 옵션이 선택되면 스마트 카드의 동작을 구성하기 위한 추가 제어가 나타납니다.
그림 4.3. 스마트 카드 옵션
Red Hat Enterprise Linux 서버 및 워크스테이션에 대한 스마트 카드 로그인은 기본적으로 활성화되어 있지 않으며 시스템 설정에서 활성화해야 합니다.
참고
Red Hat Enterprise Linux에 로그인할 때 SSO(Single Sign-On)를 사용하려면 다음 패키지가 필요합니다.
- nss-tools
- nss-pam-ldapd
- esc
- pam_pkcs11
- pam_krb5
- opensc
- pcsc-lite-ccid
- gdm
- authconfig
- authconfig-gtk
- krb5-libs
- krb5-workstation
- krb5-pkinit
- pcsc-lite
- pcsc-lite-libs
4.4.1.1. UI에서 스마트 카드 인증 활성화
- 시스템에 root로 로그인합니다.
- 네트워크의 루트 CA 인증서를 base 64 형식으로 다운로드하여 서버에 설치합니다. 인증서는 certutil 명령을 사용하여 적절한 시스템 데이터베이스에 설치됩니다. 예를 들어 다음과 같습니다.
[root@server ~]# certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/ca_cert.crt
참고가져온 인증서는 나중에 프로세스 중에authconfig
UI에 표시되지 않습니다. UI에는 인증서를 볼 수 없습니다. 인증 중에/etc/pki/nssdb/
디렉토리에서 가져옵니다. - 상단 메뉴에서메뉴를 선택하고 를 선택한 다음 클릭합니다.
- 고급 옵션 탭을 엽니다.
- 스마트 카드 지원 활성화 확인란을 클릭합니다.
- 스마트 카드에 대해 구성할 수 있는 두 가지 동작이 있습니다.
- 카드 제거 작업 메뉴에서는 활성 세션 중에 스마트 카드가 제거되는 경우 시스템이 수행하는 응답을 설정합니다.
Ignore
옵션은 스마트 카드를 제거하면 시스템이 화면 잠금을즉시
잠그는 동안 시스템이 정상으로 작동함을 의미합니다. - 로그인에 스마트 카드 필요 확인란은 로그인 에 스마트 카드가 필요한지 여부를 설정합니다. 이 옵션을 선택하면 다른 모든 인증 방법이 차단됩니다.주의스마트 카드를 사용하여 성공적으로 로그인한 후에 이 항목을 선택하지 마십시오.
- 기본적으로 인증서가 취소되었는지 확인하는 메커니즘(Online Certificate Status Protocol 또는 OCSP, 응답)이 비활성화됩니다. 인증서가 만료일 이전에 취소되었는지 확인하려면
cert_policy
지시문에ocsp_on
옵션을 추가하여 OCSP 검사를 활성화합니다.pam_pkcs11.conf
파일을 엽니다.vim /etc/pam_pkcs11/pam_pkcs11.conf
ocsp_on
옵션이 포함되도록 모든cert_policy
행을 변경합니다.cert_policy = ca,
ocsp_on,
signature;참고파일을 구문 분석하는 방식으로 인해 cert_policy 와 등호 기호 사이에 공백이 있어야 합니다. 그렇지 않으면 매개 변수를 구문 분석하지 못합니다.
- 스마트 카드가 아직 등록되지 않은 경우(개인 인증서 및 키를 사용하여 설정) 스마트 카드를 등록하십시오.
- 스마트 카드가 CAC 카드인 경우 CAC 사용자의 홈 디렉터리에
.k5login
파일을 만듭니다. CAC 카드에 Microsoft 보안 주체 이름을 사용하려면.k5login
파일이 필요합니다. /etc/pam.d/smartcard-auth
및/etc/pam.d/system-auth
파일에 다음 행을 추가합니다.auth optional pam_krb5.so use_first_pass no_subsequent_prompt preauth_options=X509_user_identity=PKCS11:/usr/lib64/pkcs11/opensc-pkcs11.so
OpenSC 모듈이 예상대로 작동하지 않는 경우, coldkey 패키지의 모듈을 사용합니다:/usr/lib64/pkcs11/lib coolkey pk11.so
. 이 경우 Red Hat 기술 지원에 문의하거나 문제에 대한 Bugzilla 보고서를 작성하는 것이 좋습니다./etc/krb5.conf
파일을 구성합니다. 설정은 CAC 카드 사용 여부 또는 Gemalto 64K 카드 사용 여부에 따라 달라집니다.- CAC 카드를 사용하면
pkinit_anchors
에서 CAC 카드 사용과 관련된 모든 루트 인증서를 지정합니다. 다음 예에서 CAC 카드를 구성하기 위한/etc/krb5.conf
파일인 EXAMPLE.COM 은 CAC 카드의 영역 이름이고 kdc.server.hostname.com 은 KDC 서버 호스트 이름입니다.[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 1h renew_lifetime = 6h forwardable = true default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc.server.hostname.com admin_server = kdc.server.hostname.com pkinit_anchors = FILE:/etc/pki/nssdb/ca_cert.pem pkinit_anchors = FILE:/etc/pki/nssdb/CAC_CA_cert.pem pkinit_anchors = FILE:/etc/pki/nssdb/CAC_CA_email_cert.pem pkinit_anchors = FILE:/etc/pki/nssdb/CAC_root_ca_cert.pem pkinit_cert_match = CAC card specific information } [domain_realm] EXAMPLE.COM = EXAMPLE.COM .EXAMPLE.COM = EXAMPLE.COM .kdc.server.hostname.com = EXAMPLE.COM kdc.server.hostname.com = EXAMPLE.COM [appdefaults] pam = { debug = true ticket_lifetime = 1h renew_lifetime = 3h forwardable = true krb4_convert = false mappings = username on the CAC card Principal name on the card }
- 다음 예에서 Gemalto 64K 카드를 구성하기 위한
/etc/krb5.conf
파일에서 EXAMPLE.COM 은 KDC 서버에서 생성된 영역이며 kdc-ca.pem 은 CA 인증서이며 kdc.server.hostname.com 은 KDC 서버 호스트 이름입니다.[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 15m renew_lifetime = 6h forwardable = true default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = kdc.server.hostname.com admin_server = kdc.server.hostname.com pkinit_anchors = FILE:/etc/pki/nssdb/kdc-ca.pem pkinit_cert_match = <KU>digitalSignature pkinit_kdc_hostname = kdc.server.hostname.com } [domain_realm] EXAMPLE.COM = EXAMPLE.COM .EXAMPLE.COM = EXAMPLE.COM .kdc.server.hostname.com = EXAMPLE.COM kdc.server.hostname.com = EXAMPLE.COM [appdefaults] pam = { debug = true ticket_lifetime = 1h renew_lifetime = 3h forwardable = true krb4_convert = false }
참고
스마트 카드가 삽입되면 pklogin_finder 유틸리티는 디버그 모드에서 실행될 때 먼저 로그인 ID를 카드의 인증서에 매핑한 다음 인증서의 유효성에 대한 정보를 출력하려고 합니다.
pklogin_finder debug
명령은 스마트 카드를 사용하여 시스템에 로그인하는 문제 진단에 유용합니다.
4.4.1.2. 명령줄에서 스마트 카드 인증 구성
시스템에서 스마트 카드를 사용하는 데 필요한 모든 것은
--enablesmartcard 옵션을 설정하는 것입니다.
[root@server ~]# authconfig --enablesmartcard --update
기본 스마트 카드 모듈 변경, 스마트 카드가 제거될 때 시스템의 동작 설정, 로그인에 스마트 카드가 필요한 등의 다른 구성 옵션이 있습니다.
값이 0 이면 스마트 카드가 제거되면 즉시 사용자를 잠그도록 시스템에 지시합니다. 1 로 설정하면 스마트 카드가 제거되면 이를 무시합니다.
[root@server ~]# authconfig --enablesmartcard --smartcardaction=0 --update
스마트 카드 인증이 성공적으로 구성되고 테스트되면 단순한 암호 기반 인증이 아닌 사용자에 대해 스마트 카드 인증을 요구하도록 시스템을 구성할 수 있습니다.
[root@server ~]# authconfig --enablerequiresmartcard --update
주의
스마트 카드를 사용하여 시스템에 성공적으로 인증할 때까지
--enablerequiresmartcard
옵션을 사용하지 마십시오. 그렇지 않으면 사용자가 시스템에 로그인할 수 없을 수 있습니다.
4.4.2. ID 관리의 스마트 카드 인증
Red Hat Identity Management는 IdM 사용자를 위한 스마트 카드 인증을 지원합니다. 자세한 내용은 Linux 도메인 ID, 인증 및 정책 가이드의 ID 관리의 스마트 카드 인증 섹션을 참조하십시오.
4.4.3. 지원되는 스마트 카드
다음은 Red Hat Enterprise Linux에서 지원되는 스마트 카드 및 리더입니다.
스마트 카드
- athena ASECard 스마트, pkcs15-unit
- ATOS (시멘스) CardOS 5.0
- Gemalto ID Classic 230 / IM CY2 64kv2
- Gemalto Cyberflex Access 64k V2c
- Gemalto GemPCKey USB 폼 팩터 키
- G&D(Giesecke & Devrient) SmartCafe Expert 6.0 (SCP03)
- G&D(Giesecke & Devrient) SmartCafe Expert 7.0 (SCP03)
- safeNet 330J
- safeNet SC650 (SCP01)
- Siemens Card CardOS M4.4
- 유비키 4
리더
- 스마트 카드 리더가 내장된 HP 키보드 KUS1206
- redhatkey 3121 리더
- PID가 0x3022 리더인 사용자 지정 키 3121
- Reiner SCT cyberJack komfort reader
- SCR331 CCID 리더