본문 바로가기
IT/HomeLabs

[HomeLabs] pfSense/OPNsense 홈랩 방화벽 구축: 네트워크 보안 강화 완벽 가이드

by 수누다 2026. 5. 6.

홈랩에 방화벽이 필요한 이유 — 공유기로는 부족하더라고요

홈서버를 처음 구축했을 때 저도 그랬어요. "집에서 쓰는 건데 뭐, 공유기 방화벽이면 충분하지 않나?" 싶었거든요. 그런데 포트포워딩 몇 개 열어두고 Jellyfin이랑 Nextcloud 운영하다 보니까 생각이 바뀌었습니다. 어느 날 서버 로그를 들여다봤더니 중국, 러시아 IP에서 SSH 브루트포스 시도가 하루에도 수백 건씩 들어오고 있는 거예요. 그때부터 진지하게 홈랩 방화벽 구축을 고민하기 시작했죠.

일반 가정용 공유기의 NAT(Network Address Translation, 네트워크 주소 변환) 기능이 기본적인 외부 접근은 막아주지만, 세밀한 트래픽 제어나 IDS/IPS(침입 탐지/방지 시스템), VPN 게이트웨이 기능 같은 건 기대하기 어렵거든요. 그래서 선택한 게 바로 pfSenseOPNsense였습니다.

이 글에서는 제가 직접 구축하면서 겪었던 경험을 바탕으로, 두 솔루션의 차이점부터 실제 설치·설정까지 단계별로 정리해드릴게요. 홈서버 보안을 한 단계 끌어올리고 싶으신 분들께 도움이 됐으면 합니다.

▲ 일반적인 홈랩 방화벽 구성 — 인터넷 → 방화벽(pfSense/OPNsense) → 내부 네트워크 세그먼트로 트래픽이 흐르는 전체 아키텍처

pfSense vs OPNsense — 뭐가 다른 건가요?

둘 다 FreeBSD 기반의 오픈소스 방화벽 소프트웨어인데, 뿌리는 같지만 지향점이 조금 달라요. 저도 처음엔 "그냥 비슷한 거 아냐?" 했는데, 직접 써보니 체감 차이가 꽤 있더라고요.

항목 pfSense CE (Community Edition) OPNsense
기반 OS FreeBSD FreeBSD (HardenedBSD 기반)
UI 스타일 전통적, 기능 중심 모던, 직관적
업데이트 주기 비교적 느림 격주 릴리즈 (빠른 보안 패치)
IDS/IPS Snort, Suricata Suricata (기본 통합)
플러그인 생태계 pfSense 패키지 OPNsense 플러그인 (더 활발)
라이선스 Apache 2.0 BSD 2-Clause
상업적 지원 Netgate (유료 플랜) Deciso (유료 플랜)

솔직히 말씀드리면, 저는 최근에는 OPNsense를 메인으로 쓰고 있어요. 이유는 단순한데, UI가 훨씬 깔끔하고 보안 업데이트가 빠르거든요. 특히 CVE(Common Vulnerabilities and Exposures, 공개된 보안 취약점)가 나왔을 때 OPNsense 쪽이 패치 대응이 빠르더라고요. 다만 pfSense가 커뮤니티 문서나 유튜브 튜토리얼이 훨씬 많아서, 처음 입문하시는 분들한테는 pfSense가 진입 장벽이 낮을 수 있어요.

하드웨어 선택 — 어디에 설치할 건가요?

방화벽 소프트웨어를 고르는 것만큼 중요한 게 하드웨어 선택이에요. 저는 세 가지 방법을 다 써봤는데, 각각 장단점이 있더라고요.

옵션 1: 전용 x86 미니PC / 어플라이언스

  • Intel NIC(Network Interface Card, 네트워크 인터페이스 카드)가 달린 미니PC 추천 — Realtek NIC는 FreeBSD 드라이버 이슈가 있어서 고생할 수 있어요
  • 듀얼 포트 이상의 NIC가 필요 (WAN 1개, LAN 1개 이상)
  • 전력 소비가 낮고 팬리스 모델이면 24/7 운영에 유리
  • 💡 팁: AES-NI(하드웨어 암호화 가속) 지원 CPU를 선택하면 VPN 성능이 크게 올라가요

옵션 2: 기존 홈서버의 VM (가상머신)

  • Proxmox 같은 하이퍼바이저에서 VM으로 운영 가능
  • NIC 패스스루(PCIe Passthrough)나 VLAN 트렁킹 설정이 필요
  • 서버가 꺼지면 인터넷도 끊기는 단점 있음 ⚠️

옵션 3: Raspberry Pi (제한적)

  • pfSense/OPNsense 공식 지원은 x86/amd64 기준 — Pi는 공식 지원 아님
  • 소규모 트래픽 환경에서만 대안 고려 가능 (이 경우 OpenWrt 쪽이 더 현실적)

OPNsense 설치 — 단계별 가이드

이제 본격적으로 설치해봅시다. 제가 설치할 때 가장 헷갈렸던 부분을 중심으로 설명할게요.

▲ OPNsense 웹 관리 인터페이스(WebGUI) — 설치 후 처음 접속하면 보이는 대시보드 화면. 시스템 상태, 인터페이스 정보, 게이트웨이 상태를 한눈에 확인할 수 있어요.

  1. ISO 다운로드: opnsense.org 공식 사이트에서 최신 DVD ISO 이미지 다운로드 (amd64 기준)
  2. 부팅 USB 제작: Rufus(Windows) 또는 dd 명령어(Linux/Mac)로 부팅 USB 제작
  3. 설치 진행: 기본 계정으로 로그인 후 installer 실행
  4. 인터페이스 할당: WAN / LAN 인터페이스 지정 (가장 중요!)
  5. WebGUI 접속: LAN IP(기본 192.168.1.1)로 브라우저 접속

부팅 USB 제작할 때 dd 명령어 쓰시는 분들 참고하세요:

# Linux/macOS에서 USB 부팅 디스크 만들기
# /dev/sdX 부분은 본인 USB 장치 경로로 변경 필요 (lsblk 명령어로 확인)
sudo dd if=OPNsense-버전-dvd-amd64.iso of=/dev/sdX bs=4M status=progress
sync

⚠️ 주의: dd 명령어는 잘못 입력하면 다른 디스크를 덮어쓸 수 있어요. of= 경로를 반드시 두 번 확인하세요. 저도 처음에 식은땀 흘렸던 기억이 있어요 ㅎㅎ

기본 방화벽 규칙 설정 — 여기가 핵심이에요

설치 후 WebGUI에 접속하면 Setup Wizard(설정 마법사)가 뜨는데, 이걸 따라가면 기본 설정은 금방 끝나요. 근데 여기서 멈추면 안 됩니다. 진짜 보안 강화는 방화벽 규칙 설정에서 시작하거든요.

WAN 규칙 — 기본 원칙은 "모두 차단, 필요한 것만 허용"

OPNsense/pfSense 모두 기본적으로 WAN에서 들어오는 모든 인바운드(Inbound, 외부→내부) 트래픽을 차단해요. 이 기본값을 유지하는 게 맞습니다.

# OPNsense Shell에서 현재 방화벽 규칙 확인 (pfctl 명령어)
pfctl -sr

# 특정 인터페이스의 규칙만 보기
pfctl -sr | grep WAN

LAN 규칙 — VLAN으로 네트워크 세분화하기

홈랩에서 제가 가장 효과적으로 쓰는 방법이 VLAN(Virtual LAN, 가상 네트워크 분리)이에요. 예를 들어 이런 식으로 나눌 수 있어요:

  • VLAN 10 (신뢰 네트워크): 개인 PC, 노트북
  • VLAN 20 (서버 네트워크): 홈서버, NAS
  • VLAN 30 (IoT 네트워크): 스마트 TV, 공기청정기 등 IoT 기기
  • VLAN 40 (게스트 네트워크): 방문객 Wi-Fi

IoT 기기들을 별도 VLAN으로 격리하는 게 진짜 중요해요. 스마트 TV나 IP 카메라 같은 장치들은 보안이 취약한 경우가 많거든요. 이것들이 메인 네트워크에 있으면 한 기기가 뚫렸을 때 전체가 위험해지는 거니까요.

OPNsense WebGUI에서 VLAN 추가하는 경로: Interfaces → Other Types → VLAN

# 방화벽 규칙 예시 — IoT VLAN에서 서버 VLAN으로의 접근 차단
# OPNsense WebGUI의 Firewall → Rules → VLAN30 에서 설정
# Action: Block
# Interface: VLAN30
# Source: VLAN30 net
# Destination: VLAN20 net
# Description: IoT to Server VLAN Block

Suricata IDS/IPS 활성화

OPNsense에는 Suricata(수리카타)가 기본 플러그인으로 포함돼 있어요. IDS(Intrusion Detection System, 침입 탐지 시스템)와 IPS(Intrusion Prevention System, 침입 방지 시스템) 기능을 제공하는데, 활성화해두면 알려진 악성 트래픽 패턴을 자동으로 탐지하고 차단해줘요.

활성화 경로: Services → Intrusion Detection → Administration

  • Enabled 체크
  • IPS Mode 체크 (탐지만 할지, 실제 차단까지 할지 결정)
  • Ruleset: ET Open 룰셋 무료로 사용 가능 — 이걸로도 충분해요

💡 처음에 IPS 모드를 바로 켜면 정상 트래픽이 차단될 수 있어요. IDS 모드로 며칠 모니터링하면서 False Positive(오탐)를 확인한 다음에 IPS 모드로 전환하는 걸 추천합니다.

VPN 게이트웨이 설정 — WireGuard로 원격 접속

홈랩을 외부에서 안전하게 접속하려면 VPN이 필수예요. 예전엔 OpenVPN 많이 썼는데, 요즘은 WireGuard(와이어가드)로 완전히 넘어왔어요. 설정이 훨씬 간단하고 성능도 좋거든요.

OPNsense에서 WireGuard 설치: System → Firmware → Plugins → os-wireguard 설치

# WireGuard 키 쌍 생성 (서버에서 실행)
wg genkey | tee server_private.key | wg pubkey > server_public.key
wg genkey | tee client_private.key | wg pubkey > client_public.key

# 키 내용 확인
cat server_private.key
cat server_public.key

생성된 키는 OPNsense WebGUI의 VPN → WireGuard → Local / Endpoints 설정에 입력하면 돼요. 스마트폰에서는 WireGuard 공식 앱으로 QR 코드 스캔하면 바로 연결 가능하고, 이게 진짜 편하더라고요. 드디어 외부에서 집 서버에 안전하게 붙을 수 있게 됐을 때 기분이 얼마나 좋던지 🎉

▲ OPNsense 방화벽 규칙 설정 화면 및 Suricata IDS 경보 로그 — 실시간으로 차단된 트래픽과 탐지된 위협을 모니터링할 수 있어요.

⚠️ 삽질 모음 — 제가 겪은 트러블슈팅

설치하면서 제가 실제로 막혔던 부분들이에요. 이거 보고 같은 삽질 반복하지 않으셨으면 해서 솔직하게 적어봤어요.

문제 1: WAN 인터페이스 인식 안 됨

증상: 설치 후 WAN 쪽 인터페이스가 잡히지 않음
원인: Realtek NIC의 FreeBSD 드라이버 이슈 (FreeBSD에서 Realtek은 가끔 문제가 생겨요)
해결: Intel 기반 NIC로 교체. em(Intel PRO/1000 계열) 또는 igb 드라이버가 인식되는 NIC 사용 추천

문제 2: NAT Reflection 설정 안 해서 내부에서 외부 도메인 접속 불가

증상: 외부에서는 되는데 내부 LAN에서 자기 도메인으로 접속 안 됨
원인: NAT Reflection(헤어핀 NAT) 미설정
해결: Firewall → Settings → Advanced → Reflection for port forwards: Enable

문제 3: Suricata 켜고 나서 일부 사이트 접속 불가

증상: IPS 모드 활성화 후 특정 스트리밍 사이트 접속이 끊김
원인: 공격 패턴과 유사한 정상 트래픽을 오탐(False Positive)으로 차단
해결: 해당 룰 ID를 Suppress List에 추가하거나, 해당 IP를 Whitelist에 등록

# OPNsense Shell에서 Suricata 로그 실시간 확인
tail -f /var/log/suricata/eve.json | python3 -m json.tool | grep -E '"alert"|"src_ip"|"dest_ip"'

문제 4: 재부팅 후 방화벽 규칙이 일부 초기화

증상: 수동으로 추가한 규칙이 재부팅 후 사라짐
원인: WebGUI가 아닌 Shell에서 직접 pfctl로 임시 추가한 규칙
해결: 반드시 WebGUI를 통해 규칙 추가. Shell 명령어는 테스트용으로만 사용

✅ 구축 결과 확인 — 이렇게 검증하세요

설정 다 했다고 끝이 아니에요. 실제로 제대로 동작하는지 검증하는 게 중요해요.

외부에서 포트 스캔으로 노출 여부 확인

Shodan(shodan.io)이나 nmap으로 외부에서 내 IP를 스캔해보세요. 방화벽이 제대로 동작한다면 열어둔 포트 외에는 아무것도 안 보여야 해요.

# 다른 네트워크(모바일 데이터 등)에서 내 WAN IP로 포트 스캔
nmap -sV -p 1-1024 [내 WAN IP 주소]

# 결과 예시 — 방화벽이 잘 동작하면 이렇게 나와야 함
# All 1024 scanned ports on [IP] are in ignored states.

Firewall Logs 확인

OPNsense WebGUI에서 Firewall → Log Files → Live View로 실시간 차단 로그를 볼 수 있어요. 여기서 외부에서 들어오는 수상한 접근 시도를 확인할 수 있는데, 처음 보시면 "이렇게 많이 들어오고 있었어?" 하고 놀라실 거예요. 저도 그랬거든요 ㅎㅎ

Dashboard 위젯으로 실시간 모니터링

  • Gateway 상태 (WAN 연결 안정성)
  • Interface 트래픽 그래프
  • Suricata 알림 카운트
  • 시스템 리소스 (CPU, 메모리)

▲ 방화벽 구축 완료 후 OPNsense 대시보드 — 게이트웨이 상태, 인터페이스 트래픽, IDS 탐지 현황을 실시간으로 모니터링하는 화면

마무리 — 홈랩 네트워크 보안, 이제 시작이에요

pfSense/OPNsense 기반의 홈랩 방화벽을 구축하고 나면 네트워크를 바라보는 눈이 달라져요. 예전엔 그냥 "인터넷 되면 됐지" 였다면, 이제는 트래픽 흐름이 보이기 시작하거든요. 어디서 뭐가 들어오고 나가는지, 어떤 시도가 차단되고 있는지.

정리하자면 이렇게 구성하시면 됩니다:

  • ✅ Intel NIC 기반 하드웨어 선택
  • ✅ OPNsense 또는 pfSense 설치
  • ✅ WAN 기본 차단 정책 유지
  • ✅ VLAN으로 네트워크 세분화 (IoT 격리 필수!)
  • ✅ Suricata IDS/IPS 활성화
  • ✅ WireGuard VPN으로 원격 접속 구성
  • ✅ 외부 포트 스캔으로 노출 여부 검증

다음 단계로는 pfBlockerNG(pfSense) 또는 OPNsense의 Unbound DNS 블랙리스트를 활용한 DNS 기반 광고/악성 도메인 차단을 다뤄볼 예정이에요. 이걸 적용하면 집 안 모든 기기에서 광고가 사라지는 마법을 경험할 수 있거든요 — Pi-hole 없이도요. 그 내용은 다음 글에서 자세히 다루겠습니다.

궁금한 점이나 막히는 부분 있으시면 댓글로 남겨주세요. 같은 삽질을 덜 하셨으면 하는 마음으로 최대한 답변드릴게요 😊

자주 묻는 질문 (FAQ)

Q. pfSense와 OPNsense 중 초보자에게 어떤 걸 추천하나요?

커뮤니티 자료가 많은 pfSense CE가 처음 입문하기엔 조금 더 수월해요. 다만 보안 업데이트 주기와 UI 현대성을 고려하면 OPNsense도 충분히 좋은 선택입니다. 둘 다 무료로 사용 가능하니 VM에서 먼저 테스트해보시는 걸 추천합니다.

Q. 최소 사양이 어떻게 되나요?

공식 권장 사양은 CPU 1GHz 이상, RAM 1GB 이상이지만, IDS/IPS나 VPN까지 쓰려면 최소 4GB RAM에 멀티코어 CPU를 권장해요. 기가비트 라인 풀로 쓰려면 더 여유 있는 스펙이 필요합니다.

Q. 기존 공유기는 어떻게 되나요?

pfSense/OPNsense가 공유기 역할을 대신하는 구성이 일반적이에요. 기존 공유기는 AP(액세스 포인트) 모드로 전환해서 Wi-Fi 전용으로 활용하면 됩니다.

Q. Cloudflare Tunnel과 같이 쓸 수 있나요?

네, 함께 사용 가능해요. Cloudflare Tunnel을 쓰면 WAN 포트포워딩 없이도 외부 접속이 가능해서 보안상 더 좋은 구성을 만들 수 있어요. 이 조합도 나중에 다뤄볼게요.