📘 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에 저장
  • 저장된 데이터를 기반으로 네트워크 행위 탐지
🧠 시스템 흐름 정리
  1. 외부에서 HTTP / DNS / FTP 요청 발생
  2. Packetbeat가 패킷 캡처
  3. DNS 트래픽 정보 저장
  4. Elasticsearch에 인덱싱
  5. 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)의 실시간 가시성 확보 구조를 이해할 수 있었다.