Nmap 기초 사용법

Nmap 기초 사용법입니다. 허가된 자산 기준의 기본 스캔, 포트 지정, 서비스 버전 확인, 결과 저장, 상태값 해석과 운영 점검 흐름을 정리했습니다.

Nmap은 네트워크 발견과 포트 상태 확인에 널리 쓰이는 도구입니다. 운영자는 Nmap을 통해 본인 소유 서버나 허가된 내부망에서 불필요하게 열린 포트, 예상과 다른 서비스, 방화벽 정책 차이를 확인할 수 있습니다.

이 글의 예시는 승인된 자산 점검용입니다. 외부 시스템이나 범위가 불명확한 대상을 임의로 스캔하지 않습니다.

기본 스캔

nmap 192.0.2.10
nmap example.internal
nmap -p 22,80,443 192.0.2.10

기본 스캔은 일반적으로 많이 쓰이는 TCP 포트를 확인합니다. 전체 포트를 무조건 스캔하기보다 운영 목적에 맞는 포트 목록부터 확인합니다.

서비스 버전 확인

nmap -sV -p 22,80,443 192.0.2.10

서비스 버전 탐지는 banner와 probe 응답을 기반으로 추정합니다. 결과가 항상 정확한 것은 아니므로 패키지 버전, 서비스 설정, reverse proxy 여부와 대조합니다.

결과 저장

nmap -p 22,80,443 -oN web01-scan.txt 192.0.2.10
nmap -p 22,80,443 -oA web01-scan 192.0.2.10

-oA는 normal, grepable, XML 결과를 함께 남깁니다. 결과 파일에는 내부 IP, 서비스 이름, 버전 정보가 포함되므로 보관 권한을 제한합니다.

대상 목록 사용

cat > owned-targets.txt <<'EOF'
192.0.2.10
192.0.2.11
EOF

nmap -iL owned-targets.txt -p 22,80,443 -oA owned-web-check

상태값 이해

  • open: 포트가 연결을 수락합니다.
  • closed: host는 응답하지만 포트가 닫혀 있습니다.
  • filtered: 방화벽이나 필터가 응답을 막았을 수 있습니다.
  • open|filtered: 응답 특성상 둘 중 하나로 확정하기 어렵습니다.

운영 점검 흐름

  1. CMDB나 방화벽 정책상 열려 있어야 할 포트 목록을 준비합니다.
  2. Nmap 결과와 기대 포트 목록을 비교합니다.
  3. 예상 외 open 포트는 해당 서버에서 ss -lntup으로 프로세스를 확인합니다.
  4. 불필요하면 서비스 중지 또는 방화벽 차단으로 정리합니다.
  5. 변경 후 같은 명령으로 재검증합니다.

주의할 옵션

Nmap에는 단순 포트 확인을 넘어서는 다양한 고급 기능이 있습니다. 운영 점검에서는 필요한 범위만 사용하고, 특히 부하가 크거나 공격처럼 보일 수 있는 옵션은 사전 승인 없이는 사용하지 않습니다.

공식 문서

BGM EVER