른록노트

[Elasticsearch] security 적용하기 - 2 본문

DB/[Elasticsearch]

[Elasticsearch] security 적용하기 - 2

른록 2020. 9. 27. 03:00

@ 시작하기전

Window PC에서 VMware로 Linux서버 3대로 클러스터 구성할 계획입니다.

서버사양

OS : CentOS7.4

CPU : 3 core

Memory : 4 GB

Elasticsearch Version : 7.9.1

 

 

[Elasticsearch] 설치하기

@ 시작하기전 Window PC에서 VMware로 Linux서버 3대로 클러스터 구성할 계획입니다. 서버사양 OS : CentOS7.4 CPU : 3 core Memory : 4 GB Elasticsearch Version : 7.9.1 @ 방법 (www.elastic.co/guide/en/elast..

llnote.tistory.com

(Elasticsearch 설치 방법은 위 링크를 참조하세요)

 

@ 방법

(www.elastic.co/guide/en/elasticsearch/reference/current/configuring-security.html)

(www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html)

(www.elastic.co/guide/en/elasticsearch/reference/current/security-settings.html)

 

(이 글과 다른 방법  pem)

(www.elastic.co/kr/blog/configuring-ssl-tls-and-https-to-secure-elasticsearch-kibana-beats-and-logstash?ultron=june-2019&blade=newsletter&hulk=email&mkt_tok=eyJpIjoiTlRBM1pqWTJPV0ppWldaaiIsInQiOiJiXC96b2JuZ0pUWEpCUDNzWDNlcmZualRmejM0blBVTk5tWFRsbTVubk9FXC9PNVIzTkIweWRGdXBzdXdmTjhPV0dyOFNPSzRuT3NZVXcwMDd6SFdnUFUxVnhoa29iWHZnRUJRbzd2Y1wveXE1MXUrVzlkdG96dnFcL1dabjNTczlUaXoifQ%253D%253D)

 

* 모든 작업은 elastic을 실행하는 계정으로 작업해주세요 (인증서 파일이 생성된 후 권한을 맞춰주세요)

 

[1번서버]

> cd 엘라스틱서치 폴더

> bin/elasticsearch-certutil ca

 

ca 인증서를 저장할 위치를 입력하라는 메시지가 표시되고 엔터를 누르면 디폴트로 elastic-stack-ca.p12이 생성됩니다

암호를 입력하라는 메시지도 표시됩니다. 인증서 및 키에 대한 암호를 입력하거나 Enter 키를 눌러 암호를 비워 둘 수 있습니다. ( 저는 비밀번호를 등록하지 않았습니다 )

 

> bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

 

ca 인증서의 비밀번호를 입력하라는 메시지가 표시되고, certificates의 비밀번호를 입력하라는 메시지가 나옵니다

( 저는 비밀번호를 등록하지 않았습니다 )

 

위의 작업을 하고나면 아래와 같은 파일이 생성됩니다

elastic-stack-ca.p12

elastic-certificates.p12

위 파일들을 엘라스틱/config 폴더 안으로 옮겨주시고 나머지 두대 서버에도 같은 위치에 복사해주세요

 

[모든서버]

> vi config/elasticsearch.yml

(맨 아래에 추가)

xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.verification_mode: certificate
xpack.security.http.ssl.keystore.path: elastic-certificates.p12      
xpack.security.http.ssl.truststore.path: elastic-certificates.p12

* 만약 인증서 비밀번호를 등록했다면 추가 설정을 해줘야합니다. 아래 링크에서 확인하세요

(www.elastic.co/guide/en/elasticsearch/reference/current/configuring-tls.html#node-certificates)

 

설정을 다 해주셨다면 엘라스틱 서치를 구동해주세요

> bin/elasticsearch

 

1번서버 터미널을 하나 더 켜주세요

[1번서버]

> cd 엘라스틱폴더

> bin/elasticsearch-setup-passwords interactive

사용할 비밀번호를 등록해주세요

 

아래 계정에 비밀번호들이 모두 수정되었습니다.

Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

 

@ 테스트

웹 페이지에서 https://엘라스틱서버:9200 접속

방금 등록된 계정으로 접속하여 제대로 접속 되는지 확인하세요

 

@ 마치며

6.8전 이전 버전들은 xpack security가 무료 버전에 포함되어있지 않았는데, 그래서 searchguard라는 프로그램을 사용하였었습니다 searchguard는 설정들이 살짝 복잡하였는데 엘라스틱서치가 6.8버전부터는 무료로 제공해주게 되었습니다. 확실히 설정이 간단해졌고 elastic안에서 여러 security 설정을 할 수 있게되어 무료 버전 사용자 입장에서는 아주 좋은것 같습니다. 그리고 elastic에 비밀번호를 거는 방법은 다양하며, 글을 작성하면서 생각난 점은 ca와 certificate에 대한 개념이 바로 잡혀있지 않아서 다음에 정리를 한번 해야겠습니다.

 

반응형
Comments