13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] VLAN

  • [가상화] Proxmox VLAN 실전 가이드: 네트워크 분리부터 트러블슈팅까지

    [가상화] Proxmox VLAN 실전 가이드: 네트워크 분리부터 트러블슈팅까지

    [가상화] Proxmox VLAN 실전 가이드: 네트워크 분리부터 트러블슈팅까지

    홈랩이나 사내 테스트 환경을 굴리다 보면 결국 부딪히는 게 네트워크 분리입니다. VM 몇 대까지는 그냥 같은 대역에 몰아넣어도 돌아가긴 하거든요. 근데 서비스망, 관리망, 실험망이 섞이기 시작하면 어느 순간부터 문제가 터집니다. DHCP가 엉뚱한 데서 응답하고, 관리 IP가 안 붙고, 방화벽 정책도 꼬이기 시작하죠. 그래서 오늘은 Proxmox VLAN 설정을 기준으로, 제가 실제로 홈랩에서 정리해 둔 흐름을 바탕으로 Proxmox 네트워크 분리를 어떻게 접근하면 되는지 차근차근 풀어보겠습니다.

    저도 처음엔 VLAN이 딱딱한 스위치 용어처럼 느껴졌는데요. 실제로 써보니까 핵심은 단순하더라고요. 물리 케이블은 적게 쓰면서 논리적으로 네트워크를 나누는 거예요. 문제는 개념보다 구현에서 많이 막히더라고요. 특히 Proxmox 브릿지 VLAN 구성에서 스위치 쪽 trunk 설정과 호스트 쪽 bridge 설정이 조금만 어긋나도 통신이 안 됩니다. 이번 글에서는 개념, 설정, 검증, 그리고 자주 만나는 VLAN 트러블슈팅까지 한 번에 정리해보겠습니다.

    Proxmox VLAN 설정을 위한 전체 네트워크 아키텍처 다이어그램

    Proxmox 호스트, 관리망, 서비스망, 실험망이 VLAN으로 분리된 전체 구성 예시입니다.

    왜 Proxmox VLAN 설정이 중요한가

    쉽게 말해 VLAN은 하나의 스위치 위에 여러 개의 논리적 네트워크를 만드는 방식입니다. VLAN ID로 트래픽을 구분하고, 필요한 포트만 같은 네트워크처럼 동작하게 만드는 거죠. 서버실에서 이런 분리는 거의 기본인데, 홈랩에서도 생각보다 효과가 큽니다.

    • Management(매니지먼트, 관리망)와 서비스망을 분리할 수 있습니다.
    • Lab(랩, 실험망)에서 삽질해도 운영망에 영향이 적습니다.
    • Security(시큐리티, 보안) 측면에서 접근 제어가 쉬워집니다.
    • 한 장의 NIC로도 여러 네트워크를 태울 수 있어 배선이 단순해집니다.

    제가 직접 해보니 가장 큰 장점은 정리감이었더라고요. 처음엔 케이블 추가 안 해도 되니까 편하겠네 정도였는데, 실제로는 장애 분석 속도가 훨씬 빨라지더라고요. 어느 트래픽이 어느 VLAN에 있어야 하는지가 명확하니까요.

    VLAN과 Proxmox 브릿지 구조를 쉽게 이해해보기

    여기서 중요한 포인트! Proxmox에서 VLAN을 볼 때는 세 가지 층을 같이 생각해야 합니다.

    1. Switch Port(스위치 포트): trunk인지 access인지
    2. Bridge(브릿지): Proxmox 호스트가 VLAN 태그를 인식하는지
    3. Guest NIC(게스트 네트워크 카드): VM 또는 컨테이너에 어떤 VLAN을 태울지

    쉽게 말해 이런 구조입니다. 스위치는 여러 VLAN이 오가는 통로를 열어주고, Proxmox의 브릿지인 vmbr0가 그 프레임을 받아서, 각 VM이나 컨테이너에 필요한 VLAN 태그를 붙여 전달하는 식이죠.

    구성 요소 역할 실수하기 쉬운 포인트
    스위치 trunk 포트 여러 VLAN 태그를 서버로 전달 허용 VLAN 목록 누락
    Proxmox bridge 물리 NIC와 게스트 NIC를 연결 VLAN awareness 미설정
    VM/LXC tag 어느 VLAN에 붙을지 결정 잘못된 VLAN ID 입력
    게이트웨이/라우터 VLAN 간 라우팅 담당 통신 불가를 브릿지 문제로 오해

    이 구성을 이해하면 왜 핑이 안 되는지 볼 때도 훨씬 빨라집니다. L2인지, L3인지, 아니면 스위치 정책 문제인지 범위를 줄일 수 있거든요.

    실전 설계: VLAN 번호부터 먼저 정리합니다

    설정 들어가기 전에 VLAN 계획부터 잡는 걸 추천드립니다. 이거 별거 아닌 것 같아도, 나중에 문서화와 트러블슈팅에서 엄청 차이가 납니다. 저도 예전에는 생각나는 대로 10, 20, 99 붙였다가 어느 순간 헷갈려서 다시 정리했었습니다.

    VLAN 10  = Management(관리망)
    VLAN 20  = Service(서비스망)
    VLAN 30  = Lab(실험망)
    VLAN 40  = Storage(스토리지망, 필요시)

    관리망은 Proxmox 웹 UI와 SSH 접속용으로 두고, 서비스망은 VM 서비스용, 실험망은 테스트용으로 나누면 깔끔합니다. 스토리지망은 Ceph나 NFS, iSCSI 같은 걸 별도 분리할 때 고려하면 좋고요.

    Proxmox VLAN 설정: /etc/network/interfaces 예시

    이제 본격적으로 Proxmox VLAN 설정에 들어가 보겠습니다. 가장 많이 쓰는 방식은 물리 NIC 하나를 브릿지에 붙이고, 그 브릿지에서 VLAN aware를 켜는 방법입니다. 아래 예시는 관리 IP는 VLAN 10 대역에 두고, VM들은 10, 20, 30 VLAN을 사용할 수 있게 열어둔 형태입니다.

    auto lo
    iface lo inet loopback
    
    iface eno1 inet manual
    
    auto vmbr0
    iface vmbr0 inet static
        address 192.168.10.11/24
        gateway 192.168.10.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 10 20 30

    여기서 자주 보는 항목을 짚어보면 이렇습니다.

    • bridge-ports eno1: 물리 NIC를 브릿지에 연결합니다.
    • bridge-vlan-aware yes: 브릿지가 VLAN 태그를 인식하도록 켭니다.
    • bridge-vids 10 20 30: 해당 브릿지에서 허용할 VLAN 목록입니다.

    근데 여기서 한 가지. 관리 IP를 어떤 방식으로 둘지는 환경에 따라 다릅니다. 어떤 분은 untagged/native VLAN에 두고, 어떤 분은 아예 별도 VLAN 인터페이스를 만들어 관리망을 분리하기도 하거든요. 저는 가능하면 관리망도 의도를 분명히 하기 위해 VLAN 기준으로 정리하는 편입니다.

    Proxmox의 브릿지 설정과 VLAN aware 개념을 한눈에 보여주는 예시 이미지입니다.

    관리망을 VLAN 인터페이스로 분리하는 방식

    조금 더 명시적으로 관리하고 싶다면 호스트 관리 IP를 VLAN 서브인터페이스에 둘 수도 있습니다. 예를 들면 이런 식입니다.

    auto lo
    iface lo inet loopback
    
    iface eno1 inet manual
    
    auto eno1.10
    iface eno1.10 inet manual
    
    auto vmbr0
    iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 10 20 30
    
    auto vmbr10
    iface vmbr10 inet static
        address 192.168.10.11/24
        gateway 192.168.10.1
        bridge-ports eno1.10
        bridge-stp off
        bridge-fd 0

    이 방식은 구조가 좀 더 눈에 보입니다. 대신 브릿지가 여러 개가 되거나 설정이 길어질 수 있어서, 작은 홈랩에서는 첫 번째 방식이 더 단순할 때도 많습니다.

    VM과 LXC에 VLAN 태그 붙이기

    브릿지 준비가 끝났다면 이제 게스트에 VLAN을 태우면 됩니다. Proxmox GUI에서도 가능하지만, CLI가 익숙하시면 명령으로 처리하는 게 반복 작업엔 더 편하더라고요. 이거 진짜 편하거든요.

    qm set 101 --net0 virtio,bridge=vmbr0,tag=20
    qm set 102 --net0 virtio,bridge=vmbr0,tag=30

    LXC 컨테이너는 이렇게 줄 수 있습니다.

    pct set 201 -net0 name=eth0,bridge=vmbr0,tag=20,ip=dhcp
    pct set 202 -net0 name=eth0,bridge=vmbr0,tag=30,ip=dhcp

    여기서 tag=20 같은 값이 핵심입니다. 브릿지에서 허용된 VLAN 안에서, 해당 VM NIC가 어느 네트워크에 속할지 결정하거든요. 만약 VM 안에서 직접 VLAN subinterface를 만들 계획이라면 설계가 조금 달라질 수 있지만, 일반적인 운영에서는 호스트 레벨에서 태그를 넣는 쪽이 관리가 편합니다.

    GUI에서 확인할 때 볼 항목

    1. VM 또는 CT의 Hardware 메뉴로 들어갑니다.
    2. Network Device 설정에서 Bridge가 vmbr0인지 확인합니다.
    3. VLAN Tag 항목에 10, 20, 30 중 올바른 값을 넣습니다.
    4. 게스트 OS 내부 IP 설정이 해당 대역과 맞는지 봅니다.

    생각보다 마지막 단계에서 많이 틀립니다. VLAN 20에 붙여놓고 게스트는 VLAN 10 대역 IP를 수동으로 넣어두면 당연히 통신이 안 되는데, 막상 장애 상황에서는 이 단순한 걸 놓치기 쉽더라고요.

    ⚠️ VLAN 트러블슈팅: 실제로 많이 막히는 지점

    여기부터가 진짜 중요합니다. 설정은 했는데 핑이 안 되면 멘탈이 흔들리죠. 저도 처음엔 Proxmox 문제인가 싶어서 한참 헤맸는데, 결국 원인은 대부분 정해져 있었습니다.

    1. 스위치 trunk 허용 VLAN 누락

    가장 흔합니다. Proxmox 쪽은 멀쩡한데 스위치에서 해당 포트에 VLAN 20, 30이 허용되지 않은 경우예요. 이럴 때는 특정 VLAN만 안 되고, 다른 VLAN은 멀쩡한 식으로 나타납니다.

    • 증상: VLAN 10은 되고 VLAN 20만 안 됨
    • 확인 포인트: 스위치 포트가 trunk인지, allowed VLAN 목록이 맞는지
    • 해결: 스위치 설정에서 필요한 VLAN을 추가

    2. Native VLAN(네이티브 VLAN) 오해

    untagged 트래픽과 tagged 트래픽이 섞이면 헷갈립니다. 특히 관리 IP를 native VLAN에 두고 VM은 tagged VLAN으로 보낼 때, 스위치와 호스트가 native VLAN 해석을 다르게 하면 접속이 끊길 수 있습니다.

    제가 직접 해보니 이 경우는 “분명 어제까지 됐는데 왜 안 되지?” 같은 증상으로 나오는 경우가 많았습니다. 스위치 교체나 포트 이동 후에 특히 그렇고요. 가능하면 운영 초반부터 native VLAN 의존도를 낮추는 쪽이 덜 헷갈립니다.

    3. bridge-vlan-aware 누락

    Proxmox 브릿지 VLAN 구성에서 이 옵션이 빠지면, 태그를 넣어도 기대한 대로 동작하지 않습니다.

    ip -d link show vmbr0
    bridge vlan show

    이 명령으로 브릿지 상태를 먼저 확인해보세요. 저는 이상하면 무조건 여기부터 봅니다. GUI만 보고 믿었다가 실제 적용 상태가 달랐던 적도 있었거든요.

    4. 게스트 OS 내부 설정 문제

    호스트는 정상인데, VM 안에서 방화벽이 막거나 IP/게이트웨이가 잘못된 경우도 많습니다. 특히 클라우드 이미지 기반 VM은 네트워크 설정 방식이 배포판마다 다를 수 있어서, netplan이든 ifcfg든 내부 설정도 꼭 같이 봐야 합니다.

    5. 라우팅 문제를 VLAN 문제로 착각

    VLAN 20과 VLAN 30은 서로 다른 네트워크입니다. 둘 사이 통신은 보통 라우터나 L3 스위치가 처리해야 합니다. 그래서 같은 VLAN 내부 핑은 되는데 다른 VLAN으로 안 간다면, 브릿지보다 라우팅 정책을 먼저 봐야 맞습니다.

    6. 패킷 캡처로 보면 빨라집니다

    감으로 잡으려다 시간 쓰지 마시고, 패킷을 보시는 걸 추천드립니다. 저도 삽질 좀 했습니다 ㅎㅎ 결국 눈으로 보니까 답이 나오더라고요.

    tcpdump -eni eno1 vlan 20
    tcpdump -eni vmbr0
    tcpdump -eni tap101i0

    어디까지 프레임이 들어오는지 보면, 스위치에서 안 오는 건지, 브릿지에서 안 넘기는 건지, 게스트 직전에서 막히는 건지 금방 좁혀집니다.

    VLAN 트러블슈팅 과정을 보여주는 Proxmox VLAN 설정 이미지

    VLAN 태그와 브릿지 상태를 확인하면서 장애 원인을 좁혀가는 트러블슈팅 예시입니다.

    검증 단계: 설정 후 꼭 확인할 체크리스트

    설정만 끝내고 넘어가면 나중에 더 힘들어집니다. 저는 아래 순서대로 검증하는 습관을 들였는데, 장애 예방에 꽤 도움이 됐습니다.

    1. Proxmox 호스트에서 관리 IP로 게이트웨이 핑 확인
    2. 같은 VLAN에 있는 VM끼리 통신 확인
    3. DHCP 사용 시 올바른 대역 주소를 받는지 확인
    4. 서로 다른 VLAN 간 통신은 라우터 정책에 따라 테스트
    5. 재부팅 후에도 설정이 유지되는지 확인
    ping -c 4 192.168.10.1
    bridge vlan show
    ip addr show
    qm config 101
    pct config 201

    여기서 특히 마지막 재부팅 검증이 중요합니다. 실행 중엔 되는데 재부팅 후 안 되는 케이스가 은근 있거든요. 인터페이스 이름이 예상과 다르거나, 스위치 쪽 변경이 저장되지 않았을 때 자주 나옵니다.

    운영하면서 느낀 팁: Proxmox 네트워크 분리를 너무 복잡하게 시작하지 마세요

    처음부터 VLAN을 8개, 10개 나누는 건 추천하지 않습니다. 저도 한때는 망을 세분화하면 무조건 좋아 보였는데, 실제로 운영해보니 관리 복잡도가 같이 올라가더라고요. 홈랩 기준이면 보통 이렇게 시작해도 충분합니다.

    • VLAN 10: 관리망
    • VLAN 20: 서비스망
    • VLAN 30: 실험망

    이 정도만 해도 체감이 큽니다. 그리고 나중에 스토리지망이나 백업망을 분리하는 식으로 확장하는 게 좋습니다. 내부 링크로 이어질 만한 주제도 많습니다. 예를 들면 다음 글에서 방화벽 정책과 VLAN 연동, 또는 Proxmox 백업 네트워크 분리를 따로 다뤄도 좋겠죠.

    구성 방식 장점 주의점
    단일 브릿지 + VLAN aware 구성이 단순하고 확장 쉬움 스위치 trunk 설정이 정확해야 함
    VLAN별 별도 브릿지 시각적으로 이해 쉬움 설정이 길어지고 관리 포인트 증가
    게스트 내부 VLAN 처리 특수 환경에 유연함 게스트별 관리 복잡도 증가

    정리와 FAQ: 결국 핵심은 경계 지점을 구분하는 겁니다

    Proxmox VLAN 설정의 핵심은 어렵지 않습니다. 스위치에서 VLAN을 올바르게 전달하고, Proxmox 브릿지에서 VLAN aware를 켜고, VM/LXC에 정확한 tag를 넣는 것. 딱 이 세 가지입니다. 근데 장애는 늘 경계에서 납니다. 스위치와 호스트 사이, 호스트와 게스트 사이, L2와 L3 사이요. 그래서 저는 문제를 보면 항상 “지금 어디 경계에서 끊겼지?”부터 생각합니다.

    실제로 써보니까 VLAN은 단순히 깔끔한 구성이 아니라 운영 안정성을 높여주는 도구였습니다. 드디어 됐다! 싶은 순간이 오면, 그 다음부터는 서비스 추가할 때도 훨씬 자신감이 생기더라고요.

    자주 묻는 질문

    • Q. Proxmox에서 VLAN은 꼭 스위치가 관리형이어야 하나요?
      네, 일반적으로 VLAN 태그를 다루려면 managed switch(관리형 스위치)가 필요합니다.
    • Q. VM마다 다른 VLAN을 줄 수 있나요?
      가능합니다. 같은 bridge를 쓰더라도 각 NIC에 다른 VLAN tag를 지정하면 됩니다.
    • Q. VLAN끼리 통신이 안 되면 Proxmox 문제인가요?
      반드시 그렇진 않습니다. 라우터 또는 L3 스위치 정책 문제일 수 있습니다.
    • Q. 관리망을 서비스망과 꼭 분리해야 하나요?
      작은 환경에선 필수는 아니지만, 운영 안정성과 보안을 생각하면 분리하는 쪽이 훨씬 낫습니다.
    Proxmox 네트워크 분리 결과를 검증하는 대시보드 이미지

    설정 후 VLAN별 연결 상태와 게스트 통신 결과를 검증하는 단계의 예시입니다.

    Proxmox VLAN 설정 핵심 체크포인트 요약 인포그래픽

    스위치, 브릿지, 게스트 태그까지 핵심 점검 포인트를 한 장으로 요약한 이미지입니다.

    혹시 지금 Proxmox 네트워크 분리를 막 시작하시는 단계라면, 먼저 VLAN 10/20/30 정도로 단순하게 구성해보세요. 그 다음에 방화벽, 라우팅, 백업망까지 넓히면 됩니다. 이전 글에서 다룬 리눅스 브릿지 기본 개념이 있다면 같이 참고하시면 더 이해가 빠르고, 다음 글에서는 방화벽 정책과 VLAN 연동 사례도 정리해보겠습니다.

  • [Proxmox] Proxmox 네트워크 설정: 브릿지, VLAN, 본딩 완벽 가이드

    [Proxmox] Proxmox 네트워크 설정: 브릿지, VLAN, 본딩 완벽 가이드

    안녕하세요, 13년차의 서버실 주인장입니다. 홈랩을 운영하면서 다양한 가상화 환경을 구축하고 테스트해보곤 하는데요. 그중에서도 Proxmox VE(Virtual Environment)는 제가 가장 즐겨 사용하는 하이퍼바이저(Hypervisor) 중 하나입니다.

    Proxmox VE는 뛰어난 성능과 유연성으로 많은 서버실 엔지니어들의 사랑을 받고 있죠. 하지만 Proxmox VE를 처음 접하는 분들이 가장 어려워하는 부분이 바로 네트워크 설정이 아닐까 싶습니다. 브릿지(Bridge)는 또 뭐고, VLAN(Virtual Local Area Network)은 어떻게 적용하며, 본딩(Bonding)은 왜 필요한지… 저도 처음엔 이게 뭔가 싶어서 꽤 삽질했었거든요. ㅎㅎ

    오늘은 제가 지난 13년간 인프라 엔지니어로서 쌓아온 경험과 홈랩에서 직접 Proxmox VE를 만지면서 얻은 노하우를 바탕으로, Proxmox 네트워크 설정의 핵심인 브릿지, VLAN, 본딩을 완벽하게 마스터할 수 있는 가이드를 준비했습니다. 이 글을 통해 여러분의 Proxmox VE 환경이 더욱 안정적이고 효율적으로 변모할 수 있기를 바랍니다!

    Proxmox VE 네트워크의 핵심 구성 요소들을 한눈에 볼 수 있는 다이어그램입니다. 브릿지, VLAN, 본딩이 물리 네트워크와 어떻게 연결되는지 시각적으로 보여줍니다.

    Proxmox 네트워크 설정, 왜 이렇게 복잡해 보일까요? (브릿지, VLAN, 본딩 개념 이해)

    본격적인 설정에 앞서, 우리가 다룰 세 가지 핵심 개념을 먼저 명확히 이해하고 넘어가는 것이 중요합니다. 이 개념들을 잘 알아두면 나중에 트러블슈팅할 때도 훨씬 수월할 거예요.

    1. 브릿지(Bridge): 가상 스위치의 시작

    Proxmox VE에서 브릿지(Bridge)는 물리 네트워크 인터페이스와 가상 머신(VM) 및 컨테이너(LXC)를 연결해주는 가상의 스위치(Switch) 역할을 합니다. 쉽게 말해, 물리 서버 안에 소프트웨어적으로 스위치를 하나 더 만들어서 여러 가상 머신들이 그 스위치에 연결되도록 하는 거죠.

    • vmbr0: Proxmox VE를 설치하면 기본적으로 생성되는 브릿지입니다. 보통 물리 이더넷 카드(예: eno1)와 연결되어 외부 네트워크와 통신하는 역할을 합니다.
    • 역할: 여러 가상 머신들이 하나의 물리 네트워크 인터페이스를 공유하며, 마치 같은 물리 스위치에 연결된 것처럼 서로 통신할 수 있게 해줍니다.

    2. VLAN(Virtual Local Area Network): 네트워크 분리의 마법

    VLAN(Virtual Local Area Network, 가상 근거리 통신망)은 하나의 물리 네트워크 스위치를 여러 개의 논리적인 네트워크로 분리하는 기술입니다. 보안, 성능, 관리 효율성 등 여러 이유로 네트워크를 분리하고 싶을 때 사용하죠. Proxmox VE에서는 가상 머신이나 컨테이너에 특정 VLAN ID를 할당하여 해당 VLAN에 속한 네트워크 트래픽만 주고받도록 설정할 수 있습니다.

    • 태깅(Tagging): 이더넷 프레임에 VLAN ID를 추가하여 어떤 VLAN에 속하는 트래픽인지 식별합니다. IEEE 802.1Q 표준을 따릅니다.
    • 활용: 웹 서버용 VLAN, DB 서버용 VLAN, 관리용 VLAN 등 용도에 따라 네트워크를 분리하여 보안을 강화하고 트래픽 혼잡을 줄일 수 있습니다.

    3. 본딩(Bonding) 또는 티밍(Teaming): 안정성과 성능 두 마리 토끼

    본딩(Bonding)은 여러 개의 물리 네트워크 인터페이스를 하나의 논리적인 인터페이스로 묶는 기술입니다. 윈도우 서버에서는 티밍(Teaming)이라고도 부르죠. 이 기술을 사용하면 두 가지 주요 이점을 얻을 수 있습니다.

    • 고가용성(High Availability, HA): 하나의 물리 NIC(Network Interface Card)에 장애가 발생하더라도 다른 NIC를 통해 네트워크 연결이 유지됩니다. (Failover)
    • 성능 향상: 여러 NIC의 대역폭을 합쳐 더 높은 처리량을 얻을 수 있습니다. (Load Balancing)

    본딩 모드에는 Active-Backup, LACP(Link Aggregation Control Protocol) 등 여러 가지가 있는데, 이 부분은 실전 가이드에서 자세히 다뤄볼게요. 저도 처음엔 아무 모드나 쓰면 되는 줄 알았는데, 스위치 설정과 연동이 안 돼서 한참 헤매던 기억이 있네요. 😅

    Proxmox 네트워크 설정 실전 가이드: 한 단계씩 따라 해봐요!

    이제 개념을 알았으니 직접 Proxmox VE에 네트워크 설정을 해볼 시간입니다. 저는 주로 CLI(Command Line Interface)를 선호하지만, Proxmox 웹 UI(User Interface)도 함께 보여드리면서 설명해 드릴게요. 여러분의 환경에 맞춰 선택하시면 됩니다.

    1단계: 네트워크 인터페이스 확인

    가장 먼저 현재 Proxmox 서버에 어떤 물리 네트워크 인터페이스가 있는지 확인해야 합니다. SSH로 Proxmox 서버에 접속하여 다음 명령어를 입력해 보세요.

    ip a
    

    보통 eno1, enpXsY, eth0 등과 같은 이름으로 표시될 겁니다. 제 홈랩 서버에는 eno1과 eno2 두 개의 기가비트 이더넷 포트가 있네요. 여러분의 서버에 맞는 인터페이스 이름을 확인해 두세요.

    2단계: 브릿지(Bridge) 설정하기

    기본적으로 Proxmox는 vmbr0이라는 브릿지를 하나 가지고 있습니다. 여기에 추가로 브릿지를 생성하거나, 기존 브릿지에 물리 NIC를 연결해볼게요.

    웹 UI를 이용한 설정

    1. Proxmox 웹 UI에 접속합니다. (https://[Proxmox_IP]:8006)
    2. 왼쪽 메뉴에서 Datacenter -> [노드 이름] -> System -> Network로 이동합니다.
    3. ‘Create’ -> ‘Linux Bridge’를 선택합니다.
    4. 설정 창에서 다음을 입력합니다:

      • Name: vmbr1 (새로운 브릿지 이름. vmbr0은 기본이니 vmbr1부터 시작하는 게 좋습니다.)
      • IPv4/CIDR: 비워둠 (브릿지에 직접 IP를 할당하지 않고, 가상 머신에서 IP를 받도록 할 경우) 또는 192.168.100.1/24 (브릿지에 IP를 할당하여 호스트에서 직접 해당 네트워크에 접근할 경우)
      • Bridge ports: eno2 (브릿지에 연결할 물리 네트워크 인터페이스 이름. 여러 개라면 공백으로 구분)
      • VLAN aware: ✅ 체크 (VLAN 기능을 사용할 예정이라면 반드시 체크해야 합니다!)
    5. ‘Create’ 버튼을 클릭하고, 상단의 ‘Apply Configuration’을 클릭하여 변경 사항을 적용합니다.

    CLI를 이용한 설정

    /etc/network/interfaces 파일을 직접 편집하여 설정할 수 있습니다. 저는 이 방법이 더 익숙하더라고요.

    sudo nano /etc/network/interfaces
    

    파일 내용은 대략 다음과 같을 겁니다. 기존 vmbr0 설정 아래에 vmbr1을 추가해볼게요.

    auto lo
    iface lo inet loopback
    
    iface eno1 inet manual
    # Proxmox 관리용 브릿지 (기본)
    auto vmbr0
    iface vmbr0 inet static
        address 192.168.1.10/24
        gateway 192.168.1.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes # VLAN 사용 시 필수!
        #bridge-vids 20-30 # 특정 VLAN ID 범위 허용 (옵션)
    
    iface eno2 inet manual
    # 추가적인 브릿지 (데이터용 또는 VLAN 분리용)
    auto vmbr1
    iface vmbr1 inet manual # vmbr1 자체에는 IP를 할당하지 않고, VM이 직접 IP를 가져가도록
        bridge-ports eno2
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes # VLAN 사용 시 필수!
        #bridge-vids 100-200 # 특정 VLAN ID 범위 허용 (옵션)
    

    변경 후에는 네트워크 서비스를 재시작해야 하지만, Proxmox는 시스템 재부팅을 권장합니다. 특히 중요한 서버라면 Proxmox 웹 UI에서 ‘Apply Configuration’ 버튼을 누르거나, reboot 명령어를 사용하는 것이 가장 안전합니다.

    Proxmox 웹 UI에서 브릿지, VLAN, 본딩 설정을 마치고 ‘Apply Configuration’을 누르기 전의 화면입니다. 설정된 내용들을 한눈에 확인할 수 있습니다.

    3단계: VLAN(Virtual Local Area Network) 설정하기

    이제 vmbr1에 VLAN-aware 옵션을 활성화했으니, 이 브릿지를 사용하는 가상 머신에 VLAN ID를 할당해볼게요.

    가상 머신에 VLAN ID 할당 (웹 UI)

    1. 네트워크 설정을 적용할 가상 머신(VM) 또는 컨테이너(LXC)를 선택합니다.
    2. ‘Hardware’ 탭으로 이동합니다.
    3. 네트워크 장치(예: Network Device (net0))를 더블클릭합니다.
    4. 설정 창에서 다음을 확인/입력합니다:

      • Bridge: vmbr1 (앞서 생성한 VLAN-aware 브릿지)
      • VLAN Tag: 100 (할당하고 싶은 VLAN ID)
    5. ‘OK’를 클릭하고 VM을 재시작합니다.

    이렇게 설정하면 해당 VM은 vmbr1 브릿지를 통해 물리 NIC eno2로 나가되, 트래픽에 VLAN ID 100이 태깅되어 나갑니다. 물론, 이 VLAN 100을 인식하고 라우팅해줄 상위 네트워크 스위치도 그에 맞게 설정되어 있어야겠죠!

    4단계: 본딩(Bonding) 설정으로 안정성 확보하기

    여러 개의 물리 NIC를 묶어 본딩을 구성해볼게요. 저는 eno1과 eno2를 묶어 bond0을 만들고, 이 bond0을 vmbr0에 연결하여 Proxmox 관리 네트워크의 안정성을 높여보겠습니다.

    CLI를 이용한 본딩 설정

    sudo nano /etc/network/interfaces
    

    기존 eno1, eno2, vmbr0 설정을 수정하고 bond0을 추가합니다.

    auto lo
    iface lo inet loopback
    
    # 물리 NIC들은 manual로 설정하고 bond0에 포함시킵니다.
    iface eno1 inet manual
    iface eno2 inet manual
    
    # bond0 인터페이스 설정
    auto bond0
    iface bond0 inet manual
        bond-slaves eno1 eno2
        bond-miimon 100
        bond-mode active-backup # 가장 일반적이고 안정적인 모드 (Failover)
        # bond-mode 802.3ad # LACP (스위치에서 Link Aggregation 설정 필수)
        # bond-xmit-hash-policy layer2+3 # LACP 사용 시 권장
        
    # vmbr0 브릿지를 bond0에 연결합니다.
    auto vmbr0
    iface vmbr0 inet static
        address 192.168.1.10/24
        gateway 192.168.1.1
        bridge-ports bond0 # 물리 NIC 대신 bond0을 연결
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
    

    여기서 bond-mode가 중요한데요. 저는 주로 active-backup 모드를 사용합니다. 하나의 NIC가 Active로 작동하고, 다른 NIC는 Passive로 대기하다가 Active NIC에 문제가 생기면 자동으로 Passive NIC가 Active로 전환되는 방식이죠. 스위치 설정 변경 없이 Proxmox 서버 단독으로 구성할 수 있어 홈랩 환경에서 매우 편리합니다.

    만약 더 높은 성능을 원하고 스위치에서 LACP(Link Aggregation Control Protocol)를 지원한다면, 802.3ad 모드를 사용하고 스위치에서도 해당 포트들을 LACP 그룹으로 묶어줘야 합니다. 이 경우 bond-xmit-hash-policy 설정도 중요하구요. 이 부분에서 스위치 설정과 Proxmox 본딩 모드가 일치하지 않아 통신이 안 되는 삽질을 꽤 많이 했었습니다. ⚠️

    설정 변경 후에는 마찬가지로 Proxmox 웹 UI에서 ‘Apply Configuration’을 누르거나, 서버를 재부팅하여 변경 사항을 적용합니다.

    ⚠️ 삽질 대잔치! Proxmox 네트워크 설정 시 제가 겪었던 문제들

    네트워크 설정은 한 글자만 틀려도 통신이 안 되는 경우가 많아서 정말 골치 아프죠. 저도 수많은 삽질을 통해 깨달은 것들이 많습니다. 여러분은 저 같은 실수를 겪지 않으시길 바라며, 몇 가지 주의사항과 트러블슈팅 팁을 공유합니다.

    1. 잘못된 IP 설정으로 관리 인터페이스 접근 불가

    Proxmox 웹 UI에 접속하는 IP 주소(보통 vmbr0에 할당된 IP)를 잘못 설정하거나, 네트워크 서비스를 재시작했는데 IP가 적용이 안 되는 경우가 있습니다. 이럴 땐 정말 등골이 오싹해지죠. 😱

    • 해결책: 물리 서버에 직접 모니터와 키보드를 연결하여 콘솔에 접속합니다. ip a 명령어로 현재 IP 주소를 확인하고, /etc/network/interfaces 파일을 다시 확인하여 수정합니다. 변경 후에는 systemctl restart networking 명령어를 시도하거나, 안전하게 reboot 합니다.

    2. VLAN 태그 누락 또는 오설정

    분명 VLAN ID를 넣었는데 가상 머신에서 통신이 안 된다면 다음을 확인해 보세요.

    • Proxmox 브릿지에 bridge-vlan-aware yes 설정이 되어 있는지? 이 옵션이 없으면 VLAN 태그를 무시합니다.
    • 가상 머신 네트워크 설정에 VLAN Tag가 정확히 입력되었는지?
    • 물리 스위치 포트 설정: Proxmox 서버가 연결된 스위치 포트가 트렁크(Trunk) 모드로 설정되어 있고, 필요한 VLAN ID들이 모두 허용(Permit)되어 있는지 확인해야 합니다. 제가 초보 때 가장 많이 놓쳤던 부분입니다. 스위치 설정과 Proxmox 설정이 일치해야만 VLAN이 정상 작동합니다.

    3. 본딩 모드 선택의 중요성

    본딩 모드(bond-mode)를 잘못 선택하면 성능 저하는 물론, 아예 통신이 안 될 수도 있습니다.

    • active-backup: 가장 안전한 모드. 스위치 설정이 필요 없습니다. 단순 이중화 목적이라면 이 모드를 추천합니다.
    • 802.3ad (LACP): 성능 향상과 이중화를 동시에 얻을 수 있지만, 반드시 스위치에서도 해당 포트들을 LACP 그룹으로 묶어줘야 합니다. 스위치 설정이 없다면 통신이 안 되거나 불안정해질 수 있습니다. 스위치 매뉴얼을 꼼꼼히 확인하세요.

    4. 스위치 설정과의 연동

    가장 중요하면서도 간과하기 쉬운 부분입니다. Proxmox 서버의 네트워크 설정은 단독으로 작동하는 것이 아니라, 연결된 물리 스위치와 유기적으로 연동되어야 합니다. 특히 VLAN이나 LACP 본딩을 사용할 때는 스위치의 포트 설정(Access/Trunk 모드, 허용 VLAN, LACP 그룹)이 Proxmox 설정과 정확히 일치하는지 반드시 확인해야 합니다. 저는 이 부분 때문에 밤을 새워가며 삽질했던 경험이 정말 많습니다. 😅

    설정 완료! 제대로 작동하는지 확인해볼까요?

    모든 설정을 마치셨다면, 이제 정상적으로 작동하는지 확인해볼 차례입니다. “드디어 됐다!” 하는 희열을 느낄 수 있는 순간이죠. 🎉

    1. Proxmox 웹 UI 확인: Datacenter -> [노드 이름] -> System -> Network 탭에서 설정한 브릿지, 본딩 인터페이스가 정상적으로 올라와 있는지 확인합니다. 상태가 ‘active’여야 합니다.
    2. 가상 머신 통신 테스트: VLAN을 할당한 가상 머신에서 해당 VLAN의 게이트웨이나 다른 서버로 ping 테스트를 해봅니다.
    3. 본딩 Failover 테스트 (Active-Backup 모드): 본딩된 물리 NIC 중 하나를 케이블에서 뽑아봅니다. 잠시 후에도 Proxmox 서버가 네트워크에 연결되어 있고, 가상 머신 통신도 정상이라면 본딩이 잘 작동하는 것입니다. 물론 테스트 후에는 다시 케이블을 연결해야겠죠! 💡

    Proxmox 가상 머신에 VLAN을 설정하고, 해당 VLAN 네트워크 내에서 성공적으로 핑 테스트를 수행한 결과 화면입니다. 네트워크가 정상적으로 작동함을 보여줍니다.

    13년차 서버실의 마무리: Proxmox 네트워크 설정, 이제 두렵지 않아요!

    오늘은 Proxmox VE의 핵심인 브릿지, VLAN, 본딩에 대해 깊이 있게 다뤄봤습니다. 개념부터 실전 설정, 그리고 제가 직접 겪었던 삽질 경험과 해결책까지 솔직하게 공유해 드렸는데요.

    처음에는 복잡하게 느껴질 수 있지만, 몇 번 직접 해보고 트러블슈팅을 겪다 보면 금방 익숙해지실 겁니다. 특히 네트워크는 이론만으로는 부족하고, 직접 만져보고 겪어봐야 진짜 내 것이 되더라고요.

    Proxmox VE의 네트워크 설정은 여러분의 가상화 환경을 더욱 유연하고 안정적으로 만들어줄 것입니다. 이 글이 Proxmox VE를 사용하시는 모든 분들께 좋은 멘토가 되었으면 좋겠습니다. 다음번에는 Proxmox VE의 스토리지 설정이나 고가용성 클러스터 구축에 대한 경험담도 풀어볼까 합니다. 기대해 주세요!

    Proxmox 네트워크의 브릿지, VLAN, 본딩 개념과 주요 특징, 설정 팁을 요약하여 시각적으로 보여주는 인포그래픽입니다.

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

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

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

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

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

    ▲ 일반적인 홈랩 방화벽 구성 — 인터넷 → 방화벽(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 포트포워딩 없이도 외부 접속이 가능해서 보안상 더 좋은 구성을 만들 수 있어요. 이 조합도 나중에 다뤄볼게요.