본문 바로가기

리눅스

Kibana를 설치하고 구성하는 방법(SSL/TLS 암호화 구성)

728x90

Kibana를 설치하고 구성하는 방법(SSL/TLS 암호화 구성)

  • 주요 단계
    • ElasticSearch 및 Kibana 패키지 저장소에 대한 APT 키를 추가합니다.
    • ElasticSearch와 Kibana를 설치합니다.
    • Kibana의 암호화 키를 생성합니다.
    • ElasticSearch 시스템 사용자의 초기 비밀번호를 재설정합니다.
    • SSL/TLS를 위해 필요한 인증서 및 키를 설정합니다.
    • Kibana의 keystore를 생성하고 ElasticSearch에 대한 사용자 이름과 비밀번호를 저장합니다.
    • Kibana 서비스를 시작하고 상태를 확인합니다.

apt-transport-https 패키지 설치

sudo apt-get install -y apt-transport-https

GPG 공개 키 다운로드

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

ElasticSearch 패키지 저장소를 APT의 소스 리스트에 추가

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

APT 저장소 업데이트

sudo apt-get update

Kibana 설치

sudo apt-get install -y kibana

Kibana의 암호화 키 생성

/usr/share/kibana/bin/kibana-encryption-keys generate
cat <<EOF >> /etc/kibana/kibana.yml

## Kibana Encryption Key Generation Utility
xpack.encryptedSavedObjects.encryptionKey: 2166ff6f34647031ff5fb304a5c35b84
xpack.reporting.encryptionKey: 1f5e7bffff8efce35f31d9f4c603eb0a
xpack.security.encryptionKey: bf0689be9f67e514657a1abdbde3846c
EOF

kibana_system 사용자의 비밀번호 재설정

/usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
$ /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
This tool will reset the password of the [kibana_system] user.
You will be prompted to enter the password.
Please confirm that you would like to continue [y/N]y


Enter password for [kibana_system]: 
Re-enter password for [kibana_system]: 
Password for the [kibana_system] user successfully reset.
728x90

Kibana의 SSL/TLS 인증서를 저장할 디렉토리를 생성

mkdir -p /etc/kibana/certs

CA 파일을 Kibana의 인증서 디렉토리로 복사

cp /etc/elasticsearch/certs/elastic-stack-ca.p12 /etc/kibana/certs/.

인증서 파일을 Kibana의 인증서 디렉토리로 복사

cp /etc/elasticsearch/certs/elastic-certificates.p12 /etc/kibana/certs/.

인증서 파일에서 CA 인증서를 추출하여 PEM 형식으로 저장

openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -out CA.pem

인증서 파일에서 개인 키를 추출하여 저장

openssl pkcs12 -in elastic-certificates.p12 -nocerts -nodes -out client.key

인증서 파일에서 공개 키를 추출하여 저장

openssl pkcs12 -in elastic-certificates.p12 -clcerts -nokeys -out client.crt

파일 소유자를 Kibana로 변경

chown -R kibana.kibana /etc/kibana/certs

keystore 생성

/usr/share/kibana/bin/kibana-keystore create

keystore에 ElasticSearch에 대한 사용자 이름을 추가

/usr/share/kibana/bin/kibana-keystore add elasticsearch.username

keystore에 ElasticSearch에 대한 비밀번호를 추가

/usr/share/kibana/bin/kibana-keystore add elasticsearch.password

kibana.yml 편집

vim /etc/kibana/kibana.yml
server.port: 5601

server.host: "0.0.0.0"

#elasticsearch.hosts: ["https://instance:9200"]
elasticsearch.hosts: ["https://node1:9200","https://node2:9200","https://node3:9200"]

elasticsearch.username: "kibana_system"
elasticsearch.password: "kibana_system_pass"

elasticsearch.ssl.certificate: /etc/kibana/certs/client.crt
elasticsearch.ssl.key: /etc/kibana/certs/client.key

elasticsearch.ssl.certificateAuthorities: [ "/etc/kibana/certs/CA.pem" ]

#elasticsearch.ssl.verificationMode: full
elasticsearch.ssl.verificationMode: certificate

logging:
  appenders:
    file:
      type: file
      fileName: /var/log/kibana/kibana.log
      layout:
        type: json
  root:
    appenders:
      - default
      - file

pid.file: /run/kibana/kibana.pid

xpack.encryptedSavedObjects.encryptionKey: 2166ff6f34647031ff5fb304a5c35b84
xpack.reporting.encryptionKey: 1f5e7bffff8efce35f31d9f4c603eb0a
xpack.security.encryptionKey: bf0689be9f67e514657a1abdbde3846c

Kibana 서비스 시작 및 활성화

sudo systemctl --now enable kibana.service
더보기

---

/usr/share/kibana/bin/kibana --allow-root

---

 

Kibana 서비스를 재시작

sudo systemctl restart kibana.service

Kibana 서비스의 상태를 확인

sudo systemctl status kibana.service

 

728x90