탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 관리: 보안 서비스 Oracle Solaris 11.1 Information Library (한국어) |
Kerberos 방식은 다양한 프로토콜 메시지를 디코딩하기 위해 여러 가지 DTrace 프로브를 지원합니다. 프로브에는 KRB_AP_*, KRB_KDC_*, KRB_CRED, KRB_ERROR, KRB_PRIV, KRB_SAFE 및 일반 메시징 정보가 포함됩니다. 프로브는 권한 있는 사용자가 암호화되지 않은 Kerberos 및 응용 프로그램 데이터를 쉽게 찾아볼 수 있도록 허용함으로써 다른 프로토콜 검사자보다 확실한 장점을 갖습니다.
다음 예에서는 클라이언트가 선택한 사전 인증을 보여줍니다. 첫번째 단계는 다음과 같은 DTrace 스크립트를 만드는 것입니다.
cat krbtrace.d kerberos$target:::krb_message-recv { printf("<- krb message recved: %s\n", args[0]->krb_message_type); printf("<- krb message remote addr: %s\n", args[1]->kconn_remote); printf("<- krb message ports: local %d remote %d\n", args[1]->kconn_localport, args[1]->kconn_remoteport); printf("<- krb message protocol: %s transport: %s\n", args[1]->kconn_protocol, args[1]->kconn_type); } kerberos$target:::krb_message-send { printf("-> krb message sent: %s\n", args[0]->krb_message_type); printf("-> krb message remote addr: %s\n", args[1]->kconn_remote); printf("-> krb message ports: local %d remote %d\n", args[1]->kconn_localport, args[1]->kconn_remoteport); printf("-> krb message protocol: %s transport: %s\n", args[1]->kconn_protocol, args[1]->kconn_type); printf("\n"); } kerberos$target:::krb_kdc_req-make { printf("-> krb kdc_req make msg type: %s\n", args[0]->krb_message_type); printf("-> krb kdc_req make pre-auths: %s\n", args[1]->kdcreq_padata_types); printf("-> krb kdc_req make auth data: %s\n", args[1]->kdcreq_authorization_data); printf("-> krb kdc_req make client: %s server: %s\n", args[1]->kdcreq_client, args[1]->kdcreq_server ); } kerberos$target:::krb_kdc_req-read { /* printf("<- krb kdc_req msg type: %s\n", args[0]->krb_message_type); */ printf("<- krb kdc_req client: %s server: %s\n", args[1]->kdcreq_client, args[1]->kdcreq_server ); printf("\n"); } kerberos$target:::krb_kdc_rep-read { /* printf("<- krb kdc_rep msg type: %s\n", args[0]->krb_message_type); */ printf("<- krb kdc_rep client: %s server: %s\n", args[1]->kdcrep_client, args[1]->kdcrep_enc_server ); printf("\n"); } kerberos$target:::krb_ap_req-make { printf("-> krb ap_req make server: %s client: %s\n", args[2]->kticket_server, args[2]->kticket_enc_client ); } kerberos$target:::krb_error-read { printf("<- krb error code: %s\n", args[1]->kerror_error_code); printf("<- krb error client: %s server: %s\n", args[1]->kerror_client, args[1]->kerror_server); printf("<- krb error e-text: %s\n", args[1]->kerror_e_text); printf("\n"); }
그런 다음 다음 명령을 입력하여 Kerberos 시스템에서 권한 있는 사용자로 krbtrace.d 스크립트를 실행합니다.
# LD_BIND_NOW=1 dtrace -qs krbtrace.d -c "kinit -k" . . -> krb kdc_req make pre-auths: FX_COOKIE(133) ENC_TIMESTAMP(2) REQ_ENC_PA_REP(149)
사전 인증 유형이 출력 결과에 표시됩니다. 다양한 사전 인증 유형에 대한 자세한 내용은 RFC 4120을 참조하십시오.