보안/프로젝트

ProxySQL과 스플렁크 연동 및 대시보드 커스텀화하기

ispini 2026. 1. 31. 05:59

전 게시글에서 본대로, 내부망 쪽에 설치한 스플렁크에 ProxySQL의 쿼리 로그들을 넘긴 뒤, 그 곳에서 대시보드를 커스텀화해 로그들을 알아보기 쉽게 하도록 할 예정이다.

 

일단 ProxySQL에서 기록하는 로그 파일의 내용들은 한 눈에 알아보기가 다소 힘들다.

 

이를 좀 더 알아보기 쉽게 하고 또 깔끔하게 보이게 하기 위해서, 스플렁크와 로그 연동 및 대시보드 커스텀화를 진행해 볼 예정이다.

 

 

로그 연동시키기

먼저 ProxySQL에서 스플렁크 포워더를 설치했다.

wget -O splunkforwarder-10.0.2-e2d18b4767e9-linux-amd64.deb "[https://download.splunk.com/products/universalforwarder/releases/10.0.2/linux/splunkforwarder-10.0.2-e2d18b4767e9-linux-amd64.deb](https://download.splunk.com/products/universalforwarder/releases/10.0.2/linux/splunkforwarder-10.0.2-e2d18b4767e9-linux-amd64.deb)"

 

그런 다음 아래 3줄을 순서대로 입력해 패키징, 포트포워딩, 시작프로그램 등록을 진행한다.

dpkg -i splunkforwarder-10.0.2-e2d18b4767e9-linux-amd64.deb
/opt/splunkforwarder/bin/splunk add forward-server 192.168.50.201:9997
/opt/splunkforwarder/bin/splunk enable start

 

이후 방화벽에서 NAT로 룰을 열어준 뒤,

pf 입장에서 외부인 opn으로부터 로그를 받아야 하므로 pf에서 포트포워딩을 열어줬다.

방화벽 룰도 열어준다.

(OPNsense의 경우 개발 VLAN에서 룰을 열어줌)

 

이후, var/lib/proxysql 경로 안에 기록되고 있는 로그 파일들을 연동시키기 위해 아래와 같이 직접 등록한다.

/opt/splunkforwarder/bin/splunk add monitor /var/lib/proxysql/proxysql_audit.log* -index main -sourcetype proxysql:audit

 

리부팅 명령어로 재시작을 해준다.

/opt/splunkforwarder/bin/splunk restart

 

 

스플렁크 웹 페이지의 설정에서 전달 및 수신 들어간 뒤, 데이터 수신의 수신 설정 새로 추가 ⇒ 9997번 포트를 추가한다.

 

로그를 불러오는 데 쓰일 포워더의 포트인 9997번을 추가해 준다.

 

이제 개발/사무망 내 pc에서 프록시를 통해 입력하는 쿼리들의 로그를 뽑아서 스플렁크에서 확인할 수 있다.

 

예1)

DB 접근이 허가된 PC에서 인가되지 않은 쿼리를 입력했을 때

 

예2)

어떤 IP를 가진 PC에서 언제 어느 계정으로 DB에 접속하여 어떤 비인가 쿼리를 날렸고, 그 차단 사유가 무엇인지를 전체적으로 종합하여 보고 싶을 때

 

예3)

어떤 허가되지 않은 PC에서 DB에 접속해 내용 조회나 데이터 수정 등을 시도하였고, 그 쿼리의 내용은 어떤지를 종합하여 보고 싶을 때

 

대시보드 만들기

검색 결과 창에서 다른 이름으로 저장 => 새 대시보드를 눌러 우리가 새롭게 관제(?)할 대시보드 틀을 만들어 준다.

 

이후 대시보드의 이름을 짓고, 유형을 고른 뒤 저장하면 된다.
(본인은 좀 더 시각적으로 풍부해 보일 것 같은 대시보드 스튜디오를 골랐다.)

 

한 번 대시보드를 만들었으면, 이후엔 추출한 검색 결과를 추가할 때 '기존 대시보드'를 눌러 먼저 추가한 대시보드 안에 넣으면 된다.

 

이후 해당 대시보드에 들어가서 편집을 누르면, 추출한 검색 결과를 커스텀할 수 있는 옵션들이 다양하게 나온다.

 

되는 대로 얼추 다듬어 본 끝에, 본인은 아래 사진과 같이 대시보드를 커스텀화 해보았다.

(비인가 쿼리, 외부 접근 시도 횟수, DB 이용자 수 숫자 표시 및 시간대별 그래프, 쿼리 내용 상세 로그 등)

전체 DB 쿼리 이력 부분 사진은 해당 쿼리에 대한 로그 기록 전체를 긁어 온 보드이다.

 

이런 느낌으로 실제 보안 관제에서 어떤 방식을 이용해 실시간으로 들어오는 로그를 분석하고 대처 방안을 강구하는지에 대해 살짝이나마 체험을 해 보고 실습하는 과정을 가졌다.

'보안 > 프로젝트' 카테고리의 다른 글

OpenVPN 구성하기  (0) 2026.01.31
GitLab 구축하기  (0) 2026.01.31
스플렁크 설치하기  (1) 2026.01.31
ProxySQL 쿼리 필터링 실습하기  (0) 2026.01.31
ProxySQL 설치하기  (0) 2026.01.24