메뉴 닫기

Proxmox 9.x + ntopng | suricata

Proxmox 9.x + ntopng | suricata

Proxmox 노드 서버에서 패킷 감시 목적으로 ntopng와 suricata를 설치해보겠습니다. 

1. ntopng

ntopng 강점

  • ① 실시간 감시: 웹 대시보드에서 초당 트래픽(bps), 패킷량(pps)의 흐름을 직관적인 시계열 그래프로 보여줍니다.
  • ② nDPI 엔진: 단순히 IP와 포트 번호만 보여주는 것을 넘어, 패킷의 페이로드를 뜯어보는 기술(DPI)을 통해 해당 트래픽이 틱톡인지, 구글인지, 특정 메신저인지 애플리케이션 레벨까지 정확히 식별해 통계를 냅니다.
  • ③ 관제 최적화: 구축 후 ntopng 웹 인터페이스를 웨일 브라우저의 사이드바나 커스텀 창에 띄워두면 훌륭한 인프라 전용 모니터링 대시보드가 됩니다.

 

ntopng 설치

# ntopng GPG Key 등록
wget -qO - https://packages.ntop.org/apt/ntop.key | gpg --dearmor | tee /usr/share/keyrings/ntop.gpg > /dev/null
# Repo 등록
echo "deb [signed-by=/usr/share/keyrings/ntop.gpg] http://packages.ntop.org/apt/bookworm/ x64/" | tee /etc/apt/sources.list.d/ntop.list
echo "deb [signed-by=/usr/share/keyrings/ntop.gpg] http://packages.ntop.org/apt/bookworm/ all/" | tee -a /etc/apt/sources.list.d/ntop.list
# 적용
apt update -y 
# 패키지 설치
apt install -y ntopng
# 선 백업
cp -arp /etc/ntopng/ntopng.conf /etc/ntopng/ntopng.conf_ori
vi /etc/ntopng/ntopng.conf
===
-i=vmbr0
# 외부 통신을 담당하는 이더넷 장치를 선택합니다.

-w=3000
# 웹 대시보드 포트 번호를 원하는 포트로 변경합니다.

--community
# 최하단에 옵션을 추가하여 라이센스 만료 문구를 제거합니다. 
===

systemctl enable ntopng --now

ntopng WEB Dashboard 접속

http://$PVE_NODE_IP:3000으로 접속합니다. 

초기 접속정보는 admin / admin입니다. 최초 로그인 성공 시 비밀번호 변경 화면이 출력됩니다. 

언어를 한국어(Korean)로 변경하고 로그인하면 메인 화면이 출력됩니다.

접속 시 현재 접근양이 많은 IP 리스트(상위 플로우 토커)부터 어떤 프로세스를 주로 사용하고 있는지(주요 애플리케이션)까지 출력됩니다.

다양한 매뉴들이 있지만 일단 트래픽 모니터링 화면만 확인하고 넘어갑니다.

2. suricata

suricata 강점

  • ① 시그니처 기반 탐지: Emerging Threats(ET) 같은 공개 보안 룰셋을 적용해 두면, 특정 IP에서 알려진 채굴풀로 통신을 시도하거나 악용(Exploit) 패턴이 보일 때 즉각적으로 탐지합니다.
  • ② 유연한 룰 설정: 내부망 스캔 시도나 비정상적인 포트 접근이 발생할 경우를 대비해 직접 보안 정책 룰을 작성할 수도 있습니다.
  • ③ 실시간 알림 및 자동화 파이프라인: Suricata가 위협을 탐지하면 eve.json 파일에 상세한 로그를 남깁니다. 발생한 위협 이벤트 json 페이로드를 파싱하여 텔레그램 봇으로 쏘아주는 Python 또는 Bash 스크립트를 작성해 두면 완벽합니다.
    웹훅(Webhook) 기반의 응답 스크립트 로직을 적용해 두면, 모바일 환경에서도 인프라의 이상 징후를 실시간으로 통보받고 조치할 수 있습니다.

 

suricata 설치

apt install -y suricata suricata-update
# 선 백업
cp -arp /etc/suricata/suricata.yaml /etc/suricata/suricata.yaml_ori
vi /etc/suricata/suricata.yaml
===
vars:
  address-groups:
  	# HOME_NET으로 사설 IP 대역을 모두 등록합니다. 
    HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
    
# 패킷 캡처 이더넷 명 수정
af-packet:
  - interface: vmbr0
    # 아래 항목들이 주석 처리되어 있다면 해제하거나 확인
    cluster-id: 99
    cluster-type: cluster_flow
    defrag: yes
===
# 탐지 패턴 업데이트
suricata-update

# 시스템 데몬 시작
systemctl enable suricata --now

## 탐지 패턴이 /var/lib/suricata/rules 경로에 suricata.rules로 설치됩니다. 따라서 설정파일에서 default-rule-path를 변경하고 재시작해줍니다.
===
default-rule-path: /var/lib/suricata/rules
===
systemctl restart suricata

로그 상에서 아래 로그가 발생한다면 경로를 잘못 잡은 것이거나 권한이 없는 경우이니 참고합니다.

6/5/2026 -- 16:40:35 - <Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /etc/suricata/rules/suricata.rules

6/5/2026 -- 16:40:35 - <Warning> - [ERRCODE: SC_ERR_NO_RULES_LOADED(43)] - 1 rule files specified, but no rules were loaded!

 

커스텀 규칙과 알림 설정 등 유연하게 여러 방식으로 응용하여 활용 가능한 도구는 suricata지만, 간단히 구성해서 웹 대시보드까지 구현하는 데에는 ntopng가 적합했습니다. 

 

감사합니다. 

 

 

[다른 글도 둘러보기]

👉 OpenClaw 보안 설정하기

👉 Proxmox DOCU 사이트 이동

👉 초고속 포트 스캐닝 기법(RustScan) 알아보기

 

 

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다