[ELK] Kibana 보안 연결을 위한 SSL를 적용 해보자 #6
반응형

안녕하세요 😉

유유자적한 개발자 유로띠 입니다 😀

 

ELK Stack #6

 

 

이번 포스팅에서는

Kibana를 SSL(Secure Sockets Layer)로 적용하여

통신 암호화를 해보도록 하겠습니다 😉

 

👏👏👏👏

 

 

 

 

 

이번 포스팅에서는

✅ 서버 인증서 및 개인 키 생성

✅ Kibana SSL 보안 설정

✅ Kibana https 접속

에 대해서 알아보겠습니다

 

 

🎉 KIBANA 보안 SSL 적용하기


📢 서버 인증서 및 개인 키 생성

 

kibana를 구축한 서버에서

서버 인증서개인 키를 생성해야 합니다 😁

 

개인 키 생성

 

RSA 2048 bit의 des3의 암호화로 

server.key라는 이름으로 개인 키를 생성해 보도록 하겠습니다 👌

 

$ sudo openssl genrsa  -des3 -out server.key 2048

 

Enter pass phrase for server.key에서 개인 키의 비밀번호를 입력합니다

Verifying에서 한번 더 입력한 비밀번호를 입력합니다 👌

 

Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
..............+++++
e is 65537 (0x010001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:
140430269977024:error:28078065:UI routines:UI_set_result_ex:result too small:../crypto/ui/ui_lib.c:903:You must type in 4 to 1023 characters
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

 

server.key라는 개인 키가 생성되었습니다(이름은 원하는 대로 지정하시면 됩니다) 👍

 

$ ls -al
-rw-------  1 root root 1751 Apr 21 18:08 server.key

 

 

✅ 개인 키 비밀번호 풀기

 

매번 비밀번호를 입력하기 번거롭기 때문에 개인 키의 비밀번호를 풀어서 사용하도록 설정합니다 😁

 

$ sudo openssl rsa -in  server.key  -out  server.key

 

설정한 개인 키의 비밀번호를 입력합니다

 

Enter pass phrase for server.key:
writing RSA key

 

 

✅ CSR 파일 생성

 

서버 인증서(CA)를 생성하기 위한 CSR(Certificate Signing Request) 파일을 생성합니다

 

$ sudo openssl req -new -key server.key -out server.csr

기본적인 정보

Country Name

State

Locality Name

Organization Unit Name

Common Name

Email Adress 정보를 입력합니다 👌

 

Can't load /home/ubuntu/.rnd into RNG
139730387542464:error:2406F079:random number generator:RAND_load_file:Cannot open file:../crypto/rand/randfile.c:88:Filename=/home/ubuntu/.rnd
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:kr
State or Province Name (full name) [Some-State]:seoul
Locality Name (eg, city) []:mapo
Organization Name (eg, company) [Internet Widgits Pty Ltd]:company
Organizational Unit Name (eg, section) []:dev
Common Name (e.g. server FQDN or YOUR name) []:kibana.co.kr
Email Address []:dbalstjs1207@gmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

 

server.csr이라는 scr 파일을 생성하였습니다 👍

 

$ ls -al
-rw-r--r--  1 root root 1062 Apr 21 18:15 server.csr
-rw-------  1 root root 1679 Apr 21 18:09 server.key

 

서버 인증서 생성

 

개인 키(server.key)와 csr파일(server.csr)을 사용하여 서버 인증서(CA)를 생성합니다 😊

 

$ sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

Signature ok
subject=C = kr, ST = seoul, L = mapo, O = company, OU = dev, CN = kibana.co.kr, emailAddress = dbalstjs1207@gmail.com
Getting Private key

 

서버 인증서인 server.crt가 생성되었습니다 👍

 

드디어 Kibana 설정에 필요한 파일을 모두 생성하였습니다

scr은 crt를 생성하기 위한 파일이기 때문에 삭제하셔도 상관없습니다 😁

$ ls -al
-rw-r--r--  1 root root 1330 Apr 21 18:16 server.crt
-rw-r--r--  1 root root 1062 Apr 21 18:15 server.csr
-rw-------  1 root root 1679 Apr 21 18:09 server.key

 

💡 소유자 확인

 

개인 키(server.key)서버 인증서(server.crt)를 사용하여 kibana를 설정해야 하는데

그전에 소유자를 kibana로 설정해 주여야 합니다 🧐

 

$ sudo chown kibana. server.crt server.key
$ ls -al
-rw-r--r--  1 kibana kibana 1330 Apr 21 18:16 server.crt
-rw-r--r--  1 root   root   1062 Apr 21 18:15 server.csr
-rw-------  1 kibana kibana 1679 Apr 21 18:09 server.key

 

 


📢 kibana SSL 보안 설정

 

서버에 대한 설정은 끝났으니

다음 kibana의 보안을 설정해 보도록 하겠습니다 😁

 

 

✅ kibana.yml

 

ect/kibana 위치의 kibana.yml 파일을 설정합니다

 

중간쯤에 SSL을 설정하는 부분이 있습니다

kibana가 개인 키와 서버 인증서를 접근할 수 있도록 해당 경로를 작성해 줍니다

또한 server.ssl.enabled를 false true로 변경합니다 😁

 

# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
server.ssl.enabled: true
server.ssl.certificate: /opt/server.crt
server.ssl.key: /opt/server.key

 

 

 


📢 kibana 기동 및 https 접속

 

모든 설정을 완료하였습니다

kibana를 종료하고 다시 기동하여 접속해보도록 하겠습니다 ✌

 

 

 

📍 kibana 재 기동

 

$sudo service kibana stop

$sudo service kibana start

 

 

💡 kibana 접속

 

브라우저에서 http가 아닌 hrttps://<IP 주소>:5601를 통해 접속해보겠습니다

 

https로 보안 접속에 성공하였습니다 👏👏

 

 

 


📢마무리

 

이상

ELK Stack #6

Kibana에 SSL 적용

에 대해

알아보았습니다

 

👏👏👏👏

 

 

 

💡 참고

kibana에서 통신 암호화

반응형