Using PSK Encryption on Zabbix

PSK 를 이용한 ZABBIX 암호화 설정

 

PSK 는 사전공유된 키를 이용하여 암호화 하는 방식입니다. 암호화 방식에는 PSK 외에도 인증서를 이용한 방식도 있습니다.

이 매뉴얼은 OpenSSL 1.1.1g 버전으로 설치된 ZABBIX 5.0 LTS 를 기준으로 하고 있습니다. 기본적인 설정방법은 이전버전에서도 크게 다르지 않습니다.

키 생성시 OpenSSL 1.1.1g 의 LD_LIBRARY_PATH 가 등록 되어있지 않으면 오류가 발생하기 때문에 export 해주어야 합니다. OpenSSL 1.1.1g 버전은 128 hexadecimal digits 을 지원하기 때문에 128 로 생성하였습니다.

참조 : https://www.zabbix.com/documentation/current/manual/encryption/using_pre_shared_keys

 

LD_LIBRARY_PATH 또는 ldconfig 에서 라이브러리 등록이 되어 있는지 확인합니다.

LD_LIBRARY_PATH 확인

[root@172-16-11-99 /]# echo $LD_LIBRARY_PATH

ldconfig 확인

// OpenSSL 1.1.1g 버전 등록이 안되있는 경우
[root@172-16-11-99 ~]# ldconfig -p | grep ssl
    libssl3.so (libc6,x86-64) => /lib64/libssl3.so
    libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
    libssl.so (libc6,x86-64) => /lib64/libssl.so
    libevent_openssl-2.0.so.5 (libc6,x86-64) => /lib64/libevent_openssl-2.0.so.5

// OpenSSL 1.1.1g 버전 등록이 되어 있는 경우
[root@172-16-11-99 ld.so.conf.d]# ldconfig -p | grep ssl
    libssl3.so (libc6,x86-64) => /lib64/libssl3.so
    libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
    libssl.so.1.1 (libc6,x86-64) => /usr/local/openssl-1.1.1g/lib/libssl.so.1.1
    libssl.so (libc6,x86-64) => /usr/local/openssl-1.1.1g/lib/libssl.so
    libssl.so (libc6,x86-64) => /lib64/libssl.so
    libevent_openssl-2.0.so.5 (libc6,x86-64) => /lib64/libevent_openssl-2.0.so.5
    libcrypto.so.1.1 (libc6,x86-64) => /usr/local/openssl-1.1.1g/lib/libcrypto.so.1.1
    libcrypto.so (libc6,x86-64) => /usr/local/openssl-1.1.1g/lib/libcrypto.so

 

OpenSSL 1.1.1g library 등록이 안되어 있다면 PATH 를 export 해줍니다.

[root@172-16-11-99 /]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl-1.1.1g/lib/

 

PSK 생성

[root@172-16-11-99 /]# mkdir -p /etc/zabbix/secure
[root@172-16-11-99 /]# /usr/local/openssl-1.1.1g/bin/openssl rand -hex 128 | tee /etc/zabbix/secure/zabbix_agent2.psk
6887536594d78612454a4572bb46df18136e7e69fceedfc6e797f555b87763f7b90bac3c70b427b52e03d41515e99e925e0fc4cebf6615d38eaa49bcb7d0d09e6c337337b32fcff71ca6113791a9f97df4a44b0296a04742135169ac310ce05b89cee6ed06eba15f8d7a3abf59f8c88bd9523f3a1f278cac63f934ed1579916d

 

생성된 암호키값은 웹 프론트엔드의 호스트 설정에 넣어줘야 하므로 기록해 두어야 합니다.

만약 기록을 못했다고 해도 psk 파일에 저장이 되어 있기 때문에 언제든지 확인 가능합니다.

ex) cat /etc/zabbix/secure/zabbix_agent2.psk
6887536594d78612454a4572bb46df18136e7e69fceedfc6e797f555b87763f7b90bac3c70b427b52e03d41515e99e925e0fc4cebf6615d38eaa49bcb7d0d09e6c337337b32fcff71ca6113791a9f97df4a44b0296a04742135169ac310ce05b89cee6ed06eba15f8d7a3abf59f8c88bd9523f3a1f278cac63f934ed1579916d

 

agent 설정 수정

TLSPSKIdentity 는 중복될 수 없는 고유값이며, 암호화 되지 않는 텍스트이므로 중요정보를 입력하지 않도록 합니다.
: vi /etc/zabbix/zabbix_agent2.conf

TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=PSK001
TLSPSKFile=/etc/zabbix/secure/zabbix_agent2.psk

 

Agent 재시작

[root@172-16-11-99 /]# systemctl restart zabbix_agent2

 

Zabbix 웹 프론트엔드를 열고 호스트 설정 화면으로 이동 후 Encryption (암호화) 탭에 들어가서 아래 이미지처럼 agent 설정파일에 넣은 정보를 기준으로 넣어줍니다.

psk-setup

 

정상적으로 모든 설정이 되었다면 아래 이미지처럼 호스트리스트에 암호화 관련 부분에 녹색불이 켜집니다. 이제부터 서버와 에이전트간 모든 통신은 암호화 되어 전송됩니다.

psk-setup2

 

You may also like...

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x