른록노트
[Elasticsearch] security 적용하기 - 2 본문
@ 시작하기전
Window PC에서 VMware로 Linux서버 3대로 클러스터 구성할 계획입니다.
서버사양
OS : CentOS7.4
CPU : 3 core
Memory : 4 GB
Elasticsearch Version : 7.9.1
(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)
* 모든 작업은 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에 대한 개념이 바로 잡혀있지 않아서 다음에 정리를 한번 해야겠습니다.