79
Splunk ® Enterprise 6.5.0 Splunk Enterprise 보안 보안 생성일: 2016-09-26 오후 1027Copyright (c) 2017 Splunk Inc. All Rights Reserved

Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Embed Size (px)

Citation preview

Page 1: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Splunk® Enterprise 6.5.0

Splunk Enterprise 보안보안생성일: 2016-09-26 오후 10시 27분

Copyright (c) 2017 Splunk Inc. All Rights Reserved

Page 2: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

555

6667888899

99

10101113141617181818

1919192020

202021212222232627

Table of ContentsSplunk Enterprise 보안보안

Splunk 소프트웨어 보안Splunk 소프트웨어 설치본 보안 및 강화 방법

Splunk 보안보안 설치설치Splunk Enterprise 보안 설치네트워크에서 Splunk Enterprise 보안관리자 계정 보안불필요한 Splunk Enterprise 구성 요소 비활성화서비스 계정 보안여러 서버에 보안 암호 배포KV 스토어 포트의 보안 강화설정 강화서버 및 운영 체제에 대한 베스트 프랙티스

사용자사용자 및및 역할역할 기반기반 액세스액세스 제어제어액세스 제어를 사용한 Splunk 데이터 보안사용자 인증역할 기반 사용자 액세스 권한 설정기능을 가진 역할 정의Splunk Web에서 역할 추가 및 편집authorize.conf에서 역할 추가 및 편집관리자 콘솔 및 앱에 대한 액세스 권한 설정기존 사용자 및 역할 찾기모든 사용자 계정 삭제Splunk knowledge object에 대한 보안 액세스액세스 제어 리스트 사용

기본기본 Splunk Enterprise 인증인증Splunk 인증 설정Splunk Web을 사용하여 사용자 설정CLI를 사용하여 사용자 설정Splunk Web에서 역할에 사용자 추가

LDAP을을 사용하여사용하여 인증인증LDAP을 사용하여 사용자 인증 설정LDAP을 사용하여 Splunk 사용자 역할 관리LDAP 사전 요구 사항 및 고려 사항TLS 인증서로 LDAP 보안다중 LDAP 서버에서 Splunk Enterprise의 작동 방식Splunk Web을 사용하여 LDAP 설정Splunk Web에서 LDAP 그룹을 Splunk 역할에 매핑설정 파일을 사용하여 LDAP 설정

Page 3: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

28292930

30303131

313232333435363738384040414143

44444445

46464749

494950525353

53545556

설정 파일에서 LDAP 그룹 및 사용자를 Splunk 역할에 매핑LDAP 설정 테스트Splunk 인증에서 LDAP으로 변환LDAP 사용자 제거의 베스트 프랙티스

다중다중 요인요인 인증인증Duo Security를 사용한 2 요인 인증Duo Security 2 요인 인증을 사용하도록 Splunk 설정설정 파일을 사용하여 Duo 2 요인 인증 설정

SAML을을 통한통한 SSO(Single Sign-On)를를 사용한사용한 인증인증SAML을 사용한 SSO(Single Sign-On) 설정PingIdentity를 ID 제공자로 사용하여 SSO 설정Okta를 ID 제공자로 사용하여 SSO 설정AzureAD 또는 AD FS를 ID 제공자로 사용하여 SSO 설정OneLogin을 ID 제공자로 사용하여 SSO 설정Optimal을 ID 제공자로 사용하여 SSO 설정CA siteminder에서 SSO 설정TLS 인증서로 SSO 보안SAML SSO 설정SSO 고급 설정 구성SAML 그룹을 역할에 매핑역할 매핑 수정 또는 제거설정 파일에서 SAML SSO 설정SAML SSO 문제 해결

프록시프록시 SSO를를 사용한사용한 인증인증ProxySSOProxySSO 설정프록시 SSO 문제 해결

리버스리버스 프록시를프록시를 통한통한 SSO(Single Sign-On)를를 사용한사용한 인증인증리버스 프록시를 사용한 SSO(Single Sign-On)리버스 프록시를 사용한 SSO(Single Sign-On) 설정리버스 프록시 SSO 문제 해결

스크립트스크립트 기반기반 인증인증외부 시스템을 사용하여 사용자 인증 설정인증 스크립트 만들기authentication.conf 편집PAM 인증 사용getSearchFilter 함수를 사용하여 검색 시간에 필터링

SSL을을 사용한사용한 Splunk Enterprise 통신통신 보안보안SSL을 사용한 Splunk Enterprise 보안Windows 및 Linux에서 SSL 도구 사용허용 및 제한된 SSL 버전 설정

Page 4: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

575758585859

59596061626363

6464646465

65656566

67676868

6969717173747779

브라우저와브라우저와 Splunk Web 간간 통신통신 보안보안Splunk Web 보안Splunk Web을 사용하여 암호화(https) 설정web.conf를 사용하여 암호화(https) 설정인증서를 사용하여 Splunk Web 보안Splunk Web 인증 문제 해결

Splunk 포워더와포워더와 인덱서인덱서 간간 통신통신 보안보안포워더에서 전송하는 데이터 보안기본 인증서를 사용하도록 Splunk 전달 설정자체 인증서를 사용하도록 Splunk 전달 설정기타 설정 옵션설정의 유효성 검사포워더와 인덱서 간 인증 문제 해결

분산분산 환경환경 보안보안Splunk 간 통신 보안분산 검색 헤드 및 피어 보안인증서 인증을 사용하여 배포 서버 및 클라이언트 보안Pass4SymmKey로 클러스터 보안

Splunk Enterprise 작업작업 감사감사 (audit)Splunk Enterprise를 사용하여 시스템 작업 감사(audit)감사(audit) 이벤트를 사용하여 Splunk Enterprise 보안데이터 무결성 관리

Splunk Enterprise 보안보안 베스트베스트 프랙티스프랙티스위험한 명령어에 대한 안전 장치Splunk 서버 토큰검색에서 악성 CSV 파일 차단

부록부록 A: SSL 인증서를인증서를 가져오는가져오는 방법방법자체 서명 인증서를 만드는 방법다음 단계타사에서 서명한 인증서를 가져오는 방법Splunk 인증에 사용할 서명된 인증서를 준비하는 방법Splunk Web용 자체 서명 인증서Splunk Web용 타사 서명 인증서 가져오기암호화 스위트 결정

Page 5: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Splunk Enterprise 보안보안Splunk 소프트웨어소프트웨어 보안보안Splunk 설치 도중과 설치 후에 설정과 데이터를 모두 안전하게 보호하기 위한 조치를 취해야 합니다. Splunk 설치본을 안전하게 보호하기 위한 적절한 조치를 취하면 공격을 당할 가능성을 줄이고 대부분의 취약점으로 인한 위험과 영향을 완화할 수있습니다. 물리 서버가 안전하고 암호가 올바르게 관리되는지 확인하는 등의 일부 조치는 간단합니다. 그 외에 암호화를 설정하는 등의 조치는 좀 더 복잡하지만, 데이터의 무결성을 유지하는 데 중요합니다.

이 매뉴얼에서는 설정에 포함되어야 하는 보안의 다음 분야에 대해 모두 설명합니다.

Splunk 소프트웨어를 안전하게 설치원하는 인증 방식을 사용하여 사용자 및 역할 기반 액세스 제어 관리인증서를 사용하여 데이터가 가장 취약한 상태에 노출되는 Splunk Web과 인덱서 및 포워더 보안암호화를 사용하여 설정 정보 보안감사(audit) 기능을 사용하여 시스템 작업 추적

Splunk 소프트웨어 설치본 보안 및 강화 방법을 설정과 데이터 보안을 극대화하기 위한 체크리스트와 로드맵으로 사용하십시오.

Splunk 소프트웨어소프트웨어 설치본설치본 보안보안 및및 강화강화 방법방법Splunk 소프트웨어 설정의 보안을 강화하고 데이터를 보호하기 위해 필요한 모든 조치를 이행하는 데 도움이 되는 체크리스트와 로드맵으로 이 항목을 사용하십시오.

인증된인증된 사용자사용자 설정설정 및및 사용자사용자 액세스액세스 관리관리관리자 암호를 안전하게 보호하고 관리 작업에만 암호를 사용합니다.액세스 제어 리스트를 사용하여 사용자 액세스를 제한합니다.사용자를 설정하고 역할 및 기능을 설정하여 사용자 액세스를 제어합니다.다음 방법 중 하나로 사용자 인증을 설정합니다.

Splunk 기본 제공 시스템(Splunk 기본 제공 시스템을 사용하여 사용자 인증 설정 참조)LDAP(LDAP을 사용하여 사용자 인증 설정 참조)PAM 또는 RADIUS와 같은 외부 인증 시스템과 함께 사용하는 스크립트 기반 인증 API(외부 시스템을 사용하여 사용자 인증 설정 참조)

SAML을 통한 SSO(Single Sign on)를 사용하여 안전한 1단계 사용자 로그인을 설정합니다.

인증서인증서 및및 암호화를암호화를 사용하여사용하여 Splunk 소프트웨어소프트웨어 설정을설정을 위한위한 통신통신 보안보안Splunk 소프트웨어는 암호화에 사용되는 일련의 기본 인증서 및 키와 함께 제공됩니다. Splunk에서는 자체 인증서를 배포하고 설정하여 통신을 안전하게 보호할 것을 권장합니다. 이 매뉴얼의 SSL을 사용한 Splunk 보안을 참조하십시오.

취약성과취약성과 위험을위험을 줄이도록줄이도록 Splunk 소프트웨어소프트웨어 인스턴스인스턴스 강화강화인덱서 클러스터와 검색 헤드 클러스터 보안여러 서버의 암호를 설정하여 일관적인 인증 보장서비스 계정 보안KV 스토어 포트 강화

시스템시스템 정기정기 감사감사 (Audit)

감사(audit) 이벤트에는 Splunk 설정에서 변경한 사항에 대한 정보가 포함됩니다. 이 정보를 통해 변경 사항을 구현한 위치및 시간과 작업자의 ID를 파악할 수 있습니다. 감사(audit) 이벤트를 활용하면 보안이 개선되며, 다음과 같은 장점도 있습니다.

정기적인 시스템 감사(audit)를 통해 사용자 및 관리자 액세스를 모니터링하고 안전하지 않은 습관이나 보안 침해의 단서가 될 수 있는 기타 작업도 모니터링할 수 있습니다.

Splunk에서 수행되는 작업(검색 또는 설정 변경 등)을 계속 감시합니다. 인시던스 대응 중에 이 정보를 사용하여 컴플라이언스를 보고하고, 문제를 해결하고 원인을 파악할 수 있습니다.

감사(audit) 이벤트는 분산 Splunk 설정에서 여러 Splunk 서버의 설정 및 액세스 제어 변경 사항을 탐지하는 데 특히유용합니다.

5

Page 6: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

자세한 내용은 이 매뉴얼의 Splunk Enterprise 작업 감사(audit)를 참조하십시오.

Splunk가 지원하는 대부분의 운영 체제에서 즉시 사용 가능한 파일 시스템 기반 모니터링을 사용합니다.모니터링에 대한 자세한 내용은 데이터 가져오기 매뉴얼의 파일 및 디렉터리 모니터링을 참조하십시오.

Splunk 보안보안 설치설치Splunk Enterprise 보안보안 설치설치Splunk Enterprise를 다운로드하고 설치할 때 다음 절차를 수행하십시오.

무결성무결성 확인확인Splunk Enterprise가 해시를 비교하기 위해 MD5(Message Digest 5) 및 SHA-512(Secure Hash Algorithm-512) 같은 해시 기능을 사용하여 다운로드하는지 확인하십시오. 신뢰할 수 있는 OpenSSL 버전을 사용하십시오.

MD5

1. https://www.splunk.com/en_us/download/splunk-enterprise/thank-you-for-downloading.html

2. 표시줄 안의 MD5 다운로드 링크를 클릭합니다.

3. 결과를 비교합니다.

SHA512

1. 다운로드 링크 이름을 복사합니다.

2. SHA512를 추가합니다.

3. https://download.splunk.com/products/splunk/releases/6.4.3/windows/splunk-6.4.3-b03109c2bad4-x64-release.msi.sha512

서명서명 확인확인다음과 같이 Splunk GnuPG 공개 키를 사용하여 다운로드한 RPM 패키지의 신뢰성을 확인할 수 있습니다.

1. GnuPG 공개 키 파일을 다운로드합니다(링크는 TLS에 있음).

2. 다음을 사용하여 키를 설치합니다.

rpm --import <filename>

3. 다음을 사용하여 패키지 서명을 확인합니다.

rpm -K <filename>

네트워크에서네트워크에서 Splunk Enterprise 보안보안상황에 따라 Splunk Enterprise 포트가 공격에 취약해질 수 있습니다. Splunk Enterprise 설정을 인터넷으로부터 차단하여액세스하지 못하도록 하십시오.

가능하면 호스트 기반 방화벽을 사용하여 Splunkweb, 관리 및 데이터 포트에 대한 액세스를 제한하십시오. SplunkEnterprise를 호스트 기반 방화벽 안에서 보호하십시오. 원격 사용자의 경우 가상 사설 네트워크(VPN)에서 SplunkEnterprise에 액세스하도록 하십시오.

다음과 같은 방법으로 Splunk Enterprise를 공격으로부터 보호할 수도 있습니다.

이 포트를 호스트 방화벽 뒤에서 로컬 호출로만 제한하여 CLI 보안을 제한하십시오.필요한 경우가 아니면 모든 포트에서 포워더에 대한 액세스를 허용하지 마십시오.Splunk Enterprise를 신뢰할 수 있는 컴퓨터에서만 액세스할 수 있는 격리된 네트워크 세그먼트에 설치하십시오.포트 액세스를 연결이 필요한 경우로만 제한하십시오. 연결이 필요한 경우는 다음과 같습니다.

사용자와 관리자가 Splunkweb에 액세스해야 하는 경우(기본값 TCP 포트 8000)검색 헤드가 관리 포트를 통해 검색 피어에 액세스해야 하는 경우(기본값 TCP 포트 8089)배포 클라이언트가 관리 포트를 통해 배포 서버에 액세스해야 하는 경우(기본값 TCP 포트 8089)

6

Page 7: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

포워더가 인덱스 서버 데이터 포트에 액세스해야 하는 경우(기본값 TCP 포트 9997)원격 CLI 호출이 관리 포트를 사용하는 경우

KV 스토어 포트를 강화합니다. KV 스토어의 포트 액세스를 제한하여 환경 보안을 설정합니다. 기본적으로 8191번 포트가 네트워크에 개방됩니다. 검색 헤드 클러스터링을 사용하는 경우 클러스터의 다른 구성원들이 KV 스토어 데이터를 복제하는 용도로만 포트를 열어야 합니다. (KV 스토어 포트는 검색 헤드 클러스터의 다른 구성원들만 액세스할 수있도록 해야 하며, 다른 역할의 액세스는 완전히 제한할 수 있습니다.)

관리자관리자 계정계정 보안보안Splunk Enterprise 라이선스의 기본 관리 계정 및 암호는 admin/changeme입니다. Splunk는 시스템 보안을 위해 기본 암호를 변경할 것을 적극 권장합니다. 일반적인 권장 암호 설정 방법에 따라 복잡한 암호로 변경해야 합니다.

단어, 숫자, 기호, 대문자 및 소문자의 조합을 사용하십시오.복잡성이 중요하지만, 길이가 더욱 중요합니다. 최소 10자 이상이 권장됩니다.생년월일, 주민등록번호, 전화번호, 또는 가족 이름처럼 다른 사람들이 생각보다 쉽게 알아낼 수 있는 신상 정보와 관련된 암호를 선택하지 마십시오.사전에서 찾을 수 있는 단어를 사용하지 마십시오.다른 곳에서 사용 중이거나 사용했던 암호를 사용하지 마십시오.

Splunk Web 사용사용관리자의 기본 암호를 변경하려면:

1. Splunk Web에 관리자로 로그인합니다.

2. 인터페이스의 오른쪽 상단에서 설정설정을 클릭합니다.

3. 화면의 사용자 및 인증 섹션에서 액세스액세스 제어제어를 클릭합니다.

4. 사용자사용자를 클릭합니다.

5. 관리자관리자를 클릭합니다.

6. 암호를 업데이트하고 저장저장을 클릭합니다.

Splunk CLI 사용사용Splunk CLI 명령어는 다음과 같습니다.

splunk edit user

중요중요 : 암호를 변경하려면 먼저 기존 암호를 인증해야 합니다. CLI를 통해 Splunk에 로그인하거나 -auth 매개변수를 사용하십시오. 예를 들어, 다음 명령어는 관리자 암호 changeme를 foo로 변경합니다.

splunk edit user admin -password foo -role admin -auth admin:changeme

참고참고 : *nix 운영 체제의 경우 쉘에서 일부 특수 문자가 명령 지시문으로 해석됩니다. 이러한 특수 문자를 이스케이프하려면각 특수 문자 앞에 \를 넣거나 암호를 작은따옴표(')로 묶어야 합니다. 예:

splunk edit user admin -password 'FFL14io!23ur$' -role admin -auth admin:changeme

또는

splunk edit user admin -password FFL14io!23ur\$ -role admin -auth admin:changeme

Windows에서는 캐럿(^)을 사용하여 예약된 쉘 문자를 이스케이프하거나 암호를 큰따옴표(")로 묶으십시오. 예:

splunk edit user admin -password "FFL14io!23ur>" -role admin -auth admin:changeme

또는

splunk edit user admin -password FFL14io!23ur^> -role admin -auth admin:changeme

참고참고 : 여러 서버의 암호를 모두 동시에 재설정할 수도 있습니다. 관련 절차는 "여러 서버에 보안 암호 배포"를 참조하십시오.

7

Page 8: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

불필요한불필요한 Splunk Enterprise 구성구성 요소요소 비활성화비활성화단일 서버 Splunk Enterprise 배포의 경우:

포워더에서 Splunkweb을 실행해서는 안 되고 TCP 또는 UDP 포트, 또는 다른 Splunk Enterprise 인스턴스로부터데이터를 수신하도록 Splunk 포워더를 설정해서는 안 됩니다.

다중 서버 Splunk Enterprise 배포의 경우:

검색 헤드에서 TCP 또는 UDP 포트, 또는 다른 Splunk Enterprise 인스턴스로부터 데이터를 수신해서는 안 됩니다.분산 환경의 인덱서에서 사용자가 Splunkweb에 로그인하지 않을 경우 인덱서에서 Splunkweb을 비활성화해야 합니다.포워더에서 Splunkweb을 실행해서는 안 되고 TCP 또는 UDP 포트, 또는 다른 Splunk 인스턴스로부터 데이터를 수신하도록 Splunk 포워더를 설정해서는 안 됩니다.

서비스서비스 계정계정 보안보안Splunk 소프트웨어를 루트 또는 관리자와 같이 권한이 있는 계정이 아닌 권한이 없는 사용자로 실행하여 최소 권한의 원칙을 실행하십시오.

Unix 또는 Linux의 경우 PKG 또는 RPM 패키지에서 생성한 "splunk" 사용자를 사용하거나 $SPLUNK_HOME에 대한 권한만 있는 사용자 지정 사용자를 생성합니다.Windows의 경우 보통은 로컬 시스템 컨텍스트를 선택하는 것이 가장 좋습니다. 그러나 WMI와 같은 Windows 통신채널을 통해 통신해야 할 경우에는 제한된 액세스 계정을 사용하십시오.

여러여러 서버에서버에 보안보안 암호암호 배포배포처음 시작할 때 Splunk Enterprise는 $SPLUNK_HOME/etc/auth/splunk.secret 파일을 만듭니다. 이 파일에는 설정 파일에서 다음과 같은 몇 가지 인증 정보를 암호화하는 데 사용되는 키가 있습니다.

web.conf: 모든 인스턴스의 SSL 암호authentication.conf: LDAP 암호(있을 경우)inputs.conf: splunktcp-ssl을 사용하는 경우 SSL 암호outputs.conf: splunktcp-ssl을 사용하는 경우 SSL 암호server.conf: pass4symmkey(있는 경우)

Splunk 소프트웨어는 시작 시에 이러한 설정 중 하나에서 일반 텍스트 암호를 발견할 경우 암호화된 암호를 사용하여 해당로컬 폴더에 설정을 만들거나 덮어씁니다.

참고참고 : 기본 앱 파일에서 pass4symmkey 또는 SSLPassword를 지정하면 재시작 후에 파일의 로컬 버전에서 암호가 난독처리됩니다. 기본 파일 버전은 일반 텍스트로 유지됩니다. 그러나 curl 또는 splunkd endpoint를 사용하여 파일을 리스트로표시하면 암호가 암호화되어 표시됩니다.

Splunk 소프트웨어를 여러 서버에 배포할 경우 다음을 수행하여 이러한 암호를 암호화하고 배포 환경 전체에서 일관된 암호를 사용할 수 있도록 하십시오. 이 단계는 Splunk를 처음 배포할 때 수행해야 하며 또한 인스턴스에 새 암호가 필요할 때마다수행해야 합니다.

1. Splunk 인스턴스 하나를 설정하고 필요에 따라 암호를 수정합니다. (이번이 첫 번째 설정일 경우 다른 인스턴스는 아직 시작하지 마십시오.)

2. 설정된 인스턴스를 재시작하여 파일의 암호를 암호화합니다. 암호 정보는 재시작 단계에서 암호화될 때까지 일반 텍스트로 저장됩니다.

3. 설정된 인스턴스의 암호화된 splunk.secret 파일을 다른 모든 인스턴스에 복사합니다.

4. 배포 후에 수정된 파일을 배포할 경우 파일을 복사한 새 인스턴스를 모두 시작하거나 기존 인스턴스를 재시작합니다.

참고참고 : 이 절차는 검색 헤드 클러스터에 해당되지 않습니다. 검색 헤드 클러스터에서는 클러스터를 처음 배포하는 도중에 캡틴이 splunk.secret 파일을 다른 모든 클러스터 구성원에 복제하므로 수동으로 복사하지 않아도 됩니다. 클러스터는 정상적인 작업의 일부로서 앱이 자체 용도를 위해 저장하는 모든 자격 증명을 자동으로 복제하기도 합니다.

KV 스토어스토어 포트의포트의 보안보안 강화강화환경 보안을 설정할 때 KV 스토어의 포트 액세스를 제한하는 것이 좋습니다. 기본적으로 8191번 포트가 네트워크에 개방됩니다. 가능하면 이 포트를 제한하는 것이 좋습니다.

검색 헤드 클러스터링을 사용하는 경우 클러스터의 다른 구성원들이 KV 스토어 데이터를 복제하는 용도로만 포트를 열어야합니다.

8

Page 9: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

KV 스토어를 사용한 작업에 대한 자세한 내용은 앱 key value 스토어를 참조하십시오.

설정설정 강화강화설정의 보안을 유지하려면 다음 사항을 고려하십시오.

subversion 등의 설정 관리 도구를 사용하여 Splunk 설정의 버전을 관리하십시오.Splunk 설정 변경 내용을 기존의 변경 관리 프레임워크에 통합하십시오.자체적으로 설정 파일을 모니터링하고 파일이 변경된 경우 경고를 표시하도록 Splunk Enterprise를 설정하십시오.버전 관리를 사용하십시오. Git는 버전 관리의 유용한 사례일 수 있습니다.설정을 공개 책임으로 게시하지 마십시오.

서버서버 및및 운영운영 체제에체제에 대한대한 베스트베스트 프랙티스프랙티스운영운영 체제체제보안을 극대화하기 위해, Splunk 소프트웨어를 실행하는 모든 컴퓨터의 운영 체제를 강화하십시오.

소속 조직에 내부 강화 표준이 없는 경우 CIS 강화 벤치마크를 참조하십시오.최소한 쉘/명령줄의 Splunk 서버에 대한 액세스를 제한하십시오.

Splunk

Splunk 인스턴스를 중복 설정하여 동일한 데이터 복사본을 인덱싱하도록 하십시오.Splunk 데이터 및 설정을 정기적으로 백업하십시오.백업본을 사용하여 Splunk Enterprise 복원을 시도하는 복구 테스트를 주기적으로 수행하십시오.Splunk가 해시를 비교하기 위해 MD5와 같은 해시 기능을 사용하여 다운로드하는지 확인하십시오. 예는 다음과 같습니다.

./openssl dgst md5 <filename-splunk-downloaded.zip>

클라이언트클라이언트 브라우저브라우저지원되는 최신 버전의 브라우저(예: Firefox 또는 Internet Explorer)를 사용하십시오.Firefox 또는 Internet Explorer 8 필터에 noscript와 같은 클라이언트측 JavaScript 차단 프로그램을 사용하여 XSS,XSRF 및 이와 유사한 공격으로부터 Splunk를 보호하십시오.사용자가 최신 플래시 버전을 설치하도록 하십시오.

물리적물리적 보안보안모든 Splunk 서버에 대한 물리적 액세스를 보안하십시오.Splunk 최종 사용자가 물리적 보안과 endpoint 보안에 만전을 기울이도록 하십시오.

Splunk Web 사용자 세션에 대해 제한 시간을 짧게 설정하십시오. 자세한 내용은 제한 시간 설정을 참조하십시오.

추가적인추가적인 설정설정 보안보안 기회기회subversion 등의 설정 관리 도구를 사용하여 Splunk 설정의 버전을 관리하십시오.Splunk 설정 변경 내용을 기존의 변경 관리 프레임워크에 통합하십시오.자체적으로 설정 파일을 모니터링하고 파일이 변경된 경우 경고를 표시하도록 Splunk Enterprise를 설정하십시오.

사용자사용자 및및 역할역할 기반기반 액세스액세스 제어제어액세스액세스 제어를제어를 사용한사용한 Splunk 데이터데이터 보안보안역할 기반 액세스 제어를 사용하면 Splunk 데이터를 유연하고 효율적으로 보호할 수 있습니다.

Splunk Enterprise에서 사용자가 데이터를 볼 수 없게 마스킹하는 방법은 관계 데이터베이스가 역할 기반 액세스 제어를 관리하는 방법과 매우 유사합니다. 어떤 경우에는 전체 데이터 세그먼트가 필요할 수도 있습니다. 그 외의 경우에는 프레젠테이션 단계에서 검색과 결과를 제어(대부분의 Splunk 앱에서 수행할 수 있음)하여 보안 요구 사항을 충족할 수 있습니다.

구성을 설정하는 방법 및 역할 기반 액세스가 요구 사항에 적합한지 여부를 결정할 때 본인의 사례를 고려하십시오. 예는 다음과 같습니다.

중요한 데이터가 있는 시스템에 대한 액세스만 허용해도 법적인 위험이 발생하는 매우 민감한 데이터의 경우, 둘 이상의 Splunk Enterprise 인스턴스를 설치하고 설정한 다음 해당 대상에 대한 데이터로 각 인스턴스를 설정하는 방법을

9

Page 10: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

고려해 보십시오.

의도적으로 또는 무심코 중요한 데이터를 다른 사용자에게 노출시켜 법적 분쟁이 발생하게 되는 경우 권한이 있는 계정과 권한이 없는 계정에 대한 인덱스를 별도로 만들고 해당 계정에 각 액세스 권한 레벨에 대해 생성된 역할을 할당하는 것을 고려해 보십시오.

보안 문제가 있지만 법적 위험이 크지 않은 경우 앱을 사용하여 액세스를 제한할 수 있습니다. 예를 들어 정적 대시보드를 포함한 앱을 만들고 해당 대시보드에 대한 액세스 권한이 낮은 역할을 할당하여 역할에 할당된 사용자가 액세스할 수 있는 정보 유형을 제한할 수 있습니다.

필드 암호화, 검색 제외 및 수정된 데이터에 대한 필드 앨리어싱도 제한된 검색 사례를 강화하는 좋은 방법입니다.

사용자사용자 인증인증Splunk Enterprise 인증을 사용하면 사용자를 추가하고, 추가한 사용자에게 역할역할을 할당하며 조직에서 필요한 경우 역할에따른 사용자 지정 권한을 부여할 수 있습니다.

인증 시스템 옵션은 다음과 같습니다.

Splunk 인증: Admin, Power 및 User가 기본적으로 제공되고, 기능기능 리스트를 사용하여 역할을 직접 정의할 수 있습니다. Enterprise 라이선스가 있는 경우 Splunk 인증이 기본적으로 활성화됩니다. 자세한 내용은 Splunk 기본 제공시스템을 사용하여 사용자 인증 설정을 참조하십시오.

LDAP: Splunk Enterprise는 내부 인증 서비스 또는 기존 LDAP 서버를 이용한 인증을 지원합니다. 자세한 내용은LDAP을 사용하여 사용자 인증 설정을 참조하십시오.

스크립트 기반 인증 API: 스크립트 기반 인증을 사용하여 Splunk 인증을 RADIUS 또는 PAM과 같은 외부 인증 시스템에 통합합니다. 자세한 내용은 외부 시스템을 사용하여 사용자 인증 설정을 참조하십시오.

참고참고 : Splunk Free에서는 기본 인증, LDAP 및 스크립트 기반 인증을 포함한 인증을 사용할 수 없습니다.

Splunk Web에서, 또는 authorize.conf를 편집하여 사용자를 만들고 다양한 역할에 유연하게 할당할 수 있습니다. 역할 및기능에 대한 자세한 내용은 역할 기반 사용자 액세스를 참조하십시오.

중요중요 : Splunk 인증은 외부 시스템에 우선합니다. 사용자 인증 순서는 다음과 같습니다.

1. Splunk 인증2. LDAP 또는 스크립트 기반 인증(활성화된 경우)

역할역할 기반기반 사용자사용자 액세스액세스 권한권한 설정설정Splunk Enterprise를 실행할 경우 암호와 함께 사용자를 만들고 이 사용자에게 역할역할을 할당할 수 있습니다. 역할은 해당 역할에 할당된 사용자의 액세스 및 권한권한을 결정합니다.

사용자에 대한 자세한 내용은 사용자 인증을 참조하십시오.

미리 정의된 역할:

admin: 사용자, 개체 및 설정 전체 또는 대부분을 관리할 관리자에게 사용되며 할당되는 대부분의 기능기능이 미리 정의된상태로 제공됩니다.power: 모든 공유 개체(저장된 검색 등)와 경고, 태그 이벤트 및 기타 유사한 작업을 편집할 수 있습니다.user: 자체 소유한 저장된 검색을 만들거나 편집할 수 있고, 검색을 실행할 수 있으며, 자체 기본 설정을 편집할 수 있고, event type을 만들거나 편집할 수 있으며 기타 유사한 작업을 수행할 수 있습니다.can_delete: 사용자가 키워드별로 삭제할 수 있습니다. 이 기능은 삭제 검색 연산자를 사용할 경우에 필요합니다.sc_admin(클라우드에만 해당): 사용자와 역할을 만들기 위해 사용할 수 있지만, 다른 관리 기능을 부여하지 않습니다.

또한 사용자 지정 역할을 만들고 이 역할에 사용자를 할당할 수 있습니다. 사용자 지정 역할을 만들 경우 다음 사항을 지정합니다.

허용되는 검색: 해당 역할에 할당된 사용자가 수행할 수 있는 검색을 정의할 수 있습니다.역할 상속: 역할이 하나 이상의 기존 역할에서 특정 속성을 상속할 수 있습니다. 역할 상속은 이 항목의 뒷부분에서 설명합니다.기능 할당: 해당 역할에 할당된 사용자에게 허용되는 작업(암호 변경, 포워더 설정 변경 등)을 지정할 수 있습니다. 자세한 내용은 기능을 가진 역할 정의를 참조하십시오.허용되는 인덱스 및 기본 인덱스 설정: 특정 인덱스에 대한 액세스를 제한하고 기본적으로 검색되는 인덱스를 설정할수 있습니다.

Splunk Web에서 역할을 만들려면 Splunk Web에서 역할 추가 및 편집을 참조하십시오. authorize.conf를 편집하여 역할을만들려면 authorize.conf에서 역할 추가 및 편집을 참조하십시오.

10

Page 11: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

상속상속일반적으로 여러 역할의 구성원은 가장 광범위한 권한을 가진 역할에서 속성을 상속합니다.

검색검색 필터필터 제한을제한을 상속하는상속하는 방법방법역할을 만들고 이 역할이 다른 역할의 특성을 상속할 수 있습니다. 여러 역할에 할당된 사용자는 할당된 여러 역할에서 속성을 상속합니다.

검색 필터의 경우 사용자가 다른 검색 필터를 사용하는 역할에 할당되면 필터가 모두 결합되어 각 역할의 제한 사항이 적용됩니다.

예를 들어, Power 및 User 역할은 기본적으로 검색을 제한하는 검색 필터가 정의되어 있지 않습니다. 사용자가 이 역할에 다른 필터(예: srchFilter=x)가 정의된 역할을 결합할 경우 필터가 정의되지 않은 역할과 연결하더라도 필터가 정의된 역할의제한 사항을 상속합니다.

허용된허용된 인덱스를인덱스를 상속하는상속하는 방법방법허용된 인덱스의 경우 사용자는 사용자에게 할당된 역할에 부여되는 최상위 수준의 액세스 권한을 제공받습니다.

예를 들어, 사용자가 특정 인덱스에 대한 액세스가 제한되는 "simple user" 역할에 할당되고, 더 많은 기능을 수행하고 모든인덱스에 액세스할 수 있는 "advanced user" 역할에도 할당된 경우 사용자는 모든 인덱스에 액세스할 수 있습니다."advanced user"의 기능만 허용하고 "simple user"에 정의된 단일 인덱스에 대한 액세스는 계속 제한하려면 해당 사용자를위해 특별히 새 역할을 만들어야 합니다.

기능을기능을 상속하는상속하는 방법방법기능의 경우 사용자는 사용자에게 할당된 역할에 부여되는 최상위 수준의 기능을 제공받습니다.

예를 들어, 사용자가 대부분의 기능을 가지는 "admin" 역할에 할당되고 다른 일련의 기능이 포함된 "advanced user" 역할에도 할당될 경우 사용자는 두 역할의 기능을 모두 가집니다.

기능을기능을 가진가진 역할역할 정의정의Splunk Web에서 사용자를 만드는 경우 해당 사용자를 역할 하나에 할당합니다. 자세한 내용은 "역할 기반 사용자 액세스"를 참조하십시오.

각 역할에는 기능기능 집합이 포함됩니다. 새 역할, 기존 역할 및 기본 역할에 기능을 추가하거나 편집할 수 있습니다. 예를 들어,입력을 추가하거나 저장된 검색을 편집할 수 있는 기능을 역할에 지정할 수 있습니다.

Splunk Web에서 역할에 기능을 추가하거나 변경하려면 "Splunk Web에서 역할 추가 및 편집"을 참조하십시오.authorize.conf를 편집하여 역할을 만들려면 "authorize.conf에서 역할 추가 및 편집"을 참조하십시오.

사용사용 가능한가능한 기능기능 리스트리스트다음은 역할에 추가할 수 있는 기능 리스트입니다. 이 리스트의 최신 버전은 authorize.conf에서 확인하십시오. Admin 역할에는 "delete_by_keyword" 기능을 제외하고 이 리스트의 모든 기능이 있습니다.

기능기능 이름이름 수행할수행할 수수 있는있는 작업작업accelerate_datamodel 데이터 모델 가속을 활성화 또는 비활성화합니다.

accelerate_search보고서 가속화를 활성화 또는 비활성화합니다. 이 기능을 사용하기 위해서는 역할에schedule_search 기능도 있어야 합니다.

admin_all_objects시스템의 모든 개체(사용자 개체, 검색 작업 등)에 액세스하고 개체를 수정합니다(개체에 설정된 제한을 재정의).

change_authentication 인증 설정을 변경하고 인증을 다시 로드합니다.

change_own_password 사용자가 자신의 암호를 변경할 수 있습니다.

delete_by_keyword 검색에서 "delete" 연산자를 사용합니다.

edit_deployment_client 배포 클라이언트 설정을 변경합니다.

edit_deployment_server 배포 서버 설정을 변경합니다.

edit_dist_peer 분산 검색 피어를 추가 및 편집합니다.

edit_forwarders 포워더 설정을 변경합니다.

11

Page 12: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

edit_httpauths 사용자 세션을 편집 및 종료합니다.

edit_indexer_cluster 인덱서 클러스터를 편집합니다.

edit_input_defaults 입력 데이터의 기본 호스트 이름을 변경합니다.

edit_modinput_perfmon perfmon.conf에서 모듈식 입력을 편집합니다.

edit_modinput_admon admon.conf에서 모듈식 입력을 편집합니다.

edit_monitor 파일 모니터링을 위한 입력 정보를 추가하고 설정을 편집합니다.

edit_roles 역할을 편집하고 사용자/역할 매핑을 변경합니다.

edit_roles_grantable

역할을 편집하고 제한된 역할 집합에 대해 사용자/역할 매핑을 변경합니다. 다른 사용자에게 역할을 할당할 수 있습니다. 이 기능을 제한하려면 authorize.conf에서 grantableRoles를설정하십시오. 예: grantableRoles = role1;role2;role3

edit_scripted 스크립트 기반 입력을 만들고 편집합니다.

edit_search_head_clustering 검색 헤드 클러스터링 설정을 편집합니다.

edit_search_server 제한 시간, 하트비트, 차단 리스트와 같은 일반 분산 검색 설정을 편집합니다.

edit_search_scheduler 검색 스케줄러를 편집합니다.

edit_server 서버 이름, 로그 레벨 등과 같은 일반 서버 설정을 편집합니다.

edit_server_crl 서버 컨트롤을 편집합니다.

edit_splunktcp 다른 Splunk 인스턴스에서 TCP 입력을 수신하는 설정을 변경합니다.

edit_splunktcp_ssl Splunk TCP 입력에 대한 SSL 관련 설정을 나열하거나 편집합니다.

edit_splunktcp_token Splunktcp 토큰을 편집합니다.

edit_sourcetypes> sourcetype을 편집합니다.

edit_tcp 일반 TCP 입력 수신에 대한 설정을 변경합니다.

edit_tcp_token TCP 토큰을 변경합니다. 관리 기능이므로 시스템 관리자에게만 할당해야 합니다.

edit_telemetry_settings제품 계측에 동의하거나 동의를 철회합니다. 관리자 매뉴얼의 성능 데이터 공유를 참조하십시오.

edit_token_http http 토큰을 편집합니다.

edit_udp UDP 입력 설정을 변경합니다.

edit_user

사용자를 만들거나 편집하거나 제거합니다. edit_user 기능이 있는 역할은 다른 사용자에게역할을 할당할 수 있습니다. 이 기능을 제한하려면 authorize.conf에서 grantableRoles를 설정하십시오. 예: grantableRoles = role1;role2;role3

edit_view_html HTML 기반 뷰를 만들거나 편집하거나 수정합니다.

edit_web_settings web.conf 설정을 변경합니다.

embed_report 보고서를 첨부하고, 첨부 보고서에 대해 첨부 기능을 비활성화합니다.

export_results_is_visible Splunk Web의 결과결과 내보내기내보내기 단추를 표시하거나 숨깁니다. 기본값은 단추 표시입니다.

extra_x509_validation 추가 x509 유효성 검사를 추가합니다.

get_diag /streams/diag endpoint를 사용하여 Splunk 인스턴스에서 원격 diag를 얻습니다.

get_metadata "메타데이터" 검색 프로세서를 사용합니다.

get_typeahead 자동 검색을 사용합니다.

indexes_edit 파일 크기, 메모리 제한과 같은 인덱스 설정을 변경합니다.

input_file 파일을 입력으로 추가합니다.

license_tab 라이선스에 액세스하고 라이선스를 변경합니다.

license_edit 라이선스를 편집합니다.

license_view_warnings 라이선스 경고를 봅니다.

list_deployment_client 배포 클라이언트 설정을 봅니다.

list_deployment_server 배포 서버 설정을 봅니다.

list_forwarders 포워더 설정을 봅니다.

12

Page 13: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

list_httpauths 사용자 세션을 봅니다.

list_inputs 파일, TCP, UDP, 스크립트 등의 입력을 포함하여 다양한 입력 리스트를 봅니다.

list_introspection 인트로스펙션 파일을 봅니다.

list_indexer_cluster 인덱서 클러스터 리스트를 봅니다.

list_search_scheduler 검색 스케줄러 작업 리스트를 봅니다.

list_settings 모든 구성 설정을 봅니다.

list_storage_passwords 저장소 암호 리스트를 봅니다.

output_file 파일을 출력으로 추가합니다.

pattern_detect 검색 뷰에서 패턴 탭을 보고 사용할 수 있는 기능을 제어합니다.

request_remote_tok 원격 인증 토큰을 가져옵니다.

rest_apps_management python 원격 앱 핸들러의 설정을 편집합니다.

rest_apps_view python 원격 앱 핸들러의 속성을 나열합니다.

rest_properties_get 서비스/속성 endpoint에서 정보를 가져올 수 있습니다.

rest_properties_set 서비스/속성 endpoint를 편집합니다.

restart_splunkd 서버 컨트롤 핸들러를 통해 Splunk Enterprise를 재시작합니다.

rtsearch 실시간 검색을 실행합니다.

run_debug_commands 디버그 명령어를 실행합니다.

schedule_search 저장된 검색을 예약하고, 경고를 생성 및 업데이트하고, 트리거된 경고 정보를 검토합니다.

schedule_rtsearch실시간으로 저장된 검색을 예약합니다. 사용자가 이 기능을 사용하기 위해서는 역할에schedule_search 기능도 있어야 합니다.

search 검색을 실행합니다.

srchFilter 사용자가 검색 필터를 관리할 수 있습니다.

srchIndexesAllowed 사용자가 인덱스를 검색할 수 있습니다.

srchJobsQuota 검색 작업 할당량을 설정합니다.

srchMaxTime 검색의 최대 시간을 설정합니다.

use_file_operator "파일" 검색 연산자를 사용합니다.

srchIndexesDefault 기본 검색 인덱스를 설정합니다.

web_debug 웹 파일을 디버그합니다.

Windows 관련관련 기능기능Splunk Enterprise를 Windows에서 실행하는 경우 모니터링을 용이하게 하는 추가 기능이 제공됩니다.

기능기능 이름이름 수행할수행할 수수 있는있는 작업작업edit_win_eventlogs Windows 이벤트 로그를 편집합니다.

edit_win_wmiconf wmi.conf를 편집합니다.

edit_win_regmon (지원 중단)

edit_win_admon (지원 중단)

edit_win_perfmon (지원 중단)

list_win_localavailablelogs 모든 로컬 Windows 이벤트 로그를 나열합니다.

list_pdfserver PDF 서버 파일을 봅니다.

write_pdfserver PDF 서버 파일을 씁니다.

srchTimeWin 검색 시간 한도를 설정합니다.

Splunk Web에서에서 역할역할 추가추가 및및 편집편집13

Page 14: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

사용자를 만들 경우 해당 사용자는 역할에 할당되며, 이 역할에 따라 Splunk Enterprise에 대한 액세스 레벨과 수행할 수 있는 작업이 결정됩니다. Splunk Enterprise는 사용 가능한 일련의 기본 역할과 함께 제공됩니다. 원하는 역할을 만들 수도 있습니다.

역할에 대한 내용과 기능 및 권한이 상속되는 방법에 대한 설명은 역할 기반 사용자 액세스를 참조하십시오.

참고참고 : Admin 또는 Power 사용자로부터 상속되는 사용자 지정 역할에는 관리 액세스 권한이 자동으로 상속되지 않습니다.사용자 지정 역할에 관리 액세스 권한을 부여하는 방법에 대한 내용은 사용자 지정 역할에 액세스 제어 추가를 참조하십시오.

역할역할 추가추가 또는또는 편집편집Splunk Web에서 역할을 만들거나 편집하려면:

1. 설정설정 > 액세스액세스 제어제어를 클릭합니다.

2. 액세스액세스 제어제어 페이지를 클릭한 다음 역할역할을 클릭합니다.

3. 새로새로 만들기만들기를 클릭하거나 기존 역할을 선택하고 편집합니다. 역할 이름에는 소문자만 사용해야 합니다. 공백, 콜론 또는슬래시는 사용할 수 없습니다.

4. 역할에 대해 검색검색 제한제한을 지정합니다. 검색 제한을 지정하여 데이터 액세스 제어 및 검색 기능을 만들고 제한합니다.

검색어검색어 제한제한 : 역할에 할당된 사용자에 대해 어떤 데이터를 표시할지 확인하는 검색 문자열을 만들 수 있습니다. 이 항목의 검색 필터 형식을 참조하십시오.검색검색 시간시간 범위범위 제한제한 : 이 역할이 검색을 수행할 수 있는 기간을 지정합니다.사용자사용자 수준수준 동시동시 검색검색 작업작업 제한제한 : 이 역할의 사용자에 대해 동시에 실행할 수 있는 최대 검색 작업 수를 지정합니다.사용자사용자 수준수준 동시동시 실시간실시간 검색검색 작업작업 제한제한 : 이 역할의 사용자에 대해 동시에 실행할 수 있는 실시간 검색 작업 수를 지정합니다.역할역할 수준수준 동시동시 검색검색 작업작업 제한제한 : 이 역할에 대해 동시에 실행할 수 있는 최대 검색 작업 수를 지정합니다.역할역할 수준수준 동시동시 실시간실시간 검색검색 작업작업 제한제한 : 이 역할에 대해 동시에 실행할 수 있는 실시간 검색 작업 수를 지정합니다.총총 작업작업 디스크디스크 할당량할당량 제한제한 : 역할에 할당된 각 사용자에 대해 검색 작업에 사용할 총 디스크 공간을 지정합니다.

5. 상속상속 섹션에서 새 역할 중 기능과 속성을 상속할 역할을 선택합니다. 여러 역할에 할당된 사용자는 가장 광범위한 권한을가진 역할에서 속성을 상속합니다. 자세한 내용은 역할 기반 사용자 액세스 항목의 역할 상속을 참조하십시오.

6. 기능기능 섹션에서 이 역할에 제공할 개별 기능을 선택합니다. 자세한 내용은 기능을 가진 역할 정의를 참조하십시오.

7. 검색에서 지정된 인덱스가 없을 경우 기본적으로기본적으로 검색되는검색되는 인덱스인덱스에서 이 역할이 자동으로 검색할 인덱스를 지정합니다.

8. 인덱스인덱스에서 사용자에게 검색을 허용하는 인덱스를 선택합니다. 인덱스를 하나 이상 추가할 경우 이 역할을 가진 사용자만선택한 인덱스에서 검색을 수행할 수 있습니다. 인덱스를 지정하지 않을 경우 역할에 할당된 사용자가 모든 인덱스를 검색할수 있습니다.

9. 저장저장을 클릭합니다.

검색검색 필터필터 형식형식검색 필터 필드에는 다음과 같은 검색어를 사용할 수 있습니다.

source=

host=

index=

eventtype=

sourcetype=

검색 필드와일드카드OR(검색어를 여러 개 사용하려는 경우), AND(검색 범위를 좁히려는 경우)

검색어에는 다음을 사용할 수 없습니다.

저장된 검색시간 연산자정규식Splunk Web에서 덮어쓸 수 있는 필드 또는 한정자

authorize.conf에서에서 역할역할 추가추가 및및 편집편집14

Page 15: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

authorize.conf를 편집하여 역할을 추가하거나 수정할 수 있습니다. 사용자는 역할에 할당되며, 이 역할에 따라 액세스 수준과 수행할 수 있는 작업이 결정됩니다. 역할 및 기능에 대한 자세한 내용은 역할 기반 사용자 액세스를 참조하십시오.

주의주의 : $SPLUNK_HOME/etc/system/default/authorize.conf에서 역할을 편집하거나 삭제하지 마십시오. 관리자 기능에 문제가발생할 수 있습니다. $SPLUNK_HOME/etc/system/local/이나 $SPLUNK_HOME/etc/apps/의 사용자 지정 애플리케이션 디렉터리에서 이 파일을 편집하십시오. 설정 파일에 대한 일반적인 내용은 관리자 매뉴얼의 설정 파일을 참조하십시오.

참고참고 : 분산 검색 설정에서는 약간 다른 인증 필요 사항이 있습니다. 검색 헤드 풀링을 사용하는 경우 검색 헤드와 검색 피어모두 동일한 authorize.conf 파일 집합을 사용해야 합니다. 검색 풀링을 사용하도록 인증이 제대로 설정되었는지 확인하려면분산 검색에서 인증이 작동하는 방식을 참조하십시오.

역할역할 추가추가다음은 $SPLUNK_HOME/etc/system/local/authorize.conf를 통해 역할을 추가하는 구문입니다.

[role_<roleName>]

<attribute> = <value>

<attribute> = <value>

...

스탠자 헤더의 <roleName>은 역할에 지정할 이름입니다(예: security, compliance, ninja).

역할 이름에는 소문자만 사용해야 합니다. 공백, 콜론, 세미콜론 또는 슬래시는 사용할 수 없습니다.

역할 스탠자에 다음 속성을 포함할 수 있습니다.

<capability> = enabled

원하는 수의 기능을 역할에 추가할 수 있습니다. 자세한 내용은 기능을 가진 역할 정의를 참조하십시오.기능은 기본적으로 비활성화되어 있습니다. 역할에 기능을 추가하려면 "활성화"로 설정하십시오.

importRoles = <role>;<role>;...

설정하면 현재 역할이 <role>의 모든 기능을 상속합니다. 여러 역할에 할당된 구성원은 가장 광범위한 권한을 가진 역할에서 속성을 상속합니다. 자세한 내용은 "사용자 및 역할" 항목의 역할 상속을 참조하십시오.역할이 여러 개일 경우 세미콜론으로 각 역할을 구분합니다.

srchFilter = <search_string>

세분화된 액세스 제어를 사용할 경우 이 필드를 사용합니다. 이 역할에 대한 검색이 이 식을 통해 필터링됩니다.자세한 내용은 이 항목의 검색 필터 형식을 참조하십시오.

srchTimeWin = <string>

이 역할이 검색을 실행하는 최대 시간 범위(초)srchDiskQuota = <int>

이 역할에 속한 사용자의 검색 작업에 사용할 수 있는 최대 디스크 공간(MB)cumulativeSrchJobsQuota = <number>

이 역할의 모든 구성원이 동시에 실행할 수 있는 최대 이력 검색 수참고참고 : 사용자가 여러 역할에 속해 있는 경우 해당 사용자는 먼저 가장 큰 누적 검색 할당량을 가진 역할부터 검색을 사용합니다. 해당 역할의 할당량이 모두 사용되면 더 낮은 할당량을 가진 역할이 사용됩니다.

cumulativeRTSrchJobsQuota = <number>

이 역할의 모든 구성원이 동시에 실행할 수 있는 최대 실시간 검색 수참고참고 : 사용자가 여러 역할에 속해 있는 경우 해당 사용자는 먼저 가장 큰 누적 검색 할당량을 가진 역할부터 검색을 사용합니다. 해당 역할의 할당량이 모두 사용되면 더 낮은 할당량을 가진 역할이 사용됩니다.

srchJobsQuota = <int>

이 역할의 구성원이 동시에 실행할 수 있는 최대 검색 수rtSrchJobsQuota = <number>

이 역할의 구성원이 동시에 실행할 수 있는 최대 실시간 검색 수srchIndexesDefault = <string>

인덱스가 지정되지 않은 경우에 세미콜론으로 구분된 검색할 인덱스 리스트이러한 인덱스는 '*'가 내부 인덱스와 일치하지 않는 것을 제외하고 와일드카드 문자로 처리될 수 있습니다.내부 인덱스와 일치시키려면 '_'로 시작하십시오. 모든 내부 인덱스가 '_*'로 표시됩니다.

srchIndexesAllowed = <string>

이 역할이 검색할 수 있는 세미콜론으로 구분된 인덱스 리스트srchIndexesDefault와 동일한 와일드카드 시맨틱을 따릅니다.

참고참고 : authorize.conf를 변경한 후에는 인증을 다시 로드하거나 Splunk를 재시작해야 합니다. 그렇지 않으면 새 역할이 역할역할리스트에 나타나지 않습니다. 인증을 다시 로드하려면 Splunk Web의 관리자관리자 > 인증인증 섹션으로 이동하십시오. 이렇게 하면인증 캐시가 새로 고쳐지지만 현재 사용자가 부팅되지는 않습니다.

검색검색 필터필터 형식형식srchFilter/ 필드에는 다음과 같은 검색어가 포함될 수 있습니다.

source=

15

Page 16: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

host= 및 host 태그index= 및 인덱스 이름eventtype= 및 event type 태그sourcetype=

검색 필드와일드카드OR(검색어를 여러 개 사용하려는 경우), AND(검색 범위를 좁히려는 경우)

검색어에는 다음을 사용할 수 없습니다.

저장된 검색시간 연산자정규식Splunk Web에서 덮어쓸 수 있는 필드 또는 한정자

authorize.conf에서에서 역할을역할을 만드는만드는 예예이 예에서는 기본 "user" 역할에서 기능을 상속하는 "ninja"라는 역할을 만듭니다. ninja는 기본 "power" 역할과 거의 동일한기능을 가지지만, 검색 예약 기능은 사용할 수 없습니다. 또한 다음과 같은 제한 사항이 있습니다.

검색 필터는 ninja의 검색 범위를 host=foo로 제한합니다.ninja는 모든 공용 인덱스(밑줄로 시작하지 않는 인덱스)를 검색할 수 있고, 검색에 인덱스가 지정되지 않은 경우 mail및 main 인덱스를 검색합니다.ninja는 8개의 검색 작업과 8개의 실시간 검색 작업을 동시에 실행할 수 있습니다. (작업 개수는 상호 독립적입니다.)ninja가 모든 작업에 사용할 수 있는 디스크의 전체 용량은 최대 500MB입니다.

[role_ninja]

rtsearch = enabled

importRoles = user

srchFilter = host=foo

srchIndexesAllowed = *

srchIndexesDefault = mail;main

srchJobsQuota = 8

rtSrchJobsQuota = 8

srchDiskQuota = 500

관리자관리자 콘솔콘솔 및및 앱에앱에 대한대한 액세스액세스 권한권한 설정설정local.meta 파일을 사용하면 Splunk 인스턴스의 특정 부분에 대한 액세스 권한을 쉽게 부여하고 제한할 수 있습니다. 예는다음과 같습니다.

사용자 지정 역할의 사용자를 특정 앱으로 제한사용자 지정 역할의 사용자에게 관리자 수준의 기능에 액세스할 권한 부여

사용자에게사용자에게 Admin 역할역할 부여부여Admin 역할에 포함된 일부 관리 기능은 해당되는 특정 레이블에만 표시됩니다. 이러한 기능은 Splunk Web 또는authorize.conf에서 역할을 설정할 때 Admin 역할에서 자동으로 상속되지 않습니다.

예를 들어, 모든 Admin 권한을 상속하지만 검색 작업에 대한 액세스가 제한된 사용자 지정 역할을 만든다고 가정하십시오.이렇게 하려면 "SpecialAdmin"이라는 새 역할을 만들고 기능을 가진 역할 정의에 설명된 대로 Admin의 모든 권한을 상속하도록 설정한 다음 검색 제한을 설정하십시오(역할 기반 사용자 액세스 설정 참조).

특정특정 앱에앱에 대한대한 액세스액세스 제한제한local.meta 파일을 사용하여 액세스를 제한할 수도 있습니다.

예를 들어, 사용자에게 하나의 대시보드 뷰에 대한 액세스만 허용하려고 합니다. 이렇게 하려면 해당 뷰에 대한 앱을 만들고해당 앱에 사용자의 역할을 할당하십시오. 역할에 해당 앱을 볼 수 있도록 허용하려면 meta.local을 사용해야 합니다.

local.meta 파일을파일을 통해통해 액세스액세스 권한을권한을 추가추가 및및 제거하는제거하는 방법방법필요한 경우 local.meta 파일을 편집하여 새 역할을 추가하는 방식으로 액세스를 허용하거나 제한할 수 있습니다.

1. local.meta 파일을 찾습니다. 기본 검색 페이지에 대한 액세스 권한(즉 관리자 제어)을 편집하는 경우$SPLUNK_HOME/etc/system/metadata/를 확인하십시오. 특정 앱에 대한 액세스 권한을 편집하려면$SPLUNK_HOME/etc/apps/<app_name>/metadata/를 확인하십시오. 원하는 위치의 디렉터리에 파일이 없는 경우 기본 버전default.meta를 복사하고 이름을 변경할 수 있습니다.

16

Page 17: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

참고참고 : default.meta 파일을 직접 편집하지 마십시오마십시오 . 나중에 이 파일의 기본값이 필요할 수도 있습니다.

2. local.meta 파일에서 원하는 액세스 권한에 해당하는 스탠자에 새 역할의 이름을 추가합니다.

기본기본 스탠자스탠자 내용내용[manager/accesscontrols]

access = read : [ * ],

write : [ admin, power ]

모든 사용자가 앱의 콘텐츠를 볼 수 있으며 현재 디렉터리에 따라 Splunk 관리자 페이지의기능에 액세스할 수 있습니다. 다른 메타데이터를 사용하여 재정의하지 않으면 admin 및power 사용자만 이 앱의 개체를 공유할 수 있습니다.

[views]

[manager/accesscontrols]

access = read : [ * ],

write : [ admin ]

관리자 페이지에 대한 액세스 제어를 결정합니다.

3. 모두 변경했으면 Splunk Enterprise를 재시작합니다.

예예예예 1: "usermanager"라는 새 역할은 사용자로부터 기능만 상속하고 검색 또는 인덱스는 상속하지 않습니다. 데이터에 대한액세스 권한이 없고 사용자 계정을 만들고 관리하는 데만 사용되는 역할을 만드는 것이 목적입니다.

이 역할을 만들려면 다음 스탠자를[manager/accesscontrols]

access = read : [ admin ], write : [ admin ]

다음과 같이 편집합니다.

[manager/accesscontrols]

access = read : [ admin, usermanager ], write : [ admin, usermanager ]

"usermanager" 역할에 관리자에서 "액세스 제어" 페이지의 내용을 보고 편집할 수 있는 기능을 부여했습니다.

예예 2: 액세스만 가능하고 페이지 편집은 불가능한 "userview" 역할을 사용하려면 이 역할을 read 값에만 추가합니다.

[manager/accesscontrols]

access = read : [ admin, userview, usermanager ], write : [ admin, usermanager ]

다음과 같이 와일드카드를 사용하여 모든 역할에 관리자 페이지를 읽을 수 있는 권한을 부여할 수도 있습니다.

[manager/accesscontrols]

access = read : [ * ], write : [ admin ]

예예 3: 지정한 판매 데이터만 읽을 수 있는 사용자의 하위 집합을 가지려고 합니다. 이렇게 하려면 대시보드의 앱을 만든 다음"salesusers"라는 새 역할을 만드십시오.

그런 다음 앱 디렉터리의 local.meta 파일에서(default.meta 파일에서 만들 수 있음) 다음 스탠자를 편집합니다.

[viewstates]

access = read : [ * ], write : [ * ]

to read:

[viewstates]

access = read : [ salesusers ], write : [ admin ]

기존기존 사용자사용자 및및 역할역할 찾기찾기Splunk Web에서 기존 사용자 또는 역할을 찾는 방법:

1. 기본 메뉴에서 시스템시스템 > 액세스액세스 제어제어를 클릭합니다.

2. 사용자사용자 또는 역할역할을 클릭하여 검색할 개체를 선택합니다.

3. 지정된 문자열을 기본적으로 모든 필드에서 검색합니다. 특정 필드를 검색하려면 필드 이름을 지정하십시오. Splunk 검색은 와일드카드를 지원합니다. 예:

이메일 주소만 검색하려는 경우17

Page 18: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

"email=<email address or address fragment>:

"전체 이름" 필드만 검색하려는 경우:

"realname=<name or name fragment>.

지정된 역할의 사용자를 검색하려는 경우:

"roles=".

모든모든 사용자사용자 계정계정 삭제삭제./splunk clean 뒤에 userdata 인수를 입력하여 Splunk 설치본에서 모든 사용자 데이터(사용자 계정)를 제거하십시오. 그러면 기본 사용자 계정(admin, power, user)을 제외한 모든 사용자 계정이 삭제됩니다.

주의주의 : 사용자 데이터 제거는 실행 취소할 수 없습니다. 실수로 사용자 데이터를 삭제한 경우는 계정을 수동으로 다시 추가해야 합니다.

시스템에서시스템에서 모든모든 사용자사용자 계정을계정을 제거하려면제거하려면 다음다음 명령어를명령어를 입력하십시오입력하십시오 .

./splunk clean userdata

시스템에서시스템에서 사용자사용자 계정을계정을 제거하고제거하고 확인확인 프롬프트를프롬프트를 건너뛰려면건너뛰려면 다음다음 명령어를명령어를 입력하십시오입력하십시오 .

./splunk clean userdata -f

Splunk knowledge object에에 대한대한 보안보안 액세스액세스Splunk Enterprise를 사용하면서 event type, 태그태그 , 룩업룩업 , 필드필드 추출추출 , 워크플로워크플로 작업작업 , 저장된저장된 검색검색 등 다양한 knowledgeobject를 만들게 됩니다. Splunk Web을 통해 Splunk 구현에서 knowledge object에 대한 액세스를 제한하거나 확장할 수있습니다. 이는 다음 작업에 유용합니다.

개체를 모든 앱의 사용자가 사용할 수 있도록 설정합니다.개체를 특정 앱의 사용자가 사용할 수 있도록 설정합니다.사용자 역할을 기준으로 개체 액세스를 제한합니다.개체를 비활성화하거나 삭제합니다.소유하지 않은 개체를 사용자가 공유 또는 삭제할 수 있도록 허용합니다.

knowledge object 보안에 대한 자세한 내용은 지식 관리자 매뉴얼의 knowledge object 권한 관리 및 knowledge object 비활성화 또는 삭제를 참조하십시오.

액세스액세스 제어제어 리스트리스트 사용사용Splunk 설정 보안을 위해 Splunk Enterprise ACL(액세스 제어 리스트)을 사용하여 네트워크에 액세스할 수 있는 IP 주소를제한하십시오.

ACL을 설정하려면 server.conf 및 inputs.conf 파일을 편집하여 다양한 통신을 허용하거나 거부할 IP 주소를 지정하십시오.

ACL을을 설정하는설정하는 방법방법주소를 쉼표나 공백을 사용하여 구분합니다. 다음과 같은 형식으로 주소를 제공합니다.

단일 IPv4 또는 IPv6 주소(예: 10.1.2.3, fe80::4a3)CIDR 형식의 주소(예: 10/8, fe80:1234/32)와일드카드(*)를 포함할 수 있는 DNS 이름(예: myhost.example.com, *.splunk.com)모든 것을 의미하는 단일 *(기본값)

주소를 추가하려면 아래에서 설명하는 형식 중 하나를 사용하여 주소를 추가하면 됩니다. 주소를 제외하려면 해당 주소 앞에접두사 '!'를 붙입니다.

규칙은 순서대로 적용되며 일치하는 첫 번째 규칙이 사용됩니다. 예를 들어 !10.1/16, *를 지정하면 10.1.*.* 네트워크를 제외한 모든 네트워크의 연결을 허용합니다.

ACL을을 설정하는설정하는 위치위치[Accept from] 값을 편집하여 다음 연결의 IP 주소를 보안할 수 있습니다.

18

Page 19: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

노드가 특정한 IP의 다른 노드에서만 복제된 데이터를 수신하도록 지시하려면 server.conf 파일의 httpServer 스탠자를 편집하십시오. 이 속성을 설정할 경우에는 클러스터에 속한 다른 피어의 IP 주소를 모두 포함시켜야 합니다. 클러스터에 대한 자세한내용은 "클러스터 및 인덱스 복제"를 참조하십시오. server.conf 파일 편집에 대한 자세한 내용은 server.conf를 참조하십시오.

TCP 통신을 특정 IP 주소로만 제한하려면 inputs.conf 파일의 tcp 스탠자를 편집하십시오. 이 경우 정보가 상충되면server.conf의 출력 값을 덮어쓰므로 주의하십시오.

SSL을 사용하는 TCP 통신을 특정 IP 주소로 제한하려면 inputs.conf 파일의 tcp-ssl 스탠자를 편집하십시오.

인덱서가 특정한 IP 주소의 포워더에서 보내는 데이터만 수신하도록 제한하려면 inputs.conf 파일의 splunktcp 스탠자를 편집하십시오. 이 방법을 통해 포워더에 대한 스누핑을 차단하고 데이터가 손상될 위험을 방지할 수 있습니다.

포워더와 인덱서 간 통신을 SSL로 보안하려면 inputs.conf 파일의 splunktcp-ssl 스탠자를 편집하여 인덱서가 특정한IP 주소의 포워더에서 보내는 데이터만 수신하도록 제한하십시오.

UDP 통신을 특정 IP 주소로만 제한하려면 inputs.conf 파일의 UDP 스탠자를 편집하십시오.

inputs.conf 파일 편집에 대한 자세한 내용은 inputs.conf를 참조하십시오.

기본기본 Splunk Enterprise 인증인증Splunk 인증인증 설정설정Splunk 인증인증을 사용하면 시스템에서 사용자를 쉽게 설정할 수 있습니다. Splunk 인증은 항상 외부 인증 시스템에 우선합니다. 다음은 사용자 인증 순서입니다.

1. Splunk 인증2. LDAP 또는 스크립트 기반 인증(활성화된 경우). 자세한 내용은 "LDAP을 사용하여 사용자 인증 설정" 및 "외부 시스템을사용하여 사용자 인증 설정"을 참조하십시오.

참고참고 : LDAP과 스크립트 기반 인증을 함께 사용할 수 없습니다.

다음 두 가지 방법으로 역할 기반 액세스 제어 시스템을 사용하여 새로운 사용자를 만들고 사용자를 역할역할에 할당할 수 있습니다.

Splunk Web을 사용하여 사용자를 만들고 역할을 할당합니다. 자세한 내용은 "Splunk Web을 사용하여 사용자 설정"을 참조하십시오.CLI를 사용하여 사용자를 만든 다음 Splunk Web을 사용하여 사용자를 역할에 할당합니다. 자세한 내용은 "CLI를 사용하여 사용자 설정"을 참조하십시오.

사용자사용자 및및 역할을역할을 만들만들 때때 중요한중요한 이름이름 지정지정 지침지침기본 인증 시 저장되는 사용자 이름에는 공백, 콜론 또는 슬래시를 사용할 수 없습니다. 이름은 대/소문자를 구분하지 않습니다. 예를 들어, "Jacque", "jacque", "JacQue"는 모두 Splunk 인증에서 같은 이름으로 간주됩니다.

역할 이름에는 소문자만 사용해야 합니다. 공백, 콜론 또는 슬래시는 사용할 수 없습니다.

Splunk Web을을 사용하여사용하여 사용자사용자 설정설정Splunk Web에서 사용자 및 역할을 설정하려면:

1. 설정설정 > 사용자사용자 및및 인증인증 > 액세스액세스 제어제어로 이동합니다.2. 사용자사용자를 클릭합니다.3. 새로새로 만들기만들기를 클릭하거나 편집할 기존 사용자를 선택합니다.4. 이 사용자에 대한 정보를 지정하거나 변경합니다. 다음과 같은 사용자 정보를 지정할 수 있습니다.

성명이메일 주소시간대. 사용자의 개별 시간대에서 이벤트 및 기타 정보를 볼 수 있습니다.기본 앱. 사용자의 역할에서 상속된 기본 앱을 재정의합니다.암호

5. 사용자를 기존 역할에 할당하고 저장저장을 클릭합니다.

또한 사용자가 액세스해야 하는 Splunk Enterprise의 영역을 정확하게 정의하여 특정 사용자에게만 해당되는 역할을 만들고 나서 이 역할에 사용자를 할당할 수 있습니다. 역할에 대한 자세한 내용은 "역할 기반 사용자 액세스"를 참조하십시오.

19

Page 20: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

사용자 설정 관리에 대한 내용은 Splunk Enterprise 관리 가이드를 참조하십시오.

CLI를를 사용하여사용하여 사용자사용자 설정설정CLI에서 add user 명령어를 사용하십시오. 몇 가지 예를 들면 다음과 같습니다.

"changeme2"라는 암호를 사용하는 새로운 관리자를 추가하려면 다음 명령어를 입력합니다.

./splunk add user admin2 -password changeme2 -role admin -auth admin:changeme

기존 사용자의 암호를 "fflanda"로 변경하려면 다음 명령어를 입력합니다.

./splunk edit user admin -password fflanda -role admin -auth admin:changeme

중요중요 : 쉘에 의해 해석될 수 있는 특수 문자(예: '$' 또는 '!')를 포함하는 암호는 이스케이프하거나 작은따옴표로 처리해야 합니다. 예는 다음과 같습니다.

./splunk edit user admin -password 'fflanda$' -role admin -auth admin:changeme

또는./splunk edit user admin -password fflanda\$ -role admin -auth admin:changeme

Splunk Web에서에서 역할에역할에 사용자사용자 추가추가기본 역할 또는 사용자 지정 역할에 사용자를 추가할 수 있습니다. 자세한 내용은 "역할 기반 사용자 액세스"를 참조하십시오.

Splunk Web에서 역할에 사용자를 추가하려면:

1. 기본 메뉴에서 설정설정 > 액세스액세스 제어제어 > 액세스액세스 제어제어를 클릭합니다.

2. 사용자사용자를 클릭합니다.

3. 기존 사용자를 편집하거나 새 사용자를 만듭니다.

4. 역할역할 리스트에서 매핑할 역할을 선택합니다. authorize.conf에서 만든 사용자 지정 역할이 여기에 나열됩니다.

LDAP을을 사용하여사용하여 인증인증LDAP을을 사용하여사용하여 사용자사용자 인증인증 설정설정Splunk Enterprise에서는 다음 세 가지 유형의 인증인증 시스템을 지원합니다.

Splunk 인증("Splunk 기본 제공 시스템을 사용하여 사용자 인증 설정" 참조)LDAP(현재 항목 참조)PAM 또는 RADIUS와 같은 외부 인증 시스템과 함께 사용하는 스크립트 기반 인증 API("외부 시스템을 사용하여 사용자 인증 설정" 참조)

Splunk Enterprise용용 LDAP 인증인증 설정설정Splunk Enterprise에서는 LDAP 사용자 및 그룹에 대해 사용자 및 역할을 설정할 수 있습니다. LDAP 서버를 한 대 또는 여러 대 설정한 다음 이 서버의 사용자와 사용자 그룹을 Splunk 역할에 매핑할 수 있습니다.

다중 LDAP 서버 설정에 대한 자세한 내용은 "다중 LDAP 서버에서 Splunk의 작동 방식"을 참조하십시오.

LDAP을 설정하기 전에 "LDAP 사전 요구 사항 및 고려 사항"을 살펴보십시오.

LDAP 인증인증 설정설정 방법방법Splunk Enterprise에서 LDAP을 사용하도록 설정하는 주요 단계는 다음과 같습니다.

1. LDAP 전략을 하나 이상 설정합니다(일반적으로 LDAP 서버당 하나의 전략을 설정).

2. LDAP 그룹을 하나 이상의 Splunk 역할에 매핑합니다.

3. LDAP 서버가 여러 대일 경우 서버 연결 순서를 지정합니다.

이러한 설정 단계를 Splunk Web에서 수행하거나 설정 파일을 편집하는 방식으로 수행할 수 있습니다. 자세한 내용은20

Page 21: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

이러한 설정 단계를 Splunk Web에서 수행하거나 설정 파일을 편집하는 방식으로 수행할 수 있습니다. 자세한 내용은"Splunk Web을 사용하여 LDAP 설정" 또는 "설정 파일을 사용하여 LDAP 설정"을 참조하십시오.

인증인증 우선순위우선순위Splunk 인증은 외부 시스템에 우선합니다. Splunk Enterprise의 사용자 인증 순서는 다음과 같습니다.

1. Splunk 인증2. LDAP 또는 스크립트 기반 인증(두 방법 중 하나가 활성화된 경우). 스크립트 기반 인증에 대한 자세한 내용은 "외부 시스템을 사용하여 사용자 인증 설정"을 참조하십시오.

답변답변질문이 있으십니까? Splunk 응답 페이지에 가면 Splunk에서의 LDAP 인증과 관련하여 Splunk 커뮤니티에서 올린 질문과답변을 볼 수 있습니다.

LDAP을을 사용하여사용하여 Splunk 사용자사용자 역할역할 관리관리Splunk Enterprise가 LDAP 인증을 사용하도록 설정하려면 먼저 각 LDAP 서버에 대한 Splunk 전략을 만든 다음 해당LDAP 서버의 그룹에 Splunk 역할을 매핑해야 합니다. 사용자가 로그인을 시도하면 Splunk Enterprise는 LDAP 서버를 조회하여 해당 사용자를 찾습니다. Splunk는 해당 사용자가 속한 LDAP 그룹과 연결되어 있는 모든 역할을 기반으로 사용자에게 권한을 부여합니다.

사용자 권한 변경 시 다음과 같은 여러 가지 방법을 사용할 수 있습니다.

사용자 그룹의 권한을 변경하려면 LDAP 그룹을 다른 Splunk 역할에 다시 매핑합니다. 역할 자체를 업데이트하여 역할에 다른 권한 집합을 지정할 수도 있습니다. 이 방법은 Splunk Enterprise에서 수행합니다.개별 사용자의 권한을 변경하려면 해당 사용자를 다른 Splunk 역할에 매핑되어 있는 LDAP 그룹으로 이동합니다. 이방법은 LDAP 서버에서 수행합니다.

다음은 몇 가지 기타 사용자 관리 작업입니다.

Splunk 역할에 사용자 추가: 먼저 Splunk Web에서 Splunk 역할을 LDAP 그룹에 매핑했는지 확인합니다. 그런 다음LDAP 서버에서 사용자를 해당 LDAP 그룹에 추가합니다.Splunk 역할에서 사용자 제거: LDAP 서버의 해당 LDAP 그룹에서 사용자를 제거합니다.

사용자는 여러 역할에 속할 수 있습니다. 이 경우 사용자는 해당 역할에서 사용할 수 있는 모든 기능에 대한 액세스 권한을 보유합니다. 예를 들어, 사용자가 docs 그룹과 eng 그룹 둘 다에 속하고 docs 그룹이 "user"에, eng 그룹이 "admin"에 매핑되어 있는 경우 사용자는 "user" 또는 "admin" 역할에 할당된 모든 권한을 부여받습니다.

참고참고 : 사용자가 로그인하려고 하면 Splunk Enterprise에서 LDAP 멤버십 정보를 확인합니다. 사용자를 추가 또는 제거할때 인증 설정을 다시 로드하지 않아도 됩니다.

LDAP 사전사전 요구요구 사항사항 및및 고려고려 사항사항Splunk 인증을 위해 LDAP을 설정하기 전에 이 항목에서 설명하는 대로 준비하십시오.

사용자사용자 기반기반 및및 그룹그룹 기반기반 고유고유 이름이름 확인확인LDAP 설정을 Splunk 설정에 매핑하기 전에 사용자 기반 및 그룹 기반 DN(고유 이름)을 확인하십시오. DN은 디렉터리에서인증 정보가 저장되는 위치입니다.

사용자의 그룹 구성원 정보가 개별 항목으로 저장된 경우 디렉터리에서 그룹 정보가 저장된 하위 트리를 식별하는 개별 DN을 입력하십시오. 이 DN 아래의 모든 하위 노드에서 사용자 및 그룹이 재귀적으로 검색됩니다. LDAP 트리에 그룹 항목이없는 경우에는 그룹 기반 DN을 사용자 기반 DN과 동일하게 설정하여 사용자를 자체 그룹으로 처리할 수 있습니다. 이에 필요한 추가 설정에 대해서는 나중에 설명합니다.

DN 정보를 확인할 수 없는 경우에는 LDAP 관리자에게 문의하십시오.

참고참고 : Splunk Enterprise와 Active Directory를 통합하는 경우 최적의 결과를 얻으려면 그룹 기반 DN을 사용자 기반 DN과다른 개별 계층에 넣으십시오.

추가추가 고려고려 사항사항Splunk Enterprise에서 LDAP을 사용하도록 설정하는 경우 다음 사항에 주의하십시오.

Splunk Web과 authentication.conf에 입력하는 항목은 대/소문자를 구분합니다.Splunk 기본 제공 인증을 통해 로컬에서 생성된 사용자가 동일한 이름의 LDAP 사용자보다 우선순위가 더 높습니다.예를 들어, LDAP 서버에 'admin'이라는 사용자 이름 속성을 가진 사용자(예: cn 또는 uid)와 동일한 이름의 기본

21

Page 22: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Splunk 사용자가 있을 경우 Splunk 사용자의 우선순위가 더 높습니다. 로컬 암호만 적용되며, 로그인할 때는 로컬 사용자에게 매핑된 역할이 적용됩니다.역할에 매핑하는 경우 Splunk Web에서 표시할 수 있는 LDAP 그룹 수는 쿼리에서 LDAP 서버가 반환할 수 있는 그룹 수로 제한됩니다. 검색검색 요청요청 크기크기 제한제한과 검색검색 요청요청 시간시간 제한제한을 사용하여 이 구성을 설정할 수 있습니다.

Splunk가 불필요한 그룹을 나열하지 않도록 하려면 groupBaseFilter를 사용하십시오(예: groupBaseFilter =(|(cn=SplunkAdmins)(cn=SplunkPowerUsers)(cn=Help Desk))).최대 그룹 수보다 더 많은 그룹에 역할을 매핑해야 하는 경우 authentication.conf를 직접 편집할 수 있습니다.이 예에서 "roleMap_AD"는 Splunk 전략의 이름을 지정합니다. 각 속성/값 쌍을 통해 Splunk 역할이 하나 이상의 LDAP 그룹에 매핑됩니다.

[roleMap_AD]

admin = SplunkAdmins1;SplunkAdmins2

power = SplunkPowerUsers

user = SplunkUsers

Splunk에서는 항상 LDAP 프로토콜 3 버전(v3)을 사용합니다.

TLS 인증서로인증서로 LDAP 보안보안Splunk는 OpenLDAP과 OpenSSL을 사용합니다. 두 가지 도구를 모두 활용하여 LDAP 인증 보안을 인증서로 강화할 수있습니다. 인증서 만들기 및 관리에 대한 자세한 내용은 OpenSSL 설명서를 참조하십시오.

다음은 LDAP 인증서 설정의 예입니다. LDAP에서 인증서를 설정할 수 있는 방법에 대한 자세한 내용은http://www.openldap.org/doc/admin24/tls.html에 있는 OpenLDAP 설명서를 참조하십시오.

LDAP 서버서버 설정설정

TLSCACertificateFile <filename>: the PEM-format file containing certificates for the CA's that slapd will trust,

including the certificate for the CA that signed the server certificate. Multiple certificates can be appended to

the file in no particular order.

TLSCertificateKeyFile <filename></code>: the file that contains the private key that matches the certificate stored

in the

TLSCertificateFile file.

TLSCipherSuite <cipher-suite-spec>: ciphers will be accepted and the preference order. <cipher-suite-spec> should be

a cipher specification for OpenSSL. Use "openssl ciphers -v ALL" for a list of available cipher specifications.

TLSRandFile <filename>: the file to obtain random bits from when /dev/urandom is not available. If the system

provides /dev/urandom then this option is not needed, otherwise a source of random data must be configured.

TLSEphemeralDHParamFile <filename>: the file that contains parameters for Diffie-Hellman ephemeral key exchange.

TLSVerifyClient { never | allow | try | demand }: specifies what checks to perform on client certificates in an

incoming TLS session, if any. This option is set to never by default, in which case the server never asks the client

for a certificate.

LDAP 클라이언트클라이언트 설정설정이 지침에서는 클라이언트 인증서가 포함된 파일을 지정합니다. 이 지침은 사용자에만 해당되며, 사용자의 .ldaprc 파일에서만 지정할 수 있습니다.

TLS_KEY <filename> specifies the file that contains the private key that matches the certificate stored in the

TLS_CERT file. The same constraints mentioned for TLSCertificateKeyFile apply here. This is also a user-only

directive.

TLS_RANDFILE <filename> the same as the server's TLSRandFile option.

TLS_REQCERT { never | allow | try | demand }

LDAP 서버를 2대 이상 호스트하는 경우 각 클라이언트에서 각 인증서를 사용할 수 있도록 설정해야 하므로 자체 서명 인증서를 사용하지 않는 것이 좋을 수 있습니다. 이 경우 서버 인증서에 서명할 인증서 권한을 만들면 더 편리합니다.

다중다중 LDAP 서버에서서버에서 Splunk Enterprise의의 작동작동 방식방식22

Page 23: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

사용자 인증 시 Splunk Enterprise는 다중 LDAP 서버에서 사용자를 검색할 수 있습니다. 다중 LDAP 서버를 설정하려면 각LDAP 서버당 하나씩 여러 개의 LDAP "전략"을 설정해야 합니다.

전략을 설정한 후에는 LDAP 사용자를 검색할 때 Splunk가 전략을 쿼리하는 순서를 지정할 수 있습니다. 검색 순서를 지정하지 않을 경우 Splunk Enterprise는 전략이 생성된 순서를 기준으로 하는 기본 "연결 순서"를 할당합니다.

LDAP 전략을 설정하는 자세한 단계는 "Splunk Web을 사용하여 LDAP 설정" 또는 "설정 파일을 사용하여 LDAP 설정"을참조하십시오.

검색검색 중중 연결연결 순서가순서가 작동되는작동되는 방식방식인증 과정에서 Splunk Enterprise는 지정된 연결 순서에 따라 생성된 전략을 기반으로 서버를 검색합니다. SplunkEnterprise는 서버에서 해당 사용자를 찾은 후에 검색을 중지하고 자격 증명을 선택합니다. 다음 검색 순서의 서버에도 해당사용자의 자격 증명이 있으면 그 자격 증명이 무시됩니다.

예를 들어, 세 개의 전략을 설정하고 A, B, C 순으로 이 전략을 사용한다고 가정합니다. Splunk Enterprise는 서버를 동일한A, B, C 순서로 검색합니다. A에서 사용자를 찾으면 Splunk는 검색을 중지합니다. B와 C에 같은 사용자가 존재하는지 여부에 관계없이 Splunk Enterprise는 해당 사용자에 대해 A의 자격 증명만 사용합니다. A에서 사용자를 찾지 못한 경우는 나머지 서버, B와 C 서버의 순서로 계속 검색을 수행합니다.

나중에 전략 A를 비활성화할 경우 Splunk Enterprise는 나머지 전략인 B, C 전략의 순서로 검색을 수행합니다.

Splunk Web에서 전략의 속성을 편집하거나 Authentication.conf spec 파일의 설명에 따라 authSettings 속성에서 전략의순서를 변경하여 연결 순서를 언제든지 바꿀 수 있습니다. LDAP을 위해 이 파일을 편집하는 방법에 대한 자세한 내용은authentication.conf 편집을 참조하십시오.

중요중요 : Splunk 인증을 통해 로컬에서 만든 사용자는 이름이 같은 LDAP 사용자보다 우선합니다. 자세한 내용은 "사용자 인증"을 참조하십시오.

Splunk Web을을 사용하여사용하여 LDAP 설정설정이 절에서는 Splunk Web을 통해 LDAP을 설정하는 방법에 대해 설명합니다. authentication.conf를 직접 편집하여 LDAP을 설정하려면 "설정 파일을 사용하여 LDAP 설정"을 참조하십시오.

다음은 Splunk Web에서 LDAP을 설정하는 세 가지 기본 단계입니다.

1. LDAP 전략을 만듭니다.

2. LDAP 그룹을 Splunk 역할에 매핑합니다.

3. 연결 순서를 지정합니다(LDAP 서버가 여러 대인 경우만 해당).

LDAP 전략전략 만들기만들기LDAP 전략을 만들려면:

1. 설정설정 > 사용자사용자 및및 인증인증 > 액세스액세스 제어제어를 클릭합니다.

2. 인증인증 방법방법을 클릭합니다.

3. LDAP을 선택합니다.

4. LDAP을을 사용하도록사용하도록 Splunk를를 설정한설정한 후후 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP 전략전략 페이지로 이동합니다.

5. 새로새로 만들기만들기를 클릭합니다. 그러면 새로새로 추가추가 페이지로 이동합니다.

6. 설정할 LDAP 전략전략 이름이름을 입력합니다.

7. LDAP 서버의 호스트호스트 이름을 입력합니다. Splunk 서버에서 이 호스트 이름을 확인할 수 있어야 합니다. 참고로참고로 , 현재현재IPv6 주소주소 형식은형식은 Windows에서에서 지원되지지원되지 않습니다않습니다 .

8. Splunk Enterprise가 LDAP 서버에 연결하는 데 사용할 포트포트를 입력합니다.

기본적으로 LDAP 서버는 TCP 포트 389에서 수신 대기합니다.LDAPS(LDAP with SSL)의 기본 포트는 포트 636입니다.

9. SSL을 사용하려면 SSL 사용사용을 선택합니다.

보안을 위해 이 설정을 사용하는 것이 좋습니다.LDAP 서버에서도 SSL을 사용하도록 설정해야 합니다.

23

Page 24: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

10. 바인드바인드 DN을 입력합니다.

LDAP 서버와 바인딩하는 데 사용하는 고유 이름입니다.일반적으로 administrator를 사용하지만 항상 그렇지는 않습니다. 그리고 모든 LDAP 사용자와 그룹에 대해 읽기 권한이 있어야 합니다.익명 바인딩으로 충분한 경우는 공백으로 두십시오.

11. 바인딩 사용자의 바인드바인드 DN 암호암호를 입력하고 확인합니다.

12. 사용자사용자 기반기반 DN을 지정합니다. 사용자 기반 DN 항목이 여러 개일 경우 세미콜론으로 구분하여 지정할 수 있습니다.

Splunk Enterprise는 이 속성을 사용하여 사용자 정보를 찾습니다.인증을 하려면 반드시 이 속성을 설정해야 합니다.

13. 개체 클래스에 대해 사용자 필터링에 사용할 사용자사용자 기본기본 필터필터를 입력합니다.

해당되는 사용자만 반환하려면 이 옵션이 권장됩니다(예: (department=IT)).기본값은 공백이며, 사용자 항목을 필터링하지 않는다는 의미입니다.

14. 사용자 이름을 포함하는 사용자사용자 이름이름 속성속성을 입력합니다.

사용자 이름 속성에는 공백을 사용할 수 없습니다.Active Directory에서는 일반적으로 sAMAccountName이지만 다른 속성(cn 등)에서도 인증할 수 있습니다.uid 값은 대부분의 다른 설정에도 사용할 수 있습니다.

15. 사용자의 실제실제 이름이름 속성속성 (공통 이름)을 입력합니다.

일반적인 값은 displayName 또는 cn(공통 이름)입니다.

16. 이메일이메일 속성속성을 입력합니다.

17. 그룹그룹 매핑매핑 속성속성을 입력합니다.

해당 그룹의 구성원임을 인식하는 데 사용하는 사용자 속성입니다.Active Directory의 경우 기본값은 dn입니다. 이 속성은 사용자 DN 외에 다른 속성을 사용하여 그룹을 매핑하는 경우에만 설정하십시오.예를 들어 사용자를 그룹에 매핑하는 데 사용되는 일반적인 속성은 dn입니다.

18. 그룹그룹 기반기반 DN을 입력합니다. 그룹 기반 DN 항목이 여러 개일 경우 세미콜론으로 구분하여 지정할 수 있습니다.

LDAP에서 사용자 그룹의 위치입니다.LDAP 환경에 그룹 항목이 없는 경우에는 다음과 같은 방법을 통해 각 사용자를 자체 그룹으로 처리할 수 있습니다.

groupBaseDN을 userBaseDN과 동일한 값으로 설정합니다. 이렇게 하면 사용자와 동일한 위치에서 그룹을검색합니다.groupMemberAttribute와 groupMappingAttribute를 userNameAttribute와 동일한 속성으로 설정합니다. 이렇게 하면 해당 항목이 그룹으로 처리되는 경우 사용자 이름 값을 유일한 구성원으로 사용합니다.명확한 의미 전달을 위해 groupNameAttribute도 userNameAttribute와 같은 값으로 설정해야 합니다.

참고참고 : Active Directory를 통합할 경우 최적의 결과를 얻으려면 그룹 기반 DN을 사용자 기반 DN과 다른 개별 계층에 넣으십시오.

19. 개체 클래스에 대해 정적 그룹 필터링에 사용할 정적정적 그룹그룹 검색검색 필터필터를 입력합니다.

보고자 하는 명확한 그룹 리스트가 있는 경우에 사용합니다(예:(|(objectclass=groupofNames)(objectclass=groupofUniqueNames))).기본값은 공백이며, 정적 그룹 항목을 필터링하지 않는다는 의미입니다.

20. 그룹그룹 이름이름 속성속성을 입력합니다.

그룹 이름을 지정하는 데 사용하는 속성입니다.일반적으로 cn입니다.

21. 정적정적 구성원구성원 속성속성을 입력합니다.

그룹의 구성원을 지정하는 데 사용하는 속성입니다.일반적으로 member, uniqueMember 또는 memberUid입니다.

22. 중첩된 그룹을 확장하려면 중첩된중첩된 그룹그룹을 선택합니다.

Splunk Enterprise가 'memberof' 속성을 사용하여 중첩된 그룹을 확장할지 여부를 제어합니다. 이 옵션은'memberof' 속성을 사용하여 그룹의 구성원을 확인하는 중첩된 그룹이 있는 경우에만 선택하십시오. OpenLDAP에서는 'memberof' 오버레이를 명시적으로 활성화해야 합니다.

24

Page 25: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

23. 필요시 그룹을 동적으로 검색하기 위해 동적동적 그룹그룹 검색검색 필터필터를 입력합니다.

동적 그룹이 Splunk에 반환되려면, 이 필터와 동적 그룹 정의에 사용된 개체 클래스가 서로 일치해야 Splunk가 동적그룹을 받아볼 수 있습니다(예: (objectclass=groupOfURLs)).기본값은 공백이며, 인증 및 승인 과정에서 Splunk Enterprise가 동적 그룹 항목을 검색하지 않는다는 의미입니다.

24. 동적동적 구성원구성원 속성속성을 입력합니다.

LDAP 검색 URL 양식(예: ldap:///o=Acme, c=US??sub?(objectclass=person))을 사용하여 그룹의 구성원을 정의하는그룹 속성입니다.일반적으로 memberURL입니다.

25. 고급고급 설정설정을 선택할 경우 다음과 같은 추가 옵션을 설정할 수 있습니다.

익명익명 바인딩에서만바인딩에서만 조회조회 사용사용이 설정은 기본적으로 활성화되어 있습니다. 조회할 필요가 없는 경우에는 이 설정을 끄십시오.Splunk는 익명 바인딩을 사용하는 경우에만 조회를 추적할 수 있습니다. LDAP 서버에서도 익명 검색을 사용하도록 설정해야 합니다.LDAP 검색 제한 시간이 (Active Directory에서 검색하는 것처럼) 길고 splunkd.log에ScopedLDAPConnection에 대한 "작업 오류"가 있을 경우 조회와 관련된 문제일 가능성이 높습니다.

검색검색 요청요청 크기크기 제한제한성능 문제가 발생하지 않도록 검색 요청의 크기를 제한할 수 있습니다. 이 옵션을 설정하면 Splunk Enterprise는 LDAP 서버에 검색 요청에 대한 응답으로 지정된 최대 항목 수까지만 반환하도록 요청합니다. 사용자가 수백만에 달하는 대규모 배포 환경에서 이 제한 값을 높게 설정하면 LDAP 전략 구성에 설정된 검색 필터에 따라 응답 시간이 길어질 수 있습니다. 이 제한 값에 도달하면 splunkd.log에 size limit exceeded 메시지가 포함되어야합니다."사용자 Session timeout 설정"에서 설명하는 대로 검색검색 요청요청 시간시간 제한제한 값과 검색검색 요청요청 크기크기 제한제한 값은splunkweb 제한 시간 속성과 함께 설정해야 합니다. 그룹이 Splunk 콘솔에 표시되지 않는 경우는 이러한 제한 중하나로 인해 제외되었을 수 있습니다. 필요에 따라 이 속성들을 조정하십시오.요청 크기 제한 값을 1000보다 높게 설정하려면 limits.conf에서 max_users_to_precache도 요청 크기 제한 값으로 설정한 사용자 수에 적합하게 편집해야 합니다.

검색검색 요청요청 시간시간 제한제한성능 문제가 발생하지 않도록 검색 요청 시간에 제한을 설정할 수 있습니다. 이 옵션을 설정하면 SplunkEnterprise는 LDAP 서버에 지정된 시간(초) 내에 검색을 완료하도록 요청합니다. 사용자가 수백만에 달하는 대규모 배포 환경에서 이 제한 값을 높게 설정하면 Splunk Web에서 제한 시간이 초과될 수 있습니다. 이 제한 값에 도달하면 splunkd.log에 time limit exceeded 메시지가 포함되어야 합니다."사용자 Session timeout 설정"에서 설명하는 대로 검색검색 요청요청 시간시간 제한제한 값과 검색검색 요청요청 크기크기 제한제한 값은splunkweb 제한 시간 속성과 함께 설정해야 합니다. 그룹이 Splunk 콘솔에 표시되지 않는 경우는 이러한 제한 중하나로 인해 제외되었을 수 있습니다. 필요에 따라 이 속성들을 조정하십시오.

네트워크네트워크 소켓소켓 제한제한 시간시간이 속성은 네트워크 정체로 인해 여러 전략 설정에 속한 LDAP 서버 중 하나에 연결할 수 없거나 응답 시간이 너무 긴 경우에 인증 체인에서 루프를 중단하는 데 사용됩니다. 지정된 시간(초) 동안 대기한 후 사용 가능한 차순위 전략(있는 경우)을 사용하여 인증 프로세스를 계속 진행합니다.LDAP 전략을 처음 만들면 Splunk Enterprise가 LDAP 서버/포트 및 기타 매개변수의 유효성을 검사합니다. 유효성 검사 시점에 LDAP 서버가 작동 중단되었거나 매개변수 중 하나라도 유효성을 검사할 수 없는 경우에는LDAP 전략이 만들어지지 않습니다.

26. 저장저장을 클릭합니다.

새새 LDAP 그룹을그룹을 Splunk 역할에역할에 매핑매핑LDAP 서버를 통해 Splunk Enterprise를 인증한 후에는 LDAP 그룹을 Splunk 역할에 매핑하십시오. 그룹을 사용하지 않는경우에는 사용자를 개별적으로 매핑할 수 있습니다.

참고참고 : 사용자 또는 그룹 중 하나를 매핑할 수 있지만 둘 다는 매핑할 수 없습니다. 그룹을 사용하는 경우 모든 사용자가 적절한 그룹의 구성원이어야 합니다. 그룹은 해당 그룹이 속한 역할 중 최상위 수준의 역할에서 기능을 상속합니다.

Splunk 관리자의 사용자사용자 페이지에 모든 사용자가 표시됩니다. Splunk Web에서 그룹에 역할을 할당하려면:

1. 기본 메뉴에서 시스템시스템 > 사용자사용자 및및 인증인증 > 액세스액세스 제어제어를 선택합니다.

2. 액세스액세스 제어제어 페이지에서 인증인증 방법방법을 클릭합니다.

3. LDAP 라디오 단추를 선택한 다음 LDAP을을 사용하도록사용하도록 Splunk를를 설정한설정한 후후 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP전략전략 페이지로 이동합니다.

4. 특정 전략의 작업 컬럼에서 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP 그룹그룹 페이지로 이동합니다. 페이지의 오른쪽 상단 모서리에 있는 검색 필드를 사용하여 그룹 리스트의 구성원을 선별할 수 있습니다. 예를 들어, 특정 사용자가 포함된 그룹을 검색합니다.

25

Page 26: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

5. 그룹 이름을 클릭합니다. 사용 가능한 역할 리스트와 해당 그룹의 LDAP 사용자 리스트가 포함되어 있는 매핑 페이지가나타납니다.

6. 그룹에 역할을 매핑하려면 "사용 가능한 역할" 리스트에서 역할의 왼쪽에 있는 화살표를 클릭합니다. 그룹이 "선택된 역할" 리스트로 이동합니다. 그룹에 여러 역할을 매핑할 수 있습니다.

7. 저장저장을 클릭합니다. 그러면 LDAP 그룹그룹 페이지로 돌아갑니다.

8. Splunk 역할을 할당할 각 그룹에 대해 이 프로세스를 반복합니다.

서버서버 연결연결 순서순서 지정지정다중 LDAP 전략을 활성화한 경우 "다중 LDAP 서버에서 Splunk의 작동 방식"에 설명된 대로 Splunk Enterprise가 사용자를 찾기 위해 서버를 검색하는 순서를 지정할 수 있습니다.

기본적으로 Splunk Enterprise는 서버가 활성화된 순서대로 서버를 검색합니다. 연결(검색) 순서를 변경하려면 다음과 같이각 전략의 속성을 개별적으로 편집해야 합니다.

1. 기본 메뉴에서 시스템시스템 > 사용자사용자 및및 인증인증 > 액세스액세스 제어제어를 선택합니다.

2. 인증인증 방법방법을 클릭합니다.

3. LDAP 라디오 단추를 선택합니다.

4. LDAP을을 사용하도록사용하도록 Splunk를를 설정한설정한 후후 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP 전략전략 페이지로 이동합니다.

5. 연결 순서를 지정할 전략을 클릭합니다. 이 전략의 속성 페이지가 나타납니다.

6. 페이지 상단에 있는 연결연결 순서순서 필드를 편집합니다. 이 필드는 다중 전략이 활성화되어 있는 경우에만 표시됩니다.

참고참고 : 전략을 처음 만들 때는 연결연결 순서순서 필드가 표시되지 않고 나중에 전략의 속성을 편집할 때만 표시됩니다. 또한 전략이비활성화된 경우에는 필드가 회색으로 나타납니다.

7. 저장저장을 클릭합니다.

8. 연결 순서를 변경할 다른 활성화된 전략에 대해 이 프로세스를 반복합니다.

Splunk Web에서에서 LDAP 그룹을그룹을 Splunk 역할에역할에 매핑매핑LDAP 서버를 통해 Splunk Enterprise를 인증하도록 설정한 후 LDAP 그룹을 Splunk 역할에 매핑할 수 있습니다. 그룹을사용하지 않는 경우에는 LDAP 사용자를 개별적으로 매핑할 수도 있습니다.

Splunk Web에서 LDAP 그룹을 설정하는 방법에 대한 내용은 이 매뉴얼의 "Splunk Web을 사용하여 LDAP 설정"을 참조하십시오.

참고참고 : 사용자 또는 그룹 중 하나를 매핑할 수 있지만 둘 다는 매핑할 수 없습니다. 그룹을 사용하는 경우 Splunk Enterprise에 액세스하는 모든 사용자가 적절한 그룹의 구성원이어야 합니다. 그룹은 해당 그룹이 속한 역할 중 최상위 수준의 역할에서 기능을 상속합니다.

Splunk 관리자의 사용자사용자 페이지에 모든 사용자가 표시됩니다. Splunk Web에서 그룹에 역할을 할당하려면:

1. Splunk Web에서 설정설정을 클릭합니다.

2. 사용자사용자 및및 인증인증 섹션에서 액세스액세스 제어제어를 클릭합니다.

3. 인증인증 방법방법을 클릭합니다.

4. LDAP 라디오 단추를 선택합니다.

5. LDAP을을 사용하도록사용하도록 Splunk를를 설정한설정한 후후 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP 전략전략 페이지로 이동합니다.

6. 특정 전략의 작업 컬럼에서 그룹그룹 매핑매핑을 클릭합니다. 그러면 LDAP 그룹그룹 페이지로 이동합니다. 페이지의 오른쪽 상단 모서리에 있는 검색 필드를 사용하여 그룹 리스트의 구성원을 선별할 수 있습니다. 예를 들어, 특정 사용자가 포함된 그룹을 검색합니다.

7. 그룹 이름을 클릭합니다. 사용 가능한 역할 리스트와 해당 그룹의 LDAP 사용자 리스트가 포함되어 있는 매핑 페이지가나타납니다.

8. 그룹에 역할을 매핑하려면 "사용 가능한 역할" 리스트에서 역할의 왼쪽에 있는 화살표를 클릭합니다. 그룹이 "선택된 역할" 리스트로 이동합니다. 그룹에 여러 역할을 매핑할 수 있습니다.

26

Page 27: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

9. 저장저장을 클릭합니다. 그러면 LDAP 그룹그룹 페이지로 돌아갑니다.

10. Splunk 역할을 할당할 각 그룹에 대해 이 프로세스를 반복합니다.

설정설정 파일을파일을 사용하여사용하여 LDAP 설정설정Splunk Web을 사용하여 LDAP을 설정하는 방법 대신 authentication.conf 파일을 직접 편집하여 LDAP을 설정할 수도 있습니다.

다음 예에서는 authentication.conf 설정 프로세스를 단계별로 설명합니다. Splunk Web을 사용하여 LDAP을 설정하려면Splunk Web을 사용하여 LDAP 설정을 참조하십시오.

참고참고 : LDAP 인증을 설정한 후 나중에 기본 Splunk 인증으로 되돌리기로 할 경우, 가장 간단한 방법은 기존authentication.conf 파일의 사용을 종료(예: 파일의 이름을 authentication.conf.disabled로 변경)하고 Splunk Enterprise를재시작하는 것입니다.

authentication.conf spec 파일의 끝 부분에 몇 가지 예가 추가로 나와 있습니다.

authentication.conf에서 $SPLUNK_HOME/etc/system/local/을 편집합니다. 설정 파일에 대한 일반적인 내용은 관리자 매뉴얼의 설정 파일을 참조하십시오.

인증인증 유형유형 및및 전략전략 이름이름 설정설정Splunk Enterprise는 기본적으로 Splunk 인증을 사용합니다. [authentication] 스탠자에서 인증 유형을 LDAP으로 변경하십시오.

[authentication]authType = LDAPauthSettings = ldaphost1,ldaphost2

다음 사항을 고려하십시오.

authType = LDAP을 설정하여 LDAP을 켭니다.authSettings 속성은 하나 이상의 LDAP 전략을 식별합니다. 각 전략마다 스탠자가 개별적으로 있습니다.

LDAP 전략전략 스탠자스탠자 설정설정LDAP 전략마다 다른 스탠자가 필요합니다. 전략 스탠자에서 속성/값 쌍에 LDAP 값을 매핑하십시오.

참고참고 : Splunk Enterprise는 Windows에서 IPv6 주소 형식을 지원하지 않습니다.

다음은 앞의 authSettings 속성에서 지정한 "ldaphost1" 전략에 대한 스탠자 예입니다.

[ldaphost1]

host = ldaphost1.domain.com

port = 389

SSLEnabled = 0

bindDN = cn=bind_user

bindDNpassword = bind_user_password

groupBaseDN = ou=Groups,dc=splunk,dc=com

groupBaseFilter = (objectclass=*)

groupMappingAttribute = dn

groupMemberAttribute = uniqueMember

groupNameAttribute = cn

realNameAttribute = displayName

userBaseDN = ou=People,dc=splunk,dc=com

userBaseFilter = (objectclass=*)

userNameAttribute = uid

참고참고 : Active Directory를 통합할 경우 최적의 결과를 얻으려면 그룹 기반 DN을 사용자 기반 DN과 다른 개별 계층에 넣으십시오.

SSL

LDAP 전략에 SSL을 사용하는 경우 ldap.conf에 최소한 다음 설정이 있는지 확인하십시오.

TLS_REQCERT= demand

TLS_CACERT= <path to cert, for example: /opt/splunk/etc/auth/LDAProotcert.crt>

27

Page 28: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

TLS_CIPHER_SUITE= <your cipher suite>

다중다중 LDAP 전략전략 설정설정Splunk Enterprise는 다중 LDAP 서버에서 Splunk의 작동 방식에 설명된 대로 여러 LDAP 서버 전체를 검색할 수 있습니다. 이러한 검색을 설정하려면 authSettings 속성을 Splunk Enterprise가 쿼리할 순서에 따라 쉼표로 구분된 모든 전략 리스트로 설정하십시오. 그런 다음 각 전략에 대한 개별 스탠자를 지정하십시오.

그룹을그룹을 역할에역할에 매핑매핑Splunk 역할을 전략의 LDAP 그룹에 매핑하려면 해당 전략에 대해 roleMap 스탠자를 설정해야 합니다. 각 전략마다 roleMap스탠자가 개별적으로 있어야 합니다. 다음은 "ldaphost1" 전략의 그룹에 역할을 매핑하는 예입니다. 구문은 <SplunkRoleName> = <LDAP group string>입니다.

[roleMap_ldaphost1]

admin = SplunkAdmins

itusers = ITAdmins

사용자를사용자를 직접직접 역할에역할에 매핑매핑Splunk 역할에 사용자를 직접 매핑해야 하는 경우 groupBaseDN을 userBaseDN 값으로 설정하십시오. 또한groupMappingAttribute, groupMemberAttribute 및 groupNameAttribute 속성을 userNameAttribute와 같은 속성으로 설정하십시오. 예는 다음과 같습니다.

[supportLDAP]

SSLEnabled = 0

bindDN = cn=Directory Manager

bindDNpassword = #########

groupBaseDN = ou=People,dc=splunksupport,dc=com

groupBaseFilter = (objectclass=*)

groupMappingAttribute = uid

groupMemberAttribute = uid

groupNameAttribute = uid

host = supportldap.splunksupport.com

port = 389

realNameAttribute = cn

userBaseDN = ou=People,dc=splunksupport,dc=com

userBaseFilter = (objectclass=*)

userNameAttribute = uid

[roleMap_supportLDAP]

admin = rlee;bsmith

설정설정 파일에서파일에서 LDAP 그룹그룹 및및 사용자를사용자를 Splunk 역할에역할에 매핑매핑LDAP 인증 및 사용자를 설정한 후 Splunk Web에서 LDAP 그룹 및 사용자를 역할에 매핑할 수 있습니다. SplunkEnterprise에 대해 LDAP을 설정하려면 이 매뉴얼의 "설정 파일을 사용하여 LDAP 설정"을 참조하십시오.

그룹을그룹을 역할에역할에 매핑매핑Splunk 역할을 전략의 LDAP 그룹에 매핑하려면 해당 전략에 대해 roleMap 스탠자를 설정해야 합니다. 각 전략마다 roleMap스탠자가 개별적으로 있어야 합니다. 다음은 "ldaphost1" 전략의 그룹에 역할을 매핑하는 예입니다.

[roleMap_ldaphost1]

admin = SplunkAdmins

itusers = ITAdmins

사용자를사용자를 직접직접 역할에역할에 매핑매핑Splunk 역할에 사용자를 직접 매핑해야 하는 경우 groupBaseDN을 userBaseDN 값으로 설정하십시오. 또한groupMappingAttribute, groupMemberAttribute 및 groupNameAttribute 속성을 userNameAttribute와 같은 속성으로 설정하십시오. 예는 다음과 같습니다.

[supportLDAP]

28

Page 29: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SSLEnabled = 0

bindDN = cn=Directory Manager

bindDNpassword = #########

groupBaseDN = ou=People,dc=splunksupport,dc=com

groupBaseFilter = (objectclass=*)

groupMappingAttribute = uid

groupMemberAttribute = uid

groupNameAttribute = uid

host = supportldap.splunksupport.com

port = 389

realNameAttribute = cn

userBaseDN = ou=People,dc=splunksupport,dc=com

userBaseFilter = (objectclass=*)

userNameAttribute = uid

[roleMap_supportLDAP]

admin = rlee;bsmith

LDAP 설정설정 테스트테스트Splunk Enterprise가 LDAP 서버에 연결할 수 없는 경우 다음과 같은 순서로 문제를 해결할 수 있습니다.

1. $SPLUNK_HOME/var/log/splunk/splunkd.log에 인증 오류가 있는지 확인합니다. 여기서 자세한 정보를 얻으려면AuthenticationManagerLDAP에 대해 DEBUG 수준 로깅을 켜십시오. Splunk Web UI - 서버 설정/서버 로깅에서 이를 수행할 수 있습니다.

2. userBaseFilter와 groupBaseFilter에 추가한 사용자 지정 값을 모두 제거합니다.

3. 아래와 같이 ldapsearch를 사용하여 특정 변수가 올바른 항목을 반환하는지 확인합니다.

ldapsearch -x -h <ldap_host> -p <ldap_port> -D "bind_dn" -w "bind_passwd" -b "user_basedn""userNameAttribute=*"

ldapsearch -x -0h <ldap_host> -p <ldap_port> -D "bind_dn" -w "bind_passwd" -b "group_basedn""groupNameAttribute=*"

실행 결과, 올바른 결과가 반환되었다면 백엔드 LDAP 시스템이 올바르게 설정된 것입니다. 계속해서 Splunk의 LDAP 전략설정 문제를 찾아보십시오.

Splunk 인증에서인증에서 LDAP으로으로 변환변환Splunk 인증에서 LDAP으로 전환하는 경우 Splunk 계정이 자동으로 비활성화되지 않고 LDAP 계정에 우선한다는 점을 기억하는 것이 중요합니다.

Splunk 인증 시스템에서 LDAP으로 변환한 경우 LDAP 자격 증명을 사용하기 위해 Splunk 사용자를 삭제해야 할 수 있습니다. 이것은 두 시스템에서 사용자 이름이 동일한 경우에만 해당됩니다.

로컬로컬 Splunk 계정계정 보안보안LDAP 인증을 사용하도록 Splunk Enterprise를 설정한 경우에도, "admin" 계정을 포함하여 Splunk 인증을 사용하는 모든로컬 계정은 계속 존재하고 유효하다는 사실을 인지하는 것이 중요합니다. 따라서 이 계정이 보안에 미치는 영향을 반드시고려해야 합니다.

LDAP 인증을 사용할 경우 현재 로컬 계정을 모두 제거하는 방법은 다음과 같습니다.

$SPLUNK_HOME/etc/passwd 파일을 passwd.bak로 옮깁니다.빈 $SPLUNK_HOME/etc/passwd 파일을 만듭니다.Splunk Enterprise를 재시작합니다.

Splunk Enterprise가 LDAP 인증 모드를 사용하는 경우에도 로컬 Splunk 계정을 계속 만들 수 있습니다. 또한 백업 또는 재해 복구 용도로 사용하기 위해 보존해야 하는 모든 로컬 Splunk 계정에는 강력한 암호를 사용해야 합니다.

LDAP 사용 시 LDAP 구현을 위해 필요한 요구 사항은 다음과 같습니다.

길이가 길고 복잡한, 강력한 암호를 사용해야 합니다.암호 잠금을 위해 틀린 암호 시도 임계값을 낮게 설정해야 합니다.

저장된저장된 검색검색29

Page 30: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

LDAP의 사용자 이름과 기본 제공 시스템에서 삭제한 사용자 이름이 서로 일치한다면 아무런 수정 없이도 저장된 검색을 사용할 수 있습니다.

기존에 저장된 검색이 Splunk 인증을 사용하는 시스템에서 만든 검색일 경우, 이러한 저장된 검색을 다른 이름의 LDAP 사용자로 변환하려면 다음과 같이 메타데이터를 편집하십시오.

1. $SPLUNK_HOME/etc/apps/<app_name>/metadata/local.meta를 수정하고 각 savedsearch 권한 스탠자 아래의 owner =<username> 필드를 해당 LDAP 사용자 이름으로 변경한 후 변경 사항을 저장합니다.

2. 변경 사항을 적용하기 위해 Splunk Enterprise를 재시작합니다.

LDAP 사용자사용자 제거의제거의 베스트베스트 프랙티스프랙티스LDAP 디렉터리에서 사용자를 제거할 경우 Splunk Enterprise가 해당 Splunk 사용자를 자동으로 제거하지 않습니다. 그래도 일반적으로 문제가 되지 않지만 사용자에게 전역 권한이 있는 경우 LDAP 오류가 발생할 수 있습니다.

Splunk Enterprise에서 LDAP 사용자가 작업하는 방법에 대한 자세한 내용은 이 매뉴얼의 "LDAP을 사용하여 사용자 인증설정"을 참조하십시오.

Splunk 사용자를 안전하게 제거하려면 다음 절차를 따르십시오.

1. 먼저 $HOME/splunk/etc/users/$userid 폴더를 백업합니다.

2. $HOME/splunk/etc/apps/ 아래의 파일에서 사용자 ID 문자열을 검색하여 사용자가 전역 권한을 가진 검색 또는 개체를 소유하고 있는지 여부를 확인합니다.

3. 사용자가 소유한 검색 또는 개체의 소유자를 변경합니다. 관리자 계정이나 운영자 계정 또는 다른 계정으로 변경합니다.

4. 검색 헤드에서 splunkd.log를 검토하여 추가 LDAP 인증 오류가 없는지 확인합니다.

5. 개체 소유권을 모두 리디렉션한 후에 $HOME/splunk/etc/users/$userid 폴더를 안전하게 제거할 수 있습니다.

다중다중 요인요인 인증인증Duo Security를를 사용한사용한 2 요인요인 인증인증Splunk는 현재 Duo Security 2 요인 인증을 사용한 Splunk 플랫폼 로그인을 지원합니다.

참고참고 : 이전에 https://duo.com/docs/splunk를 통해 Duo 인증을 사용하도록 Splunk를 설정한 경우 이전 설정은 더 이상 유효하지 않습니다. 다음 작업을 수행하여 Duo Security를 사용한 2 요인 로그인을 다시 설정해야 합니다.

Duo Security 2 요인 인증이 활성화된 상태에서 사용자는 다음 작업을 수행해야 합니다.

1. 본인의 로그인 자격 증명을 사용하여 일반 Splunk 홈 페이지에 로그인합니다. (이를 기본 로그인이라고 합니다.)

2. 두 번째 "Duo Authentication” 페이지가 나타납니다. (이를 보조 로그인이라고 합니다.)

3. 사용자가 처음 로그인하면 Duo 로그인 페이지의 지침에 따라 로그인을 설정합니다. 그리고 보조 자격 증명에 액세스하는다음 방법 중에서 선택합니다.

스마트폰의 푸시 알림으로 전송되는 자격 증명을 사용하여 로그인(Duo Security 모바일 앱 필요)휴대폰으로 전송되는 SMS 메시지를 통해 받은 자격 증명을 사용하여 로그인휴대폰에서 수신 전화를 통해 받은 자격 증명을 사용하여 로그인Duo 모바일 앱에서 생성된 일회용 코드를 입력하여 로그인

4. 사용자가 위 옵션 중 하나를 사용하여 보조 자격 증명 전달 방법을 설정하면 이후의 보조 로그인 자격 증명이 이전에 설정된 방법으로 전송됩니다.

2 요인요인 인증이인증이 다른다른 형태의형태의 인증과인증과 작동하는작동하는 방식방식어떤 형태의 다중 요인 인증도 SSO 또는 SAML 인증과 함께 사용할 수 없습니다. Splunk의 다중 요인 인증과 함께 사용할수 있는 인증 방법은 다음과 같습니다.

Splunk 기본 인증LDAP스크립트 기반 인증

Splunk에서에서 Duo Security 2 요인요인 인증인증 설정설정30

Page 31: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

1. Duo 웹사이트에서 Splunk 설정에 사용할 계정을 만듭니다. 자세한 내용은 https://duo.com을 참조하십시오.

2. Duo Security 계정을 사용하여 다음 정보를 Splunk에 제공합니다. 자세한 내용은 Duo Security 2 요인 인증을 사용하도록 Splunk 설정을 참조하십시오.

Duo Security 2 요인요인 인증을인증을 사용하도록사용하도록 Splunk 설정설정참고참고 : 이전에 https://duo.com/docs/splunk를 통해 Duo 인증을 사용하도록 Splunk를 설정한 경우 이전 설정은 더 이상 유효하지 않습니다. 다음 작업을 수행하여 Duo Security를 사용한 2 요인 로그인을 다시 설정해야 합니다.

Splunk에서 Duo Security 2 요인 인증을 사용하도록 설정하는 방법:

1. Duo Security 웹사이트를 통해 Splunk에서 사용할 Duo Security 계정을 만듭니다. 자세한 내용은 https://duo.com을 참조하십시오.

2. 다음 정보를 Splunk에 제공하여 Splunk에서 Duo를 사용하도록 설정합니다.

통합 키(즉 DIXXXXXXXXXXXXXXXXXX)비밀 키API 호스트 이름(즉 api-XXXXXXXX.duosecurity.com)

3. 사용자는 Splunk에 로그인한 후 Duo 로그인 페이지의 지침에 따라 보조 로그인 자격 증명을 얻습니다.

위의 정보는 Duo Security 설정 페이지에 처음 나오는 세 가지 항목이며, Duo Security의 애플리케이션애플리케이션 > 세부세부 정보정보에도있습니다. Duo Security 자격 증명을 설정하지 않은 경우 https://duo.com을 참조하십시오.

1. 메뉴메뉴에서 설정설정 > 사용자사용자 및및 인증인증 > 액세스액세스 역할역할을 선택합니다.

2. 인증인증 방법방법을 클릭합니다.

3. 다중요인다중요인 인증인증에서 Duo Security를 선택합니다.

4. Duo Security 설정설정 링크를 클릭합니다.

5. Duo 설정의 통합통합 키키를 제공합니다. 이 키는 Duo Security 설정 페이지나 설정설정 > 세부세부 정보정보에 있습니다.

6. Duo Security 설정 또는 세부 정보의 비밀비밀 키키를 제공합니다. 이 키는 Duo Security 설정 페이지나 설정설정 > 세부세부 정보정보에 있습니다.

7. Duo 설정의 API 호스트호스트 이름이름을 제공합니다. 이 키는 Duo Security 설정 페이지나 설정설정 > 세부세부 정보정보에 있습니다.

8. Duo Security를 사용할 수 없는 경우에 수행할 인증 동작을 결정합니다.

사용자사용자 로그인로그인 허용허용 Splunk 홈 페이지에 성공적으로 로그인(즉 기본 인증)한 사용자는 Duo 인증(즉 보조 인증)에 실패해도 Splunk에 액세스할 수 있습니다.사용자사용자 로그인로그인 허용허용 안안 함함 Splunk 홈 페이지에 성공적으로 로그인(즉 기본 인증)한 사용자는 Duo 인증(즉 보조 인증)에 실패할 경우 Splunk에 액세스할 수 없습니다.

9. 연결 시간이 초과되기 전에 인증을 시도할 수 있는 제한 시간을 초 단위로 지정합니다.

10. 변경 사항을 저장합니다. 다중 요인 인증을 적용하기 위해 인증을 다시 로드하지 않아도 됩니다.

11. 사용자가 Splunk에 로그인하면 Duo 로그인 페이지가 표시되고, 사용자는 보조 로그인 자격 증명에 액세스할 방법을 선택해야 합니다.

설정설정 파일을파일을 사용하여사용하여 Duo 2 요인요인 인증인증 설정설정authentication.conf에서 [2FA stanza name] 스탠자를 다음과 같이 편집합니다.

externalTwoFactorVendor = Duo(as of now)

externalTwoFactorSettings = <2FA stanza name>

integrationKey = <Integration Key as provided by Duo>

secretKey = <Secret Key as provided by Duo>

applicationKey =<Manually generated secret key> apiHostname = <API Hostname as provided by Duo>

failOpen = True|False (Default : False)

timeout = <in seconds>

SAML을을 통한통한 SSO(Single Sign-On)를를 사용한사용한 인증인증31

Page 32: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SAML을을 사용한사용한 SSO(Single Sign-On) 설정설정지원 ID 제공자(IdP)에서 제공하는 정보를 사용하여 Splunk 소프트웨어가 SAML 인증을 SSO(single sign-on)에 사용하도록 설정할 수 있습니다.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있도록 준비해 달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정한 후에 알려드리고 필요한 인증서를 제공해 드립니다.

전제전제 조건조건다음 중 하나:

Splunk 소프트웨어 실행 버전관리형 Splunk Cloud 배포. 셀프 서비스 Splunk Cloud 배포에서는 Splunk 고객 포털을 통해 로그인하며,SAML SSO를 독립적으로 설정할 수 없습니다.

role, realName 및 mail 속성을 제공하도록 설정된 ID 제공자. 지원되는 ID 제공자는 다음과 같습니다.Ping IdentityOktaAzure ADAD FSOneLoginOptimalCA siteminder

change_authentication 기능이 있는 관리자 역할. 이 권한 수준이 있으면 SAML을 활성화하고 Splunk 검색 헤드에서인증 설정을 편집할 수 있습니다.

1. 다음을 통해 SAML SSO를 설정합니다.

Ping IdenityOktaAzure AD 또는 AD FSOneLoginOptimalCA siteminder

2. SAML 그룹을 Splunk Enterprise 역할에 매핑합니다.

PingIdentity를를 ID 제공자로제공자로 사용하여사용하여 SSO 설정설정여기서는 PingIdentity를 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk Enterprise에서 사용하도록 설정하는 방법에 대해 설명합니다. PingIdentity를 IdP로 설정하는 방법에 대한 내용은 Ping Federate 설명서를 참조하십시오.

아래 설명에 따라 PingIdentity 설정을 인식하고 사용하도록 Splunk 배포를 설정하십시오. 그런 다음 PingIdentity 사용자그룹을 Splunk 사용자 역할에 매핑하여 해당 사용자가 로그인할 수 있도록 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있게 해달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정하고 필요한 인증서를 제공합니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

SSO(Single

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk에서 보내는인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는 경우Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오.

32

Page 33: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Sign On)URL

사용자는 이 URL을 SSO 로그인에 사용합니다. SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에 loginType=Splunk를 추가하십시오. 사용자는splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 지정하면 Splunk 소프트웨어가 이 파일을 사용하여 SAML 응답을 확인합니다. 디렉터리를 지정하면 Splunk 소프트웨어가 해당 디렉터리에 있는 모든 인증서를 찾아보고 각 인증서를 사용하여 SAML 응답을 확인하려고 합니다. 확인에 실패할 경우 응답이 유효하지 않은 것으로 간주됩니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. 나중에 예약된 검색을 만들 수 있도록 속성속성 쿼리쿼리에 다음 정보를 입력합니다(선택 사항).

속성속성 쿼리쿼리URL

(선택 사항) SOAP를 통해 보내는 쿼리를 수신하는 IdP의 endpoint입니다. 형식은<urn:oasis:names:tc:SAML:2.0:attrname-format:uri>입니다.

속성속성 쿼리쿼리 요요청청 서명서명 이 필드가 선택되었는지 확인합니다.

속성속성 쿼리쿼리 응응답답 서명서명 이 필드가 선택되었는지 확인합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

Okta를를 ID 제공자로제공자로 사용하여사용하여 SSO 설정설정여기서는 Okta를 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk Enterprise에서 사용하도록 설정하는 방법에 대해 설명합니다. Okta를 IdP로 설정하는 방법에 대한 내용은 Okta 설명서를 참조하십시오.

아래 설명에 따라 Okta 설정을 인식하고 사용하도록 Splunk 배포를 설정하십시오. 그런 다음 IdP의 그룹을 Splunk 사용자역할에 매핑하여 해당 그룹이 로그인할 수 있도록 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있도록 준비해 달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정한 후에 알려드리고 필요한 인증서를 제공해 드립니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 찾는방법을 잘 모르는 경우 Okta 설명서를 참조하십시오.

33

Page 34: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

6. 일반일반 설정설정에서 다음 정보를 지정합니다.

SSO(SingleSign On)URL

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk Enterprise에서 보내는 인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는경우 Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오. 사용자는 이 URL을 SSO 로그인에 사용합니다.

SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에loginType=Splunk를 추가하십시오. 사용자는 - splunkweb:port/en-US/account/login?loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 단일 파일일 수 있습니다. 파일을 입력하면 SplunkEnterprise가 이 파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 지정하면Splunk Enterprise가 해당 디렉터리에 있는 모든 인증서를 살펴보고 각 인증서를 사용하여SAML 응답을 확인하려고 합니다. 확인에 실패하면 인증에 실패합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. 속성속성 쿼리쿼리를 건너뛰고 8, 9 단계로 이동합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

AzureAD 또는또는 AD FS를를 ID 제공자로제공자로 사용하여사용하여 SSO 설정설정여기서는 AzureAD 또는 ADFS를 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk 배포에서 사용하도록 설정하는 방법에대해 설명합니다. IdP를 설정할 때 AzureAD에 그룹을 설정하는 경우 다음 권고 사항을 참고하십시오.

응답 URL 끝에 /SAML/acs가 필요할 수 있습니다.groupMembershipClaims를 null에서 SecurityGroup으로 변경해야 할 수 있습니다.

AzureAD 또는 AD FS를 IdP로 설정하는 방법에 대한 내용은 IdP 설명서를 참조하십시오.

아래 설명에 따라 AzureAD 또는 AD FS 설정을 인식하고 사용하도록 Splunk 배포를 설정하십시오. 그런 다음 AzureAD 또는 AD FS 사용자 그룹을 Splunk 사용자 역할에 매핑하여 해당 사용자가 로그인할 수 있게 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 Splunk Cloud 배포에서 SSO를 사용할수 있도록 준비해 달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정한 후에 알려드리고 필요한 인증서를 제공해드립니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져34

Page 35: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

SSO(SingleSign On)URL

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk Enterprise에서 보내는 인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud의 경우Splunk Cloud 운영 팀에 IdP와 통신하는 데 사용할 포트를 열어달라는 내용의 지원을 요청하십시오.

사용자도 이 URL을 SSO 로그인에 사용합니다. SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에 loginType=Splunk를 추가하십시오. 사용자는splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 지정하면 Splunk 소프트웨어가 이 파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 지정하면 Splunk가 해당 디렉터리에 있는 모든 인증서를 살펴보고 각 인증서를 사용하여 SAML 응답을 확인하려고 합니다. 확인에 실패하면 인증에 실패합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. 속성속성 쿼리쿼리 부분을 건너뛰고 8, 9 단계로 이동합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

OneLogin을을 ID 제공자로제공자로 사용하여사용하여 SSO 설정설정여기서는 OneLogin을 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk에서 사용하도록 설정하는 방법에 대해 설명합니다.OneLogin을 IdP로 설정하는 방법에 대한 내용은 OneLogin 설명서를 참조하십시오.

아래 설명에 따라 OneLogin 설정을 인식하고 사용하도록 Splunk를 설정하십시오. 그런 다음 OneLogin 사용자 그룹을Splunk 사용자 역할에 매핑하여 해당 사용자가 로그인할 수 있도록 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있게 해달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정하고 필요한 인증서를 제공합니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

35

Page 36: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SSO(SingleSign On)URL

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk에서 보내는인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는 경우Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오. 사용자는 이 URL을 SSO 로그인에 사용합니다.

SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에loginType=Splunk를 추가하십시오. 사용자는 - splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

OneLogin은 단일 로그아웃 리디렉션 바인딩을 지원합니다. 바인딩을 'HTTPRedirect'로 설정하십시오.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 입력하면 Splunk가 이파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 입력하면 Splunk가 디렉터리의 하위 디렉터리 형태로 존재하는 모든 인증서를 찾고 각 인증서를 사용하여 SAML 응답을 확인하려고 하며, Splunk가 모든 인증서를 사용하여 신뢰성을 확인하는 데 실패하면 응답을 신뢰할수 없는 것으로 간주합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 값을 false로 지정하십시오.

SAML 응답응답서명서명 이 값을 false로 지정하십시오.

7. 속성속성 쿼리쿼리 부분을 건너뛰고 8, 9 단계로 이동합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

Optimal을을 ID 제공자로제공자로 사용하여사용하여 SSO 설정설정여기서는 Optimal을 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk에서 사용하도록 설정하는 방법에 대해 설명합니다.Optimal을 IdP로 설정하는 방법에 대한 내용은 Optimal 설명서를 참조하십시오.

아래 설명에 따라 Optimal 설정을 인식하고 사용하도록 Splunk를 설정하십시오. 그런 다음 Optimal 사용자 그룹을 Splunk사용자 역할에 매핑하여 해당 사용자가 로그인할 수 있도록 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있게 해달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정하고 필요한 인증서를 제공합니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk에서 보내는인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는 경우

36

Page 37: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SSO(SingleSign On)URL

Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오. 사용자는 이 URL을 SSO 로그인에 사용합니다.

SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에loginType=Splunk를 추가하십시오. 사용자는 - splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 입력하면 Splunk가 이파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 입력하면 Splunk가 디렉터리의 하위 디렉터리 형태로 존재하는 모든 인증서를 찾고 각 인증서를 사용하여 SAML 응답을 확인하려고 하며, Splunk가 모든 인증서를 사용하여 신뢰성을 확인하는 데 실패하면 응답을 신뢰할수 없는 것으로 간주합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. 속성속성 쿼리쿼리 부분을 건너뛰고 8, 9 단계로 이동합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

CA siteminder에서에서 SSO 설정설정여기서는 CA를 ID 제공자(IdP)로 설정한 경우에 SSO를 Splunk에서 사용하도록 설정하는 방법에 대해 설명합니다. CA를IdP로 설정하는 방법에 대한 내용은 CA 설명서를 참조하십시오.

아래 설명에 따라 CA 설정을 인식하고 사용하도록 Splunk를 설정하십시오. 그런 다음 CA 사용자 그룹을 Splunk 사용자 역할에 매핑하여 해당 사용자가 로그인할 수 있도록 하십시오.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있게 해달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정하고 필요한 인증서를 제공합니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

SSO(Single

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk에서 보내는인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는 경우Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오. 사용자는 이 URL을 SSO 로그인에 사용합니다.

37

Page 38: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Sign On)URL SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에

loginType=Splunk를 추가하십시오. 사용자는 - splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 입력하면 Splunk가 이파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 입력하면 Splunk가 디렉터리의 하위 디렉터리 형태로 존재하는 모든 인증서를 찾고 각 인증서를 사용하여 SAML 응답을 확인하려고 하며, Splunk가 모든 인증서를 사용하여 신뢰성을 확인하는 데 실패하면 응답을 신뢰할수 없는 것으로 간주합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. 속성속성 쿼리쿼리를 건너뛰고 8, 9 단계로 이동합니다.

8. 부하 분산을 설정하거나 SAML 바인딩을 변경해야 하는 경우에만 고급 섹션을 채웁니다. 부하 분산 또는 SAML 바인딩설정을 참조하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

TLS 인증서로인증서로 SSO 보안보안Splunk Enterprise가 Splunk 인스턴스와 AttributeQuery 서비스를 제공하는 SOAP 인스턴스 간에 TLS 확인을 수행할 수있도록 다음 SSL 설정을 구성하십시오.

다른 내용이 없는 경우 설정되지 않은 값은 기본적으로 server.conf에서 지정된 설정을 따릅니다.

[<saml-authSettings-key>]

sslVersions = <Comma-separated list of SSL versions to support>

sslCommonNameToCheck = <commonName> When populated, and sslVerifyServerCert is "true", splunkd limits most outbound

HTTPS connections to hosts which use a cert with this common name.

sslAltNameToCheck = <alternateName1>, <alternateName2>, ...If set, and sslVerifyServerCert' is "true",

splunkd can verify certificates with "Subject Alternate Name" that matches any of the alternate names in this list

ecdhCurveName = <ECDH curve to use for ECDH key negotiation>

sslKeysfile = <Server certificate file> Default certificates, "sever.pem" are auto-generated by splunkd upon

starting Splunk, you may replace the default cert with your own PEM format file

sslKeysfilePassword = <Server certificate password>

caCertFile = <Public key of the signing authority> The default value is cacert.pem

caPath = <Path where all these certs are stored>. Default value is $SPLUNK_HOME/etc/auth

sslVerifyServerCert = [ true | false ] If true, distributed search makes a search request to another

server in the search cluster.

SAML SSO 설정설정38

Page 39: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SAML 인증 시스템을 사용하도록 Splunk를 설정하면 IdP의 그룹을 Splunk 사용자 역할에 매핑하여 로그인 권한을 부여할수 있습니다.

주의주의 : Splunk Cloud에서 SSO를 설정하려고 하기 전에 Splunk 서포트에 연락하여 클라우드 배포에서 SSO를 사용할 수있도록 준비해 달라는 요청을 접수하십시오. Splunk 서포트에서 배포를 설정한 후에 알려드리고 필요한 인증서를 제공해 드립니다.

전제전제 조건조건시스템이 모든 요구 사항을 충족하는지 확인합니다. SAML을 사용한 SSO(Single Sign-On) 설정을 참조하십시오.

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 SAML 설정설정을 클릭합니다.

5. 메타데이터 파일을 찾아서 선택하거나, 메타데이터를 복사하여 텍스트 창에 직접 붙여넣습니다. 메타데이터 파일을 가져오는 방법을 모를 경우 IdP의 설명서를 참조하십시오.

6. 일반일반 설정설정에서 다음 정보를 입력합니다.

SSO(SingleSign On)URL

이 필드는 선택한 메타데이터 파일에 따라 자동으로 입력됩니다. 이 URL은 Splunk에서 보내는인증 요청을 수신하는 IdP에서 보호받는 endpoint입니다. Splunk Cloud를 사용하는 경우Splunk Cloud 운영 팀에 IdP와 통신하기 위한 포트를 열어달라는 내용의 지원을 요청하십시오. 사용자는 이 URL을 SSO 로그인에 사용합니다.

SAML이 활성화된 후에 로그인 페이지에 액세스하려면 전체 로그인 URL(/account/login)에loginType=Splunk를 추가하십시오. 사용자는 - splunkweb:port/en-US/account/login/loginType=Splunk로 직접 이동하여 로컬 Splunk 계정에 로그인할 수도 있습니다.

SLO(SingleLog Out)URL

이 필드는 메타데이터 파일에 따라 자동으로 입력되는 IdP 프로토콜 endpoint입니다. 이 URL을입력하지 않으면 사용자가 로그아웃되지 않습니다.

IdP 인증인증 경로경로이 값은 IdP 요구 사항에 따라 디렉터리 또는 파일일 수 있습니다. 파일을 입력하면 Splunk가 이파일을 사용하여 SAML 응답의 신뢰성을 확인합니다. 디렉터리를 입력하면 Splunk가 디렉터리의 하위 디렉터리 형태로 존재하는 모든 인증서를 찾고 각 인증서를 사용하여 SAML 응답을 확인하려고 하며, Splunk가 모든 인증서를 사용하여 신뢰성을 확인하는 데 실패하면 응답을 신뢰할수 없는 것으로 간주합니다.

개체개체 ID 이 필드는 IdP의 SP 연결 항목에서 설정한 개체 ID입니다.

AuthRequest서명서명 이 옵션을 선택합니다.

SAML 응답응답서명서명 이 옵션을 선택합니다.

7. PingIdentity를 IdP로 사용하는 경우 나중에 예약된 검색을 만들 수 있도록 속성속성 쿼리쿼리에 다음 정보를 입력합니다. Okta,Azure AD 또는 AD FS를 사용하여 예약된 검색을 만드는 경우 해당 필드는 필수가 아닙니다.

속성속성 쿼리쿼리URL

이 필드는 SOAP를 통해 쿼리를 보내는 대상 IdP의 endpoint입니다. 형식은<urn:oasis:names:tc:SAML:2.0:attrname-format:uri>입니다.

속성속성 쿼리쿼리 요요청청 서명서명 이 필드가 선택되었는지 확인합니다.

속성속성 쿼리쿼리 응응답답 서명서명 이 필드가 선택되었는지 확인합니다.

8. 고급고급 설정설정에서 다음 정보를 입력합니다.

이 필드를 사용하여 IdP에 새 속성 이름을 지정한 후 Splunk 쪽에서 3개 속성의 별칭을 설정할수 있습니다.

39

Page 40: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

속성속성 별칭별칭 역할역할AD FS 기본 제공 "역할" 속성이 반환되도록 설정했고 이 속성에 AD 그룹 정보가 있는 경우http://schemas.microsoft.com/ws/2008/06/identity/claims/role을 지정하십시오. 이 값을 통해Splunk는 반환된 SAML 응답의 역할 정보가 어떤 속성에 포함되었는지 알 수 있습니다.

Azure AD를 설정한 경우 http://schemas.microsoft.com/ws/2008/06/identity/claims/groups를지정하십시오.

속성속성 별칭별칭 메일메일Azure AD를 IdP로 사용하는 경우 이 필드를 채우십시오. 이 값은 반환된 SAML 응답의 사용자이메일 주소에 별칭을 매핑합니다.http://schemas.microsoft.com/identity/claims/displayname을 입력하십시오.

속성속성 별칭별칭 실제실제이름이름

Azure AD를 IdP로 사용하는 경우 이 필드를 채우십시오. 이 값을 통해 Splunk Enterprise는 반환된 SAML 응답의 실제 이름을 어디로 매핑해야 하는지 알 수 있습니다.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress를 입력하십시오.

FQDN - 부하부하분산분산 장치의장치의 호호스트스트 이름이름 또는또는IP

https://sh1.STACKID.splunkcloud.com으로 설정하십시오. 이 설정은 단일 검색 헤드나 검색헤드 클러스터로 구성된 Splunk 배포에 사용할 수 있습니다. 검색 헤드 클러스터를 이용한 부하분산을 사용하는 경우 주소를 입력해야 합니다.

(선택 사항) 리리디렉션디렉션 포트포트

이전 필드에서 설명한 부하 분산 장치의 리디렉션 포트를 입력하십시오. Okta의 경우 "0"(영)으로 설정하십시오.

9. 저장저장을 클릭합니다.

다음다음 단계단계SAML 그룹을 Splunk Enterprise 역할에 매핑

SSO 고급고급 설정설정 구성구성부하 분산을 설정하거나 SAML 바인딩을 변경하려면 고급 섹션을 채우십시오.

고급고급 설정설정에서 다음 정보를 입력합니다.

속성속성 별칭별칭 역할역할 이 필드를 사용하여 IdP에 새 속성 이름을 지정한 후 Splunk 쪽에서 3개 속성의 별칭을 설정할 수 있습니다.

속성속성 별칭별칭 실제실제이름이름

이 필드는 건너뛰어도 됩니다. ADFS의 경우 Attribute Alias Real Name의 표시이름을 사용할 수 있습니다.

FQDN - 부하부하 분분산산 장치의장치의 호스트호스트이름이름 또는또는 IP

https://sh1.STACKID.example.com으로 설정하십시오. 이 설정은 단일 검색 헤드나 검색 헤드 클러스터로 구성된 Splunk 배포에 사용할 수 있습니다. 검색 헤드 클러스터를 이용한 부하분산을 사용하는 경우 주소를 입력해야 합니다.

(선택 사항) 리디리디렉션렉션 포트포트 이전 필드에서 설명한 부하 분산 장치의 리디렉션 포트를 입력하십시오.

SAML 그룹을그룹을 역할에역할에 매핑매핑SAML 인증 시스템을 사용하도록 Splunk 배포를 설정하면 SAML 서버의 그룹을 Splunk 사용자 역할에 매핑하여 로그인권한을 부여할 수 있습니다. 여러 그룹을 사용자 역할 하나에 매핑할 수 있습니다.

전제전제 조건조건SAML SSO

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. SAML 그룹 페이지에서 새새 그룹그룹을 클릭하거나 수정할 그룹에 해당하는 편집편집을 클릭합니다.

5. 그룹의 이름을 입력합니다.

40

Page 41: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

6. 왼쪽 컬럼에서 오른쪽 컬럼으로 이동하면서 이 그룹에 할당할 역할을 결정합니다.

7. 저장저장을 클릭합니다.

SAML SSO를 설정하고 그룹을 역할에 매핑한 후 로그인 URL을 사용자에게 배포할 수 있습니다.

역할역할 매핑매핑 수정수정 또는또는 제거제거SAML 인증 시스템을 사용하도록 Splunk 배포를 설정하면 SAML 서버의 그룹을 Splunk 사용자 역할에 매핑하여 로그인권한을 부여할 수 있습니다. 여러 그룹을 사용자 역할 하나에 매핑할 수 있습니다.

이 항목에서는 기존 그룹에서 역할을 제거하거나 그룹 전체를 삭제하는 방법에 대해 설명합니다. 개별 사용자를 SAML 그룹에서 제거하려면 해당 IdP 설명서를 참조하십시오.

전제전제 조건조건SAML SSO

1. 설정설정 메뉴에서 액세스액세스 제어제어 > 인증인증 방법방법을 선택합니다.

2. SAML을 인증 유형으로 선택합니다.

3. SAML을을 사용하도록사용하도록 Splunk 설정설정을 클릭합니다.

4. 그룹 전체를 삭제하려면 제거할 그룹에 대해 삭제삭제를 클릭합니다.

5. SAML 그룹 페이지에서 수정할 그룹에 대해 편집편집을 클릭합니다.

6. 원하는 역할을 오른쪽 컬럼에서 왼쪽 컬럼으로 옮겨 이 그룹에서 제거할 역할을 지정합니다.

7. 저장저장을 클릭합니다.

SAML SSO를 설정하고 그룹을 역할에 매핑한 후 로그인 URL을 사용자에게 배포할 수 있습니다.

설정설정 파일에서파일에서 SAML SSO 설정설정이 항목에서는 설정 파일을 사용하여 SAML v2에 대해 SSO를 설정하는 방법에 대해 설명합니다.

Splunk Enterprise에서 authentication.conf와 web.conf 설정ID 제공자 설정SAML 설정 보안

authentication.conf 설정설정authentication.conf에서 다음 스탠자를 설정하십시오.

[authentication]

authSettings = saml_settings

authType = SAML

[roleMap_SAML]

admin = Super Admin;

power = Power Admin;

user = <list roles> Admin;Employee;

[saml_settings]

entityId = <entityid>

idpAttributeQueryUrl = <optional path to the Attribute query> https://your path/idp/attrsvc.ssaml2

idpCertPath = <path to the idp cert in Splunk> /home/user/splunk/saml-install/etc/auth/ping_idp.crt.>

idpSSOUrl = <path to the sso url> https://your path/idp/SSO.saml2.

idpSLOUrl = <Logout url. If not specified, this will be treated as a typical sso and the logout button will be

disabled.

https://your path/idp/SLO.saml2 #

redirectPort=443

attributeQueryTTL = 3600

signAuthnRequest = true

signedAssertion = true

attributeQueryRequestSigned = <Set to true if using optional idpAttributeQuerySSL>

attributeQueryResponseSigned = <Set to true if using optional idpAttributeQuerySSL>

41

Page 42: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

attributeQuerySoapPassword = <your password>

attributeQuerySoapUsername = <your username>

Azure AD 또는 ADFS를 사용하여 SSO를 설정하려면 다음 속성을 더 추가하십시오.

nameIDFormat = (선택 사항) SAML 응답에서 반환되는 항목의 형식을 지정하십시오. AzureAD는 항목을 식별하는 문자열을 반환하며, 필요한 경우 이 속성을 통해 다른 형식을 지정할 수 있습니다(이메일 주소 권장). 이렇게 하면 감사(audit) 및 저장된 검색에 유용할 수 있습니다. 이메일 주소를 형식으로 지정하려면 다음을 사용하십시오.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

role = Azure AD for SSO 또는 ADFS를 사용하는 경우 이 필드를 채우십시오. 이 값을 통해 Splunk Enterprise는 반환된SAML 응답의 역할 정보를 제공하는 속성이 무엇인지 알 수 있습니다. Azure AD의 경우 다음을 사용하십시오.http://schemas.microsoft.com/ws/2008/06/identity/claims/groups

email = 이 값은 반환된 SAML 응답의 사용자 이메일 주소에 별칭을 매핑합니다. Azure AD의 경우 다음을 사용하십시오.http://schemas.microsoft.com/identity/claims/displayname

realName = 이를 통해 Splunk Enterprise는 반환된 SAML 응답의 실제 이름을 매핑할 위치를 알 수 있습니다. Azure AD의 경우 다음을 사용하십시오. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress.

</pre>

web.conf를를 설정하고설정하고 필요할필요할 경우경우 장애장애 리디렉션리디렉션 주소주소 추가추가다음 값을 web.conf의 설정 스탠자에 추가합니다.

[settings]

appServerPorts = 7065 <make sure this attribute is enabled>

ssoAuthFailureRedirect = http://10.140.31.19:7000/ui/en-us/account/sso_error <this is your custom user redirect for

failed logins>

ID 제공자제공자 설정설정이제 Splunk 소프트웨어 메타데이터를 가져오도록 IdP를 설정해야 합니다. IdP에서 Splunk 소프트웨어 메타데이터를 가져오려면 AuthnRequest 서명 및 AttributeQuery 요청 서명 설정이 Splunk 소프트웨어와 IdP에서 호환되는지 확인하십시오.

1. IdP 인증서를 Splunk 소프트웨어 인스턴스의 파일로 내보냅니다.

2. authentication.conf가 SAML 설정 스탠자에 있는 해당 인증서를 가리키는지 확인합니다.

3. 서명 인증을 위해 Splunk 소프트웨어 서버 인증서(server.pem)를 IdP로 가져옵니다.

Splunk Web의 /saml/spmetadata endpoint를 사용하여 Splunk 소프트웨어 메타데이터를 내보낼 수 있습니다. splunkd의SAML-sp-metadata endpoint에도 액세스할 수 있습니다.

SAML 설정설정 보안보안SAML attributequery 서비스는 Splunk Enterprise가 AttributeQuery 서비스를 제공하는 Splunk 인스턴스와 SOAP 인스턴스 간에 TLS 확인을 수행하는 데 사용하는 모든 기본 SSL 설정을 지원합니다.

일반적으로 다음 설정은 IdP에서 속성 쿼리를 지원하는 경우에만 적용됩니다. 그러나 sslKeysFile 및 sslKeysFilePassword 속성은 IdP에 관계없이 적용됩니다.

server.conf를 다음과 같이 편집하여 인증서 인증을 설정하십시오.

[<saml-authSettings-key>]

sslVersions = <recommended settings tls1.1 and tls1.2>

sslCommonNameToCheck = <commonName> If this value is set, and 'sslVerifyServerCert' is set to true, splunkd will

limit most outbound HTTPS connections to hosts which use a cert with this common name. If not set, Splunk uses the

setting specified in server.conf.

sslAltNameToCheck = <alternateName1>, <alternateName2> If this value is set, and 'sslVerifyServerCert' is set to

true, splunkd will also be willing to verify certificates which have a so-called "Subject Alternate Name" that

matches any of the alternate names in this list. If not set, Splunk uses the setting specified in server.conf.

ecdhCurveName = <string> ECDH curve to use for ECDH key negotiation. If not set, Splunk uses the setting specified

in server.conf.

sslKeysfile = <server certificate file>. Certificates are auto-generated by splunkd upon starting Splunk but you can

replace the default cert with your own PEM format file. Default is server.pem. If not set, Splunk uses the setting

specified in server.conf. This setting is valid for all IdPs.

sslKeysfilePassword = <server certificate password> This setting is valid for all IdPs.

42

Page 43: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

caCertFile = <fPublic key of the signing authority, default is cacert.pem> If not set, Splunk uses the setting

specified in server.conf.

caPath = <path where all these certs are stored, the default is $SPLUNK_HOME/etc/auth>

sslVerifyServerCert = [ true | false ] Used by distributed search: when making a search request to another server in

the search cluster. If not set, Splunk uses the setting specified in server.conf.

SAML SSO 문제문제 해결해결아래에는 흔히 발생하는 몇 가지 문제와 각 문제의 해결 방법이 나와 있습니다.

문제문제다음 메시지가 나타납니다.

ERROR AuthenticationManagerSAML - Requesting user info from ID returned an error Error in Attribute query request,

AttributeQueryTransaction err=Cannot resolve hostname, AttributeQueryTransaction descr=Error resolving: Name or

service not known, AttributeQueryTransaction statusCode=502

문제문제 해결해결 방법방법

SAML 스탠자에서 cipherSuite가 올바로 지정되었는지 확인합니다. 예는 다음과 같습니다.cipherSuite = TLSv1+MEDIUM:@STRENGTH

cipherSuite = ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

모든 SOAP 암호 요구 사항이 충족되었는지 확인합니다.

authentication.conf에서 SAML에 대한 SSL 설정이 올바르게 설정되었는지 확인합니다.

문제문제다음 메시지가 나타납니다.

ERROR UserManagerPro - user="samluser1" had no roles

문제문제 해결해결 방법방법

rolemap_SAML에 올바른 역할 매핑이 포함되었고 각 역할 이름 끝에 ","가 있는지 확인합니다.

문제문제다음 메시지가 나타납니다.

ERROR AuthenticationManagerSAML - Attribute query request failed. Status

code=urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal, Status msg=No attributes found for requested subject

문제문제 해결해결 방법방법

role, mail 및 realName 속성이 AuthnRequest와 속성 쿼리 요청의 일부로 다시 반환되도록 매핑되었는지 확인합니다.

문제문제사용자가 성공적인 어설션 유효성 검사 후에 로그인할 수 없습니다. 로컬 매핑 또는 어설션에서 유효한 Splunk 역할을 찾을수 없습니다.

문제문제 해결해결 방법방법

rolemap_SAML 스탠자에 IdP와 해당 Splunk 역할에서 반환된 역할이 올바르게 매핑되었는지 확인합니다.

authentication.conf에서 정의된 각 역할 사이 또는 앞뒤에 공백이 없는지 확인합니다. 예는 다음과 같습니다.

user = User;Employee

43

Page 44: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

문제문제인증이 SAML로 설정되었고 설정이 올바른 것으로 보이지만, 로그인 화면에 Splunk 인증 페이지가 대신 표시됩니다.

문제문제 해결해결 방법방법

web.conf에서 appServerPorts가 '0'이 아닌 유효한 포트로 설정되었는지 확인합니다.

프록시프록시 SSO를를 사용한사용한 인증인증ProxySSO

Splunk Enterprise의 ProxySSO 인증을 사용하면 리버스 프록시 서버를 통해 Splunk 인스턴스 SSO(Single-Sign On)를설정할 수 있습니다. 따라서 사용자가 리버스 프록시 서버에 로그인하면 Splunk Web에 원활하게 액세스할 수 있습니다.

많은 경우에 ProxySSO는 사용자 ID와 함께 그룹 정보도 HTTP 헤더에 담아서 Splunk에 전달할 수 있기 때문에 기존SSO(Single-Sign On)보다 더 간단합니다. Splunk는 이 정보를 사용하여 그룹을 해당 Splunk 역할에 매핑함으로써 사용자를 인증하고 허가합니다.

ProxySSO 인증:

사용자 인증과 허가를 한 단계로 합쳐서 로그인 프로세스의 능률을 개선합니다.설정 단계를 줄입니다. Splunk Enterprise 안에서 복잡한 LDAP 전략을 설정할 필요가 없습니다.Splunk와 인증 서비스 간에 주고받는 메시지를 줄여 인증의 효율을 높입니다.프록시 서버가 필수 정보를 전달할 수 있는 한 외부 인증 서비스가 LDAP으로 제한되지 않습니다.

현재 Splunk Web을 통해 ProxySSO를 설정할 수 없습니다. 대신 REST API를 사용하거나 설정 파일을 수정하여ProxySSO를 설정해야 합니다.

Splunk Cloud는 현재 ProxySSO를 지원하지 않습니다.

전제전제 조건조건ProxySSO를 설정하려면 다음 항목이 이미 설정되어 있어야 합니다.

필요한 HTTP 헤더를 전송하도록 설정된 프록시 서버작동 중인 Splunk Enterprise 설정 위 항목을 설정하고 ProxySSO를 설정하는 방법에 대한 자세한 내용은ProxySSO 설정을 참조하십시오.

Splunk 소프트웨어의소프트웨어의 프록시프록시 요청요청 처리처리 방법방법ProxySSO는 리버스 프록시 서버를 통한 인증 및 허가를 지원합니다. 프록시 서버는 설정된 인증 서비스를 사용하여 인증하고 HTTP 요청을 만듭니다. Splunk는 신뢰할 수 있는 리버스 프록시 서버로부터 HTTP 헤더를 수신합니다. trustedIP는web.conf에서 설정되고, 프록시에서 요청을 수신할 때 확인됩니다.

인증 시에 Splunk Enterprise는 헤더에 넣어서 전달된 ID를 신뢰합니다. Splunk Enterprise는 사용자 인증과 함께 헤더에서보낸 그룹 정보도 파싱합니다. 그룹-역할 매핑은 authentication.conf의 [roleMap_proxySSO] 스탠자에서 지정됩니다. SplunkEnterprise는 이 매핑을 사용하여 사용자의 Splunk 역할을 확인합니다. 그룹을 역할에 매핑할 수 없는 경우 사용자가 기본설정 역할로 로그인됩니다. 역할을 찾을 수 없으면 사용자가 로그인할 수 없습니다.

성공적인 로그인 후에는 사용자의 세션 쿠키가 생성되고 Splunk Web에 문제 없이 액세스할 수 있습니다.

ProxySSO 설정설정리버스리버스 프록시프록시 서버서버 설정설정Splunk Web의 프록시 역할을 하고 사용자에게 자격 증명을 요구하고 사용자 ID 및 그룹을 HTTP 헤더를 통해 SplunkWeb에 전달하도록 프록시 서버를 설정합니다.

아래 예에는 Apache 서버에서 ProxySSO를 설정할 수 있는 방법이 나와 있습니다.

AuthType Basic

AuthBasicProvider ldap

....

44

Page 45: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

ProxyPass / http://mysplunkhost:8000/

ProxyPassReverse / http://mysplunkhost:8000/

....

AuthLDAPURL "ldap://<ldap-server>:<ldap-port>/OU=IT Department,DC=com?sn,sAMAccountName?"

....

RequestHeader set Remote_User %{AUTHENTICATE_sn}e

RequestHeader set Remote_Groups %{AUTHENTICATE_sAMAccountName}e

....

이 설정에서는 사용자에게 LDAP 사용자 이름과 암호를 요청하고 지정된 Idap 서버를 쿼리합니다. 그런 다음 LDAP 속성 값을 사용하여 Remote_User 및 Remote_Groups HTTP 헤더에서 사용자 및 그룹 정보를 설정합니다.

Splunk Enterprise 설정설정1. web.conf 설정

[settings]

SSOMode = strict

trustedIP = 10.1.1.2

remoteUser = Remote_User

remoteGroups = Remote_Groups

remoteGroupsQuoted = true

allowSsoWithoutChangingServerConf = 1

이 설정에서는 SSOMode = strict로 설정했기 때문에 10.1.1.2 IP 주소에서 보낸 수신 요청만 신뢰합니다.

그리고 키가 있는 헤더의 값을 Remote_User 및 Remote_Groups로 추출합니다.

allowSsoWithoutChangingServerConf = 1로 설정하거나, server.conf에서 trustedIP를 127.0.0.1로 설정할 수 있습니다.

Remote_Groups에 해당하는 값은 쉼표로 구분된 그룹의 리스트입니다(예: IT, Engineering, HR). 그러나 그룹 항목은 쉼표로 구성될 수 있습니다. 이 경우 remoteGroupsQuoted = true를 활성화하여 그룹을 따옴표로 묶고 Splunk에서 파싱하여 처리할 수있습니다. 예를 들어 "IT, North America", "Engineering" 그룹 리스트는 IT, North Americas와 Engineering이라는 두 그룹으로 파싱됩니다.

Splunk 인스턴스를 재시작하여 변경 사항을 적용합니다.

2. authentication.conf에서 [authentication] 스탠자를 다음과 같이 설정합니다.

[authentication]

authType = ProxySSO

authSettings = my_proxy

3. roleMap_proxySSO 스탠자에서 그룹을 Splunk 역할에 매핑합니다.

[roleMap_proxySSO]

admin = IT operational admin

splunk-system-role = IT sub-admin

4. 추가 설정에 대해 [my_proxy] 스탠자를 설정합니다.

[my_proxy]

defaultRoleIfMissing = user

그룹 매핑을 찾을 수 없는 경우 defaultRoleIfMissing에 설정된 역할이 할당됩니다.

설정이 완료되면 인증을 다시 로드하여 변경 사항을 적용합니다.

프록시프록시 SSO 문제문제 해결해결web.conf의 settings 스탠자에서 enableWebDebug=true로 설정한 후 프록시 서버에서 Splunk Web으로 보내는 HTTP 요청 헤더를 아래 endpoint에서 볼 수 있습니다.

http://<ProxyServerIP>:<ProxyServerPort>/debug/sso

45

Page 46: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

이 endpoint는 흔히 발생하는 다음과 같은 몇 가지 구성 또는 설정 오류를 확인하는 데 유용합니다.

수신 요청 IP가 trustedIP의 설정 값과 일치함프록시 서버에 설정된 헤더 속성 이름이 Splunk에 설정된 이름과 같은지 확인그룹 항목이 올바로 전송 및 파싱되는지 확인 (특히 remoteGroupsQuoted = true로 설정된 경우.) etc/log.cfg에서splunkd 스탠자에 category.UiAuth=DEBUG를 추가하여 그룹이 어떻게 파싱되는지 확인할 수 있습니다.

확인하고 나면 다음 설정을 확인하십시오.

파싱된 그룹의 매핑이 roleMap_proxySSO에 있음사용자 또는 사용자의 역할이 차단 리스트에 있기 때문에 사용자가 로그인할 수 없는 경우가 있습니다. authSettings값과 이름이 유사한 스탠자에서 차단 리스트에 포함된 개체가 있는지 확인하십시오.

이러한 로그인 이벤트는 var/log/splunkd.log에 실패 이유와 함께 기록됩니다.

리버스리버스 프록시를프록시를 통한통한 SSO(Single Sign-On)를를 사용한사용한인증인증리버스리버스 프록시를프록시를 사용한사용한 SSO(Single Sign-On)

Splunk SSO(Single Sign-On)에서는 리버스 프록시를 사용하여 Splunk 인증인증을 처리할 수 있습니다. 즉, 사용자가 프록시에 로그인하면 원활하게 Splunk Web(또는 프록시에 설정된 다른 애플리케이션)에 액세스할 수 있습니다.

리버스 프록시를 사용하여 구현한 Splunk Enterprise SSO는 Splunk Web을 통한 Splunk Enterprise 로그인만 지원합니다. 이 구현 방식에서는 쿠키에 인증 정보가 저장되므로, Splunk Enterprise에 CLI 인증을 사용하는 경우에는 SSO를 사용할 수 없습니다. https://localhost:8089(또는 할당된 관리 포트)를 호출하려면 독립 인증이 필요합니다.

위 항목을 설정하고 Splunk SSO를 설정하는 방법에 대한 자세한 내용은 SSO(Single Sign-On) 설정을 참조하십시오.

SSO(Single Sign-On) 작동작동 방식방식Splunk Enterprise 관리자와 사용자는 Splunk Web을 사용하여 배포된 프록시 URL을 통해 Splunk Web을 호출합니다. 프록시는 사용 중인 인증 시스템과 비교하여 수신 요청에 대한 인증을 처리합니다. 인증에 성공하면 프록시가 요청 헤더에 인증된 ID의 속성을 설정하고 이 정보를 Splunk Enterprise로 보냅니다.

Splunk Enterprise는 프록시로부터 수신하는 HTTP 요청을 수락하며, Splunk Enterprise에서 헤더에 포함된 사용자를 인식하면 이 사용자는 로그인 페이지를 건너뛰고 자동으로 인증됩니다.

SSO(Single Sign-On)가 성공적으로 실행되려면 프록시에서 Splunk Web으로 보내는 모든 요청에 이 인증된 헤더가 있어야 합니다. 요청에 헤더가 없는 경우 사용자는 설정에 따라 로그인 페이지 또는 오류 페이지로 돌아갑니다. Splunk 소프트웨어는 브라우저 세션 내내 이 인증된 헤더를 사용합니다.

Splunk 소프트웨어의소프트웨어의 프록시프록시 요청요청 처리처리 방법방법프록시 서버가 Splunk Web에 요청을 보내면 Splunk Web은 web.conf에서 trustedIP 값을 검토하여 프록시의 IP가 신뢰할수 있는 IP 리스트에 있는지 확인합니다.

IP를 신뢰할 수 없는 경우는 요청이 거부되고 Sign-On 시도가 실패합니다. IP 주소를 신뢰할 수 있는 경우 Splunk Web은요청 헤더에서 ID를 조회하고 이 헤더 정보를 포함한 인증 요청을 splunkd에 보냅니다.

Splunk Web으로부터 인증 요청을 수신한 splunkd는 클라이언트(일반적으로 Splunk Web)의 수신 IP 주소가 server.conf파일의 trustedIP 속성 값과 일치하는지 확인합니다.

IP 주소가 trustedIP 리스트에 없으면 요청이 거부되고 Sign-On 시도가 실패합니다. web.conf의 SSOmode 설정에 따라 사용자가 로그인 페이지로 돌아가거나 오류 페이지가 나타납니다. 이 속성과 기타 설정 정보에 대한 자세한 내용은 SplunkSSO(Single Sign-On) 설정을 참조하십시오.

IP를 신뢰할 수 있는 경우 splunkd는 요청 헤더에 포함된 정보를 사용하여 인증 프로세스를 수행합니다.

46

Page 47: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Splunk 소프트웨어에서소프트웨어에서 사용자를사용자를 인증하는인증하는 방법방법우선 Splunk 소프트웨어는 제공된 ID 및 역할이 Splunk 사용자와 일치하는지 확인합니다. 일치하는 사용자를 찾을 수 없으면 LDAP 일치 항목이 있는지 확인합니다. (Splunk 소프트웨어에서 사용자를 인증하는 방법에 대한 내용은 이 매뉴얼의LDAP을 사용하여 사용자 인증 설정을 참조하십시오.)

일치하는 항목이 없어서 헤더에 포함된 사용자를 인증할 수 없는 경우에는 브라우저에 오류 페이지가 표시됩니다.

일치하는 항목을 찾으면 Splunk 소프트웨어는 사용자를 인증하고 기존 세션의 존재 여부를 확인합니다. 기존 세션이 있으면Splunk 소프트웨어는 이 세션 식별자를 재사용하고 사용자의 Splunk Web 액세스에 필요한 쿠키를 생성합니다. 기존 세션이 없으면 Splunk 소프트웨어는 새 세션을 만들고 Splunk Web 인증에 필요한 쿠키도 새로 만듭니다.

쿠키가 생성된 후 Splunk Web의 정상적인 흐름이 재개됩니다. 만약 요청 헤더에 신뢰할 수 있는 ID가 포함되어 있으면서 사용자의 브라우저 세션이 열려 있으면 이후에 프록시 URL을 통해 Splunk Enterprise에 액세스할 때 재인증을 요구하지 않습니다.

리버스리버스 프록시를프록시를 사용한사용한 SSO(Single Sign-On) 설정설정Splunk Enterprise를 사용하여 리버스 프록시 기반 SSO를 설정하기 전에 다음 항목이 있는지 확인하십시오.

외부 시스템으로의 인증을 수행할 리버스 프록시로 설정된 프록시 서버(Splunk Enterprise는 IIS 또는 Apache를 지원함)프록시를 통해 인증을 받을 사용자와 그룹을 관리하는 기타 외부 인증 시스템 또는 LDAP 서버프록시와 동일한 외부 인증 시스템(일반적으로 LDAP)을 사용하도록 설정된 작동 중인 Splunk Enterprise 설정이나,외부 인증 시스템에 저장된 사용자 및 그룹 ID와 일치하는 기본 Splunk Enterprise 사용자가 있는 작동 중인 Splunk설정

리버스 프록시를 사용하여 SSO를 설정하려면 다음 단계를 따라야 합니다.

1. 프록시 서버가 외부 인증 시스템을 통해 인증을 받을 수 있도록 관련 속성을 편집합니다.

47

Page 48: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

2. Splunk Enterprise server.conf 파일을 편집합니다.

3. Splunk Enterprise web.conf 파일을 편집합니다.

참고참고 : 최상의 보안을 유지하려면 HTTP 헤더 기반 솔루션이 TLS/SSL 활성 배포 환경에 구현되어야 합니다.

server.conf 설정설정general settings 스탠자에서 trustedIP를 편집하여 splunkd로 보안 인증 요청을 보낼 IP 주소를 추가하십시오. 일반적으로Splunk Web이기 때문에 localhost를 사용합니다. IP 주소는 splunkd 인스턴스당 한 개만 입력할 수 있습니다.

trustedIP=127.0.0.1

trustedIP 리스트에 IP 주소가 제공되지 않으면 Splunk SSO가 기본적으로 비활성화됩니다.

web.conf 설정설정SSO를 활성화하려면 web.conf(SPLUNK_HOME/etc/system/local)의 [settings] 스탠자에 다음을 설정하십시오.

SSOMode = strict

trustedIP = 127.0.0.1,10.3.1.61,10.1.8.81

remoteUser = Remote-User

tools.proxy.on = False

속성속성 기본값기본값 값값

SSOMode no

SSOMode 속성은 Splunk Web SSO가 strict 모드로 작동하는지 아니면 permissive 모드로작동하는지 여부를 결정합니다.

strict 모드에서는 trustedIP 속성 리스트에 포함된 IP 주소와 일치하는 ID로 인증을 제한합니다. 연결을 시도하는 IP가 어떤 IP 주소와도 일치하지 않을 경우 오류 페이지가 사용자에게 표시됩니다. SSO의 경우 strict 모드가 권장됩니다.

permissive 모드에서도 trustedIP 리스트에 포함된 IP의 요청으로 인증을 제한합니다.permissive 모드에서는 연결을 시도하는 IP가 어떤 IP 주소와도 일치하지 않을 경우 사용자를 다시 인증할 수 있도록 로그인 페이지가 표시됩니다.

trustedIP n/a인증 프록시의 IP 주소로 설정하십시오. 단일 주소를 지정하거나 주소가 여러 개일 경우 쉼표로 구분된 리스트를 지정하십시오. IP 범위와 넷마스크 표기법은 사용할 수 없습니다.

remoteUser REMOTE_USER

remoteUser 속성은 프록시 서버에 의해 HTTP 요청 헤더를 통해 전달되는 인증된 ID의 속성을 결정합니다. 기본값은 REMOTE_USER지만, 인증 후에 프록시가 이 속성을 올바르게 설정한경우 LDAP 속성이 이 요청 헤더에 포함되어 전달될 수 있습니다. remoteUser 속성을 설정하는 경우 프록시 설정에서 Splunk 소프트웨어에 ID의 속성을 전달하도록 RequestHeader 속성도 설정해야 합니다. 이 프로세스에 대해서는 "Splunk SSO(Single Sign-On)"에서 설명합니다.

Splunk에서 기본으로 사용되는 헤더는 REMOTE_USER지만, 프록시가 다른 헤더를 사용하는 경우 여기에서 헤더의 이름을 변경할 수 있습니다.

tools.proxy.on falseApache 1.x 프록시의 경우 이 값을 True로 설정해야 합니다. 2.4 버전 이상에서는 이 값을False로 설정해야 합니다.

Splunk Web을 프록시 루트에 배치하지 않는 프록시 뒤에 Splunk Web을 호스트하는 경우$SPLUNK_HOME/etc/system/local/web.conf에서 root_endpoint 설정도 구성해야 할 수 있습니다.

예를 들어 프록시가 "yourhost.com:9000/splunk"에서 Splunk Web을 호스트하는 경우 root_endpoint를 /splunk로 설정해야 합니다.

예:

root_endpoint=/lzone

ProxyPass /lzone http://splunkweb.splunk.com:8000/lzone

ProxyPassReverse /lzone http://splunkweb.splunk.com:8000/lzone

위 예에서는 http://splunk.example.com:8000/ 대신 http://splunk.example.com:8000/lzone을 통해 Splunk Web에 액세스합니다.

그런 다음 httpd.conf에서 매핑하여 프록시에서 볼 수 있습니다.

48

Page 49: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

ProxyPass /lzone http://splunkweb.splunk.com:8000/lzone

ProxyPassReverse /lzone http://splunkweb.splunk.com:8000/lzone

세션세션 관리관리생성된 세션 그 자체는 로그아웃이 되지 않으며 Splunk Enterprise는 프록시 헤더에 올바른 헤더 정보가 들어올 때까지 해당세션을 계속 유지하기 때문에 이 점을 고려하여 프록시의 session timeout 값을 설정해야 합니다.

제한 시간에 도달하기 전에 세션을 종료할 필요가 있다면 다음과 같이 세션 식별자와 REST endpoint를 함께 사용하여 세션을 종료할 수 있습니다.

curl -s -uadmin:changeme -k -X DELETE https://localhost:8089/services/authentication/httpauth-

tokens/990cb3e61414376554a39e390471fff0

리버스리버스 프록시프록시 SSO 문제문제 해결해결Splunk Web은 사용자가 자신의 배포 환경을 손쉽게 디버깅할 수 있도록 그 환경과 런타임 데이터를 분석할 수 있는 별도의인터페이스를 제공합니다. 이 페이지는 프록시를 경유하거나 또는 직접 URL을 입력하여 액세스할 수 있습니다. 단, 프록시서버를 거치지 않고 페이지에 액세스한 경우 요청 헤더가 유효하지 않습니다.

+문제가 해결되면 이 설정을 비활성화하는 것이 좋습니다.

URL은 다음과 같습니다.

http://YourSplunkServer:8000/debug/sso

중요중요 : 이 디버그 페이지는 기본적으로 사용할 수 없습니다. 페이지를 사용할 수 있게 설정하려면 다음 두 단계를 완료해야 합니다. 먼저 이 endpoint에 액세스하는 역할에 web_debug 기능이 있어야 합니다. 관리자 역할에는 이 기능이 기본적으로 있습니다. 그런 다음 web.conf에서 enableWebDebug=true 설정을 구성해야 합니다. 문제를 해결한 후에 이 설정을 즉시 비활성화해야 합니다.

문제 해결 페이지에서 배포 환경 분석 시 고려 사항은 다음과 같습니다.

Splunk의의 신뢰할신뢰할 수수 있는있는 IP(Splunk trusted IP)와 호스트호스트 IP(Host IP)를 비교합니다. 값이 동일해야 하며 모두 프록시의 IP여야 합니다. 문제 해결 페이지에서 값이 동일하지 않으면 server.conf에서 trustedIP 값을 편집해야 합니다.

Splunkweb으로으로 들어오는들어오는 요청요청 IP(Incoming request IP received by splunkweb) 값과 사용 중인 클라이언트IP 주소가 동일한지 확인합니다. 서로 일치하지 않으면 다음을 수행해야 합니다.

web.conf를 편집하여 IP를 수정합니다.tools.proxy.on이 true로 설정되었는지 확인합니다.

프록시에서 헤더를 제공하고 있는지 확인합니다. 기타기타 HTTP 헤더헤더 아래에 있는 인증인증 필드를 확인합니다. 값이 없는경우 프록시의 http.conf 파일을 보고 원격 헤더 속성 값이 올바르게 설정되어 있는지 확인합니다. Splunk 소프트웨어는 대부분의 프록시에서 기본값으로 사용되는 REMOTE_USER를 원격 헤더 값으로 허용하도록 설정되어 있습니다. 프록시의 원격 헤더가 다른 경우에 이 값을 계속 유지하려면 web.conf에서 원격 헤더 값을 편집하여 Splunk 소프트웨어가 허용할 헤더를 변경할 수 있습니다. 자세한 내용은 SSO 설정을 참조하십시오.

Splunk Web이 splunkd로 보낼 쿠키를 만들고 있는지 확인합니다. 기타기타 HTTP 헤더헤더 아래에 있는 쿠키쿠키 필드에서 쿠키가 설정되어 있는지 확인합니다. 쿠키가 설정되어 있지 않으면 web.conf 파일에서 해당 파일이 올바로 설정되었는지확인합니다. 자세한 내용은 SSO 설정을 참조하십시오.

스크립트스크립트 기반기반 인증인증외부외부 시스템을시스템을 사용하여사용하여 사용자사용자 인증인증 설정설정사용자 인증 옵션은 다음과 같습니다.

Splunk 인증LDAPSSO(Single Sign-On)PAM 또는 RADIUS와 같은 외부 인증 시스템과 함께 사용하는 스크립트 기반 인증 API(이 절 참조)

중요중요 : Splunk 인증은 외부 시스템에 우선합니다.

다음은 Splunk 소프트웨어의 LDAP 사용자 인증 순서입니다.

1. Splunk 인증 또는 SSO

49

Page 50: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

2. LDAP 또는 스크립트 기반 인증(활성화된 경우). LDAP에 대한 자세한 내용은 "LDAP을 사용하여 사용자 인증 설정"을 참조하십시오.

스크립트스크립트 기반기반 인증인증 작동작동 방식방식스크립트 기반 인증에서는 사용자에 의해 생성된 Python 스크립트가 Splunk 서버와 외부 인증 시스템(예: PAM 또는RADIUS) 사이에서 중개자의 역할을 합니다.

API는 Splunk 소프트웨어와 인증 시스템 간의 통신을 처리하는 몇 가지 함수로 구성됩니다. 이러한 함수를 호출하는 핸들러를 스크립트로 구현해야 합니다.

인증 시스템을 Splunk Enterprise와 통합하려면 인증 시스템이 실행 중인지 확인한 후 다음 작업을 수행하십시오.

1. Python 인증 스크립트를 작성합니다. 자세한 절차는 "인증 스크립트 만들기"를 참조하십시오.

2. authentication.conf에서 스크립트 관련 설정을 입력하는 것으로 스크립트 기반 인증을 활성화할 수 있습니다. 자세한 절차는 "authentication.conf 편집"을 참조하십시오.

예예Splunk에서는 인증 스크립트 관련 설정 파일의 몇 가지 예제를 제공합니다(RADIUS용, PAM용). 또한 스크립트와 Splunk배포의 상호 작용에 초점을 맞추는 dumbScripted.py라는 간단한 스크립트도 있습니다.

제공된 스크립트와 설정 파일 예제를 기초로 하여 사용자 지정 스크립트를 작성할 수 있습니다. 반드시 사용하는 환경에 맞게 수정해야 합니다.

예는 $SPLUNK_HOME/share/splunk/authScriptSamples/에 있습니다. 이 디렉터리에는 예제에 대한 정보뿐만 아니라 SplunkEnterprise와 외부 시스템의 연결을 설정하는 데 필요한 추가 정보가 들어 있는 README 파일도 포함되어 있습니다.

중요중요 : 해당 스크립트는 사용자가 필요에 따라 수정 또는 확장할 수 있는 예제로 제공됩니다. 스크립트는 지원되지 않으며, 인증 및 보안에 필요한 모든 사항을 완전히 충족한다고 보장할 수 없습니다.

인증인증 스크립트스크립트 만들기만들기인증 시스템을 Splunk 배포와 통합하려면 인증 시스템이 실행 중인지 확인한 후 다음 작업을 수행하십시오.

1. Python 인증 스크립트를 작성합니다. 자세한 절차는 이 항목의 "Python 스크립트 만들기"를 참조하십시오.

2. 새 스크립트를 테스트합니다. 자세한 절차는 이 항목의 "스크립트 테스트"를 참조하십시오.

3. authentication.conf에서 스크립트 관련 설정을 입력하는 것으로 스크립트 기반 인증을 활성화할 수 있습니다. 자세한 절차는 "authentication.conf 편집"을 참조하십시오.

Python 스크립트스크립트 만들기만들기다음과 같은 인증 함수를 구현하는 Python 스크립트를 만들어야 합니다.

userLogingetUserInfogetUsers

Splunk 서버는 사용자 로그인을 인증하거나 사용자의 역할 정보를 확인하는 등 필요에 따라 이러한 함수를 호출합니다.

또한 스크립트에 다음 함수에 대한 핸들러를 선택적으로 포함시킬 수도 있습니다.

getSearchFilter

다음 테이블에는 인증 함수, 인수 및 반환 값이 요약되어 있습니다.

함수함수 설명설명 인수인수 문자열문자열 반환반환 값값 문자열문자열

userLogin사용자 자격 증명을 사용하여로그인합니다.

--

username=<username>

--

password=<password>

(stdin을 통해 한 줄에 하나씩 값이 전달

fail

(stdout을 통해 안전하게 전달됨)

50

Page 51: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

됨)

getUserInfo이름 및 역할을 포함한 사용자정보를 반환합니다.

--

username=<username>

--status=success|fail

--

userInfo=<userId>;<username>;<realname>;<roles>

다음 사항을 고려하십시오.

userInfo는 세미콜론으로 구분된 리스트를지정해야 합니다.<userId>는 지원되지 않으며, 관련된 세미콜론만 반환됩니다.<username>은 필수입니다.<realname>은 선택 사항이지만 세미콜론은필수입니다.<roles>는 필수입니다. 역할을 여러 개 반환하려면 콜론으로 각 역할을 구분하십시오.예: admin:power다음은 "docsplunk"라는 이름을 가진 사용자의 역할을 반환하는 예입니다.

--status=success --

userInfo=;docsplunk;;admin:power

getUsers모든 Splunk 사용자의 정보를반환합니다.

none

--status=success|fail

--

userInfo=<userId>;<username>;<realname>;<roles>

--

userInfo=<userId>;<username>;<realname>;<roles>

--

userInfo=<userId>;<username>;<realname>;<roles>

...

다음 사항을 고려하십시오.

각 사용자에 대한 정보를 반환하기 위해 사용하는 구문에 대한 내용은 getUserInfo를참조하십시오.각 사용자의 정보를 공백으로 구분하십시오.<roles>는 필수입니다. 역할을 여러 개 반환하려면 콜론으로 각 역할을 구분하십시오.예: admin:power

getSearchFilter

선택 사항. 사용자의 역할에 적용되는 필터와 함께 이 사용자에게만 적용되는 필터를 반환합니다. 필터는 OR와 함께 표시됩니다.

--

username=<username>

--status=success|fail --search_filter=<filter>

--search_filter=<filter> ...

참고참고 : 사용자 기반 검색 필터는 선택 사항이며 권장되지 않습니다. 검색 필터를 역할에 할당한 후적합한 역할에 사용자를 할당하는 편이 더 좋은 방법입니다.

자세한 내용은 "getSearchFilter 함수를 사용하여검색 시간에 필터링"을 참조하십시오.

함수를 구현하는 방법에 대한 자세한 내용은 예제 스크립트를 참고하십시오.

스크립트스크립트 테스트테스트Splunk 배포와 스크립트 사이의 통신은 stdin과 stdout을 통해 이루어지므로 명령 쉘에서 대화식으로 스크립트를 테스트할수 있습니다. 인수는 한 줄에 하나씩 보내고 각 함수 호출을 끝낼 때마다 EOF(Ctrl-D)를 사용해야 합니다.

다음과 같은 패턴을 이용하여 각 함수를 개별적으로 테스트하십시오.

> python [script] [function name]

[pass arguments here, one per line]

[send eof, with Ctrl-D]

[output appears here, check that it's correct]

51

Page 52: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

>

다음은 "alice"와 "bob"이라는 두 명의 사용자가 포함된 가상의 "example.py" 스크립트에 대해 몇 가지 간단한 테스트를 수행하는 디버깅 세션을 보여주는 예입니다. "alice"는 "admin"과 "super" 역할에 속해 있고, "bob"은 "user" 역할에 속해 있습니다.

> python example.py userLogin

--username=alice

--password=correctpassword

<send an EOF>

--status=success

> python example.py userLogin

--username=bob

--password=wrongpassword

<send an EOF>

--status=fail

> python example.py getUsers

<no arguments for this function, send an EOF>

--status=success --userInfo=bob;bob;bob;user --userInfo=alice;alice;alice;admin:super

> python example.py getUserInfo

--username=bob

<send an EOF>

--status=success --userInfo=bob;bob;bob;user

> python example.py getUserInfo

--username=userdoesnotexist

<send an EOF>

--status=fail

>

중요중요 : 위 예는 스크립트를 테스트하는 단편적인 예를 보여주고 있습니다. 실제 스크립트의 광범위한 디버깅과는 차이가 있을수 있습니다.

authentication.conf 편집편집인증 시스템을 Splunk 배포와 통합하려면 인증 시스템이 실행 중인지 확인한 후 다음 작업을 수행하십시오.

1. Python 인증 스크립트를 작성하고 테스트합니다. 자세한 절차는 "인증 스크립트 만들기"를 참조하십시오.

2. authentication.conf를 편집하여 인증 스크립트를 활성화합니다. 이 항목의 "스크립트 활성화"를 참조하십시오.

3. authentication.conf를 편집하여 캐시 기간을 설정합니다. 이 항목의 "캐시 기간 설정"을 참조하십시오.

스크립트스크립트 활성화활성화인증을 구현할 Python 스크립트를 만든 후에는 $SPLUNK_HOME/etc/system/local/에 있는 authentication.conf를 업데이트하여 스크립트를 활성화하십시오. $SPLUNK_HOME/share/splunk/authScriptSamples/에서 샘플 authentication.conf를 복사하여편집할 수도 있습니다.

[authentication] 스탠자 헤딩 아래의 인증 유형을 다음과 같이 Scripted로 지정하십시오.

[authentication]

authType = Scripted

authSettings = script

[script] 스탠자 헤딩 아래의 스크립트 변수를 설정하십시오. 예는 다음과 같습니다.

[script]

scriptPath = $SPLUNK_HOME/bin/python $SPLUNK_HOME/bin/<scriptname.py>

캐시캐시 기간기간 설정설정스크립트 기반 인증을 사용할 때 인증 속도를 크게 높이려면 Splunk 인증 캐싱을 활성화하십시오. 캐싱 기능을 사용하려면[cacheTiming](선택 사항) 스탠자를 추가하면 됩니다. getSearchFilter를 제외한 각 스크립트 함수에는 설정 가능한cacheTiming 속성이 있으며, 이 속성은 해당 함수에 대해 캐시 기능을 활성화하고 캐시 기간을 지정합니다. 예를 들어getUserInfo 함수의 캐시 시간을 지정하려면 getUserInfoTTL 속성을 사용합니다. 함수의 캐싱 기능은 관련된 속성이 지정된경우에만 실행됩니다.

52

Page 53: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

cacheTiming 설정은 Splunk 소프트웨어가 외부 인증 시스템과 통신하기 위해 스크립트를 호출하는 빈도를 지정합니다. 지정할 수 있는 시간 단위는 초, 분, 시간, 일 등입니다. 일반적으로 캐시 빈도는 초 또는 분 단위로 제한합니다. 단위를 지정하지않을 경우 기본값은 초 단위로 지정됩니다. 따라서 값이 "5"이면 "5초"라는 뜻입니다.

다음은 일반적인 캐시 값을 보여주는 예입니다.

[cacheTiming]

userLoginTTL = 10s

getUserInfoTTL = 1m

getUsersTTL = 2m

userLoginTTL은 사용자 로그인/암호의 유효성이 캐시되는 기간을 결정하므로 낮은 값으로 설정하는 것이 좋습니다.

모든 캐시를 즉시 새로 고치려면 다음과 같이 reload auth CLI 명령어를 사용하십시오.

./splunk reload auth

참고참고 : 이 명령어를 사용할 경우 시스템에서 현재 사용자가 부팅되지는 않습니다.

Splunk Web에서도 다음과 같이 캐시를 새로 고칠 수 있습니다.

1. 시스템시스템 메뉴의 사용자사용자 및및 인증인증에서 액세스액세스 제어제어를 선택합니다.

2. 인증인증 방법방법을 클릭합니다.

3. 인증인증 설정설정 다시다시 로드로드를 클릭하여 캐시를 새로 고칩니다.

지정되는 각 함수에는 getUsers를 제외하고 각 사용자별로 별도의 캐시가 있습니다. 따라서 로그온한 사용자가 10명인 경우에 getUserInfoTTL 속성을 지정하면 getUserInfo 함수에는 10개의 사용자 기반 캐시가 있게 됩니다. getUsers 함수에는 모든사용자가 포함되므로 하나의 전역 캐시가 있습니다.

PAM 인증인증 사용사용예제 디렉터리의 README 파일($SPLUNK_HOME/share/splunk/authScriptSamples/에 위치)에 수록된 절차에 따라 SplunkEnterprise가 PAM 인증을 사용하도록 설정할 수 있습니다.

설정 후에도 인증할 수 없는 경우 /etc/pam.d/pamauth를 편집하고 다음 행을 추가하십시오.

auth sufficient pam_unix.so

getSearchFilter 함수를함수를 사용하여사용하여 검색검색 시간에시간에 필터링필터링이 함수는 선택적 함수이며 검색 시간에 사용자 기반 필터를 구현하는 데 사용할 수 있습니다. getSearchFilter를 활성화하면검색을 실행할 때마다 Splunk 소프트웨어가 이 함수를 호출합니다. 사용자 기반 검색 필터는 해당 사용자의 역할에 대해 지정된 모든 필터를 보완합니다. 반환된 필터는 역할 레벨에서 설정된 모든 필터와 함께 각 검색에 적용됩니다. 이 함수를 사용하는 경우에는 필터 캐싱이 실행되지 않습니다.

참고참고 : 사용자 기반 검색 필터는 선택 사항이며 권장되지 않습니다. 검색 필터를 역할에 할당한 후 적합한 역할에 사용자를 할당하는 편이 더 좋은 방법입니다.

getSearchFilter 함수를 활성화하려면 authentication.conf에서 scriptSearchFilters 매개변수를 다음과 같이 설정하십시오.

[script]

scriptPath = $SPLUNK_HOME/bin/python $SPLUNK_HOME/bin/<scriptname.py>

scriptSearchFilters = 1

참고참고 : 이전 릴리스에서는 Splunk 소프트웨어에 의해 인증된 사용자의 검색 필터를 구현하는 데에도 getSearchFilter가 사용되었습니다. 4.2 버전부터는 스크립트 기반 인증을 통해 인증된 사용자의 경우에만 getSearchFilter가 호출됩니다.

또한 getSearchFilter 호출에 실패할 경우 Splunk Enterprise는 사용자가 허가되지 않은 검색 결과를 볼 수 없도록 하기 위해사용자의 검색을 취소하고 오류 메시지를 반환합니다.

SSL을을 사용한사용한 Splunk Enterprise 통신통신 보안보안53

Page 54: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

SSL을을 사용한사용한 Splunk Enterprise 보안보안이 절에서는 SSL을 사용하여 보안할 수 있는 Splunk 설정 유형에 대해 설명합니다.

기본기본 인증서인증서Splunk 소프트웨어는 기본 인증서 집합과 함께 제공되고 이를 사용하도록 설정됩니다. 루트 인증서는 모든 Splunk 다운로드에 똑같이 포함되어 있고 동일한 루트 인증서를 가진 모든 사용자를 인증할 수 있기 때문에 일반적인 스누핑(snooper)은차단할 수 있지만, 여전히 보안에 취약합니다.

기본 인증서는 Splunk를 시작할 때 생성 및 설정되며 $SPLUNK_HOME/etc/auth/에서 확인할 수 있습니다. 이 인증서는 인증서생성일로부터 3년 후에 만료되도록 설정되므로 만료되기 전에 이 새 인증서를 만들고 설정해야 합니다.

Splunk Web의 기본 인증서에 대한 내용은 "Splunk Web을 사용하여 암호화(https) 설정" 또는 "web.conf를 사용하여 암호화(https) 설정"을 참조하십시오.기본 인증서와 함께 전달하기 위한 SSL 설정 관련 내용은 "기본 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.

Splunk Enterprise 보안보안 방법방법사용자 본인의 인증서를 사용하여 암호화 및/또는 인증을 다음에 적용할 수 있습니다.

브라우저와 Splunk Web 간의 통신Splunk 포워더포워더에서 인덱서인덱서로 전달되는 통신관리 포트를 통한 Splunk 인스턴스 간 통신과 같은 기타 통신 유형

다음 테이블에는 가장 일반적인 시나리오와 기본 SSL 설정이 설명되어 있습니다.

교환교환 유형유형 클라이언클라이언트트 기능기능 서버서버 기능기능 암호화암호화 인증서인증서 인증인증 공통공통 이름이름 확인확인 교환되는교환되는 데이터데이터 유형유형

브라우저와Splunk Web간

브라우저 SplunkWeb

기본적으로사용되지 않음

클라이언트(브라우저)에서 기록

클라이언트(브라우저)에서 기록

검색어 결과

Splunk 간 통신

SplunkWeb

splunkd기본적으로사용됨

기본적으로 사용되지 않음

기본적으로 사용되지 않음 검색어 결과

전달 splunkd(포워더 역할)

splunkd(인덱서 역할)

기본적으로사용되지 않음

기본적으로 사용되지 않음

기본적으로 사용되지 않음 인덱싱할 데이터

배포 서버 ->인덱서

splunkd(포워더 역할)

splunkd(인덱서 역할)

기본적으로사용되지 않음

기본적으로 사용되지 않음

기본적으로 사용되지 않음

권장되지 않음.Pass4SymmKey를 대신 사용하십시오.

브라우저와브라우저와 Splunk Web 간의간의 통신통신브라우저와 Splunk Web 사이에서 교환되는 데이터는 대부분 검색 요청과 반환되는 데이터로 구성되어 있습니다.

데이터 암호화(HTTPS)는 Splunk Web을 사용하거나 설정설정 파일파일을 편집하여 손쉽게 설정할 수 있습니다. 기본 인증서를 통한 암호화는 일상적인 수신에 대한 보호 기능만 제공할 뿐 완벽한 보안 기능을 제공하지는 않습니다.

보안 기능을 향상하려면 기본 인증서를 신뢰할 수 있는 CA에서 서명한 인증서로 바꾸십시오. 이 경우에는 자체 서명된 인증서를 사용하는 대신 CA 인증서를 사용하는 것을 권장합니다. Splunk Web에 액세스할 모든 브라우저의 인증서 저장소에CA를 추가할 수 있는 기능이 없을 경우 자체 서명된 인증서는 다른 사용자의 브라우저에서 신뢰할 수 없는 인증서로 간주됩니다. 자세한 내용은 "Splunk Web 보안"을 참조하십시오.

Splunk 포워더에서포워더에서 인덱서로인덱서로 통신통신포워더에서 인덱서로 전송되는 데이터는 인덱서가 검색 및 보고서에 사용하는 데이터입니다. 조직과 전송되는 데이터의 특성 및 형식, Splunk의 설정에 따라 이러한 데이터는 읽을 수 있거나 그렇지 못할 수도 있고 중요도가 높거나 그렇지 않을 수도 있습니다.

중요한 원시 데이터에 보안을 적용하면 스누핑과 중간자 공격(man-in-the-middle)을 피할 수 있습니다.

기본 인증서를 사용하여 SSL 암호화 기능을 켜서 암호화 및 압축 기능을 제공할 수 있습니다. 그러나 이 인증서의 암호는Splunk 소프트웨어를 설치할 때마다 똑같이 제공되기 때문에 안전한 인증 방법이라고 볼 수 없습니다. 기본 인증서는 처음설치되고 3년 후에 만료되도록 설정되며 이때 포워더와 인덱서 간의 통신이 중단됩니다.

54

Page 55: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

보안 강화를 위해 자체 또는 CA 서명 인증서를 사용한 인증서 인증이 필요합니다. 잘 알려지고 신뢰할 수 있는 인증 기관에서 서명한 인증서가 자체 서명 인증서보다 더 안전한 것으로 알려져 있습니다. Splunk 포워더 및 인덱서에서 인증서를 사용하는 방법에 대한 자세한 내용은 "포워더에서 전송하는 데이터 보안"을 참조하십시오.

기타기타 Splunk SSL 통신통신기타 Splunk 통신은 여러 Splunk 소프트웨어 인스턴스 간에 관리 포트를 통해 이루어지지만, 일반적으로 항상 분산 환경에서 발생하는 것은 아닙니다. Splunk 간 통신의 예로는 배포 서버에서 클라이언트로 전송되는 설정 데이터를 들 수 있습니다.

이 경우 SSL 암호화가 기본적으로 활성화됩니다. SSL 암호화는 대부분의 설정에 적합하며 권장되는 보안 방법입니다. 그러나 SSL 인증을 사용하여 통신을 보안해야 할 경우 이 매뉴얼의 "Splunk 간 통신 보안"에 제공된 몇 가지 지침을 참조하면 도움이 됩니다.

인증서인증서 가져오기가져오기SSL 인증서 사용 경험이 있는 경우 일반적인 방식으로 SSL 인증서를 만들고 Splunk 인스턴스에서 인증서를 사용하도록 쉽게 설정할 수 있습니다.

모든 인증서를 가져오는 데 도움이 필요할 경우 다음에서 제공되는 몇 가지 간단한 OpenSSL 명령어 사용 예를 참조하십시오(OpenSSL은 Splunk 소프트웨어와 함께 제공됨).

자체 서명 인증서를 만드는 방법타사 인증서를 가져오는 방법Splunk Web용 자체 서명 인증서를 만드는 방법Splunk Web용 타사 인증서를 가져오는 방법

인증서가인증서가 있을있을 때때 수행할수행할 작업작업다음 항목에서는 인증서를 생성한 후 인증서를 사용하도록 Splunk 소프트웨어를 설정하는 방법에 대해 자세히 설명합니다.

인증서를 사용하여 Splunk Web 보안자체 인증서를 사용하도록 Splunk 전달 설정Splunk 간 통신 보안

Windows 및및 Linux에서에서 SSL 도구도구 사용사용이 매뉴얼에서는 기본 인증서, 자체 서명한 인증서 또는 인증 기관에서 서명한 인증서를 사용하도록 Splunk 배포를 설정하는 방법에 대해 설명합니다. 인증서가 없는 사용자를 위해, 명령줄을 사용하고 Splunk 소프트웨어와 함께 제공되는OpenSSL 버전을 사용하여 인증서 및 키를 생성하는 간단한 예도 함께 제공합니다.

OpenSSL 명령줄명령줄 사용사용 예예이 매뉴얼에는 명령줄에서 OpenSSL의 Splunk 버전을 사용하여 인증서를 생성하는 몇 가지 기본적인 예가 있습니다. 이 작업을 수행하려면 루트 관리자 권한이 있어야 합니다. 원격 컴퓨터나 가상 컴퓨터를 사용할 경우 모든 작업을 수행하기 위해서는 다음과 같은 추가 단계를 실행해야 할 수도 있습니다.

Windows 플랫폼을 사용할 경우 관리자 권한으로 명령줄을 열어야 할 수도 있습니다. 시작 메뉴에서 .exe 애플리케이션을 마우스 오른쪽 단추로 클릭한 후 관리자관리자 권한으로권한으로 실행실행을 선택하십시오.

*nix 플랫폼을 사용할 경우 sudo를 사용하여 루트 관리자로 로그인해야 할 수 있습니다.

Windows와 *nix 플랫폼 간의 차이점에 대한 자세한 내용은 관리 가이드를 참조하십시오.

SSL 도구도구Splunk 소프트웨어는 $SPLUNK_HOME/splunk/lib에 최신 버전의 OpenSSL과 함께 제공됩니다. 6.0에서 Splunk는 FIPS 140-2를 사용하는 OpenSSL을 지원합니다.

그 밖에도 다양한 SSL 도구를 구입하거나 다운로드하여 필요한 인증서를 생성하고 설정할 수 있습니다. 인증서 관리를 위해OpenSSL을 사용한다면 호환성 문제를 피하기 위해 Splunk에서 제공하는 버전을 사용할 것을 강력히 권장합니다. Splunk소프트웨어와 함께 제공된 버전을 사용하고 있는지 확인하려면 $SPLUNK_HOME/splunk/lib 또는$SPLUNK_HOME\splunk\bin(Windows의 경우)에 있는 버전으로 환경을 설정하십시오.

다음은 *nix용 라이브러리 경로의 예입니다.

export LD_LIBRARY_PATH=$SPLUNK_HOME/splunk/lib

55

Page 56: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

다음은 Windows용 경로의 예입니다.

set PATH = %PATH%;%SPLUNK_HOME%\bin

FIPS

FIPS는 규정 가이드라인을 충족하기 위해 일부 알고리즘의 정부 인증 버전을 사용합니다. FIPS 자체를 보안 개선으로 간주해서는 안 되며, FIPS로 인해 시스템 속도가 저하될 수 있습니다. 해당 환경에서 FIPS가 법적으로 요구되는 경우 FIPS를 활성화해야 합니다.

FIPS 활성화 여부를 고려 중인 경우 다음 사항에 유의하십시오.

Splunk는 Linux, Windows 및 Solaris에서 FIPS 140-2(64비트 x86)를 사용하는 OpenSSL만 지원합니다.Splunk Enterprise는 OpenSSL Canister FIPS 인증서 1747 및 2398번을 지원합니다.FIPS는 기본적으로 비활성화되어 있지만 커널이 FIPS 모드인 Linux 시스템에서 Splunk 소프트웨어를 실행하는 경우 자동으로 활성화됩니다.FIPS 모듈은 Splunk 소프트웨어가 앱(md5 및 rc4 등)을 실행하는 데 사용하는 Python 인스턴스에서 일부 암호화 알고리즘의 사용을 비활성화합니다. 실행할 Splunk 앱이 FIPS 모드에서 실행하도록 인증되었는지, 해당 알고리즘에 종속성이 없는지 확인하십시오.

FIPS를를 활성화하려면활성화하려면 :

Splunk Enterprise를 처음 시작하기 전에 $SPLUNK_HOME/etc/splunk-launch.conf를 편집하여 다음 줄을 추가하십시오.

SPLUNK_FIPS=1

참고참고 : FIPS 버전이 아닌 Splunk 소프트웨어를 설치한 후 FIPS 버전으로 업그레이드할 수 없습니다. FIPS를 준수해야 하는경우 처음 Splunk를 설치할 때 FIPS가 활성화되었는지 확인하십시오.

허용허용 및및 제한된제한된 SSL 버전버전 설정설정Splunk Enterprise 6.2는 이전 프로토콜 버전을 제한하는 sslVersions 키워드를 제공합니다. 쉬운 업그레이드를 위해SSLv3가 기본 제공되지만, 업그레이드가 완료되면 SSLv3를 즉시 비활성화해야 합니다. 기본적으로 Splunk Enterprise는SSLv3 및 모든 후속 버전의 통신을 허용합니다.

Splunk Enterprise를 FIPS 모드에서 설정하면 SSLv2 및 SSLv3가 추가 설정에 관계없이 항상 비활성화됩니다.

주의주의 : v3 "POODLE" 취약성을 방지하려면 환경에 업그레이드가 적용될 때 SSLv3를 제거하십시오.

web.conf 설정설정1. web.conf에서 sslVersions 속성을 업데이트하여 허용할 버전을 (쉼표로 구분하여) 나열하거나 제한합니다. 기본적으로 이속성은 SSLv2 이상 버전인 *,-sslv2로 설정됩니다(권장되지 않음). 6.2에서 허용된 SSL 버전은 다음과 같습니다.

SSLv2(권장되지 않음)SSLv3(권장되지 않음)TLS1.0(권장되지 않음)TLS1.1TLS1.2

예:

sslVersions = tls1.1, tls1.2

구문구문 옵션옵션지원되는 모든 버전을 선택하려면 "*"를 사용하십시오.

sslVersions = *

tls1.0 이상의 모든 버전을 포함하려면 "tls"를 사용하십시오.

sslVersions = tls

특정 버전을 제한하려면 접두사 "-"를 붙이십시오.

sslVersions = *, -ssl3

참고참고 : Splunk Enterprise가 FIPS 모드에서 설정된 경우 SSLv2 및 SSLv3는 이 설정에 관계없이 항상 비활성화됩니다.

2. inputs.conf에서 sslVersions 속성을 업데이트하여 Splunk Enterprise에서 지원할 버전을 (쉼표로 구분하여) 나열하거나56

Page 57: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

제한합니다.

sslVersions = ssl2, tls1.1, tls1.2

지원되는 모든 버전을 선택하려면 "*"를 사용하십시오.

sslVersions = *

tls1.1 이상의 모든 버전을 포함시키려면 간단히 "tls"를 사용하십시오.

sslVersions = tls

특정 버전을 제한하려면 버전 앞에 접두사 "-"를 붙이십시오.

sslVersions = *, -ssl3

3. 포워더를 인덱서와 호환되도록 설정하십시오. SSL 버전을 변경하거나 제한할 경우 (그리고 SSLv3를 제한할 경우) 특히Splunk Enterprise의 이전 버전을 실행하는 포워더와 호환성 문제가 발생할 수 있습니다. 6.2를 실행하는 포워더의 경우 인덱서뿐만 아니라 각 포워더의 inputs.conf 및 web.conf 설정도 업데이트하여 호환성 문제를 완화할 수 있습니다.

모든 포워더를 6.2로 업데이트하여 인덱서 및 SSL 설정과 동일하게 유지하십시오(역호환성을 위해 6.0에서는 tls1.1까지 지원 가능).

server.conf 설정설정sslVersions 속성을 클라이언트와 동일하게 편집하여 클라이언트 연결을 허용하도록 server.conf 파일을 설정합니다(예:web.conf).

예:

[sslConfig]

sslVersions = tls1.1, tls1.2

브라우저와브라우저와 Splunk Web 간간 통신통신 보안보안Splunk Web 보안보안Splunk Web으로 전송되는 정보는 대부분 검색 요청과 반환되는 결과로 구성되어 있습니다.

브라우저와 Splunk Web 간에 전송되는 데이터에 항상 보안이 필요한 것은 아닙니다. 예를 들어, Splunk Web과 동일한 방화벽 뒤에 있는 로컬 브라우저에서만 Splunk Web에 액세스할 경우에는 보안이 큰 문제가 되지 않습니다. 이러한 경우에는Splunk의 기본 인증서를 사용하여 간단한 암호화만 구성해도 충분합니다.

Splunk Web의 기본 인증서에 대한 내용은 Splunk Web을 사용하여 암호화(https) 설정 또는 web.conf를 사용하여암호화(https) 설정을 참조하십시오.기본 인증서와 함께 전달하기 위한 SSL 설정 관련 내용은 기본 인증서를 사용하도록 Splunk 전달 설정을 참조하십시오.

기본 암호화를 사용하려면 Splunk Web을 사용하여 암호화(https) 설정을 참조하십시오.

반면, Splunk 설정이 분산 환경에 구축되어 있어 방화벽 밖에 있는 다양한 위치의 브라우저에서 Splunk Web에 액세스하는경우에는 서명된 인증서를 사용하여 보다 강력한 보안을 구현해야 합니다. 서명된 인증서를 사용하도록 Splunk Web을 설정하는 자세한 내용은 인증서를 사용하여 Splunk Web 보안을 참조하십시오.

브라우저와 Splunk Web 간 통신에 대한 보안을 강화하기 위해 다음과 같이 다양한 방법으로 서명된 인증서를 사용할 수 있습니다.

인증을인증을 통한통한 보안보안 암호화를암호화를 사용하기사용하기 위해위해 기본기본 인증서를인증서를 서명된서명된 인증서로인증서로 바꿀바꿀 수수 있습니다있습니다 .Splunk에서 제공하는 기본 인증서를 신뢰할 수 있는 인증 기관에 요청한 인증서로 바꾸십시오. 보안이 문제가 될 경우이 방법이 가장 안전하고 권장되는 방법입니다. Splunk 배포용 CA 인증서를 얻는 방법에 대한 자세한 내용은 Splunk Web용 타사 서명 인증서 가져오기를 참조하십시오.보안 인증에 자체 서명 인증서를 사용할 수도 있지만, 자체 서명 인증서는 신뢰할 수 있는 알려진 CA가 아닌 자체적으로 서명하는 것이므로 브라우저의 인증서 저장소에 CA로 저장되지 않으며 이로 인해 브라우저에서 자체 서명 인증서를 신뢰할 수 없는 인증서로 처리하게 됩니다. 자체 서명 인증서를 효과적으로 사용하려면 Splunk Web에 액세스하는모든 브라우저의 인증서 저장소에 인증서를 추가할 수 있어야 합니다.Splunk 배포용 자체 서명 인증서를 만드는 방법에 대한 자세한 내용은 Splunk Web용 자체 서명 인증서를 참조하십시오.

57

Page 58: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

서명된서명된 인증서를인증서를 사용하는사용하는 경우경우 공통공통 이름이름 확인확인 기능을기능을 사용하여사용하여 SSL 설정을설정을 더욱더욱 강화할강화할 수수 있습니다있습니다 .공통 이름 확인 기능은 각 통신 인스턴스의 인증서에 입력된 공통 이름이 일치할 것을 요구하여 보안을 한 단계 더 강화합니다. 공통 이름 확인은 인증서를 생성할 때 설정할 수 있으며 인증 시 Splunk Enterprise가 해당 공통 이름을 확인하도록 설정할 수 있습니다.

인증서를 사용하도록 Splunk Enterprise를 설정하는 방법과 공통 이름 확인에 대해 자세히 알아보려면 인증서를 사용하여Splunk Web 보안을 참조하십시오.

Splunk Web을을 사용하여사용하여 암호화암호화 (https) 설정설정이 항목에서는 Splunk Web을 사용하여 브라우저와 Splunk Web 간의 통신에 HTTPS를 설정하는 방법에 대해 설명합니다. Splunk 소프트웨어는 HTTPS 요청이나 HTTP 요청 중 하나만 수신할 수 있으며 두 요청을 모두 수신할 수는 없습니다.

Splunk Web에서 사용할 수 있는 간단한 암호화 방법은 제품 "설치 시 함께" 제공되는 기본 인증서를 사용하는 것입니다. 모든 제품은 설치 시 동일한 기본 인증서를 제공하므로 이 방법은 보안 기능이 높지 않습니다. 보안이 최우선일 경우, 기본 인증서를 변경하고 인증을 설정하여 보안을 강화하십시오. 기본 인증서 변경에 대한 자세한 내용은 인증서를 사용하여 SplunkWeb 보안을 참조하십시오.

Splunk Web을 통해 HTTPS를 활성화하려면:

1. Splunk Web에서 설정설정 > 시스템시스템 > 서버서버 설정설정을 선택한 다음 일반일반 설정설정을 클릭합니다.

2. Splunk Web에서 Splunk Web에에 SSL(HTTPS) 사용사용에 대해 '예예 ' 라디오 단추를 선택합니다.

기본적으로 Splunk 배포는 암호화가 켜져 있는 경우 기본 인증서를 지정하므로 추가 작업이 필요하지 않습니다.

3. Splunk Web을 재시작합니다.

이제 Splunk Web에 액세스할 경우 URL 앞에 "https://"를 붙여야 합니다.

web.conf를를 사용하여사용하여 암호화암호화 (https) 설정설정web.conf 설정 파일을 통해 HTTPS를 활성화할 수 있습니다. 설정 파일이 아직 로컬 디렉터리에 없는 경우 파일 기본 버전을$SPLUNK_HOME/etc/system/default에서 로컬 디렉터리인 $SPLUNK_HOME/etc/system/local/이나 $SPLUNK_HOME/etc/apps/의 사용자 지정 애플리케이션 디렉터리로 복사하십시오. 설정 파일에 대한 전반적인 내용은 설정 파일을 참조하십시오.

여기에서 설명하는 방법을 통해 설정하는 암호화는 보안 기능이 높지 않습니다. 보안이 최우선일 경우, 기본 인증서를 변경하고 인증을 설정하여 보안을 강화하십시오. 기본 인증서 변경에 대한 자세한 내용은 인증서를 사용하여 Splunk Web 보안을 참조하십시오.

web.conf를 통해 HTTPS를 활성화하려면:

1. enableSplunkWebSSL 속성을 true로 설정합니다.

[settings]

httpport = <https port number>

enableSplunkWebSSL = true

참고참고 : 암호화가 켜져 있는 경우 Splunk 소프트웨어는 기본적으로 기본 인증서를 지정합니다.

2. Splunk를 재시작합니다.

이제 Splunk Web에 액세스할 경우 URL 앞에 "https://"를 붙여야 합니다.

인증서를인증서를 사용하여사용하여 Splunk Web 보안보안이 예에서는 자체 서명 인증서를 생성했거나 타사를 통해 인증서를 구입한 것으로 간주합니다. 인증서가 없거나 진행 방법을잘 모르는 경우에는 다음 항목에서 제공하는 몇 가지 간단한 예를 참조하여 인증서를 만들 수 있습니다.

Splunk Web용 자체 서명 인증서Splunk Web용 타사 서명 인증서 가져오기

참고참고 : Splunk Web은 현재 암호를 사용하는 개인 키를 지원하지 않습니다. 인증서를 사용하도록 Splunk Web을 설정하기전에 키에서 암호를 삭제하십시오.

시작하기시작하기 전에전에 : 인증서를인증서를 새새 폴더에폴더에 복사복사서버 인증서를 $SPLUNK_HOME/etc/auth/splunkweb이나 $SPLUNK_HOME/etc/auth의 사용자 지정 인증서 리포지토리에 복사하십시

58

Page 59: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

오.

다음 예에서는 웹 인증서를 mySplunkWebCertificate.pem이라고 하고 개인 키를 mySplunkWebPrivateKey.key라고 합니다.

*nix:

# cp $SPLUNK_HOME/etc/auth/mycerts/mySplunkWebCertificate.pem$SPLUNK_HOME/etc/auth/mycerts/mySplunkWebPrivateKey.key $SPLUNK_HOME/etc/auth/splunkweb

Windows:

copy $SPLUNK_HOME\etc\auth\mycerts\mySplunkWebCertificate.pem $SPLUNK_HOME\etc\auth\splunkweb\

copy $SPLUNK_HOME\etc\auth\mycerts\mySplunkWebPrivateKey.key $SPLUNK_HOME\etc\auth\splunkweb\

참고참고 : $SPLUNK_HOME/etc/auth/splunkweb/에 있는 기존 인증서를 덮어쓰거나 삭제하지 마십시오. 여기에 있는 인증서는 시작할 때 자동으로 생성되며, 시작할 때 모든 변경 내용이 자동으로 덮어쓰기됩니다. 다음 단계에서는 이 방법을 대신해 새 인증서의 위치를 지정하도록 관련된 설정 파일을 다시 작성합니다.

키키 및및 인증서인증서 파일을파일을 사용하도록사용하도록 Splunk Web 설정설정참고참고 : Splunk Web은 개인 키에 암호를 지원하지 않으므로 Splunk Web 보안에 키를 사용하려면 먼저 키에서 암호를 삭제해야 합니다.

1. $SPLUNK_HOME/etc/system/local/web.conf(또는 배포 서버를 사용하는 경우 적합한 다른 위치)에서 [settings] 스탠자를 다음과 같이 변경합니다.

다음은 변경한 설정 스탠자의 예입니다.

[settings]

enableSplunkWebSSL = true

privKeyPath = </home/user/certs/myprivatekey.pem> Absolute paths may be used. non-absolute paths are relative to

$SPLUNK_HOME

serverCert = </home/user/certs/mycacert.pem. Absolute paths may be used. non-absolute paths are relative to

$SPLUNK_HOME

2. Splunk Web을 재시작합니다.

# $SPLUNK_HOME/bin/splunk restart splunkweb

Splunk Web 인증인증 문제문제 해결해결인증서 설정을 확인할 수 없는 경우 $SPLUNK_HOME/var/log/splunk에 있는 web_service.log를 사용하여 재시작 시에 발생하는오류를 확인하고 해결할 수 있습니다.

SSL 설정 경고를 찾으십시오. 예를 들어 지정된 서버 인증서의 경로를 serverCert에 잘못 입력하면 Splunk Web이 시작되지 않고 다음과 같은 오류 메시지가 표시됩니다.

2010-12-21 16:25:02,804 ERROR [4d11455df3182e6710] root:442 - [Errno 2] No such file or directory:'/opt/splunk/share/splunk/mycerts/mySplunkWebCertificate.pem'

참고참고 : privKeyPath에 제공하는 개인 키가 암호로 보호되는 경우 오류는 표시되지 않지만 브라우저에서 Splunk Web이 로드되지 않습니다.

암호 삭제에 관한 내용은 Splunk Web용 자체 서명 인증서 또는 Splunk Web용 타사 서명 인증서 가져오기를 참조하십시오.

Splunk 포워더와포워더와 인덱서인덱서 간간 통신통신 보안보안포워더에서포워더에서 전송하는전송하는 데이터데이터 보안보안포워더포워더는 인덱서인덱서로 원시 데이터를 보냅니다. 이 데이터는 스누핑 공격에 취약하고 쉽게 손상될 수 있습니다. 데이터를 폐쇄된 네트워크나 공동 구축된 네트워크 밖으로 전달하거나 데이터가 매우 중요한 경우에는 데이터 보안을 위해 SSL 인증서를사용해야 합니다.

Splunk 소프트웨어와 함께 제공되는 루트 인증서는 모든 다운로드에 들어 있는 루트 인증서와 동일하여 같은 루트 인증서를가진 모든 사용자를 인증할 수 있기 때문에, 기본 인증서를 사용하면 일반적인 스누핑(snooper)은 차단할 수 있지만 여전히보안에 취약합니다. 기본 인증서는 Splunk를 시작할 때 생성 및 설정되며 $SPLUNK_HOME/etc/auth/에서 확인할 수 있습니다.

59

Page 60: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

중요중요 : 기본 인증서를 사용할 경우 인증서 유효 기간이 인증서 생성일로부터 3년밖에 되지 않으므로 유효 기간이 만료되기 전에 이 매뉴얼에서 설명하는 방법 중 하나를 이용하여 새 인증서를 만들고 설정해야 합니다.

기본 인증서를 사용하여 SSL을 설정하는 내용은 기본 인증서를 사용하도록 Splunk 전달 설정을 참조하십시오.

트래픽 스누핑을 차단하고 인덱서로 잘못된 데이터를 보내는 행위를 방지하려면 새로운 자체 서명 인증서나 타사 인증 기관을 통해 구입한 서명된 인증서를 사용하는 것이 좋습니다. 인증서를 사용하도록 포워더 및 인덱서를 설정하려면 자체 인증서를 사용하도록 Splunk 전달 설정을 참조하십시오.

포워더와 인덱서 간 통신에 대한 보안을 강화하기 위해 다음과 같이 다양한 방법으로 자체 서명 인증서 또는 CA에서 서명한인증서를 사용할 수 있습니다.

기본기본 인증서를인증서를 자체자체 루트루트 CA에서에서 서명한서명한 인증서로인증서로 바꿀바꿀 수수 있습니다있습니다 . Splunk가 제공한 기본 인증서를 생성하여 자체 서명한 인증서로 바꾸십시오. 자체 서명 인증서를 생성하는 방법에 대한 내용은 자체 서명 인증서를 만드는 방법을 참조하십시오.

기본기본 인증서를인증서를 신뢰할신뢰할 수수 있는있는 인증인증 기관기관 (CA)에서에서 서명한서명한 인증서로인증서로 바꿀바꿀 수수 있습니다있습니다 .타사에서 서명한 인증서를 가져오는 방법을 참조하십시오.

공통공통 이름이름 확인을확인을 설정하여설정하여 보안을보안을 더욱더욱 강화할강화할 수수 있습니다있습니다 .공통 이름 확인을 사용하면 각 인덱서의 인증서에 제공된 공통 이름과 포워더의 설정 파일에 지정된 공통 이름이 일치해야 인증이 되기 때문에 보안 기능이 한층 강화됩니다. 또한 공통 이름이 서로 다른 여러 인증서를 설정하여 인덱서에이 인증서를 배포할 수도 있습니다. 공통 이름 확인은 인증서를 설정할 때 활성화할 수 있습니다. 자세한 내용은 자체인증서를 사용하도록 Splunk 전달 설정을 참조하십시오.

기본기본 인증서를인증서를 사용하도록사용하도록 Splunk 전달전달 설정설정Splunk 소프트웨어와 함께 제공되는 기본 루트 인증서는 모든 다운로드에 들어 있는 루트 인증서와 동일합니다. 따라서Splunk 소프트웨어를 다운로드한 모든 사용자는 동일한 루트 인증서에 의해 서명된 서버 인증서를 사용하게 되고 이를 통해인증서도 인증할 수 있게 됩니다. 악의적인 트래픽 스누핑을 차단하고 인덱서로 잘못된 데이터를 보내는 행위를 방지하려면기본 인증서를 서명된 인증서로 바꾸는 것이 좋습니다.

중요중요 : 기본 인증서는 인증서 생성일로부터 3년 후에 만료되도록 설정되므로, 만료되기 전에 이 매뉴얼에 설명된 방법 중 하나를 사용하여 새 인증서를 만들고 설정해야 합니다.

자체 루트 CA에서 서명한 인증서 또는 타사 CA에서 서명한 인증서를 사용하도록 포워더를 설정하려면 자체 인증서를 사용하도록 Splunk 전달 설정을 참조하십시오.

이 항목에서는 다음을 수행하는 방법에 대해 설명합니다.

Splunk 소프트웨어와 함께 제공된 기본 인증서를 사용하도록 인덱서 설정Splunk 소프트웨어와 함께 제공된 기본 인증서를 사용하도록 포워더 설정

참고참고 : 포워더를 여러 개 설정할 경우에는 포워더마다 기본 인증서를 개별적으로 사용하도록 설정하십시오.

기본기본 서버서버 인증서를인증서를 사용하도록사용하도록 인덱서인덱서 설정설정1. $SPLUNK_HOME/etc/system/local/inputs.conf(또는 전달 설정을 배포하는 데 사용하는 앱의 해당 디렉터리)에서 다음 스탠자를 설정합니다.

이 예에서는 포워더로부터 데이터를 수신하는 데 포트 9997을 사용합니다.

[SSL]

rootCA = $SPLUNK_HOME/etc/auth/cacert.pem

serverCert = $SPLUNK_HOME/etc/auth/server.pem

password = password

requireClientCert=false

[splunktcp-ssl:9997]

disabled=0

여기서 rootCA는 CA 공개 키의 경로고 serverCert는 기본 서버 인증서의 경로입니다.

기본 인증서의 위치는 $SPLUNK_HOME/etc/auth/server.pem입니다.

참고참고 : 기본 서버 인증서의 유효성은 확인할 필요가 없으므로 기본 인증서 사용 시에는 requireClientCert = true를 설정하지않아도 됩니다.

2. splunkd를 재시작합니다.

$SPLUNK_HOME/bin/splunk restart splunkd

60

Page 61: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

포워더포워더 설정설정포워더를 인덱서와 동일한 기본 인증서를 사용하도록 설정하고, 구성된 수신 대기 포트로 데이터를 보내도록 설정하십시오.

다음 예에서는 인덱서 IP 주소가 10.1.12.112입니다.

1. $SPLUNK_HOME/etc/system/local/outputs.conf(또는 전달 설정을 배포하는 데 사용하는 앱의 해당 디렉터리)에서 다음 스탠자를 정의합니다.

[tcpout]

server = 10.1.12.112:9997

sslVerifyServerCert = false

server.conf/[sslConfig]/sslRootCAPath

sslCertPath = $SPLUNK_HOME/etc/auth/server.pem

sslPassword = password

여기서 rootCA는 CA 공개 키의 경로고 serverCert는 기본 서버 인증서의 경로입니다.

outputs.conf의 sslVerifyServerCert 속성이 </code>outputs.conf</code>의 속성과 같은 값인지 확인하십시오. 이 값을false(기본값)로 설정하는 것이 좋습니다. 2. splunkd를 재시작합니다.

# $SPLUNK_HOME/bin/splunk restart splunkd

다음다음 단계단계다음으로, 연결 상태를 확인하여 설정이 올바르게 작동하는지 확인해야 합니다. 자세한 내용은 "설정의 유효성 검사"를 참조하십시오.

자체자체 인증서를인증서를 사용하도록사용하도록 Splunk 전달전달 설정설정이 항목에서는 자체 SSL 인증서를 사용하여 포워더로부터 받은 데이터를 인덱서로 보내는 방법에 대해 설명합니다. 인증서를 사용하여 포워더로부터 전송되는 데이터를 보안하면 네트워크에서 이동하는 동안 데이터가 안전하게 암호화됩니다. 이항목에서는 다음 단계에 대해 설명합니다.

새로 서명된 인증서를 사용하도록 인덱서 설정(이 항목 참조)새로 서명된 인증서를 사용하도록 포워더 설정(이 항목 참조)

시작하기 전에 인증서를 만들고 준비해야 합니다. 인증서가 x509 형식의 PEM 파일이고 키가 RSA 형식인지 확인하십시오.도움이 필요할 경우 해당 항목에서 제공하는 몇 가지 간단한 예를 참조하여 인증서를 만들고 준비할 수 있습니다. 자세한 내용은 "포워더에서 전송하는 데이터 보안"과 "Splunk 간 통신 보안"을 참조하십시오.

보안 강화를 위해 공통 이름이 서로 다른 여러 인증서(동일한 CA에서 서명함)를 만들어 인덱서에 배포할 수도 있습니다. CA의 공개 키가 제공되면 포워더는 CA를 신뢰하여 CA의 인증서를 확인하고 sslCommonNameToCheck 또는sslAltNameToCheck를 일치시킵니다.

인증서를인증서를 사용하도록사용하도록 인덱서인덱서 설정설정1. 서버 인증서와 CA 공용 인증서를 설정할 인덱서의 액세스 가능한 폴더로 복사합니다. 예: $SPLUNK_HOME/etc/auth/mycerts/

경고경고 : 앱 디렉터리에서 inputs.conf 또는 outputs.conf 파일을 직접 설정하면 입력한 암호가 암호화되지 않고 일반 텍스트 값그대로 파일에 저장됩니다. 앱 디렉터리에서 SSL을 설정할 때에는 동일한 루트 CA에서 서명한 다른 인증서를 만들어 사용하는 것이 좋습니다.

2. 새 서버 인증서를 사용하도록 인덱서의 inputs.conf 파일을 설정합니다. $SPLUNK_HOME/etc/system/local/inputs.conf(또는전달 설정을 배포하는 데 사용하는 앱의 해당 디렉터리)에 다음과 같이 [SSL] 스탠자를 설정합니다.

[SSL]

rootCA = $SPLUNK_HOME/etc/auth/mycacert.pem <The public CA of the same CA that issued the forwarder's certificate>

serverCert = $SPLUNK_HOME/etc/auth/myservercert.pem <the certificate issued by customer-generated CA>

requireClientCert = false

compressed = false <this attribute must be the same value as the attribute on the forwarder>

[splunktcp-ssl:9996]

$SPLUNK_HOME/etc/system/local/inputs.conf에서 파일을 편집하면 Splunk 소프트웨어가 암호를 암호화하고 SplunkEnterprise를 재시작할 때 일반 텍스트로 제공한 서버 인증서 암호를 덮어씁니다.

참고참고 : tls 압축을 비활성화하면 대역폭 문제가 발생하므로 권장하지 않습니다.

61

Page 62: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

3. splunkd를 재시작합니다.

# $SPLUNK_HOME/bin/splunk restart splunkd

인증서를인증서를 사용하도록사용하도록 포워더포워더 설정설정1. 새 인증서를 생성하고, 설정할 포워더의 액세스 가능한 폴더로 새 인증서와 CA 공용 인증서인 myCACertificate.pem을 복사합니다. 이 예에서는 $SPLUNK_HOME/etc/auth/mycerts/에 두 인증서를 저장합니다.

경고경고 : 앱 디렉터리에서 inputs.conf 또는 outputs.conf 파일을 직접 설정하면 입력한 암호가 암호화되지 않고 일반 텍스트 값그대로 파일에 저장됩니다. 앱 디렉터리에서 SSL을 설정할 때에는 동일한 루트 CA에서 서명한 다른 인증서를 만들어 사용하는 것이 좋습니다.

2. $SPLUNK_HOME/etc/system/local/outputs.conf(또는 전달 설정을 배포하는 데 사용하는 앱의 해당 디렉터리)에 다음과 같이[SSL] 스탠자를 정의합니다.

[tcpout:splunkssl]

compressed = false

disabled = false

server = indexer:9997

sslCommonNameToCheck = indexercn.example.org

clientCert = $SPLUNK_HOME/etc/auth/client.pem

server.conf/[sslConfig]/sslRootCAPath <The public certificate of the same CA that issued the indexer's certificate>

sslVerifyServerCert = true

$SPLUNK_HOME/etc/system/local/outputs.conf에 파일을 저장하면 Splunk는 splunkd가 재시작될 때 일반 텍스트 서버 인증서암호를 암호화하고 덮어씁니다.

3. splunkd를 재시작합니다.

# $SPLUNK_HOME/bin/splunk restart splunkd

기타기타 설정설정 옵션옵션여러여러 인덱서에인덱서에 데이터를데이터를 전달하는전달하는 경우경우포워더가 여러 인덱서로부터 인증을 받을 수 있도록 설정하려면 대상 그룹 정의 스탠자의 “server” 설정 매개변수에HOST:PORT 주소를 쉼표로 구분된 리스트로 추가합니다.

다음은 인덱서와 포워더에 동일한 인증서를 사용하는 예입니다.

[tcpout]

defaultGroup = splunkssl

[tcpout:splunkssl]

server = 10.1.12.112:9997,10.1.12.111:9999

compressed = false

disabled = false

server = indexer:9997

sslCommonNameToCheck = indexercn.example.org

sslCertPath = $SPLUNK_HOME/etc/auth/client.pem

sslRootCAPath = $SPLUNK_HOME/etc/auth/mycacert.pem <The public certificate of the same CA that issued the indexer's

certificate>

sslVerifyServerCert = true

공통공통 이름이이름이 서로서로 다른다른 인증서를인증서를 사용하여사용하여 여러여러 인덱서에인덱서에 데이터를데이터를 전달하는전달하는 경우경우포워더의 output.conf에서 서버 관련 [SSLConfig] 스탠자를 인덱서당 하나씩 설정하면 인덱서당 하나의 서버 인증서를 만들고 설정할 수 있습니다.

인덱서마다 서버 인증서를 하나씩 만들고 각 인덱서 인증서에서 포워더가 확인할 고유한 sslCommonNameToCheck 또는sslAltNameToCheck을 설정한 경우 outputs.conf에서 [tcpout-server://HOST:PORT] 설정 스탠자를 인덱서마다 하나씩 설정해야 합니다. 이 설정은 각 인덱서에 대해 확인할 이름을 지정할 수 있도록 하기 위한 것입니다.

다음다음 단계단계다음으로, 연결 상태를 확인하여 설정이 올바르게 작동하는지 확인해야 합니다. 자세한 내용은 "설정의 유효성 검사"를 참조하십시오.

62

Page 63: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

설정의설정의 유효성유효성 검사검사설정을 배포하기 전에 splunkd.log를 사용하여 설정의 유효성을 검사하고 문제를 해결할 수 있습니다. 인덱서와 포워더에서splunkd.log 파일의 위치는 $SPLUNK_HOME/var/log/splunk/splunkd.log입니다.

인덱서는 인덱서를 시작할 때 출력되는 메시지 내용에서 아래와 같거나 유사한 메시지를 확인하여 연결 성공 여부를 알 수있습니다.

02-06-2011 19:19:01.552 INFO TcpInputProc - using queueSize 1000

02-06-2011 19:19:01.552 INFO TcpInputProc - SSL cipherSuite=ALL:!aNULL:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

02-06-2011 19:19:01.552 INFO TcpInputProc - supporting SSL v2/v3

02-06-2011 19:19:01.555 INFO TcpInputProc - port 9997 is reserved for splunk 2 splunk (SSL)

02-06-2011 19:19:01.555 INFO TcpInputProc - Port 9997 is compressed

02-06-2011 19:19:01.556 INFO TcpInputProc - Registering metrics callback for: tcpin_connections

포워더 역시 포워더를 시작할 때 출력되는 메시지 내용에서 아래와 같거나 유사한 메시지를 확인하여 연결 성공 여부를 알수 있습니다.

02-06-2011 19:06:10.844 INFO TcpOutputProc - Retrieving configuration from properties

02-06-2011 19:06:10.848 INFO TcpOutputProc - found Whitelist forwardedindex.0.whitelist , RE :

forwardedindex.0.whitelist

02-06-2011 19:06:10.848 INFO TcpOutputProc - found Whitelist forwardedindex.1.blacklist , RE :

forwardedindex.1.blacklist

02-06-2011 19:06:10.848 INFO TcpOutputProc - found Whitelist forwardedindex.2.whitelist , RE :

forwardedindex.2.whitelist

02-06-2011 19:06:10.850 INFO TcpOutputProc - Will retry at max backoff sleep forever

02-06-2011 19:06:10.850 INFO TcpOutputProc - Using SSL for server 10.1.12.112:9997,

sslCertPath=/opt/splunk/etc/aut/server.pem

02-06-2011 19:06:10.854 INFO TcpOutputProc - ALL Connections will use SSL with sslCipher=

02-06-2011 19:06:10.859 INFO TcpOutputProc - initializing single connection with retry strategy for 10.1.12.112:9997

설정 문제 해결에 대한 도움말은 이 매뉴얼의 "포워더와 인덱서 간 설정 문제 해결"을 참조하십시오.

포워더와포워더와 인덱서인덱서 간간 인증인증 문제문제 해결해결1. 인덱서와 포워더의 $SPLUNK_HOME/var/log/splunk/splunkd.log 파일에 오류가 있는지 확인합니다. 인덱서에서 TCP 입력 프로세서인 TcpInputProc의 메시지를 확인하고 포워더에서 TCP 출력 프로세서인 TcpOutputProc의 메시지를 확인합니다.

2. $SPLUNK_HOME/etc/log.cfg 파일에서 인덱서와 포워더의 해당 프로세서에 대한 로깅 수준을 높입니다.

포워더에서 category.TcpOutputProc=DEBUG를 설정하고, 인덱서에서 category.TcpInputProc=DEBUG를 설정합니다.

3. Splunk Enterprise를 재시작하여 변경 사항을 적용하고 관련 구성 요소의 시작 시퀀스를 검토합니다. 이런 방법으로 대부분의 설정 문제를 명확하게 확인할 수 있습니다.

4. 다음과 같이 btool을 사용하여 SSL 설정을 확인합니다.

인덱서에서:

$SPLUNK_HOME/bin/splunk cmd btool inputs list --debug

포워더에서:

$SPLUNK_HOME/bin/splunk cmd btool outputs list --debug

일반적인일반적인 문제문제inputs.conf 파일의 serverCert 값으로 설정된 서버 인증서 파일의 경로가 잘못되었거나, 해당 인증서 파일을 읽을 수없습니다. 이 경우 아래와 같은 오류가 발생합니다.

12-16-2010 16:07:30.965 ERROR SSLCommon - Can't read certificate file /opt/splunk/etc/auth/server.pemerrno=33558530 error:02001002:system library:fopen:No such file or directory

서버 인증서 파일에 들어 있는 RSA 개인 키의 암호가 잘못되었습니다.

12-07-2010 07:56:45.663 ERROR SSLCommon - Can't read key file /opt/splunk/etc/auth/server.pem

*nix의 경우 다음 명령어를 사용하여 파일에 있는 RSA 키의 암호를 수동으로 테스트할 수 있습니다.

63

Page 64: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

# openssl rsa -in /opt/splunk/etc/auth/server.pem -text

Windows의 경우 다음 명령어를 사용하여 RSA 키의 암호를 수동으로 테스트할 수 있습니다.

>openssl.exe rsa -in "c:\Program Files\Splunk\etc\auth\server.pem" -text

분산분산 환경환경 보안보안Splunk 간간 통신통신 보안보안이 항목에서는 다음 "Splunk 간" 통신 유형과 각 통신 유형의 보안 방법에 대해 설명합니다.

분산 검색 헤드 및 피어 보안배포 서버 및 클라이언트 보안클러스터 보안

분산분산 검색검색 헤드헤드 및및 피어피어 보안보안분산분산 검색검색 설정은 관리 포트를 통해 검색 정보, knowledge object, 앱 및 설정 정보를 공유합니다.

검색 헤드와 피어 간의 통신은 공개 키 암호화를 기반으로 합니다. Splunk 소프트웨어를 시작하면 개인 키와 공개 키를 해당Splunk 설치본에 생성합니다. 검색 헤드에 분산 검색을 설정할 경우 검색 헤드에서 피어로 공개 키를 배포하고 이 키가 통신보안을 위해 사용됩니다. 이러한 기본 설정에서는 기본 암호화를 비롯하여 전송 속도를 개선하는 데이터 압축 기능을 제공합니다.

이렇게 생성된 키를 사용자 키로 직접 바꿀 수 있습니다. 하지만 이 방법은 권장되지 않으며 일반적으로 필요하지 않습니다.분산 검색 설정에 공개 키 암호화를 설정하려면 고유 키를 만든 다음 검색 헤드와 피어로 고유 키를 배포하십시오. 분산 검색피어에 키 파일을 배포하는 방법에 대해 자세히 알아보려면 분산 검색 매뉴얼의 분산 검색 설정 관련 항목인 "키 파일 배포"를 참조하십시오.

인증서인증서 인증을인증을 사용하여사용하여 배포배포 서버서버 및및 클라이언트클라이언트 보안보안서명된 인증서를 사용한 배포 서버 및 클라이언트 간 인증은 권장되지 않습니다. 배포 서버에서 클라이언트에 배포되는 설정데이터는 일반적으로 악용될 수 있는 정보를 제공하지 않기 때문입니다. 배포 서버와 클라이언트에 대해 인증서를 통한 인증을 설정하면 다음과 같은 문제가 발생합니다.

Splunk Web도 인증서를 사용하도록 설정하지 않는 경우 인증에 실패합니다.CLI에서 배포 서버와 통신할 수 없습니다.

극도로 민감한 서버 설정 정보가 방화벽 밖의 다양한 지점으로 전송될 수 있는 특정 분산 설정에서는 인증서 인증이 필요할수 있습니다. 배포 서버와 통신하도록 각 인덱서를 다음과 같이 수동으로 설정할 수 있습니다.

1. 동일한 루트 CA를 사용하여 인증서를 하나 이상 만듭니다.

2. 배포 서버와 클라이언트에 인증서를 배포합니다.

3. server.conf를 편집하여 인증서의 위치를 제공합니다.

[sslConfig]

enableSplunkdSSL = true

serverCert = server.pem

sslPassword = password

sslRootCAPath = cacert.pem

absolute path to the cert file

4. 다음 속성을 이전 단계의 [sslConfig] 스탠자에 추가하여 인증서와 대조해서 인증하도록 server.conf를 편집합니다.

requireClientCert = true

중요중요 : 이 requireClientCert의 기본 설정은 "false"입니다. "true"로 변경할 경우 Splunk가 클라이언트의 인증서를 확인하고Splunk Web과 CLI에서도 인증서를 확인합니다. CLI는 클라이언트처럼 인증서를 제시할 수 없기 때문에 CLI도 더 이상 연결할 수 없습니다.

5. 동일한 루트 CA에서 서명한 인증서를 제시하여 Splunk Web이 서버에 연결할 수 있도록 web.conf를 편집합니다.

다음은 변경한 설정 스탠자의 예입니다.

64

Page 65: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

[settings]

enableSplunkWebSSL = true

privKeyPath = etc/auth/splunkweb/mySplunkWebPrivateKey.key

serverCert = etc/auth/splunkweb/mySplunkWebCertificate.pem

cipherSuite = <your chosen cipher suite (optional)>

참고참고 : Splunk Web은 암호를 지원하지 않으므로 개인 키에서 암호를 제거해야 합니다. 자세한 내용은 "Splunk Web용 타사서명 인증서 가져오기"를 참조하십시오.

Pass4SymmKey로로 클러스터클러스터 보안보안Splunk는 검색 헤드 또는 인덱서 클러스터링 노드의 상호 인증에 사용할 수 있는 보안 키를 제공합니다. 인덱서 클러스터나검색 헤드 클러스터를 설정하는 경우 클러스터의 각 노드에 같은 키를 할당합니다. 이 키는 server.conf의 pass4SymmKey 속성에서 직접 설정하거나 Splunk Web 또는 CLI를 통해 설정합니다.

이 키를 설정할 것을 적극 권장합니다.

pass4SymmKey는 Splunk 내부 인증을 제어하고 사용자 액세스를 관리하지 않습니다.

검색검색 헤드헤드 클러스터링의클러스터링의 pass4SymmKey 설정설정검색 헤드 클러스터를 배포하는 경우 pass4SymmKey를 설정하십시오. 검색 헤드 클러스터 배포를 참조하십시오.

검색 헤드 클러스터에서 pass4SymmKey를 설정하는 방법(배포 후에 설정하는 방법 포함)에 대한 자세한 내용은 검색 헤드 클러스터의 보안 키 설정을 참조하십시오.

인덱서인덱서 클러스터링의클러스터링의 pass4SymmKey 설정설정인덱서 클러스터를 배포하는 경우 마스터 노드를 활성화하는 중에 pass4SymmKey를 설정하십시오. 인덱서 클러스터 마스터 노드 활성화를 참조하십시오.

인덱서 클러스터에서 pass4SymmKey를 설정하는 방법에 대한 자세한 내용은 보안 키 설정을 참조하십시오.

pass4SymmKey가가 앱에서앱에서 암호화되는암호화되는 방법방법pass4SymmKey를 앱에서 일반 텍스트로 지정하는 경우(예: etc/apps/myapp/default/server.conf) 재시작 후에 난독 처리된 버전이 로컬 파일(이 예에서는 system/local/server.conf)에 작성됩니다.

이 동작이 올바른 동작입니다. 기본 디렉터리에 있는 설정 파일은 일반적으로 읽기 전용이며, 해당 정보는 편집 가능한 로컬파일에도 작성됩니다.

curl 또는 splunkd endpoint를 사용하여 설정을 나열하는 경우 pass4SymmKey가 암호화되어 표시됩니다. 설정 위치가 읽기 전용인 경우 Splunk 소프트웨어는 위와 동일하게 로컬 파일에 작성합니다.

Splunk Enterprise 작업작업 감사감사 (audit)

Splunk Enterprise를를 사용하여사용하여 시스템시스템 작업작업 감사감사 (audit)

시스템의 보안을 유지하려면 시스템에서 어떤 일이 발생하고 있는지 알아야 합니다. 시스템을 가장 효과적으로 활용하고 보안을 유지하기 위해 다음과 같은 베스트 프랙티스를 권장합니다.

Splunk 액세스 및 감사(audit) 로그를 주기적으로 검토하십시오.Splunk 서버 감사(audit) 및 보안 로그를 주기적으로 검토하십시오.모든 Splunk 사용자 및 역할을 주기적으로 검토하십시오.

감사감사 (audit) 이벤트를이벤트를 사용하여사용하여 Splunk Enterprise 보안보안Splunk를 사용해 감사(audit) 로그를 검색하여 관리 액세스를 검토하고 그에 대해 경고할 수 있습니다.

1. 사용자 액세스에 대해 감사(audit)를 실시합니다.

index="_audit" action=log* action="login attempt"

2. 사용자가 Splunk에 액세스하는 위치를 찾습니다.

index="_internal" | eval timestamp=strftime(_time, "%Y-%m-%d %H:%M:%S.%Q") | table timestamp, user, clientip

65

Page 66: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

3. 관리 사용자 액세스에 대한 실시간 경고를 설정하는 방안을 고려합니다.

(index="_audit" action=log* action="login attempt") OR (index="_internal") user=admin

경고 만들기에 대한 자세한 내용은 경고 매뉴얼을 참조하십시오.

4. 선택한 검색을 수집하고 표시하는 대시보드도 만들 수 있습니다. 대시보드 및 시각화 매뉴얼의 Splunk Web에서 대시보드 작성을 참조하십시오.

데이터데이터 무결성무결성 관리관리Splunk Enterprise 데이터 무결성 관리 기능은 인덱싱하는 데이터의 무결성을 확인하는 방법으로 사용됩니다.

인덱스에 데이터 무결성 관리를 사용할 경우 Splunk Enterprise는 (SHA 256을 사용해) 모든 데이터 조각의 해시를 계산하고 나중에 데이터의 무결성을 확인할 수 있도록 해당 해시를 저장합니다.

데이터데이터 무결성무결성 관리관리 작동작동 방식방식데이터 무결성 관리를 사용하도록 설정하면 Splunk Enterprise가 새로 인덱싱한 모든 원시 데이터 조각의 해시를 계산하고l1Hashes 파일에 기록합니다. 버킷이 hot에서 warm으로 롤링되면 Splunk Enterprise는 l1Hashes의 콘텐츠에 대해 해시를 계산하고, 계산한 해시를 l2Hash에 저장합니다. 두 해시 파일은 모두 해당 버킷의 rawdata 디렉터리에 저장됩니다.

데이터 무결성 관리에서는 새로 인덱싱한 데이터만 해싱하므로, 포워더에서 전송된 데이터는 SSL을 사용하여 암호화하고보안해야 합니다. 자세한 내용은 "SSL을 사용한 Splunk 보안"을 참조하십시오.

해시를해시를 확인하여확인하여 데이터데이터 유효성유효성 검사검사Splunk Enterprise 데이터를 검사하려면 다음 CLI 명령어를 실행하여 인덱스 또는 버킷의 무결성을 확인하십시오.

./splunk check-integrity -bucketPath [ bucket path ] [ verbose ]

./splunk check-integrity -index [ index name ] [ verbose ]

데이터데이터 무결성무결성 관리관리 설정설정데이터 무결성 관리를 설정하려면 indexes.conf를 편집하여 enableDataIntegrityControl 속성을 각 인덱스에 대해 활성화하십시오. 모든 인덱스에 대해 기본값은 false(꺼짐)입니다.

enableDataIntegrityControl=true

클러스터된클러스터된 환경의환경의 데이터데이터 무결성무결성클러스터된 환경에서는 클러스터 마스터와 모든 피어에서 Splunk Enterprise 6.3을 실행해야만 인덱스를 정확하게 복제할수 있습니다. 데이터 무결성 설정이 있는 번들을 클러스터 마스터에서 피어로 푸시하십시오.

클러스터된 환경에서 설정을 관리하는 방법에 대한 자세한 내용은 분산 배포 매뉴얼을 참조하십시오.

데이터데이터 조각조각 크기크기 변경변경 (선택선택 사항사항 )

데이터 조각은 기본적으로 128kb로 설정됩니다. 즉, 128KB마다 데이터 조각을 만들고 해싱합니다. 필요한 경우indexes.conf를 편집하여 각 조각의 크기를 지정할 수 있습니다.

rawChunkSizeBytes = 131072

데이터데이터 해시해시 저장저장 및및 보안보안원하는 경우 보안을 극대화하기 위해 데이터가 호스트되는 시스템 외부(예: 다른 서버)에 해시를 저장할 수 있습니다. 이름이충돌하지 않도록 보안 해시를 별도의 디렉터리에 저장하십시오.

해시해시 다시다시 생성생성버킷의 해시가 손실된 경우 다음 CLI 명령어를사용하여 해시 파일을 버킷 또는 인덱스에서 다시 생성하십시오. 다음 명령어는 저널에 포함된 해시를 추출합니다.

./splunk generate-hash-files -bucketPath [ bucket path ] [ verbose ]

66

Page 67: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

./splunk generate-hash-files -index [ index name ] [ verbose ]

Splunk Enterprise 보안보안 베스트베스트 프랙티스프랙티스위험한위험한 명령어에명령어에 대한대한 안전안전 장치장치Splunk Enterprise에는 보안에 위험할 수 있는 명령어가 포함된 검색을 실수로 실행하려는 경우에 경고하는 SPL(검색 처리언어) 안전 장치가 내장되어 있습니다. 위험한 명령어가 포함된 검색을 로드하는 링크를 클릭하거나 URL을 입력하면 이 경고가 표시됩니다.

임시 검색을 만들 때는 경고가 표시되지 않습니다.

이 경고는 악의적인 사용자에 의한 무허가 작업이 수행될 수 있음을 알립니다. 무허가 작업은 다음과 같습니다.

데이터 복사 또는 전송(데이터 유출)데이터 삭제데이터 덮어쓰기

이런 상황은 악의적인 공격자가 데이터를 유출하거나 손상시키는 명령어가 포함된 검색을 만드는 경우에 발생할 수 있습니다. 그 후 악의적인 공격자는 일반 사용자에게 검색으로 연결되는 링크를 보냅니다. URL에는 쿼리 문자열(q)과 검색 ID(sid)가 포함되지만, SID는 만료된 ID입니다. 악의적인 공격자는 사용자가 링크를 사용하고 검색이 실행되기를 바랍니다.

경고를경고를 트리거하는트리거하는 명령어명령어아래에는 이 경고를 트리거하는 명령어가 나열되어 있습니다.

collect

crawl

dump

delete

input

outputcsv

outputlookup

runshellscript

script

sendalert

sendemail

tscollect

경고경고 대화상자에서대화상자에서 수행하는수행하는 작업작업Splunk Enterprise는 검색을 즉시 실행하지 않고 검색을 분석하여 위험한 명령어가 없는지 확인합니다. 위험한 명령어가 하나 이상 확인되면 경고 대화상자가 나타납니다. 대화상자에서 검색을 취소, 실행, 또는 조사할 것인지 선택할 수 있습니다.

취소경고 대화상자를 닫습니다. 검색이 실행되지 않고 해당 검색이 검색란에서 제거됩니다. 닫기 단추(X)를 클릭하여 대화상자를 닫으면 취소취소를 클릭하는 것과 같습니다.

실행검색을 실행합니다.

조사SPL을 살펴볼 수 있도록 검색을 검색란에 표시합니다. 검색 구문을 복사하려면 이 옵션을 사용하십시오. 검색의 복사본을 링크의 출처에 대한 정보와 함께 시스템 관리자에게 보냅니다.

경고경고 끄기끄기쓰기 권한이 있는 사용자만 web.conf 파일을 편집하여 경고 대화상자를 끌 수 있습니다.

특정 명령어에 대한 경고를 끄거나 모든 위험한 명령어에 대한 경고를 끌 수 있습니다.

특정특정 명령어에명령어에 대한대한 경고경고 끄기끄기1. $SPLUNK_HOME/etc/system/default 디렉터리에 있는 commands.conf.spec 파일을 복사합니다.2. 복사한 파일을 $SPLUNK_HOME/etc/system/local 디렉터리에 붙여넣습니다.3. 명령어를 찾아서 설정을 is_risky = true에서 is_risky = false로 변경합니다.4. Splunk Enterprise를 재시작합니다.

67

Page 68: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

모든모든 명령어에명령어에 대한대한 경고경고 끄기끄기1. web.conf 파일을 엽니다. 이 파일은 $SPLUNK_HOME/etc/system/default/ 디렉터리에 있습니다.2. enable_risky_command_check 매개변수를 false로 변경합니다.3. Splunk Enterprise를 재시작합니다.

참고참고 항목항목관리자 매뉴얼

설정 파일 commands.conf 파일 web.conf 파일

Splunk 서버서버 토큰토큰토큰이 손상되거나 거부될 경우 유니버설 포워더의 로그에 포함된 오류 메시지가 수신됩니다. 잘못된 토큰을 찾지 못하면 포워더가 만료된 유니버설 포워더 토큰을 계속 사용하려고 합니다.

누락된 포워더 토큰을 찾으려면: SPLUNK_HOME/etc/log.cfg를 다음과 같이 편집하십시오.

category.TcpOutputProc=DEBUG

category.TcpInputConfig=DEBUG

category.TcpInputProc=DEBUG

두 토큰(인덱서 및 포워더용 토큰)이 일치하면 다음 메시지가 생성됩니다.

인덱서:

09-15-2015 13:21:30.746 -0700 DEBUG TcpInputProc - Forwarder token matched

유니버설 포워더:

09-15-2015 13:24:00.343 -0700 DEBUG TcpOutputProc - Indexer can use tokens

토큰이 일치하지 않으면 오류 메시지가 생성됩니다. 예:

09-15-2015 13:22:01.747 -0700 ERROR TcpInputProc - Exception: Token not sent by forwarder src=10.140.126.58:51838!

for data received from src=10.140.126.58:51838

09-15-2015 13:52:14.803 -0700 ERROR TcpInputProc - Exception: Token sent by forwarder does not match configured

tokens src=10.140.126.58:51990! for data received from src=10.140.126.58:51990

검색에서검색에서 악성악성 CSV 파일파일 차단차단검색 결과를 CSV 형식으로 내보낸 후 Excel/OpenOffice에서 열면 '=' 문자로 시작되는 필드가 실행됩니다.

예:

1. 사용자가 stats count | eval trick="=1+1"을 실행합니다.

2. 사용자가 결과를 CSV 파일 형식으로 내보냅니다.

3. 사용자가 새 CSV 파일을 Excel에 로드합니다.

4. Excel에서 값이 '=1+1이어야 하는 필드에 값이 2로 표시됩니다.

이 문제를 방지하려면 다음 방법 중 하나를 사용할 수 있습니다.

다음 문자로 시작되는 셀에서 공백을 앞에 추가하고 탭 문자(0x09)를 셀에서 제거합니다.=-"@+

위에 나열된 문자로 시작되는 셀에 작은 따옴표(')를 추가합니다.사용자에게 "export_results_is_visible" 기능이 없는지 확인합니다(6.4 버전 이상에만 해당). 이 기능은 내보내기 결과 단추를 표시하며, 이 기능이 없으면 CSV 파일을 생성할 수 없습니다.

68

Page 69: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

부록부록 A: SSL 인증서를인증서를 가져오는가져오는 방법방법자체자체 서명서명 인증서를인증서를 만드는만드는 방법방법이 항목에서는 포워더와 인덱서 간 통신 및 Splunk 간 통신을 보안하기 위해 OpenSSL을 사용하여 자체 서명 인증서를 생성하는 한 가지 방법에 대해 설명합니다.

필요한 인증서를 이미 생성했거나 생성하는 방법을 알고 있을 경우 이 항목을 건너뛰고 이 매뉴얼의 뒷부분에 나오는 설정단계를 진행하십시오.

Splunk에 사용할 서명된 인증서를 준비하는 방법자체 인증서를 사용하도록 Splunk 전달 설정Splunk 간 통신 보안

조직 내에서 사용하거나 잘 알려진 지점 사이의 데이터 통신에는 자체 서명된 인증서를 가장 많이 사용합니다. 잘 알려지지않은 지점과의 통신 시에는 데이터 보안을 위해 CA에서 서명한 인증서 사용을 권장합니다.

시작하기시작하기 전에전에이 설명에서 $SPLUNK_HOME은 Splunk 설치 디렉터리입니다. Windows에서 Splunk 소프트웨어는 기본적으로 C:\ProgramFiles\splunk에 설치됩니다. Unix 플랫폼의 기본 설치 디렉터리는 대부분 /opt/splunk에 있고, Mac OS의 경우/Applications/splunk입니다. Windows 및 *nix 플랫폼에서 작업하는 방법에 대한 자세한 내용은 관리 가이드를 참조하십시오.

사용자의 환경을 $SPLUNK_HOME/lib(*nix의 경우) 또는 $SPLUNK_HOME\bin(Windows의 경우)에 포함되어 있는 버전으로 설정하여 Splunk 소프트웨어와 함께 제공된 OpenSSL 버전을 사용해야 합니다. 이렇게 하려면 다음을 수행하십시오.

인증서를 만들기 전에 원본 $SPLUNK_HOME/bin/setSplunkEnv를 실행합니다.

또는$SPLUNK_HOME/bin/으로 이동하고 ./openssl을 사용하여 인증서 생성 명령어를 실행합니다.

새새 인증서인증서 디렉터리디렉터리 만들기만들기인증서를 만들 때 사용할 새 디렉터리를 만드십시오. 이 예에서는 다음과 같이 $SPLUNK_HOME/etc/auth/mycerts를 사용합니다.

# mkdir $SPLUNK_HOME/etc/auth/mycerts

# cd $SPLUNK_HOME/etc/auth/mycerts

$SPLUNK_HOME/etc/auth에 있는 Splunk 제공 인증서를 덮어쓰지 않도록 다른 디렉터리에서 작업하십시오.

루트루트 인증서인증서 만들기만들기먼저, 루트 CA(인증 기관)의 역할을 하는 루트 인증서를 만드십시오. 이 루트 CA를 사용하여 생성하고 Splunk 인스턴스에배포할 서버 인증서에 서명합니다.

루트루트 인증서에인증서에 사용할사용할 개인개인 키키 생성생성1. 인증서에 서명할 키를 만듭니다.

*nix의 경우:

# openssl genrsa -des3 -out myCAPrivateKey.key 2048

Windows의 경우 openssl.cnf 파일의 위치를 추가해야 할 수 있습니다.

>openssl genrsa -des3 -out myCAPrivateKey.key 2048

2. 프롬프트가 나타나면 키 암호를 만듭니다.

이 단계가 완료되면 디렉터리에 myCAPrivateKey.key라는 개인 키가 나타납니다.

인증서인증서 생성생성 및및 서명서명1. 새 CSR(인증서 서명 요청)를 생성합니다.

*nix의 경우:

69

Page 70: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

# openssl req -new -key myCAPrivateKey.key -out myCACertificate.csr

Windows의 경우:

>openssl req -new -key myCAPrivateKey.key -out myCACertificate.csr -config $SPLUNK_HOME\openssl.cnf

2. 프롬프트가 나타나면 개인 키($SPLUNK_HOME/etc/auth/mycerts/myCAPrivateKey.key에 위치)에 대해 만든 암호를 입력합니다.

3. 요청된 인증서 정보(Splunk 설정에 공통 이름 확인을 사용할 경우 공통 이름 포함)를 제공합니다.

디렉터리에 myCACertificate.csr라는 새 CSR가 나타납니다.

4. myCACertificate.csr CSR를 사용하여 공용 인증서를 생성합니다.

*nix의 경우:

# openssl x509 -req -in myCACertificate.csr -sha256 -signkey myCAPrivateKey.key -CAcreateserial -out

myCACertificate.pem -days 1095

Windows의 경우:

>openssl x509 -req -in myCACertificate.csr -sha256 -signkey myCAPrivateKey.key -CAcreateserial -out

myCACertificate.pem -days 1095

5. 프롬프트가 나타나면 개인 키인 myCAPrivateKey.key의 암호를 입력합니다.

디렉터리에 myCACertificate.pem이라는 새 파일이 나타납니다. 이 파일이 Splunk 인스턴스에 배포할 공용 CA 인증서입니다.

서버서버 인증서인증서 만들기만들기지금까지 CA의 역할을 하는 루트 인증서를 만들었으므로 이제는 서버 인증서를 만들고 인증서에 서명을 해야 합니다.

중요중요 : 이 예에서는 새로운 개인 키와 서버 인증서를 만드는 방법에 대해 설명합니다. 이 서버 인증서는 모든 포워더, 인덱서를 비롯하여 관리 포트를 통해 통신하는 Splunk 인스턴스에 배포할 수 있습니다. 인스턴스마다 다른 공통 이름을 사용하려면 여기에서 설명하는 프로세스를 반복해 Splunk 인스턴스에 사용할 각각의 인증서(각각의 공통 이름을 사용하여)를 만들면됩니다.

예를 들어 포워더를 여러 개 설정하는 경우 다음 예를 이용하여 인덱서용 인증서 myServerCertificate.pem을 만든 다음 동일한 루트 CA를 사용하여 또 다른 인증서인 myForwarderCertificate.pem을 만들어서 포워더에 설치할 수 있습니다. 인덱서는포워더로부터 동일한 루트 CA에서 서명한, 올바르게 생성되고 설정된 인증서만 허용합니다.

포워더 및 인덱서 설정에 대한 자세한 내용은 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.

서버서버 인증서에인증서에 사용할사용할 키키 생성생성1. 서버 인증서에 사용할 새 RSA 개인 키를 생성합니다. 이 예에서도 DES3 암호화 및 2048비트 길이의 키를 사용합니다.

*nix의 경우:

# openssl genrsa -des3 -out myServerPrivateKey.key 2048

Windows의 경우:

# openssl genrsa -des3 -out myServerPrivateKey.key 2048

2. 프롬프트가 나타나면 새로운 키 암호를 만듭니다.

새 키인 myServerPrivateKey.key가 만들어집니다. 이 키는 서버 인증서와 함께 설치할 경우 모든 Splunk 인스턴스에서 발신되는 데이터를 암호화하는 데 사용됩니다.

새새 서버서버 인증서인증서 생성생성 및및 서명서명1. 새로운 서버 개인 키인 myServerPrivateKey.key를 사용하여 서버 인증서용 CSR를 생성합니다.

*nix의 경우:

# openssl req -new -key myServerPrivateKey.key -out myServerCertificate.csr

Windows의 경우:

openssl req -new -key myServerPrivateKey.key -out myServerCertificate.csr -config $SPLUNK_HOME\openssl.cnf

70

Page 71: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

2. 프롬프트가 나타나면 개인 키인 myServerPrivateKey.key의 암호를 입력합니다.

3. 요청된 인증서 정보(Splunk Enterprise가 공통 이름 확인을 통해 인증하도록 설정할 경우 공통 이름 포함)를 제공합니다.

디렉터리에 myServerCertificate.csr라는 새 CSR가 나타납니다.

4. myServerCertificate.csr CSR와 자체 CA 인증서 및 개인 키를 사용하여 서버 인증서를 생성합니다.

*nix의 경우:

# openssl x509 -req -in myServerCertificate.csr -sha256 -CA myCACertificate.pem -CAkey myCAPrivateKey.key -

CAcreateserial -out myServerCertificate.pem -days 1095

Windows의 경우:

# openssl x509 -req -in myServerCertificate.csr -sha256 -CA myCACertificate.pem -CAkey myCAPrivateKey.key -

CAcreateserial -out myServerCertificate.pem -days 1095

5. 프롬프트가 나타나면 CA 개인 키인 myCAPrivateKey.key의 암호를 입력합니다. 인증서 서명에는 방금 만든 서버 키가 아닌개인 키를 사용해야 합니다.

디렉터리에 myServerCertificate.pem이라는 새 공용 서버 인증서가 나타납니다.

다음다음 단계단계이제 작성한 새 디렉터리에 다음과 같은 파일이 생성되었으며, 이 파일들이 인덱서, 포워더 및 관리 포트를 통해 통신하는Splunk 인스턴스 설정에 필요한 모든 파일입니다.

myServerCertificate.pem

myServerPrivateKey.key

myCACertificate.pem

필요한 인증서를 모두 만들었으므로 이제 서버 인증서를 준비(중간 인증서를 추가하는 작업 포함)한 후 이러한 인증서를 검색하고 사용하도록 Splunk를 설정해야 합니다.

Splunk에서 사용할 수 있도록 인증서를 설정하는 방법에 대해 자세히 알아보려면 "Splunk에 사용할 서명된 인증서를준비하는 방법"을 참조하십시오.전달을 위한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.Splunk 간 통신에 대한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "Splunk 간 통신 보안"을 참조하십시오.

타사에서타사에서 서명한서명한 인증서를인증서를 가져오는가져오는 방법방법이 항목에서는 Splunk Enterprise와 함께 제공되는 OpenSSL 버전을 사용하여 포워더와 인덱서 간 통신과 Splunk 간 통신을 보안하는 데 사용 가능한 타사 인증서를 획득할 수 있는 한 가지 방법에 대해 설명합니다.

브라우저와 Splunk Web 간의 통신을 보안하는 데 사용할 인증서를 가져오려면 "Splunk Web용 타사 서명 인증서 가져오기"를 참조하십시오.

인증서를 이미 생성했거나 생성하는 방법을 알고 있을 경우 이 항목을 건너뛰고 이 매뉴얼의 뒷부분에 나오는 설정 단계를진행하십시오.

자체 인증서를 사용하도록 Splunk 전달 설정Splunk 간 통신 보안

참고참고 : 설정에 여러 공통 이름을 사용할 경우, 여기에서 설명하는 단계를 반복해 각각의 공통 이름이 있는 각 인스턴스에 대해동일한 루트 CA를 사용한 서로 다른 서버 인증서를 만든 다음 이 인증서를 사용하도록 Splunk 인스턴스를 설정할 수 있습니다. 포워더 및 인덱서 설정에 대한 자세한 내용은 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.

시작하기시작하기 전에전에이 설명에서 $SPLUNK_HOME(Windows의 경우 %SPLUNK_HOME%)은 Splunk Enterprise 설치 디렉터리입니다. Windows에서는 이변수를 명령줄에서 설정하거나 시스템 속성 대화상자의 환경 탭에서 설정해야 할 수 있습니다.

Windows에서 Splunk Enterprise 디렉터리는 기본적으로 C:\Program Files\Splunk에 있습니다. 대부분의 Unix 플랫폼에서기본 설치 디렉터리는 /opt/splunk에 있습니다. Mac OS에서는 /Applications/splunk입니다. Windows 및 *nix 플랫폼에서작업하는 방법에 대한 자세한 내용은 관리 가이드를 참조하십시오.

환경을 $SPLUNK_HOME/splunk/lib(*nix의 경우) 또는 %SPLUNK_HOME%/splunk/bin(Windows의 경우)에 있는 버전으로 설정하여71

Page 72: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Splunk Enterprise와 함께 제공된 OpenSSL 버전을 사용하고 있는지 확인하십시오.

새새 인증서인증서 디렉터리디렉터리 만들기만들기인증서를 만들 때 사용할 새 디렉터리를 만드십시오. 이 예에서는 다음과 같이 $SPLUNK_HOME/etc/auth/mycerts를 사용합니다.

# mkdir $SPLUNK_HOME/etc/auth/mycerts

# cd $SPLUNK_HOME/etc/auth/mycerts

$SPLUNK_HOME/etc/auth에 저장된 기존 인증서를 새 인증서와 키로 덮어쓰지 않도록 새 폴더를 만드는 것이 좋습니다. 새 디렉터리를 사용하면 Splunk와 함께 제공된 인증서를 보호하고, 필요한 경우 다른 Splunk 구성 요소에 이 인증서를 사용할 수 있습니다.

서버서버 인증서인증서 요청요청인증 기관에 보낼 CSR(인증서 서명 요청)를 생성하고 서명하십시오.

중요중요 : 이 예에서는 새로운 개인 키를 만들고 서버 인증서를 요청하는 방법에 대해 설명합니다. 이 서버 인증서는 모든 포워더, 인덱서를 비롯하여 관리 포트를 통해 통신하는 Splunk 인스턴스에 배포할 수 있습니다. 인스턴스마다 다른 공통 이름을사용하려면 여기에서 설명하는 프로세스를 반복해 Splunk 인스턴스에 사용할 각각의 인증서(각각의 공통 이름을 사용하여)를 만들면 됩니다.

예를 들어 포워더를 여러 개 설정하는 경우 다음 예를 이용하여 인덱서용 인증서 myServerCertificate.pem을 만든 다음 동일한 루트 CA를 사용하여 또 다른 인증서인 myForwarderCertificate.pem을 만들어서 포워더에 설치할 수 있습니다. 인덱서는포워더로부터 동일한 루트 CA에서 서명한, 올바르게 생성되고 설정된 인증서만 허용합니다.

포워더 및 인덱서 설정에 대한 자세한 내용은 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.

서버서버 인증서에인증서에 사용할사용할 개인개인 키키 생성생성1. 새 개인 키를 만듭니다. 다음 예에서는 DES3 암호화와 2048비트 키 길이를 사용하며, 2048비트 이상의 키 길이가 권장됩니다.

*nix의 경우:

openssl genrsa -des3 -out myServerPrivateKey.key 2048

Windows의 경우:

openssl genrsa -des3 -out myServerPrivateKey.key 2048 -config $SPLUNK_HOME\openssl.cnf

2. 프롬프트가 나타나면 키의 암호를 만듭니다.

이 단계가 완료되면 디렉터리에 myServerPrivateKey.key라는 새 개인 키가 만들어집니다. 이 키를 사용하여 CSR(인증서 서명 요청)에 서명합니다.

새새 CSR(인증서인증서 서명서명 요청요청 ) 생성생성1. 개인 키 myServerPrivateKey.key를 사용하여 서버 인증서 CSR를 생성합니다.

*nix의 경우:

openssl req -new -key myServerPrivateKey.key -out myServerCertificate.csr

Windows의 경우:

openssl req -new -key myServerPrivateKey.key -out myServerCertificate.csr -config $SPLUNK_HOME\openssl.cnf

2. 프롬프트가 나타나면 개인 키인 myServerPrivateKey.key에 대해 만든 암호를 입력합니다.

3. 요청된 인증서 정보를 제공합니다. 공통 이름 확인을 사용하려면 인증서 정보를 입력할 때 공통 이름을 제공하십시오.

완료하면 디렉터리에 myServerCertificate.csr라는 새 CSR가 나타납니다.

서버서버 인증서와인증서와 공개공개 키키 다운로드다운로드 및및 확인확인1. CA(인증 기관)로 CSR를 보내 새 서버 인증서를 요청합니다. 요청 프로세스는 이용하는 인증 기관에 따라 다릅니다.

2. 인증서가 준비되면 인증 기관에서 새 서버 인증서를 다운로드합니다. 이 매뉴얼의 예에서는 이 인증서를myServerCertificate.pem이라고 합니다.

72

Page 73: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

3. 인증 기관의 공용 CA 인증서도 다운로드합니다. 이 매뉴얼의 예에서는 이 인증서를 myCACertificate.pem이라고 합니다.

인증 기관에서 제공된 인증서가 PEM 형식이 아닐 경우 OpenSSL 명령어를 사용하여 기존 파일 유형에 맞게 변환해야 합니다. 파일 유형 변환에 대한 자세한 내용은 OpenSSL 설명서를 참조하십시오.

4. 인증서의 내용을 보고 필요한 항목이 모두 들어있는지 확인합니다.

'Issuer' 항목에는 CA의 정보가 포함되어야 합니다.'Subject' 항목에는 이전에 CSR를 만들 때 입력한 정보(국가 이름, 조직 이름, 공통 이름 등)가 표시되어야 합니다.

다음다음 단계단계이제 작성한 새 디렉터리에 다음과 같은 파일이 생성되었으며, 이 파일들이 인덱서, 포워더 및 관리 포트를 통해 통신하는Splunk 인스턴스 설정에 필요한 모든 파일입니다.

myServerCertificate.pem

myServerPrivateKey.key

myCACertificate.pem

필요한 인증서를 모두 확보했으므로 서버 인증서를 준비(중간 인증서를 추가하는 작업 포함)한 후 이러한 인증서를 검색하고사용하도록 Splunk 소프트웨어를 설정해야 합니다.

Splunk에서 사용할 수 있도록 인증서를 설정하는 방법에 대해 자세히 알아보려면 "Splunk에 사용할 서명된 인증서를준비하는 방법"을 참조하십시오.전달을 위한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.Splunk 간 통신에 대한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "Splunk 간 통신 보안"을 참조하십시오.

Splunk 인증에인증에 사용할사용할 서명된서명된 인증서를인증서를 준비하는준비하는 방법방법인증서를 가져왔으면 이 서버 인증서와 키를 결합하여 Splunk 소프트웨어에서 사용할 수 있는 하나의 파일로 만들어야 합니다.

인증서가 없는 경우에는 다음 항목에서 제공하는 OpenSSL을 사용하여 인증서를 만드는 몇 가지 간단한 예를 참조하십시오.

자체 서명 인증서를 만드는 방법타사에서 서명한 인증서를 가져오는 방법

참고참고 : Splunk 소프트웨어에 SSL을 설정하려면 인증서 및 공개 키가 x509 형식이고 개인 키가 RSA 형식이어야 합니다.

하나의하나의 PEM 파일파일 만들기만들기서버 인증서와 공용 인증서를 순서대로 결합하여 하나의 PEM 파일로 만드십시오.

이 예에서는 "자체 서명 인증서를 만드는 방법" 및 "타사에서 서명한 인증서를 가져오는 방법"에서 설명한 파일 이름을 사용합니다.

다음은 *nix 플랫폼에 대한 예입니다.

# cat myServerCertificate.pem myServerPrivateKey.key myCACertificate.pem > myNewServerCertificate.pem

다음은 Windows 플랫폼에 대한 예입니다.

>type myServerCertificate.pem myServerPrivateKey.key myCACertificate.pem > myNewServerCertificate.pem

만들어진 myNewServerCertificate 파일의 콘텐츠에는 다음 항목이 다음 순서로 포함되야 합니다.

서버 인증서(myServerCertificate.pem)개인 키(myServerPrivateKey.key)인증 기관 공개 키(myCACertificate.pem)

다음은 적절하게 연결된 인증서의 예입니다.

-----BEGIN CERTIFICATE-----

MIICUTCCAboCCQCscBkn/xey1TANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJV

...

<Server Certificate>

...

8/PZr3EuXYk1c+N5hgIQys5a/HIn

73

Page 74: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

-----END CERTIFICATE-----

-----BEGIN RSA PRIVATE KEY-----

Proc-Type: 4,ENCRYPTED

DEK-Info: DES-EDE3-CBC,CFCECC7976725DE5

S+DPcQ0l2Z1bk71N3cBqr/nwEXPNDQ4uqtecCd3iGMV3B/WSOWAQxcWzhe9JnIsl

...

<Server Private Key - Passphrase protected> ...

-----END RSA PRIVATE KEY-----

-----BEGIN CERTIFICATE-----

MIICUTCCAboCCQCscBkn/xey1TANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJV

...

<Certificate Authority Public Key>

...

8/PZr3EuXYk1c+N5hgIQys5a/HIn

-----END CERTIFICATE-----

인증서인증서 체인을체인을 설정하는설정하는 방법방법인증서를 여러 개 사용하려면 서버의 인증서 파일 끝에 중간 인증서를 추가하십시오. 최상위 루트 계층에서부터 내림차순으로 필요한 개수만큼 인증서를 추가할 수 있습니다.

인증서는 다음과 같은 순서로 연결되어야 합니다.

[ server certificate]

[ intermediate certificate]

[ root certificate (if required) ]

인증서 체인의 예는 다음과 같습니다.

-----BEGIN CERTIFICATE-----

... (certificate for your server)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the intermediate certificate)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the root certificate for the CA)...

-----END CERTIFICATE-----

다음다음 단계단계필요한 인증서를 모두 확보했으므로 이제 이러한 인증서를 검색하고 사용하도록 Splunk 소프트웨어를 설정해야 합니다.

전달을 위한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "자체 인증서를 사용하도록 Splunk 전달 설정"을 참조하십시오.Splunk 간 통신에 대한 인증서 인증을 설정하는 방법에 대해 자세히 알아보려면 "Splunk 간 통신 보안"을 참조하십시오.

Splunk Web용용 자체자체 서명서명 인증서인증서이 항목에서는 Splunk 소프트웨어와 함께 제공된 OpenSSL 버전을 사용하여 명령줄에서 자체 서명 인증서를 만드는 기본적인 방법을 예를 통해 제공합니다.

서명된 인증서는 조직의 정책, 사용하는 플랫폼과 도구에 따라 여러 가지 방법으로 만들 수 있습니다. 서명된 인증서와 키를이미 만들었거나 인증서를 만드는 방법에 익숙한 경우는 이 작업을 건너뛰고 이 매뉴얼의 "인증서를 사용하여 Splunk Web보안" 설정 항목으로 바로 진행하십시오.

자체 서명 인증서는 조직을 통해 서명을 받기 때문에 브라우저의 인증서 저장소에 저장되지 않습니다. 따라서 웹 브라우저에서는 자체 서명 인증서를 "신뢰할 수 없는" 인증서로 처리합니다. 이로 인해 사용자에게 경고 메시지를 표시하고 사용자의 액세스를 차단하는 경우도 있습니다.

자체 서명된 인증서는 조직 내에서나 잘 알고 있는 개체 간에 발생하는 데이터 통신에 사용하는 것이 가장 좋습니다. 이 경우에는 Splunk Web과 접속할 모든 브라우저의 저장소에 자체 CA를 추가할 수 있기 때문입니다. 그러나 그 외의 경우에는 CA에서 서명하는 인증서를 사용하는 것이 좋습니다. 자세한 내용은 "Splunk Web용 타사 서명 인증서 가져오기"를 참조하십시오.

74

Page 75: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

시작하기시작하기 전에전에이 설명에서 $SPLUNK_HOME은 Splunk 설치 디렉터리입니다. Windows에서 Splunk 소프트웨어의 기본 설치 위치는C:\Program Files\splunk입니다. Unix 플랫폼의 기본 설치 디렉터리는 대부분 /opt/splunk에 있고, Mac OS의 경우/Applications/splunk입니다. Windows 및 *nix 플랫폼에서 작업하는 방법에 대한 자세한 내용은 관리 가이드를 참조하십시오.

환경을 $SPLUNK_HOME/splunk/lib(*nix의 경우) 또는 $SPLUNK_HOME/splunk/bin(Windows의 경우)에 있는 버전으로 설정하여Splunk 소프트웨어와 함께 제공된 OpenSSL 버전을 사용하고 있는지 확인하십시오.

인증인증 기관의기관의 역할을역할을 할할 새새 루트루트 인증서인증서 생성생성1. 인증서 및 키를 호스트할 새 디렉터리를 만듭니다. 이 예에서는 $SPLUNK_HOME/etc/auth/mycerts를 사용합니다.

기존 인증서를 덮어쓰지 않도록 $SPLUNK_HOME/etc/auth/splunkweb 디렉터리가 아닌 다른 디렉터리에 새 인증서를 저장하는것이 좋습니다. 다른 디렉터리를 사용하면 필요한 경우 Splunk 소프트웨어와 함께 제공된 인증서($SPLUNK_HOME/etc/auth/splunkweb에 위치)를 다른 Splunk 구성 요소에 사용할 수 있습니다.

참고참고 : "자체 서명 인증서를 만드는 방법"에 설명된 대로 자체 서명된 인증서를 만든 경우 해당 루트 인증서를 디렉터리에 복사하고 "Splunk Web용 새 개인 키 만들기" 단계로 건너뛰십시오.

2. 새 RSA 개인 키를 만듭니다. 이 예에서는 2048비트 길이의 키를 사용합니다.

# openssl genrsa -des3 -out myCAPrivateKey.key 2048

Windows에서는 openssl.cnf 파일의 위치를 추가해야 할 수 있습니다.

>openssl genrsa -des3 -out myCAPrivateKey.key 2048 -config $SPLUNK_HOME\openssl.cnf

예에서는 2048 키 길이(최소 권장값)를 사용하나, 브라우저에서 지원되는 경우 2048이 넘는 키 길이를 지정할 수 있습니다.

3. 프롬프트가 나타나면 암호를 만듭니다.

디렉터리에 myCAPrivateKey.key라는 개인 키가 나타납니다. 이것이 루트 인증서 개인 키입니다.

4. 루트 인증서 개인 키인 myCAPrivateKey.key를 사용하여 CSR(인증서 서명 요청)를 생성합니다.

*nix의 경우:

# openssl req -new -key myCAPrivateKey.key -out myCACertificate.csr

Windows의 경우:

>openssl req -new -key myCAPrivateKey.key -out myCACertificate.csr -config $SPLUNK_HOME\openssl.cnf

5. myCAPrivateKey.key라는 개인 키의 암호를 입력합니다.

디렉터리에 myCACertificate.csr라는 새 CSR가 나타납니다.

6. CSR를 사용하여 새 루트 인증서를 생성하고 개인 키로 인증서에 서명합니다.

*nix의 경우:

# openssl x509 -req -in myCACertificate.csr -signkey myCAPrivateKey.key -out myCACertificate.pem -days 3650

Windows의 경우:

>openssl x509 -req -in myCACertificate.csr -signkey myCAPrivateKey.key -out myCACertificate.pem -days 3650 -config

$SPLUNK_HOME\openssl.cnf

7. 프롬프트가 나타나면 myCAPrivateKey.key라는 개인 키의 암호를 입력합니다.

디렉터리에 myCACertificate.pem이라는 새 인증서가 나타납니다. 이것이 공용 인증서입니다.

Splunk Web용용 새새 개인개인 키키 만들기만들기1. 새 개인 키를 생성합니다.

*nix의 경우:

# openssl genrsa -des3 -out mySplunkWebPrivateKey.key 2048

75

Page 76: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

Windows의 경우:

>openssl genrsa -des3 -out mySplunkWebPrivateKey.key 2048 -config $SPLUNK_HOME\openssl.cnf

2. 프롬프트가 나타나면 암호를 만듭니다.

디렉터리에 mySplunkWebPrivateKey.key라는 새 키가 나타납니다.

3. 키에서 암호를 제거합니다. Splunk Web은 현재 암호를 사용하는 개인 키를 지원하지 않습니다.

*nix의 경우:

# openssl rsa -in mySplunkWebPrivateKey.key -out mySplunkWebPrivateKey.key

Windows의 경우:

>openssl rsa -in mySplunkWebPrivateKey.key -out mySplunkWebPrivateKey.key -config $SPLUNK_HOME\openssl.cnf

다음 명령어를 사용하여 암호가 삭제되었는지 확인할 수 있습니다.

*nix의 경우:

# openssl rsa -in mySplunkWebPrivateKey.key -text

Windows의 경우:

>openssl rsa -in mySplunkWebPrivateKey.key -text -config $SPLUNK_HOME\openssl.cnf

암호를 입력하지 않아도 인증서의 내용을 볼 수 있어야 합니다.

서버서버 인증서인증서 생성생성 및및 서명서명1. mySplunkWebPrivateKey.key 개인 키를 사용하여 새 CSR(인증서 서명 요청)를 만듭니다.

*nix의 경우:

# openssl req -new -key mySplunkWebPrivateKey.key -out mySplunkWebCert.csr

Windows의 경우:

>openssl req -new -key mySplunkWebPrivateKey.key -out mySplunkWebCert.csr -config $SPLUNK_HOME\openssl.cnf

디렉터리에 mySplunkWebCert.csr라는 CSR가 나타납니다.

2. 루트 인증서 개인 키인 myCAPrivateKey.key를 사용하여 CSR에 자체 서명합니다.

*nix의 경우:

# openssl x509 -req -in mySplunkWebCert.csr -CA myCACertificate.pem -CAkey myCAPrivateKey.key -CAcreateserial -out

mySplunkWebCert.pem -days 1095

Windows의 경우:

>openssl x509 -req -in mySplunkWebCert.csr -CA myCACertificate.pem -CAkey myCAPrivateKey.key -CAcreateserial -out

mySplunkWebCert.pem -days 1095 -config $SPLUNK_HOME\openssl.cnf

3. 프롬프트가 나타나면 루트 인증서 개인 키인 myCAPrivateKey.key의 암호를 입력합니다.

mySplunkWebCert.pem이라는 인증서가 디렉터리에 추가됩니다. 이것이 서버 인증서입니다.

하나의하나의 PEM 파일파일 만들기만들기서버 인증서와 공용 인증서를 순서대로 결합하여 하나의 PEM 파일로 만드십시오.

다음은 Linux에서 이 작업을 수행하는 방법의 예입니다.

# cat mySplunkWebCert.pem myCACertificate.pem > mySplunkWebCertificate.pem

다음은 Windows의 예입니다.

# type mySplunkWebCert.pem myCACertificate.pem > mySplunkWebCertificate.pem

인증서인증서 체인체인 설정설정76

Page 77: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

인증서를 여러 개 사용하려면 서버의 인증서 파일 끝에 중간 인증서를 다음과 같은 순서로 추가하십시오.

[ server certificate]

[ intermediate certificate]

[ root certificate (if required) ]

인증서 체인의 예는 다음과 같습니다.

-----BEGIN CERTIFICATE-----

... (certificate for your server)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the intermediate certificate)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the root certificate for the CA)...

-----END CERTIFICATE-----

다음다음 단계단계필요한 인증서를 모두 확보했으므로 이제 이러한 인증서를 배포하고 인증서를 사용하도록 Splunkd와 Splunk Web을 설정해야 합니다. 자세한 내용은 이 매뉴얼의 "인증서를 사용하여 Splunk Web 보안"을 참조하십시오.

Splunk Web용용 타사타사 서명서명 인증서인증서 가져오기가져오기이 항목에서는 Splunk Web에 SSL 인증 및 암호화 기능을 설정하는 경우에 필요한 타사 서명 인증서를 만드는 기본적인 방법을 예를 통해 설명합니다.

타사 서명 인증서는 조직의 정책, 사용하는 네트워크 구조 및 도구에 따라 여러 가지 방법으로 만들 수 있습니다. 필요한 인증서 및 키를 이미 만들었거나 타사 인증서를 만드는 방법에 익숙한 경우는 이 단계를 건너뛰고 이 매뉴얼의 "인증서를 사용하여 Splunk Web 보안" 설정 항목으로 바로 진행할 수 있습니다.

시작하기시작하기 전에전에이 설명에서 $SPLUNK_HOME은 Splunk 설치 디렉터리입니다. Windows에서 Splunk 소프트웨어의 기본 설치 위치는C:\Program Files\splunk입니다. Unix 플랫폼의 기본 설치 디렉터리는 대부분 /opt/splunk에 있고, Mac OS의 경우/Applications/splunk입니다. Windows 및 *nix 플랫폼에서 작업하는 방법에 대한 자세한 내용은 관리 가이드를 참조하십시오.

환경을 $SPLUNK_HOME/lib(*nix의 경우) 또는 $SPLUNK_HOME/bin(Windows의 경우)에 있는 버전으로 설정하여 Splunk와 함께제공된 OpenSSL 버전을 사용하고 있는지 확인하십시오.

Splunk Web용용 새새 개인개인 키키 만들기만들기1. 자체 인증서 및 키를 호스트할 새 디렉터리를 만듭니다. 이 예에서는 $SPLUNK_HOME/etc/auth/mycerts를 사용합니다.

기존 인증서를 덮어쓰지 않도록 $SPLUNK_HOME/etc/auth/splunkweb 디렉터리가 아닌 다른 디렉터리에 새 인증서를 저장하는것이 좋습니다. 다른 디렉터리를 사용하면 필요한 경우 Splunk와 함께 제공된 인증서를 다른 Splunk 구성 요소에 사용할 수있습니다.

2. 새 개인 키를 생성합니다. 이 예에서 사용하는 키 길이는 2048입니다.

# openssl genrsa -des3 -out mySplunkWebPrivateKey.key 2048

Windows에서는 openssl.cnf 파일의 위치를 추가해야 할 수 있습니다.

>openssl genrsa -des3 -out mySplunkWebPrivateKey.key 2048 -config $SPLUNK_HOME\openssl.cnf

3. 프롬프트가 나타나면 암호를 만듭니다.

mySplunkWebPrivateKey.key라는 새 개인 키가 디렉터리에 추가됩니다. 이 키를 사용하여 CSR에 서명합니다.

4. 개인 키에서 암호를 제거합니다. Splunk Web은 개인 키 암호를 지원하지 않습니다.

# openssl rsa -in mySplunkWebPrivateKey.key -out mySplunkWebPrivateKey.key

다음 명령어를 사용하여 암호가 제거되었는지 확인할 수 있습니다.

77

Page 78: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

# openssl rsa -in mySplunkWebPrivateKey.key -text

원래 키의 암호를 입력하라는 프롬프트가 나타나면 키에서 암호를 제거할 수 있습니다.

암호가 제거되었으면 암호를 입력하지 않아도 인증서의 내용을 볼 수 있어야 합니다.

CA(인증인증 기관기관 )에에 보낼보낼 요청요청 생성생성 및및 서버서버 인증서인증서 받기받기1. mySplunkWebPrivateKey.key 개인 키를 사용하여 새 CSR(인증서 서명 요청)를 만듭니다.

*nix의 경우:

# openssl req -new -key mySplunkWebPrivateKey.key -out mySplunkWebCert.csr

Windows의 경우:

>openssl req -new -key mySplunkWebPrivateKey.key -out mySplunkWebCert.csr -config $SPLUNK_HOME\openssl.cnf

Windows 플랫폼에플랫폼에 대한대한 주의주의 사항사항 : 다음과 유사한 오류가 나타나는 경우Unable to load config info from c:\\build-amd64-5.0.2-20130120-1800\\splunk/ssl/openssl.cnf

명령 프롬프트에 다음을 입력하고 openssl 명령어를 다시 실행해 보십시오.

set OPENSSL_CONF=c:/Program Files/Splunk/openssl.cnf

2. 이 CSR(mySplunkWebCert.csr)를 사용하여 CA(인증 기관)에서 서명된 새 인증서를 요청합니다. 서명된 인증서 요청 프로세스는 인증 기관의 CSR 처리 방식에 따라 다릅니다. 자세한 내용은 해당 CA(인증 기관)에 문의하십시오.

3. CA(인증 기관)에서 반환한 서버 인증서를 다운로드합니다. 이 예에서는 이 인증서를 "mySplunkWebCert.pem"이라고 합니다.

4. 인증 기관의 공용 CA 인증서를 다운로드합니다. 이 예에서는 이 인증서를 "myCAcert.pem"이라고 합니다.

5. 서버 인증서와 공용 CA 인증서가 모두 PEM 형식인지 확인합니다. 인증서가 PEM 형식이 아닌 경우 openssl 명령어를 사용하여 기존 파일 유형에 맞게 변환해야 합니다. 다음은 DER 형식인 경우 사용할 수 있는 명령어의 예입니다.

x509 -in input.crt -inform DER -out output.crt -outform PEM/x509 -in input.crt -inform DER -out output.crt -outformPEM

6. 두 인증서의 내용을 확인하여 필요한 정보가 모두 들어 있고 암호가 사용되지 않았는지 확인합니다.

# openssl x509 -in myCACert.pem -text

# openssl x509 -in mySplunkWebCert.pem -text

>openssl x509 -in myCACert.pem -text -config $SPLUNK_HOME\openssl.cnf

>openssl x509 -in mySplunkWebCert.pem -text -config $SPLUNK_HOME\openssl.cnf

mySplunkWebCert.pem의 발급자 정보는 myCACert.pem의 제목 정보와 같아야 합니다(중간 인증서를 사용하는 경우 제외).

인증서인증서 및및 키를키를 단일단일 파일로파일로 결합결합서버 인증서와 공용 인증서를 순서대로 결합하여 하나의 PEM 파일로 만드십시오.

인증서인증서 체인체인 설정설정인증서를 여러 개 사용하려면 서버의 인증서 파일 끝에 중간 인증서를 다음과 같은 순서로 추가하십시오.

[ server certificate]

[ intermediate certificate]

[ root certificate (if required) ]

인증서 체인의 예는 다음과 같습니다.

-----BEGIN CERTIFICATE-----

... (certificate for your server)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the intermediate certificate)...

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

... (the root certificate for the CA)...

-----END CERTIFICATE-----

78

Page 79: Splunk Enterprise 6.5.0 Splunk Enterprise 보안

중간 인증서에 서명하는 루트 CA뿐만 아니라 모든 중간 인증서는 브라우저의 인증서 저장소에 있어야 합니다.

다음다음 단계단계인증을 위해 인증서를 검색하고 사용하도록 Splunk의 Web.conf 파일을 설정하십시오. 자세한 내용은 "인증서를 사용하여Splunk Web 보안"을 참조하십시오.

암호화암호화 스위트스위트 결정결정Splunk 간, Splunk Web 및 Splunk 포워더와 인덱서 통신에 사용할 암호화 스위트를 선택 및 지정할 수 있습니다. 암호화스위트는 서버 SSL 설정 스탠자 끝에 한 줄을 더하여 추가합니다.

다음은 포워더와 인덱서 간 인증서 인증을 설정할 때 inputs.conf를 업데이트하는 방법의 예입니다.

[splunktcp-ssl:9998]

[SSL]

password = password

requireClientCert = false

rootCA = $SPLUNK_HOME/etc/auth/cacert.pem

serverCert = $SPLUNK_HOME/etc/auth/server.pem

cipherSuite = AES256-SHA256:DHE-RSA-AES256-SHA256

사용 가능한 암호를 확인하는 방법:

$SPLUNK_HOME/bin/splunk cmd openssl ciphers -v

$SPLUNK_HOME/bin/splunk cmd openssl ciphers -v "TLSv1.2"

$SPLUNK_HOME/bin/splunk cmd openssl ciphers -v "HIGH"

사용 가능한 암호화 스위트는 OpenSSL 버전을 기준으로 정해집니다. 실행 중인 OpenSSL 버전을 확인하는 방법은 다음과같습니다.

$SPLUNK_HOME/bin/splunk cmd openssl version

79