# 전문 Wi-Fi 스펙트럼 모니터링: 네트워크 엔지니어를 위한 기술 가이드
무선 스펙트럼 모니터링은 네트워크 엔지니어의 업무에서 필수적인 부분입니다. 이 방법으로 문제를 진단하고, 커버리지를 최적화하며, 법을 위반하지 않고 방문자 분석 데이터를 수집할 수 있습니다. 이 글에서는 OpenWrt를 기반으로 한 TP-Link MR3020 라우터를 이용한 패시브 스니퍼 설정, 데이터 수집 도구, 트래픽 분석 방법을 다룹니다.
Wi-Fi 모니터링의 실용적 응용
패시브 무선 스펙트럼 분석은 표준 네트워크 진단을 넘어선 다양한 문제를 해결합니다. 상업 시설 운영자에게는 방문자 데이터를 수집하는 도구로 유용합니다. 모니터 모드의 라우터가 커버리지 내 장치의 고유 MAC 주소를 포착해 카메라 없이 유동 인구 통계를 생성합니다. 데이터를 CSV로 내보내 피크 로드 그래프를 만들고 직원 배치를 계획할 수 있습니다.
아파트 단지에서는 채널 이용률 분석으로 간섭을 피할 수 있습니다. 표준 유틸리티는 점유된 채널을 보여주지만 트래픽 강도를 드러내지 않습니다. 장기 모니터링으로 미세한 간섭을 발견할 수 있습니다. 예를 들어, 이웃의 액세스 포인트가 약한 신호 속에서 넓은 채널 방송을 사용할 때입니다. 엔지니어에게는 WDS 브리지나 메쉬 네트워크 설정 시 핵심입니다.
현대 OS(iOS 14+, Android 10+)의 MAC 주소 무작위화는 이 방법을 무용지물로 만들지 않습니다. 특정 사용자 식별은 불가능하지만, 기간 동안 고유 장치 수를 세는 것은 정확합니다. 가상 MAC은 활성 네트워크 사용 중 자주 바뀌지 않기 때문입니다. 15분 이상 간격으로 데이터를 수집하면 오차율이 5% 미만입니다.
하드웨어 및 소프트웨어 설정
OpenWrt 22.03+가 설치된 TP-Link MR3020 라우터는 이러한 작업에 적합합니다. 이 장치는 패시브 센서 역할을 합니다. 무선 모듈을 모니터 모드로 전환하고 인터페이스는 데이터 전송에 참여하지 않습니다. 주요 구성 요소:
- USB 포트가 있는 싱글 보드 컴퓨터
- 로그용 외부 저장 장치(최소 4 GB)
- 이동 사용을 위한 Power Bank 전원
첫 단계는 무선 인터페이스 구성을 수정하는 것입니다. /etc/config/wireless를 편집해 새 섹션을 추가합니다:
config wifi-iface
option device 'radio0'
option mode 'monitor'
option ifname 'mon0'
option hidden '1'
wifi reload 적용 후 ifconfig mon0으로 인터페이스를 확인합니다. 성공 시 mon0: flags=40960<POINTOPOINT,MULTICAST> mtu 1500이 출력됩니다.
트래픽 캡처 및 분석 도구
작업에 따라 두 도구를 사용합니다. Airodump-ng(aircrack-ng 패키지)는 실시간 분석을 제공합니다:
airodump-ng -w /mnt/usb/capture --output-format csv mon0
이 유틸리티는 두 종류 보고서를 생성합니다:
- CSV: 통계용 구조화 데이터(BSSID, 채널, 신호 레벨, 클라이언트)
- PCAP: Wireshark에서 상세 분석할 원시 프레임
장기 모니터링에는 오버헤드가 적은 Tcpdump를 선호합니다:
tcpdump -i mon0 -s 0 -W 10 -G 3600 -C 100 -w /mnt/usb/capture_%Y%m%d_%H%M%S.pcap
주요 매개변수:
-W 10: 순환 기록(최대 10개 파일)-G 3600: 60분마다 로테이션-C 100: 파일 크기 제한 100 MB
802.11 프레임 분해:
- Beacon: 액세스 포인트 비콘(채널 내 AP 수 추정)
- Probe Request: 클라이언트 연결 요청(숨겨진 SSID 탐지)
- Data/ACK: 사용자 트래픽 및 확인 응답(활동 지표)
- CTS/RTS: 제어 프레임(공기 중 충돌 신호)
- BlockAck: 집계 확인 응답(802.11n/ac 모드)
지표 분석:
- 채널 이용률: Data와 ACK 비율이 1:1에 가까우면 효율적 전송
- 숨겨진 스테이션: Data 트래픽이 낮은데 CTS가 비정상적으로 높음
- 간섭: BSSID 변화 없이 신호 레벨 급등
자동화 및 통합
지속 데이터 수집을 위해 /etc/rc.local에서 자동 시작을 설정합니다:
#!/bin/sh
sleep 60
MOUNT_POINT="/root"
OUTPUT_FILE="${MOUNT_POINT}/wifi_24_capture"
killall airodump-ng
airodump-ng mon0 -w "$OUTPUT_FILE" --output-format csv --write-interval 60
중요: sleep 60 지연은 무선 인터페이스 초기화를 보장합니다. CSV 로그 처리를 위해 pandas 라이브러리가 포함된 Python 스크립트를 추천합니다. 시간별 데이터 집계와 Z-스코어를 이용한 이상 탐지입니다.
PCAP 파일 작업 시 tshark로 필터링:
tshark -r capture.pcap -Y "wlan.fc.type_subtype == 0x08" -T fields -e wlan.bssid
이 명령은 Beacon 프레임에서 BSSID를 추출해 활성 액세스 포인트 목록을 만듭니다.
주요 포인트
- 패시브 모니터링은 트래픽 복호화가 없고 헤더만 캡처하면 합법
- 유동 인구 분석 시 MAC 무작위화로 15분 이상 간격 필요
- 다채널 시스템(802.11ac/ax)에서 이용률 평가 시 채널 폭(20/40/80 MHz)이 중요
- Tcpdump는 자원이 제한된 장치에 적합—airodump-ng보다 CPU 40% 적게 사용
- 상업 이용 시 데이터 수집 안내 게시 필요(커버리지 내 배너)
— Editorial Team
아직 댓글이 없습니다.