📘 Day 9 - Packetbeat 기반 DNS 모니터링 시스템 구축
🖥️ VirtualBox 네트워크 구성
- Monitor 2
- Network: NAT
- Port Forwarding
- 22 (SSH)
- 80 (HTTP)
- 21 / 20 (FTP)
- 3306 (MySQL)
🌐 웹 접속 확인
웹브라우저에서 본인 IP 입력 시
초기에는 502 Bad Gateway 오류 발생
🧑💻 Xshell 접속 및 서비스 실행
sudo systemctl start mysite
sudo systemctl start elasticsearch
이후 웹브라우저 새로고침 시 HTTP 접속 정상 확인
→ 누가 접속했는지 로그 확인 가능
📦 Packetbeat & Elasticsearch 구성
- Ubuntu 서버에 Packetbeat 설치
- Elasticsearch 설치 및 연동
- Packetbeat에서 수집한 패킷 로그를 Elasticsearch에 저장
- 저장된 데이터를 기반으로 네트워크 행위 탐지
🧠 시스템 흐름 정리
- 외부에서 HTTP / DNS / FTP 요청 발생
- Packetbeat가 패킷 캡처
- DNS 트래픽 정보 저장
- Elasticsearch에 인덱싱
- Flask 웹을 통해 시각화
🔎 DNS 모니터링 시스템 목표
Packetbeat 데이터 중 DNS 정보만 필터링하여
Flask 웹 페이지에서 실시간으로 확인하는
DNS 모니터링 시스템 구축
📂 Flask 프로젝트 구조
/home/master/projects/flask/monitor/
├─ templates/
│ ├─ base.html
│ └─ mainv.py
🚀 Flask 애플리케이션 실행
Gunicorn을 사용한 서비스 실행
mysite
gunicorn --bind unix:/tmp/mysite.sock "monitor:create_app()"
✅ 실습 결과
- Packetbeat를 이용한 DNS 패킷 수집 성공
- Elasticsearch 연동을 통한 로그 저장 확인
- Flask 기반 웹 모니터링 구조 완성
- DNS 트래픽만 선별하여 분석 가능한 환경 구축
📌 보안 관점 정리
DNS 트래픽은 C2 서버 통신, 악성 도메인 접속 탐지에 핵심적인 지표이다.
본 실습을 통해 네트워크 기반 침해 탐지 시스템(NIDS)의
실시간 가시성 확보 구조를 이해할 수 있었다.