티스토리 뷰

HoneyPot 에서 발생되는 로그를 Splunk 로 보내기 위한 Forwarder를 설치해야한다.

 

Splunk 의 Universal Forwarder 를 이용할 예정이다.

https://www.splunk.com/en_us/download/universal-forwarder.html

 

Download Universal Forwarder for Remote Data Collection | Splunk

Download Splunk Universal Forwarder for secure remote data collection and data forwarding into Splunk software for indexing and consolidation.

www.splunk.com

 

위 링크에서 다음과 같이 Ubuntu 64-bit 의 deb 파일의 wget link 를 복사 후 Instance 에서 복붙한다. ( 아래 링크는 버전 변경에 따라 달라질 수 있다.)

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"

 

이후 설치된 .deb 파일을 dpkg 로 설치한다.

sudo dpkg -i splunkforwarder-10.0.2-e2d18b4767e9-linux-amd64.deb

위의 find: ~ python 오류는 개별 python 을 사용할 것이기 때문에 무시하자
complete 라는 문자열이 있다면 완료된 것이다.

이후 활성화 되었는지 다음 명령어로 확인하자

이때, 최초에 실행했다면 license 동의과정을 거치게 되니 당황하지 말고 스페이스바로 쭉~ 넘긴다음 y 를 입력해주자

sudo /opt/splunkforwarder/bin/splunk status

 

그래도 splunkd 가 실행되지 않는다면, 수동으로 실행시켜준다.
아래 명령어로 splunkforwarder 계정에 대한 권한을 부여해준 뒤 명령을 수행하자

sudo useradd -r -d /opt/splunkforwarder splunkfwd
sudo chown -R splunkfwd:splunkfwd /opt/splunkforwarder
sudo /opt/splunkforwarder/bin/splunk start --accept-license

 

 

 

이후 구성할 Splunk 서버에 Forwarder 를 연결해준다.
우선 공유기 IP 와 9997 Port 로 설정값만 넣어두기로 하자

 

 

이제 Forwarder 가 지켜볼 log를 선택해야 하는데, 우리는 VM 에 Docker 를 올리고 거기서 HoneyPot 이 실행되기 때문에 Docker 의 로그를 가져와야 한다.

 

다음과 같이 실행되고있는 docker 를 확인하고

docker ps

 

다음 명령어로 docker 내부에 들어간다.

docker exec -it <NAMES> /bin/bash

이후 아래 경로에 cowrie 의 로그가 기록되고있다.

/data/logs/cowrie.json

 

 

저 경로를 외부에서 볼 수 있게 설정해야한다.
외부에서 해당 경로가 어디에 있는지 재확인한다.
필자의 경우에는 이전에 하나를 더 올렸어서 2개가 확인되는데, 지금 활성화된 docker 가 어떤 컨테이너를 사용하는지 확인해본다.

sudo find / -name "cowrie.json" 2>/dev/null

 

 

docker inspect <NAMES>| grep -A3 volumes

 

 

그리고 Splunk Forwarder 입력 파일을 만들고 다음과 같이 입력한다.
여개서 monitor 경로는 각자의 container Source 주소와 거기에 존재하는 cowrie 의 로그파일을 지정한다.

 

이때 Container 를 재시작하게되면, Source 에 있는 Volume 값이 Anonymous로 변경이 되기 때문에 우리는 Named Volume 방식을 이용할 예정이다.

 

docker-compose.yml 파일을 아래와 같이 수정하고

 

로그를 수집받을 디렉토리를 생성 후 

mkdir -p ~/cowrie_logs ~/cowrie_state

 

다시금 docker 를 재시작한다.

sudo docker-compose down
sudo docker-compose up -d

 

 

이후 Splunk Forwarder 의 inputs.conf 를 다음과 같이 수정하면 완료된다.

sudo vim /opt/splunkforwarder/etc/system/local/inputs.conf
# Cowrie Logs
[monitor:///home/wldnd1102/cowrie/cowrie_logs/cowrie.json*]
sourcetype = cowrie_logs
index = cowrie
disabled = false

# Cowrie State
[monitor:///home/wldnd1102//cowrie/cowrie_state/]
sourcetype = cowrie_state
index = cowrie
disabled = false

 

 

이후 SplunkForwarder 를 재시작한다.

sudo /opt/splunkforwarder/bin/splunk restart

 

 

이후 Splunk 에서 로그가 수신되는지 확인하면 끝!

sudo tail -f /opt/splunkforwarder/var/log/splunk/splunkd.log

다음과 같이 입력하였을때, 뒷장에서 설정할 Splunk 서버로 정상적인 로그 전송이 되어야한다.

실패로그
성공로그

 

설정이 정상적으로 되었는지 아래 명령어로도 확인이 가능하다.

sudo /opt/splunkforwarder/bin/splunk list forward-server

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/09   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함