UDP(사용자 데이터그램 프로토콜)는 네트워크에서 중요한 역할을 하지만, TCP와 달리 연결 상태를 확인하기 어려운 특성이 있습니다. 네트워크 관리자나 보안 전문가들은 UDP 포트를 스캔하고 통신 상태를 점검하여 잠재적인 문제를 예방하거나 해결해야 할 때가 많습니다. 이번 글에서는 Nmap을 사용하여 UDP 포트를 스캔하고 통신 불가능한 대상을 필터링하는 방법을 소개합니다.


1. Nmap이란?

Nmap(Network Mapper)은 네트워크 스캔 및 보안 감사에 널리 사용되는 오픈소스 도구입니다. Nmap은 TCP, UDP, ICMP 등 다양한 프로토콜에 대해 포트 상태를 점검하고 호스트 가용성을 확인할 수 있습니다. UDP 스캔은 TCP 스캔보다 느리지만, 중요한 정보를 제공할 수 있습니다.


2. UDP 포트 스캔 준비

먼저, 스캔 대상 IP 주소 리스트를 준비해야 합니다. 아래는 예시 IP 주소를 텍스트 파일에 저장하는 방법입니다.

cat <<EOF > ip_list.txt
112.160.83.75
118.33.51.35
121.129.108.217
121.178.25.115
# 나머지 IP 주소...
EOF

이렇게 저장한 파일을 Nmap 스캔 명령에 입력 파일로 사용할 수 있습니다.


3. UDP 포트 스캔 실행

Nmap 명령을 사용하여 UDP 포트를 스캔합니다. 아래는 스크립트를 통해 스캔을 수행하는 방법입니다.

#!/bin/bash

# Nmap을 사용하여 UDP 스캔 수행
nmap -sU -v -oG nmap_scan_results.txt -iL ip_list.txt

# 통신 불가능 대상 필터링
grep "Status: Down" nmap_scan_results.txt | awk '{print $2}' > unreachable_hosts.txt

echo "통신 불가능한 대상은 unreachable_hosts.txt에 저장되었습니다."

명령어 옵션 설명

  • -sU: UDP 포트 스캔.
  • -v: 스캔 과정을 상세히 출력.
  • -oG: 간단한 출력 형식으로 결과를 저장.
  • -iL ip_list.txt: 스캔 대상 IP 리스트 파일.
  • grep "Status: Down": 통신 불가능한 대상을 필터링.
  • awk '{print $2}': 호스트 IP 주소만 출력.

4. 통신 불가능 대상 분석

스캔 결과는 nmap_scan_results.txt 파일에 저장됩니다. 통신 불가능한 IP 주소만 별도로 저장하려면, 위 스크립트를 통해 unreachable_hosts.txt 파일을 생성할 수 있습니다. 해당 파일을 분석하면 네트워크에서 접속이 차단되었거나 비활성화된 시스템을 확인할 수 있습니다.


5. 실전 활용 팁

1) CSV 형식으로 변환

결과를 CSV 파일로 변환하면 추가 분석이 용이합니다.

awk '/Status: Down/ {print $2 ",DOWN"}' nmap_scan_results.txt > scan_results.csv
echo "CSV 파일이 생성되었습니다: scan_results.csv"

2) 스캔 속도 최적화

UDP 스캔은 느릴 수 있으므로 속도를 개선하려면 아래 옵션을 추가로 사용할 수 있습니다.

  • --min-rate: 최소 패킷 전송 속도 설정.
  • --max-retries: 재시도 횟수 제한.

예시:

nmap -sU --min-rate 1000 --max-retries 3 -oG nmap_scan_results.txt -iL ip_list.txt

6. 결론

Nmap은 UDP 포트를 점검하고 네트워크 상태를 확인하는 데 강력한 도구입니다. 위에서 소개한 스크립트와 명령어를 활용하면 UDP 포트 스캔 작업을 효율적으로 수행하고 통신 불가능한 대상을 쉽게 분석할 수 있습니다. 네트워크 안정성과 보안을 유지하려면 이러한 스캔을 정기적으로 수행하는 것이 중요합니다.

여러분의 네트워크 관리 작업에 이 글이 도움이 되길 바랍니다!

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기