안녕하세요 😉
유유자적한 개발자 유로띠 입니다 😀
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 적용
에 대해
알아보았습니다
👏👏👏👏
💡 참고
'Programming > ELK' 카테고리의 다른 글
[ELK] KIBANA를 이용하여 데이터를 👁🗨시각화 해보자 #5 (2) | 2020.04.23 |
---|---|
[ELK] Logstash 사용하기 📌시각화를 위한 설정 📌JDBC 상세 설정 #4 (3) | 2020.04.21 |
[ELK] Logstash 설치하기 #3 (4) | 2020.04.17 |
[ELK] KIBANA 설치하기 #2 (0) | 2020.04.16 |
Elasticsearch 설치 및 외부 허용 설정하기 #1 (2) | 2020.04.14 |