#!/bin/bash
# 실습 #16 ① — 기본 호스트 방화벽 (nftables)
# 정책: 22/80/443 만 허용, 나머지 drop + 로그
set -e

CFG="$(dirname "$0")/configs/01_nftables.conf"

# 1) ufw 제거 (충돌 방지)
sudo apt purge -y ufw || true

# 2) nftables 설치 + 설정 배포
sudo apt install -y nftables
sudo cp "$CFG" /etc/nftables.conf
sudo systemctl enable --now nftables
sudo nft -f /etc/nftables.conf

# 3) 현재 룰 출력
echo
echo "=== 현재 ruleset ==="
sudo nft list ruleset

# 4) 검증
echo
echo "=== 검증 ==="
echo "→ 로컬 22 (SSH): $(ss -tln | grep ':22 ' || echo 'X')"
echo "→ drop 로그 확인: sudo dmesg | tail | grep 'nft drop'"
echo "→ 외부에서 nmap: nmap -sV 192.168.56.10"
echo "   → 22/80/443 open · 나머지 filtered 로 보여야 정상"
