#!/bin/bash
# 실습 #16 ③ — nmap 으로 방화벽 효과 검증
# 사용: bash setup_03_nmap_verify.sh [TARGET]
set -e

TARGET="${1:-127.0.0.1}"

sudo apt install -y nmap

echo "=== 1) 서비스 + 버전 (-sV) ==="
nmap -sV --reason "$TARGET"

echo
echo "=== 2) 특정 포트만 ==="
nmap -p 22,80,443 "$TARGET"

echo
echo "=== 3) SYN scan (-sS, sudo 필요) — 빠르고 stealth ==="
sudo nmap -sS -F "$TARGET"            # -F = top 100 ports

echo
echo "=== 4) UDP scan (느림) ==="
sudo nmap -sU -p 53,123,161 "$TARGET"

echo
echo "=== 결과 해석 ==="
echo "  open      → 서비스 동작 + 방화벽 통과"
echo "  filtered  → 방화벽 drop (nftables policy=drop)"
echo "  closed    → 포트 LISTEN 없음 (방화벽은 통과)"
echo
echo "→ 전 65535 포트 스캔 (느림): sudo nmap -p- $TARGET"
echo "→ OS + 스크립트: sudo nmap -A $TARGET"
