개요
Ubuntu 환경에서 네트워크 진단 및 보안 점검의 핵심 도구인 nmap의 설치부터 기본 사용법을 알아봅니다. 실제 포트 스캔을 수행하고 출력되는 오픈 포트와 서비스 결과 메시지를 정확하게 읽고 해석하는 방법을 단계별로 설명합니다.
nmap 설치 및 로컬 테스트 환경 구성
nmap을 활용한 포트 스캔 실습과 테스트 서비스 구동을 위해 apt-get update -qq && apt-get install -y nmap python3 명령어로 필요한 패키지를 설치합니다.

nmap 명령어는 네트워크 탐색 및 보안 감사를 위해 호스트의 열린 포트와 실행 중인 서비스를 점검하는 도구입니다.
설치된 nmap의 버전 및 지원 모듈을 확인하기 위해 nmap --version 명령어를 실행합니다.
⚙️ [주요 옵션]
-p : 점검할 특정 포트 번호나 범위를 지정합니다.-sS : TCP SYN(스텔스) 스캔을 수행하여 완전한 연결을 맺지 않고 포트 개방 여부를 확인합니다.-sT : 3-way 핸드셰이크를 완료하는 완전한 TCP 연결 스캔을 수행합니다.-sU : UDP 기반 서비스 포트의 활성화 상태를 스캔합니다.-sV : 열린 포트에서 구동 중인 서비스 프로그램과 상세 버전 정보를 탐지합니다.-O : 대상 시스템의 운영체제(OS) 종류를 분석하고 식별합니다.-A : OS 탐지, 버전 감지, 스크립트 스캔, traceroute를 일괄 실행하는 종합 스캔을 진행합니다.-v : 화면에 출력되는 스캔 진행 상황과 결과 정보의 상세 수준을 높입니다.

포트 스캔 실습의 대상이 될 로컬 테스트 환경을 마련하기 위해 python3 -m http.server 8080 > /dev/null 2>&1 & 명령어로 8080번 포트 웹 서버를 백그라운드에서 구동합니다.

백그라운드로 구동된 웹 서버가 8080번 포트에 정상적으로 바인딩되어 요청을 받을 수 있도록 sleep 1 명령어로 1초간 대기합니다.

기본 포트 스캔 실행 및 호스트 상태 점검
로컬 호스트(127.0.0.1)를 대상으로 가장 기본적인 포트 스캔을 수행하기 위해 nmap 127.0.0.1 명령어를 실행합니다.
별도의 옵션을 지정하지 않으면 널리 사용되는 상위 1,000개 TCP 포트를 점검하며, 현재 열려 있는 22번(SSH) 포트와 8080번(웹 서버) 포트가 정상적으로 탐지됩니다.

점검 대상 포트 수를 상위 100개로 축소하여 빠르게 스캔하기 위해 nmap -F 127.0.0.1 명령어를 실행합니다.-F 옵션(Fast scan)을 적용하면 스캔 대상 포트 수가 대폭 줄어들어 빠른 시간 안에 주요 서비스의 활성화 상태를 파악할 수 있습니다.

특정 포트 지정 및 서비스/버전 상세 분석
특정 포트의 활성화 여부만 선별하여 점검하기 위해 nmap -p 8080 127.0.0.1 명령어를 실행합니다.
불필요한 포트 스캔 과정을 생략하고 지정한 8080번 포트가 현재 열려 있는 상태(open)임을 빠르게 확인할 수 있습니다.

개방된 포트에서 실제로 구동 중인 서비스 프로그램과 상세 버전 정보를 탐지하기 위해 nmap -sV -p 8080 127.0.0.1 명령어를 실행합니다.-sV 옵션 분석을 통해 8080번 포트에서 파이썬 웹 서버(SimpleHTTPServer 0.6, Python 3.12.3) 데몬이 동작하고 있음을 구체적으로 파악할 수 있습니다.

스캔 결과 파일 저장 및 프로세스 정리
포트 점검 결과를 일반 텍스트 리포트 파일로 저장하기 위해 nmap -p 8080 -oN scan_report.txt 127.0.0.1 명령어를 실행합니다.-oN 옵션을 사용하면 콘솔에 출력되는 스캔 내용이 지정한 텍스트 파일(scan_report.txt)에 그대로 기록되어 분석 결과의 보관과 보고서 작성이 편리해집니다.

생성된 리포트 파일의 저장 내용을 확인하기 위해 cat scan_report.txt 명령어를 실행합니다.
스캔이 수행된 시각과 실행 옵션, 대상 호스트 상태 및 8080번 포트의 점검 결과가 온전하게 파일에 저장되어 있음을 확인할 수 있습니다.

실습을 위해 백그라운드에서 구동했던 테스트 웹 서버 프로세스를 정리하기 위해 pkill -f 'http.server 8080' 명령어를 실행하여 서버를 안전하게 종료합니다.

지금까지 우분투 환경에서 nmap을 활용한 포트 스캔 기초부터 결과 분석 방법까지 자세히 살펴보았습니다.
안내해 드린 옵션들을 적절히 활용하여 열려 있는 불필요한 포트를 점검하고 서버 보안을 한층 더 안전하게 관리해보시기 바랍니다.