13년차의 서버실

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

[태그:] 홈 네트워크 보안

  • [보안] 스마트 보안 카메라 해킹 사례 분석과 홈 네트워크 방어

    [보안] 스마트 보안 카메라 해킹 사례 분석과 홈 네트워크 방어

    [보안] 스마트 보안 카메라 해킹 사례 분석과 홈 네트워크 방어

    스마트 보안 카메라 해킹 이야기가 뉴스에 한 번 나오고 끝나는 문제라고 생각하시면 조금 위험합니다. 집 안을 지키려고 달아둔 장비가 오히려 사생활 노출 창구가 될 수 있거든요. 저도 홈랩에서 카메라, NAS, AP를 한 네트워크에 대충 붙여 쓰던 시절이 있었는데, 나중에 포트 스캔 한 번 돌려보고 식은땀이 나더라고요. “이게 밖에서 보이면 끝인데?” 싶었습니다. 그래서 오늘은 실존 확인된 대표 사례를 바탕으로, 스마트 보안 카메라 해킹이 어떻게 벌어졌고, 우리가 집에서 바로 적용할 수 있는 IoT 보안과 홈 네트워크 보안 원칙이 뭔지 정리해보겠습니다.

    스마트 보안 카메라 해킹 방지를 위한 홈 네트워크 보안 분리 아키텍처

    카메라를 메인 PC망과 분리한 홈 네트워크 보안 구조 예시입니다.

    1. 왜 스마트 보안 카메라 해킹이 계속 반복될까요?

    쉽게 말해 이유는 비슷합니다. 기본 비밀번호(Default Password, 출고 계정 정보), 인터넷 직접 노출(Internet Exposure, 장비가 외부에 그대로 보이는 상태), 펌웨어 업데이트 부족(Firmware Update Gap, 보안 패치 누락), 그리고 과도한 권한(Over-privileged Access, 필요 이상 관리자 권한)이 반복해서 문제를 만듭니다.

    현장에서 보면 진짜 별거 아닌 실수로 시작되는 경우가 많아요. 카메라 앱 원격 접속이 편해서 포트를 열어두고, 계정은 가족이 기억하기 쉬운 걸로 맞추고, 펌웨어 알림은 나중에 보자 하고 미루는 식이죠. 그런데 공격자는 바로 이런 지점을 노립니다. 보안 카메라 취약점은 고급 해킹 기술만의 문제가 아니라, 운영 습관의 문제이기도 합니다.

    2. 실존 사례로 보는 보안 카메라 취약점

    사례를 보면 패턴이 더 잘 보입니다. 제가 교육할 때도 추상적인 원칙보다 사건을 먼저 보여드리면 이해가 훨씬 빠르더라고요.

    사례 확인된 핵심 문제 우리에게 주는 교훈
    TRENDnet FTC 사건(2014) 사생활 영상이 인터넷에서 노출될 수 있는 소프트웨어 보안 실패 “보안” 마케팅 문구보다 실제 설정과 업데이트가 중요
    Mirai botnet 관련 사건(2016) 기본 계정 정보와 인터넷 노출된 카메라/DVR 악용 기본 비밀번호 변경은 선택이 아니라 필수
    Ring FTC 사건(2023 발표) 계정 보호 미흡, 권한 통제 부족, MFA 지연 카메라 자체보다 계정 보안이 먼저 무너지기도 함
    Verkada 보안 사고(2021) 공격자가 일부 고객의 영상/이미지 데이터에 접근 지원 권한과 관리 권한도 최소화해야 함

    2-1. TRENDnet 사건: “보안 카메라”가 공개 스트리밍이 된 사례

    미국 FTC는 2014년에 TRENDnet 사건을 공개하면서, 이 회사의 카메라가 소비자 사생활을 노출할 수 있었다고 밝혔습니다. FTC 설명을 보면 일부 카메라는 인터넷 주소만 알면 영상, 경우에 따라 오디오까지 노출될 수 있었다고 하죠. 여기서 중요한 포인트! 장비가 집 안에 있다고 안전한 게 아닙니다. 관리 인터페이스나 영상 접근 경로가 외부에 노출되면 위치는 의미가 없어집니다.

    2-2. Mirai: 카메라가 공격자의 좀비 장비가 된 사건

    2016년 Mirai botnet(미라이 봇넷)은 인터넷에 노출된 IoT 장비를 대규모로 감염시켰고, 미국 법무부와 FBI/IC3 자료에서도 카메라와 DVR이 주요 대상이었다고 확인됩니다. 핵심은 화려하지 않았어요. 기본 사용자명/비밀번호, 그리고 Telnet 같은 불필요한 관리 포트였습니다. 저도 예전에 중고 장비 테스트하다가 기본 계정으로 그냥 들어가지는 걸 보고, “이건 설치하는 순간 사고 후보구나” 싶었었습니다.

    2-3. Ring: 계정 보호 실패가 카메라 해킹으로 이어진 사례

    FTC는 2023년 Ring 사건에서 직원과 계약자의 과도한 영상 접근, 그리고 credential stuffing(크리덴셜 스터핑, 유출 계정 재사용 공격)과 brute force(무차별 대입) 대응 미흡을 문제 삼았습니다. 결과적으로 일부 사용자는 저장 영상, 라이브 스트림, 프로필 정보가 노출됐고, 약 5만5천 명의 미국 고객 계정이 영향받았다고 FTC가 적시했습니다. 이 사건은 카메라 보안 = 계정 보안 + 권한 통제라는 사실을 아주 강하게 보여줍니다.

    2-4. Verkada: 관리 편의성과 데이터 접근 통제가 충돌한 사례

    Verkada는 2021년 보안 업데이트 공지에서 공격자가 95개 고객의 영상 보안 및 이미지 데이터에 접근했다고 밝혔습니다. 이후 고객이 기술 지원 권한을 더 직접 통제하는 도구를 내놓았죠. 제가 인프라 일을 하면서 계속 느끼는 건데, 운영 편의성을 위해 넣어둔 예외 권한이 나중에 사고 반경을 키우는 경우가 많아요. 카메라도 똑같습니다.

    3. 홈 네트워크 보안 관점에서 핵심 개념 정리

    이제 개념을 아주 실무적으로 정리해보겠습니다.

    • Segmentation(세그멘테이션, 망 분리): 카메라를 PC, NAS, 스마트폰 메인망과 분리하는 거예요.
    • Least Privilege(최소 권한): 카메라 앱, 사용자, 관리자, 외부 지원 계정에 꼭 필요한 권한만 주는 원칙입니다.
    • MFA(Multi-Factor Authentication, 다중 인증): 계정 탈취 이후 피해 확산을 줄이는 가장 현실적인 장치입니다.
    • Patch Management(패치 관리): 펌웨어와 앱 업데이트를 미루지 않는 운영 습관입니다.
    • Privacy by Design(설계 단계 개인정보 보호): 애초에 카메라를 어디에 둘지, 마이크를 켤지, 클라우드 저장을 쓸지부터 보수적으로 정하는 거죠.

    혹시 이런 경험 있으신가요? 카메라를 설치할 때는 화질, 야간 촬영, 알림 속도만 보게 되고, 정작 개인정보 보호 설정은 나중으로 미루게 되거든요. 근데 사고는 대개 그 “나중”에서 납니다.

    4. 제가 홈랩에서 적용하는 방어 구조

    여기부터는 바로 따라 하기 좋은 형태로 적어보겠습니다. 특정 브랜드 종속 설정이 아니라, 원칙 중심의 예시입니다.

    1. 카메라 전용 VLAN 또는 별도 SSID를 만듭니다.
    2. 카메라 대역에서 인터넷은 꼭 필요한 목적지로만 허용합니다.
    3. 카메라에서 메인 LAN으로의 접근은 기본 차단합니다.
    4. 원격 접속은 포트포워딩 대신 VPN(Virtual Private Network, 가상사설망)으로 바꿉니다.
    5. 벤더 계정에는 MFA를 켭니다.
    6. 월 1회 펌웨어와 접근 로그를 확인합니다.

    4-1. 내 집에 어떤 카메라가 붙어 있는지 먼저 확인

    # 살아있는 장비 확인
    nmap -sn 192.168.10.0/24
    
    # 특정 카메라의 열려 있는 포트와 서비스 확인
    nmap -sV -Pn 192.168.10.23
    
    # 로컬 ARP 테이블로 제조사 힌트 확인
    ip neigh

    처음엔 이게 뭔가 싶었는데, 한 번 돌려보면 생각보다 많은 장비가 보입니다. 카메라 앱만 믿고 있으면 실제 노출 포트를 놓치기 쉽거든요.

    카메라 탐지와 VLAN 분리를 함께 설명하는 홈랩 구성 예시입니다.

    4-2. 카메라망에서 메인망으로 못 넘어오게 차단

    # 예시: nftables로 카메라 VLAN(192.168.30.0/24) 격리
    sudo nft add table inet filter
    sudo nft 'add chain inet filter forward { type filter hook forward priority 0; policy drop; }'
    
    # 카메라망에서 인터넷 DNS/HTTPS만 허용
    sudo nft add rule inet filter forward ip saddr 192.168.30.0/24 udp dport 53 accept
    sudo nft add rule inet filter forward ip saddr 192.168.30.0/24 tcp dport 53 accept
    sudo nft add rule inet filter forward ip saddr 192.168.30.0/24 tcp dport 443 accept
    
    # 카메라망에서 메인 LAN 접근 차단
    sudo nft add rule inet filter forward ip saddr 192.168.30.0/24 ip daddr 192.168.1.0/24 drop

    실제로 써보니까 포인트는 단순해요. 허용할 것만 열고 나머지는 닫는다. 이게 제일 덜 후회합니다.

    4-3. 포트포워딩 대신 VPN으로 바꾸기

    # 라우터/서버에서 외부 공개 포트 확인
    sudo ss -tulpn
    
    # UPnP로 열렸을 수 있는 매핑은 라우터에서 점검 후 비활성화 권장
    # 원격 접속은 WireGuard/OpenVPN 같은 VPN을 통해 내부망으로 들어온 뒤 사용

    NSA와 FBI/CISA 계열 가이드를 봐도 반복되는 메시지가 있어요. 원격 관리 인터페이스를 인터넷에 직접 노출하지 말 것. 이건 가정집에도 그대로 적용됩니다.

    4-4. 운영 체크리스트를 자동화

    camera_security_check:
      firmware_update: monthly
      mfa_enabled: true
      upnp_disabled: true
      remote_admin_exposed: false
      default_password_changed: true
      camera_vlan_isolated: true
      log_review: monthly

    이런 식으로 체크리스트를 문서화해두면 좋아요. 사람 기억은 생각보다 믿을 게 못 되더라고요. 저도 한동안 “나중에 해야지” 하다가 놓친 적이 꽤 있었습니다.

    5. ⚠️ 제가 자주 본 실수와 트러블슈팅

    • 기본 비밀번호를 안 바꿈: 가장 흔하고, 가장 빨리 털립니다. Mirai 사례가 딱 그랬죠.
    • 클라우드 계정 MFA 미사용: Ring 사례처럼 계정이 먼저 뚫릴 수 있습니다.
    • 카메라를 메인 NAS/PC망과 같은 대역에 둠: 침해 후 옆으로 번질 가능성이 커집니다.
    • UPnP를 켜둠: 본인도 모르게 외부 포트가 열리는 경우가 있습니다.
    • 오래된 장비를 계속 씀: 업데이트가 끊긴 카메라는 운영 리스크가 커요.

    제가 홈랩에서 제일 크게 삽질했던 건, 카메라 영상 저장 편의성 때문에 NAS와 같은 망에 둔 거였습니다. 초반엔 편해요. 진짜 편하더라고요. 근데 보안 점검 관점에서는 최악에 가까워요. 영상 보관소와 촬영 장비를 한 번에 묶어버리니까요.

    문제가 생겼을 때는 아래 순서로 보시면 됩니다.

    1. 외부 공개 포트부터 확인합니다.
    2. 기본 계정 정보와 계정 재사용 여부를 점검합니다.
    3. 카메라 펌웨어 버전과 지원 종료 여부를 확인합니다.
    4. 카메라가 어느 VLAN/SSID에 붙어 있는지 확인합니다.
    5. 로그인 이력, 알림 메일, 벤더 보안 공지를 다시 봅니다.

    6. 검증: 방어가 제대로 됐는지 이렇게 확인합니다

    설정만 하고 끝내면 안 돼요. 검증이 중요합니다.

    # 카메라 IP로 직접 접근 가능한 서비스 재확인
    nmap -sV -Pn 192.168.30.23
    
    # 카메라망 트래픽 샘플 확인
    sudo tcpdump -ni any host 192.168.30.23
    
    # 외부망에서 내부 카메라 관리 페이지가 보이지 않는지 재점검
    # 이 단계는 VPN 접속 경로와 분리해서 테스트

    정상이라면 이런 상태가 나와야 합니다.

    • ✅ 외부에서 카메라 관리 페이지가 직접 열리지 않습니다.
    • ✅ 카메라망에서 메인 PC/NAS 대역으로 접근이 안 됩니다.
    • ✅ 계정에 MFA가 적용돼 있습니다.
    • ✅ 펌웨어 업데이트 주기가 문서화돼 있습니다.
    • ✅ 로그 또는 앱 알림으로 이상 로그인 탐지가 가능합니다.
    스마트 보안 카메라 해킹 방어 설정 검증 결과 시각화

    설정 적용 후 허용된 통신만 남는 검증 결과를 시각화한 예시입니다.

    7. 자주 묻는 질문: 개인정보 보호까지 생각하면 어디까지 해야 할까요?

    Q1. 집 안 카메라는 실내용보다 실외용이 더 위험한가요?

    기술적으로는 둘 다 위험할 수 있어요. 다만 실내용 카메라는 침실, 아이 방, 거실처럼 개인정보 보호 민감도가 훨씬 높습니다. 그래서 저는 실내용은 특히 보수적으로 접근해요. 마이크가 꼭 필요 없으면 끄고, 저장 기간도 짧게 가져가는 편입니다.

    Q2. 클라우드 연결형 카메라는 다 위험한가요?

    그렇게 단순하게 볼 건 아니에요. 다만 계정 보안, 벤더의 권한 통제, 보안 공지 대응 속도를 같이 봐야 합니다. TRENDnet, Ring, Verkada 사례를 보면 문제 양상이 다르지만 결국 운영 통제와 공개 범위가 핵심이었습니다.

    Q3. 오래된 카메라는 계속 써도 될까요?

    보안 업데이트가 끝났다면 교체를 진지하게 고민하시는 게 맞아요. 기능보다 유지보수 상태가 더 중요할 때가 있거든요. 사실 저도 홈랩에서 오래된 장비 아까워서 붙잡고 있었는데, 나중엔 전기료보다 리스크가 더 크게 느껴지더라고요.

    8. 마무리: 사건은 다르지만 교훈은 비슷합니다

    스마트 보안 카메라 해킹 사례를 보면 화려한 제로데이(Zero-day, 미공개 취약점)보다 기본기 부족이 더 자주 보여요. 기본 비밀번호, 과도한 권한, 인터넷 직접 노출, 늦은 패치. 결국 우리가 당장 할 일도 명확합니다. 망 분리, MFA, 포트 비공개, 정기 업데이트, 최소 권한입니다.

    오늘 글은 사례 분석 중심으로 정리했지만, 다음 글에서는 홈랩 기준으로 IoT 보안 강화를 위한 VLAN 설계와 VPN 원격 접속 구성을 더 구체적으로 다뤄보겠습니다. 이전 글에서 공유기 보안 점검 편을 보셨다면 같이 묶어서 적용해보셔도 좋고요. 여기까지 해두면 홈 네트워크 보안 수준이 체감될 정도로 올라갑니다. 드디어 됐다 싶은 순간이 오거든요.

    스마트 보안 카메라 해킹 사례와 대응 원칙 요약 인포그래픽

    사례별 원인과 대응 원칙을 빠르게 복습할 수 있는 요약 인포그래픽입니다.

    9. 참고한 공개 사례와 가이드

  • [보안] IoT 기기 보안 사고 분석과 홈 네트워크 점검

    [보안] IoT 기기 보안 사고 분석과 홈 네트워크 점검

    [보안] IoT 기기 보안 사고 분석과 홈 네트워크 점검

    홈에서 카메라, 도어벨, 스마트 플러그, NAS(Network Attached Storage, 네트워크 저장장치), 공유기까지 다 붙여 쓰다 보면 편하긴 한데요. 문제는 IoT 기기 보안이 한 번만 삐끗해도 집 안 네트워크 전체가 흔들릴 수 있다는 겁니다. 저도 홈랩을 굴리면서 처음엔 “설마 집까지 노리겠나” 싶었는데, 실제로 포트 포워딩(Port Forwarding, 포트 전달) 잘못 열어둔 장비 로그를 보고 생각이 완전히 바뀌었어요. 로그인 시도는 생각보다 훨씬 자주 들어오더라고요. 오늘은 실제로 널리 알려진 사례를 바탕으로 홈 네트워크 보안을 어떻게 봐야 하는지, 그리고 개인이 당장 점검할 수 있는 방법까지 정리해보겠습니다.

    IoT 기기 보안과 홈 네트워크 보안 구조를 보여주는 아키텍처 다이어그램

    공유기, VLAN, IoT 기기, 인터넷을 연결한 전체 보안 구조를 한눈에 보여주는 개요 이미지입니다.

    1. 왜 IoT 기기 보안이 계속 사고로 이어질까요?

    쉽게 말해 IoT 기기는 “작은 컴퓨터”예요. 근데 서버처럼 꼼꼼하게 운영되지 않는 경우가 많거든요. 기본 비밀번호(Default Credentials, 출고 계정), 느린 업데이트, 과한 권한, 클라우드 계정 재사용 같은 문제가 겹치면 사고가 납니다.

    • 기본 계정을 바꾸지 않음
    • 펌웨어(Firmware, 장비 내장 소프트웨어) 업데이트가 늦음
    • UPnP(Universal Plug and Play, 자동 포트 개방 기능)로 외부 노출이 쉬워짐
    • 카메라 영상, 음성, 위치 같은 개인 정보 보호 이슈가 큼
    • 한 대가 뚫리면 같은 네트워크 다른 장비로 이동하기 쉬움

    여기서 중요한 포인트는, 공격자가 꼭 우리 집 자체에 관심이 있어서 들어오는 건 아니라는 거예요. 취약한 장비를 대량으로 스캔해서 봇넷(Botnet, 감염 장비 집합)에 편입시키거나, 계정 탈취 후 영상에 접근하거나, 내부망 이동의 발판으로 삼는 경우가 더 많거든요.

    2. 실제 사례 연구: 사고는 이렇게 터졌습니다

    사례 1. Mirai 봇넷과 기본 비밀번호 문제

    2016년에 악명 높았던 Mirai는 인터넷에 노출된 라우터, 카메라, DVR(Digital Video Recorder, 디지털 영상 녹화장치) 같은 IoT 기기를 노렸습니다. 핵심은 거창하지 않았어요. 기본 사용자명과 비밀번호를 그대로 둔 장비가 많았고, 그걸 자동으로 긁어서 감염시켰죠. 이건 “고급 해킹”이라기보다 운영 부주의가 대형 사고로 번진 전형적인 사례였습니다.

    제가 이 사례를 계속 꺼내는 이유가 있어요. 홈 네트워크 보안 상담 비슷하게 주변 지인들 환경을 같이 봐주다 보면, 아직도 admin/admin 류 조합이나 제조사 기본 계정이 남아 있는 경우를 꽤 보거든요. 저도 예전에 테스트용 카메라 하나를 세팅만 해두고 계정 변경을 미뤘다가 식은땀 났던 기억이 있어요. 삽질 좀 했습니다 ㅎㅎ

    사례 2. 가정용 카메라의 계정 보호 실패와 사생활 침해

    또 하나 많이 회자된 사례가 가정용 보안 카메라 서비스의 계정 보호 실패 문제예요. 잘 알려진 공개 사례에서는 직원 또는 계약자가 고객 영상에 과도하게 접근할 수 있었고, 일부 계정은 Credential Stuffing(크리덴셜 스터핑, 유출된 계정 정보 재사용 공격)이나 무차별 대입에 취약해 사용자 카메라와 영상이 침해됐어요. 이 사례가 보여준 건 딱 두 가지입니다. 첫째, 기기 자체 보안만 보면 안 된다는 거고, 둘째, 클라우드 계정 보안이 뚫리면 집 안 영상까지 넘어간다는 겁니다.

    즉, IoT 기기 보안은 장비 한 대의 문제가 아니라 계정, 네트워크, 클라우드, 앱 권한까지 다 같이 봐야 해요.

    3. 핵심 개념 정리: 내 홈 네트워크는 어디서 위험해질까?

    쉽게 말해 공격 경로는 아래 네 군데에서 시작됩니다.

    위험 지점 설명 대표 문제
    기기(Device) 카메라, 센서, 플러그 자체 취약점 기본 계정, 미적용 패치
    공유기(Router) 외부와 내부를 잇는 관문 UPnP, 불필요한 포트 개방
    계정(Account) 앱/클라우드 로그인 정보 비밀번호 재사용, MFA 미설정
    내부망(LAN) 같은 네트워크의 다른 장비 평면망, 세그먼트 미분리

    저는 홈랩에서 이걸 항상 이렇게 설명해요. IoT 전용망을 따로 두고, 메인 PC와 NAS는 멀리 떼어놓는 것. 이게 생각보다 체감 효과가 크거든요. VLAN(브이랜, 가상 LAN)까지 가면 더 좋고, 그게 아직 부담되면 최소한 게스트 네트워크라도 분리해보세요.

    4. 실전 점검 1단계: 우리 집에 뭐가 붙어 있는지부터 확인

    보안 점검은 화려한 장비보다 가시성(Visibility, 무엇이 있는지 아는 것)이 먼저예요. 모르는 기기가 붙어 있으면 방어가 안 되거든요.

    1. 공유기 관리자 화면에서 연결 기기 목록을 확인해보세요.
    2. 기기 이름이 모호하면 MAC 주소와 제조사 정보를 대조합니다.
    3. 사용하지 않는 장비는 Wi-Fi 자격 증명부터 바꿉니다.
    4. 외부 개방 포트와 UPnP 상태를 같이 봐야 해요.

    리눅스 환경이나 홈 서버가 있다면 아래처럼 확인할 수 있어요.

    ip neigh
    nmap -sn 192.168.0.0/24
    sudo ss -tulpn
    

    <code>nmap -sn은 핑 스캔(Ping Scan, 생존 호스트 탐지)이고, ss -tulpn은 현재 열려 있는 소켓을 봅니다. 결과를 해석할 때는 “이 포트가 왜 열려 있지?”를 꼭 묻는 습관이 필요해요. 저도 처음엔 mDNS(multicast DNS, 로컬 장치 자동 발견) 트래픽을 보고 괜히 놀랐었는데, 정상 서비스와 비정상 노출을 구분하는 눈이 생기면 훨씬 편해집니다.

    IoT 기기 보안을 위한 공유기 연결 기기 목록과 포트 점검 이미지

    공유기 연결 목록, 포트 포워딩, UPnP 설정 위치를 설명하는 이미지입니다.

    5. 실전 점검 2단계: 바로 효과 보는 홈 네트워크 보안 설정

    제가 실제로 추천하는 순서는 복잡하지 않아요. 비싼 장비보다 기본기부터 잡는 게 먼저거든요.

    1. 기본 계정 변경: 제조사 기본 ID/PW는 바로 교체해야 해요.
    2. MFA(Multi-Factor Authentication, 다중 인증) 활성화: 클라우드 연동 서비스는 꼭 켜세요.
    3. UPnP 비활성화: 자동 포트 개방은 편하지만 사고가 납니다.
    4. 세그먼트 분리: IoT 전용 SSID 또는 게스트 네트워크를 분리하세요.
    5. 원격 관리 차단: 외부에서 공유기 관리자 페이지 접근은 꺼두는 게 좋아요.
    6. 정기 업데이트: 펌웨어 자동 업데이트가 가능하면 꼭 켜세요.

    예를 들어 방화벽(Firewall, 트래픽 통제 장치)이나 리눅스 라우터를 직접 운영한다면 개념은 이런 식입니다.

    # IoT 대역은 인터넷만 허용하고 내부 주요 자산은 차단하는 예시 개념
    iptables -A FORWARD -s 192.168.50.0/24 -d 192.168.10.0/24 -j DROP
    iptables -A FORWARD -s 192.168.50.0/24 -d 192.168.20.0/24 -j DROP
    iptables -A FORWARD -s 192.168.50.0/24 -p tcp --dport 443 -j ACCEPT
    iptables -A FORWARD -s 192.168.50.0/24 -p udp --dport 53 -j ACCEPT
    

    이건 어디까지나 개념 예시예요. 실제 정책은 DNS, NTP, 앱 연동 주소를 고려해서 조정해야 해요. 처음엔 차단 후 허용 방식이 답답한데, 한 번 틀을 잡아두면 나중엔 진짜 편해집니다.

    구성 파일을 IaC(Infrastructure as Code, 코드형 인프라)처럼 관리한다면 이런 식으로 기록을 남겨두는 것도 좋습니다.

    iot_network:
      subnet: 192.168.50.0/24
      allow_outbound:
        - dns
        - ntp
        - https
      deny_internal_access:
        - 192.168.10.0/24
        - 192.168.20.0/24
      upnp: false
      remote_admin: false
    

    6. ⚠️ 트러블슈팅: 제가 실제로 자주 본 문제들

    경고 포인트는 대체로 비슷해요. 설정은 맞는 것 같은데 기기가 안 붙거나, 앱 연동이 끊기거나, 영상 업로드가 실패하는 경우가 많거든요.

    • 문제 1. IoT 전용망으로 옮기니 앱에서 장비가 안 보임
      원인: 같은 브로드캐스트 도메인(Broadcast Domain, 장치 자동 검색이 도는 네트워크 범위)이 아니어서 자동 발견이 깨진 경우가 많아요.
    • 해결: 초기 등록만 메인망에서 하고, 이후 IoT망으로 이동하거나 mDNS 릴레이가 가능한 장비를 써보세요.
    • 문제 2. 카메라가 갑자기 오프라인으로 보임
      원인: DNS, NTP, HTTPS 중 하나를 과하게 막았을 가능성이 커요.
    • 해결: 먼저 DNS와 시간 동기화부터 열어봐요. 시간 틀어지면 TLS(Transport Layer Security, 암호화 통신) 인증서 검증이 꼬이는 경우가 있거든요.
    • 문제 3. 외부 접속이 안 돼서 포트를 열고 싶어짐
      원인: 편의성 압박이죠. 근데 여기서 많이 무너져요.
    • 해결: 가능하면 VPN(Virtual Private Network, 가상 사설망)으로 우회하세요. 직접 포트 노출은 정말 마지막 수단으로 두는 게 좋아요.

    혹시 이런 경험 있으세요? 분리까지는 했는데 음성 스피커 연동이 꼬이고, 가족들이 불편하다고 해서 다시 합치는 경우 말이에요. 저도 그랬어요. 그래서 제 기준은 “완벽한 제로 트러스트”보다 가족이 유지 가능한 수준의 보안이에요. 현실적으로 굴러가야 하니까요.

    홈 네트워크 보안을 위한 IoT 전용 VLAN 분리 구성 이미지

    메인 네트워크와 IoT 전용 네트워크를 분리한 예시 구성도입니다.

    7. 검증: 설정 후 무엇을 확인해야 안전하다고 볼 수 있을까?

    설정만 해두고 끝내면 아쉬워요. 검증이 있어야 해요.

    1. 공유기에서 UPnP 비활성화 상태를 재확인해보세요.
    2. 포트 포워딩 목록에 불필요한 규칙이 없는지 봐요.
    3. IoT 대역에서 NAS, 메인 PC로 핑이나 관리 포트 접근이 막히는지 확인하세요.
    4. 각 서비스 계정의 MFA 적용 여부를 다시 체크해봐요.
    5. 이상 로그인 알림, 새 장치 로그인 메일을 켜세요.

    간단한 확인 예시는 아래처럼 해볼 수 있어요.

    nmap 192.168.10.20
    nmap 192.168.20.30
    ping 192.168.10.20
    

    IoT 대역 장비에서 위 테스트가 막히거나 제한적으로만 동작하면 의도한 분리가 어느 정도 적용된 거예요. 반대로 NAS 관리 포트나 SSH가 그대로 열리면 아직 평면망에 가깝다고 보셔야 해요.

    그리고 로그를 꼭 봐요. 방화벽 로그든 공유기 보안 로그든, 실제로 써보면 생각보다 많은 스캔과 실패한 로그인 시도가 보여요. 처음엔 좀 무섭거든요. 근데 그걸 보는 순간부터 보안이 추상적인 개념이 아니라 운영 이슈로 바뀌어요. 저는 그때부터 습관이 바뀌더라고요.

    IoT 기기 보안 검증을 위한 방화벽 로그와 차단 결과 대시보드 이미지

    차단 로그, 실패한 접속 시도, 세그먼트 분리 결과를 보여주는 검증용 이미지입니다.

    8. 정리와 FAQ: 개인 정보 보호까지 같이 봐야 합니다

    오늘 사례 연구의 결론은 단순해요. IoT 기기 보안은 장비 스펙보다 운영 습관이 더 중요합니다. Mirai 같은 사례는 기본 비밀번호 하나가 얼마나 큰 문제로 이어질 수 있는지 보여줬고, 가정용 카메라 계정 침해 사례는 개인 정보 보호가 곧 보안이라는 걸 보여줬어요.

    • Q. 비싼 공유기면 안전한가요?
      A. 장비 품질은 도움이 되지만, 기본 계정 방치와 포트 노출을 막아주진 않아요.
    • Q. IoT 기기를 전부 버려야 하나요?
      A. 아니에요. 네트워크 분리, 계정 보호, 업데이트만 제대로 해도 위험을 크게 줄 수 있습니다.
    • Q. 가장 먼저 할 한 가지는 뭔가요?
      A. UPnP를 끄고, 클라우드 계정 MFA를 켜고, 기본 비밀번호를 바꾸는 거예요.

    다음 글에서는 VLAN을 이용한 좀 더 촘촘한 홈 네트워크 보안 구성과, NAS/서버/IoT를 어떻게 나눠야 관리가 쉬운지 실제 홈랩 기준으로 풀어보겠습니다. 이전 글에서 다뤘던 백업 전략과 연결해서 보면 더 이해가 잘 될 거예요.

    IoT 기기 보안 점검 체크리스트와 홈 네트워크 보안 우선순위 요약 이미지

    기본 계정 변경, MFA, 업데이트, 네트워크 분리, 로그 확인 순서로 요약한 이미지입니다.

    마지막으로 한 줄 요약하자면 이거예요. 내 홈 네트워크는 “안전하겠지”가 아니라 “어디까지 노출됐는지 확인했는가”로 판단해야 합니다. 이 차이가 꽤 커요. 직접 점검해보면 생각보다 금방 개선할 수 있어요. 드디어 됐다! 싶은 순간이 오거든요. 그때부터 운영이 훨씬 덜 불안해져요.

  • [HomeLabs] MikroTik 홈랩: VLAN과 방화벽 설정 사례

    [HomeLabs] MikroTik 홈랩: VLAN과 방화벽 설정 사례

    MikroTik 홈랩: VLAN과 방화벽 설정 사례

    MikroTik 홈랩을 조금만 키워도 결국 부딪히는 지점이 있습니다. 처음에는 공유기 하나에 스위치 하나만 붙여도 잘 돌아가지만, 장비와 서비스가 늘어나면 “이 장비를 같은 네트워크에 둬도 되나?”라는 고민이 꼭 생기거든요. 저도 관리용 장비, 서버, IoT, 일반 사용자 PC를 한 네트워크에 몰아넣고 쓰다가 브로드캐스트 트래픽이 늘고, 방화벽 규칙은 꼬이고, 문제 생기면 원인 찾기가 꽤 힘들었습니다. 그래서 MikroTik 홈랩 구조를 다시 짜면서 VLAN 설정과 방화벽 규칙을 정리했는데, 이거 진짜 관리가 훨씬 편해지더라고요.

    이번 글은 이론만 훑는 글이 아니라, 제가 실제로 MikroTik 라우터 기준으로 홈랩 네트워크를 분리하고 보안을 다듬었던 흐름을 정리한 사례입니다. 특히 MikroTik 라우터를 이미 쓰고 있거나, 홈 네트워크 보안을 한 단계 올리고 싶은 분이라면 바로 적용 포인트를 잡는 데 도움이 될 겁니다. 예시는 RouterOS 7 계열 기준으로 봐 주세요.

    MikroTik 홈랩 전체 네트워크 아키텍처 다이어그램

    관리망, 서버망, IoT망, 사용자망으로 분리된 MikroTik 홈랩 전체 구조 예시입니다.

    MikroTik 홈랩에서 VLAN이 왜 중요한가

    쉽게 말해 VLAN(Virtual LAN, 가상 랜)은 물리적으로는 같은 스위치와 케이블을 쓰지만 논리적으로는 다른 네트워크처럼 분리하는 방식입니다. 예를 들어 NAS, Proxmox, 관리용 노트북은 신뢰도가 높은 관리망에 두고, 스마트 플러그나 카메라 같은 IoT 장비는 별도 망으로 빼는 식이죠.

    처음엔 좀 번거로워 보여도, 실제로 나눠 놓으면 장점이 꽤 분명합니다.

    • 보안: IoT 장비에 문제가 생겨도 서버망으로 바로 넘어오기 어렵습니다.
    • 운영 편의성: 장비 성격별로 IP 대역이 나뉘니 장애 범위를 빨리 좁힐 수 있습니다.
    • 정책 적용: VLAN별로 방화벽 규칙, DHCP, DNS 정책을 다르게 줄 수 있습니다.
    • 확장성: 나중에 가상화 서버나 무선 AP를 추가해도 구조가 덜 흔들립니다.

    특히 MikroTik 홈랩에서는 RouterOS가 브리지와 VLAN 필터링을 잘 지원해서, 장비 수가 조금만 늘어나도 체감 차이가 큽니다.

    MikroTik 홈랩 네트워크 구성 사례

    이번 사례는 데이터센터급으로 복잡한 구조는 아니고, 집에서 충분히 따라 할 수 있는 수준입니다. 저는 관리 편의성과 보안 사이에서 균형을 맞추는 방향으로 잡았습니다.

    VLAN 용도 예시 대역 접근 정책
    10 관리망 192.168.10.0/24 라우터 관리, 스위치/AP 관리 허용
    20 서버망 192.168.20.0/24 내부 서비스 운영, 필요한 포트만 허용
    30 IoT망 192.168.30.0/24 인터넷 허용, 내부망 접근 제한
    40 사용자망 192.168.40.0/24 일반 PC/모바일, 서버 일부 접근 허용

    포트 역할은 이렇게 잡았습니다.

    • ether1: WAN(Uplink, 외부 회선 연결)
    • ether2: 관리용 Access 포트
    • ether3: 서버용 Access 포트
    • ether4: IoT용 Access 포트
    • ether5: 무선 AP 또는 관리형 스위치로 가는 Trunk(여러 VLAN 태그를 동시에 전달하는 포트)

    여기서 중요한 포인트는 처음부터 모든 포트를 트렁크로 만들지 않는 것입니다. 홈랩에서는 필요한 포트만 트렁크로 두고, 나머지는 명확하게 Access 포트로 두는 편이 훨씬 덜 헷갈립니다.

    MikroTik 홈랩 VLAN 포트 매핑과 트렁크 구성 이미지

    각 이더넷 포트가 어떤 VLAN에 연결되는지 보여주는 포트 매핑 예시입니다.

    MikroTik 홈랩 VLAN 설정 전에 먼저 정리할 개념

    VLAN 설정에서 많이 헷갈리는 게 Tagged와 Untagged입니다. 저도 여기서 한참 헤맸습니다.

    • Tagged: VLAN 번호 태그를 붙여서 전달합니다. 스위치 간 연결이나 AP 업링크에 주로 씁니다.
    • Untagged: 일반 장비가 그대로 연결되어도 되도록 태그 없이 보냅니다. PC나 프린터 같은 단말 포트에 씁니다.
    • PVID: 포트로 들어오는 언태그드 트래픽을 어느 VLAN에 넣을지 정하는 기본 VLAN ID입니다.

    쉽게 말해, 트렁크 포트는 여러 VLAN 트래픽을 라벨 붙여서 보내는 길이고, 액세스 포트는 한 종류만 받는 문이라고 생각하면 이해가 빠릅니다.

    MikroTik 라우터에서 VLAN 설정하기

    이제 실전입니다. 아래 예시는 RouterOS CLI 기준입니다. 인터페이스 이름과 포트 구성은 장비마다 다를 수 있으니 그대로 붙여 넣기 전에 꼭 확인하세요. 특히 VLAN 필터링은 제일 마지막에 켜는 편이 안전합니다.

    1. 브리지를 만들고, 처음에는 VLAN 필터링을 끈 상태로 구성합니다.
    2. 각 포트를 브리지에 넣고 PVID를 지정합니다.
    3. 브리지 위에 VLAN 인터페이스를 만들고 IP를 할당합니다.
    4. 브리지 VLAN 테이블을 작성합니다.
    5. 마지막에 VLAN 필터링을 켭니다.
    /interface bridge
    add name=br-lan vlan-filtering=no comment="HomeLab bridge"
    
    /interface bridge port
    add bridge=br-lan interface=ether2 pvid=10 comment="Mgmt access"
    add bridge=br-lan interface=ether3 pvid=20 comment="Server access"
    add bridge=br-lan interface=ether4 pvid=30 comment="IoT access"
    add bridge=br-lan interface=ether5 comment="Trunk to AP or managed switch"
    
    /interface vlan
    add interface=br-lan name=vlan10-mgmt vlan-id=10
    add interface=br-lan name=vlan20-server vlan-id=20
    add interface=br-lan name=vlan30-iot vlan-id=30
    add interface=br-lan name=vlan40-user vlan-id=40
    
    /ip address
    add address=192.168.10.1/24 interface=vlan10-mgmt
    add address=192.168.20.1/24 interface=vlan20-server
    add address=192.168.30.1/24 interface=vlan30-iot
    add address=192.168.40.1/24 interface=vlan40-user
    
    /interface bridge vlan
    add bridge=br-lan vlan-ids=10 tagged=br-lan,ether5 untagged=ether2
    add bridge=br-lan vlan-ids=20 tagged=br-lan,ether5 untagged=ether3
    add bridge=br-lan vlan-ids=30 tagged=br-lan,ether5 untagged=ether4
    add bridge=br-lan vlan-ids=40 tagged=br-lan,ether5
    
    /interface bridge
    set br-lan vlan-filtering=yes

    여기서 중요한 건 CPU 포트 역할을 하는 브리지 자체를 tagged에 넣는 것입니다. 이걸 빼먹으면 라우터가 해당 VLAN 트래픽을 제대로 처리하지 못해서, 설정은 맞는 것 같은데 IP도 안 붙고 DHCP도 안 되는 상황이 나올 수 있습니다.

    DHCP까지 같이 구성하려면 이렇게 이어가면 됩니다. RouterOS에서는 DHCP 서버가 기본적으로 비활성 상태로 추가되므로, 예시처럼 disabled=no를 넣어 주는 편이 확실합니다.

    /ip pool
    add name=pool-mgmt ranges=192.168.10.100-192.168.10.199
    add name=pool-server ranges=192.168.20.100-192.168.20.199
    add name=pool-iot ranges=192.168.30.100-192.168.30.199
    add name=pool-user ranges=192.168.40.100-192.168.40.199
    
    /ip dhcp-server
    add name=dhcp-mgmt interface=vlan10-mgmt address-pool=pool-mgmt disabled=no
    add name=dhcp-server interface=vlan20-server address-pool=pool-server disabled=no
    add name=dhcp-iot interface=vlan30-iot address-pool=pool-iot disabled=no
    add name=dhcp-user interface=vlan40-user address-pool=pool-user disabled=no
    
    /ip dhcp-server network
    add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1
    add address=192.168.20.0/24 gateway=192.168.20.1 dns-server=192.168.20.1
    add address=192.168.30.0/24 gateway=192.168.30.1 dns-server=192.168.30.1
    add address=192.168.40.0/24 gateway=192.168.40.1 dns-server=192.168.40.1
    
    /ip dns
    set allow-remote-requests=yes servers=1.1.1.1,8.8.8.8

    여기서 한 가지 더 챙길 부분이 있습니다. DHCP에서 각 VLAN의 게이트웨이 주소를 DNS 서버로 내려줄 거라면, 라우터 자체 DNS 리졸버도 같이 켜줘야 합니다. 이걸 빼먹으면 방화벽은 멀쩡한데 웹 접속만 안 되는 묘한 상황이 생기더라고요.

    MikroTik 라우터 VLAN 설정 작업 장면

    브리지, VLAN 인터페이스, 포트 PVID를 설정하는 실제 구성 흐름을 보여주는 장면입니다.

    MikroTik 홈랩 방화벽 규칙 설계: 막을 건 막고, 열 건 열기

    VLAN만 나눠 놓으면 끝이 아닙니다. 진짜 핵심은 방화벽 규칙입니다. VLAN을 나눠도 라우터가 그 사이를 라우팅해 주기 때문에, 규칙을 안 잡으면 서로 통신이 됩니다. 이 부분이 초보 때 가장 많이 놓치는 포인트였습니다.

    저는 아래 원칙으로 갔습니다.

    • 라우터 자체 관리 접근은 관리망에서만 허용
    • IoT망은 인터넷만 허용하고 내부망 접근은 기본 차단
    • 사용자망은 필요한 서버 서비스만 접근 허용
    • Established/Related 연결은 먼저 허용
    • 마지막에는 명시적 Drop 규칙으로 정리

    그리고 일반적인 가정용 회선이라면 인터넷 연결을 위해 NAT(srcnat/masquerade)도 같이 필요합니다. 이 규칙이 빠지면 VLAN 분리는 됐는데 외부 인터넷이 안 되는 경우가 많습니다.

    /interface list
    add name=WAN
    add name=LAN
    
    /interface list member
    add interface=ether1 list=WAN
    add interface=vlan10-mgmt list=LAN
    add interface=vlan20-server list=LAN
    add interface=vlan30-iot list=LAN
    add interface=vlan40-user list=LAN
    
    /ip firewall address-list
    add list=internal-nets address=10.0.0.0/8
    add list=internal-nets address=172.16.0.0/12
    add list=internal-nets address=192.168.0.0/16
    
    /ip firewall filter
    add chain=input action=accept connection-state=established,related comment="Allow established, related"
    add chain=input action=drop connection-state=invalid comment="Drop invalid"
    add chain=input action=accept protocol=icmp in-interface-list=LAN comment="Allow ICMP from LAN"
    add chain=input action=accept in-interface=vlan10-mgmt src-address=192.168.10.0/24 comment="Allow router management from mgmt VLAN"
    add chain=input action=drop in-interface-list=WAN comment="Drop all input from WAN"
    add chain=input action=drop in-interface-list=LAN comment="Block router access from non-mgmt VLANs"
    
    add chain=forward action=accept connection-state=established,related comment="Allow established, related forward"
    add chain=forward action=drop connection-state=invalid comment="Drop invalid forward"
    add chain=forward action=accept src-address=192.168.10.0/24 comment="Mgmt VLAN full access"
    add chain=forward action=accept src-address=192.168.40.0/24 dst-address=192.168.20.0/24 protocol=tcp dst-port=80,443,22 comment="User VLAN to selected server services"
    add chain=forward action=drop src-address=192.168.30.0/24 dst-address-list=internal-nets comment="Block IoT to internal networks"
    add chain=forward action=accept src-address=192.168.30.0/24 out-interface-list=WAN comment="IoT to internet only"
    add chain=forward action=accept in-interface-list=LAN out-interface-list=WAN comment="Allow LAN to internet"
    add chain=forward action=drop in-interface-list=LAN out-interface-list=LAN comment="Default deny inter-VLAN"
    
    /ip firewall nat
    add chain=srcnat out-interface-list=WAN action=masquerade comment="Home internet NAT"

    여기서 실무적으로 중요한 건 순서입니다. 방화벽 규칙은 위에서 아래로 평가되기 때문에, 허용 규칙보다 Drop을 먼저 올려버리면 열어 둔 줄 알았던 서비스가 전부 막혀 버릴 수 있습니다. 저도 SSH 하나 열겠다고 손봤다가 왜 안 되지 싶어서 한참 들여다본 적이 있습니다.

    추천하는 방화벽 접근 방식

    1. 먼저 Established/Related 허용
    2. 그다음 라우터 자체 보호용 input 규칙 정리
    3. 서비스별 예외 허용 추가
    4. 마지막에 기본 차단(Default Deny)

    이 구조로 가면 나중에 규칙이 늘어나도 덜 망가집니다. MikroTik 홈랩을 오래 굴릴 생각이면 이게 꽤 중요합니다.

    ⚠️ 실제로 겪었던 문제와 해결법

    여기서는 제가 실제로 많이 헷갈렸던 부분만 적어보겠습니다. 문서만 보면 간단해 보이는데, 현장에서는 꼭 한 번씩 걸리더라고요.

    1. VLAN 필터링을 너무 빨리 켠 경우

    증상: 설정하다가 갑자기 접속이 끊깁니다.

    원인: 브리지 VLAN 테이블이 덜 잡힌 상태에서 vlan-filtering=yes를 먼저 켠 경우입니다.

    해결: Safe Mode에서 작업하거나, 콘솔 접속 가능한 상태에서 마지막 단계에 켜는 게 안전합니다.

    2. 트렁크 포트인데 상대 장비가 태그를 못 받는 경우

    증상: AP나 관리형 스위치 뒤쪽 VLAN이 전부 안 뜹니다.

    원인: 반대편 장비 포트가 Access로 되어 있거나 Native VLAN 설정이 다를 때가 많습니다.

    해결: 양쪽 장비에서 Tagged/Untagged 정책을 맞추고, 필요한 경우 관리 VLAN을 따로 지정합니다.

    3. IoT는 막았는데 Chromecast류 장비 검색이 안 되는 경우

    이건 꽤 자연스러운 현상입니다. 멀티캐스트나 브로드캐스트 기반 탐색은 VLAN 경계에서 그대로 끊기는 경우가 많거든요. 그래서 mDNS Repeater나 별도 예외 정책이 필요할 수 있습니다. 저는 보안 우선으로 두고 꼭 필요한 장비만 따로 예외를 넣었습니다.

    4. 방화벽은 맞는데 DNS 때문에 인터넷이 안 되는 경우

    의외로 자주 만납니다. 포워드 규칙은 열었는데 DNS 질의가 막혀 있거나, DHCP에서 DNS를 잘못 내려주면 사용자는 그냥 “인터넷 안 됨”으로 느낍니다. 이럴 땐 핑과 DNS 조회를 분리해서 보는 게 훨씬 빠릅니다.

    5. NAT를 빼먹어서 외부 인터넷이 안 되는 경우

    이것도 많이 나옵니다. 특히 집에서 MikroTik 라우터가 인터넷 경계 장비 역할을 한다면, 일반적으로 masquerade 규칙이 필요합니다. 상위 장비가 각 VLAN 대역으로 되돌아오는 정적 라우트를 알고 있지 않다면 NAT 없이 바로 인터넷이 되긴 어렵습니다.

    MikroTik 홈랩 방화벽 규칙과 트래픽 흐름 시각화

    관리망, 서버망, IoT망 사이에서 허용되는 경로와 차단되는 경로를 한눈에 보여주는 이미지입니다.

    검증 방법과 실제 결과

    설정을 끝냈다면 반드시 검증을 해야 합니다. 저는 보통 아래 순서로 확인합니다.

    1. 각 VLAN 포트에 장비를 하나씩 연결해서 DHCP 주소가 제대로 나오는지 확인
    2. 게이트웨이 핑이 되는지 확인
    3. 인터넷 접근이 필요한 VLAN은 외부 접속 확인
    4. 차단해야 하는 VLAN 간 접근이 실제로 막히는지 확인
    5. 허용해야 하는 서비스 포트만 열리는지 확인
    # 클라이언트 측 점검 예시
    ping 192.168.10.1
    ping 192.168.20.1
    nslookup example.com
    curl http://192.168.20.10
    ssh [email protected]

    제가 이 구조로 옮긴 뒤 가장 크게 느낀 변화는 두 가지였습니다. 첫째, 문제 원인을 찾는 시간이 확실히 줄었습니다. “이 장비는 VLAN 30 IoT망”이라고 딱 정리되어 있으니 문제 범위가 바로 좁혀지더라고요. 둘째, 홈 네트워크 보안이 눈에 띄게 안정됐습니다. 적어도 IoT 장비 하나 이상해졌다고 NAS나 하이퍼바이저까지 바로 노출되는 구조는 아니게 된 거죠.

    물론 단점도 있습니다. VLAN이 늘어나면 규칙 관리가 귀찮아집니다. 다만 초반 설계를 잘해 두면 이 불편은 꽤 줄어듭니다. 주소 대역 규칙, 인터페이스 리스트, Address List를 적극적으로 쓰면 나중에 정말 편합니다.

    정리: MikroTik 라우터로 홈랩을 나눌 때 기억할 것

    • VLAN 분리만으로 끝나지 않습니다. 방화벽 규칙이 같이 가야 진짜 분리입니다.
    • 관리망은 별도로 두는 게 좋습니다. 라우터, 스위치, AP 관리는 한 구역으로 모아 두면 운영이 편합니다.
    • IoT망은 기본 차단이 안전합니다. 필요할 때만 예외를 여는 방식이 덜 위험합니다.
    • 트렁크와 액세스 개념을 명확히 구분해야 합니다. 여기서 대부분 꼬입니다.
    • 인터넷 연결 검증에는 DNS와 NAT까지 같이 봐야 합니다. 이 둘이 빠지면 원인 파악이 더 어려워집니다.

    혹시 지금 MikroTik 홈랩을 운영 중인데 네트워크가 점점 복잡해지고 있다면, 가장 먼저 VLAN 2~3개만 나누는 것부터 시작해 보세요. 한 번 구조가 잡히면 이후에 무선 AP, Proxmox, NAS, 리버스 프록시 같은 요소를 붙일 때 훨씬 편합니다. 다음 글에서는 MikroTik 라우터와 무선 AP를 연동해서 SSID별 VLAN을 태우는 방법도 다뤄볼 예정입니다. 이전 글의 홈랩 IP 설계 원칙 글과 함께 보면 흐름이 더 잘 잡힐 겁니다.

    MikroTik 홈랩 VLAN 분리 전후 비교 인포그래픽

    VLAN과 방화벽 적용 전후의 차이를 요약한 비교 인포그래픽입니다.

    자주 묻는 질문

    Q1. 집에서 VLAN까지 꼭 해야 하나요?

    장비가 5~6대 이하이고 성격이 비슷하면 당장은 아닐 수도 있습니다. 하지만 서버, NAS, CCTV, IoT, 재택근무 PC가 섞이기 시작하면 분리해 두는 게 확실히 편합니다.

    Q2. MikroTik 라우터가 초보자에게 너무 어렵지 않나요?

    솔직히 쉽지는 않습니다. 저도 처음엔 메뉴 구조와 용어 때문에 꽤 헷갈렸습니다. 그래도 한 번 브리지, VLAN, 방화벽 흐름을 이해하면 아주 세밀하게 제어할 수 있다는 장점이 큽니다.

    Q3. 방화벽 규칙은 얼마나 세분화해야 하나요?

    처음에는 너무 잘게 나누지 않는 편이 낫습니다. 관리망 전체 허용, IoT망 인터넷만 허용, 사용자망에서 서버 특정 포트 허용 정도로 시작한 뒤 점진적으로 다듬는 방식이 현실적입니다.

  • [HomeLabs] 오픈소스 방화벽/라우터 구축: pfSense vs OPNsense 비교 및 설치 가이드

    [HomeLabs] 오픈소스 방화벽/라우터 구축: pfSense vs OPNsense 비교 및 설치 가이드

    안녕하세요, 13년차 서버실 지킴이입니다. 오늘은 홈 네트워크 보안과 성능을 한 단계 끌어올릴 수 있는 아주 흥미로운 주제, 바로 오픈소스 방화벽/라우터 구축에 대해 이야기해볼게요. 여러분의 집 네트워크, 혹시 아직도 통신사에서 제공하는 공유기에만 의존하고 계신가요?

    사실 저도 처음엔 ISP(Internet Service Provider) 공유기로 충분하다고 생각했었거든요. 하지만 홈랩(Homelab)을 꾸리고, VPN(Virtual Private Network) 서버도 돌리고, IoT(Internet of Things) 기기들을 분리 관리하고 싶어지면서 홈 네트워크에 대한 갈증이 생기더라고요. 기본적인 NAT(Network Address Translation) 기능만으로는 한계가 명확했거든요.

    이런 고민을 하던 중, 우연히 pfSense와 OPNsense라는 오픈소스 방화벽 솔루션을 접하게 됐어요. 처음엔 “이걸 어떻게 설치하고 관리하지?” 막막했지만, 직접 써보니 기업용 방화벽 못지않은 강력한 기능과 유연성에 깜짝 놀랐습니다. 오늘 이 글에서는 저의 삽질 경험을 바탕으로, 이 두 가지 솔루션을 비교하고 홈 네트워크를 구축하는 과정을 자세히 알려드릴게요. 여러분도 저처럼 진정한 네트워크의 주인이 될 수 있습니다! 🎉

    오픈소스 방화벽을 활용한 홈 네트워크 구성도입니다. 기존 공유기 대신 pfSense/OPNsense가 메인 라우터 역할을 하는 모습을 시각적으로 보여줍니다.

    pfSense와 OPNsense: 오픈소스 방화벽이란?

    pfSense와 OPNsense는 모두 FreeBSD 운영체제를 기반으로 하는 오픈소스 방화벽 및 라우터 소프트웨어거든요. 쉽게 말해, 일반적인 PC나 소형 서버에 이 소프트웨어를 설치하면 강력한 기능을 가진 전용 방화벽 장비로 변신하는 겁니다. 복잡한 홈 네트워크 환경을 구축하거나, 보안을 강화하고 싶을 때 아주 유용해요.

    💡 왜 오픈소스 방화벽을 사용할까요?

    • 비용 효율성 (Cost-Effectiveness): 고가의 상용 방화벽 장비 없이, 기존에 사용하지 않던 PC나 저전력 미니 PC를 활용할 수 있습니다.
    • 강력한 기능 (Powerful Features): 기본적인 방화벽, 라우팅 기능은 물론이고 VPN 서버/클라이언트, VLAN(Virtual Local Area Network), Multi-WAN(다중 회선), IDS/IPS(침입 탐지/방지 시스템) 등 기업용 솔루션에서나 볼 수 있던 기능들을 사용할 수 있거든요.
    • 완전한 제어 (Full Control): 홈 네트워크의 트래픽 흐름을 완벽하게 이해하고 제어할 수 있습니다. 예를 들어, 특정 기기의 인터넷 사용 시간을 제한하거나, 특정 서비스의 외부 접속을 차단하는 등 세밀한 설정이 가능해요.

    그럼 이 둘은 어떤 관계일까요? 사실 OPNsense는 pfSense의 포크(Fork) 프로젝트거든요. 2014년에 pfSense 개발 방향에 대한 이견으로 인해 갈라져 나와 독립적으로 개발되고 있죠. 그래서 기본적인 기능은 비슷하지만, UI/UX나 일부 기능 구현 방식에서 차이가 있습니다.

    pfSense vs OPNsense: 어떤 것을 선택할까?

    제가 직접 두 솔루션을 모두 써본 경험을 바탕으로, 여러분의 환경과 성향에 따라 어떤 것이 더 적합할지 비교해볼게요. 사실 정답은 없고, 개인의 취향과 목적에 따라 달라질 수 있어요.

    항목 pfSense OPNsense
    개발 주체 Netgate (상업적 지원) Decisio (오픈소스 커뮤니티 중심)
    UI/UX 전통적이고 기능 중심적. 다소 올드하게 느껴질 수 있으나 익숙하면 빠름. 현대적이고 직관적인 디자인. 메뉴 구성이 깔끔하고 사용하기 편합니다.
    업데이트 주기 안정성을 중시하며 비교적 느린 편입니다. 빠르고 꾸준한 업데이트. 새로운 기능 도입에 적극적이더라고요.
    기능 오랜 역사만큼 검증된 강력한 기능들. Suricata, OpenVPN 등. pfSense의 기능을 대부분 포함하며, LibreSSL, Sensei (유료 플러그인) 등 차별점 존재.
    커뮤니티 오랜 역사를 가진 거대한 커뮤니티. 자료가 풍부해요. 성장하는 커뮤니티. 포럼 활동이 활발하고 문서화가 잘 되어 있습니다.
    성능 안정성과 성능 최적화에 강점이 있습니다. 최신 기술 적용에 적극적이며, 성능 면에서도 꾸준히 발전하고 있어요.
    개인적 의견 안정성을 최우선하거나, 이미 pfSense에 익숙하다면 추천합니다. 깔끔한 UI와 최신 기능을 선호한다면 추천. 저는 OPNsense에 더 손이 가더라고요.

    결론적으로, 저는 OPNsense의 현대적인 UI와 활발한 업데이트 주기가 마음에 들어서 홈 네트워크 구축에 OPNsense를 주로 사용하고 있습니다. 하지만 pfSense도 여전히 강력한 선택지라는 점은 분명합니다!

    실전 구현: OPNsense 설치 가이드

    자, 이제 직접 OPNsense를 설치해볼 시간입니다. pfSense 설치 과정도 크게 다르지 않으니, 이 가이드를 참고하시면 충분히 따라하실 수 있을 거예요. 저는 주로 OPNsense를 사용하니, OPNsense 기준으로 설명해드릴게요.

    ✅ 준비물

    • 하드웨어: 최소 2개의 LAN 포트(NIC, Network Interface Card)가 있는 PC 또는 미니 PC (WAN 연결용 1개, LAN 연결용 1개). 저는 저전력 J4125 기반의 미니 PC를 사용하고 있거든요.
    • USB 드라이브: 설치용 부팅 USB를 만들 때 사용합니다. (최소 8GB 이상)
    • 모니터 및 키보드: 설치 과정에서 필요합니다.
    • OPNsense ISO 이미지: OPNsense 공식 웹사이트에서 최신 버전을 다운로드합니다.
    • 부팅 USB 생성 툴: 저는 주로 Rufus를 사용하더라고요.

    단계별 설치 과정

    1. OPNsense ISO 다운로드 및 부팅 USB 생성

      공식 웹사이트에서 자신의 하드웨어 아키텍처(대부분 AMD64)에 맞는 ISO 파일을 다운로드합니다. 그리고 Rufus 같은 툴을 이용해 USB에 ISO 파일을 구워 부팅 가능한 USB를 만들어요. 이때 ‘DD Image mode’를 선택하는 것이 좋습니다.

      Rufus를 사용하여 OPNsense ISO 이미지를 USB에 굽는 화면입니다. ‘DD Image mode’ 선택 옵션을 강조합니다.

    2. 설치 미디어로 부팅

      준비된 PC에 부팅 USB를 꽂고, BIOS/UEFI 설정에서 USB로 부팅하도록 순서를 변경합니다. 부팅이 시작되면 OPNsense 로고와 함께 몇 가지 옵션이 나옵니다. 대부분의 경우 기본값인 <code>Boot Multi User를 선택하고 엔터를 누르면 돼요.

    3. 설치 마법사 (Installer) 시작

      콘솔 화면이 나타나면 installer를 입력하고 엔터를 누릅니다. 키보드 레이아웃 설정 (대부분 us.kbd) 후, Guided Installation을 선택하여 진행하면 됩니다.

      Welcome to the OPNsense installer!
      Enter 'installer' to start the installation wizard.
      # installer
      
    4. 디스크 선택 및 파티션 설정

      설치할 디스크를 선택합니다. 경고 메시지가 뜨면 Yes를 선택하여 디스크의 모든 데이터가 지워지는 것을 확인해요. 이후 기본 파티션 설정 (Auto UFS)으로 진행하는 것이 일반적입니다.

    5. 설치 완료 및 재부팅

      설치가 완료되면 USB를 제거하고 재부팅합니다. 재부팅 후 OPNsense 콘솔 화면이 나타나면 설치가 성공적으로 끝난 거예요! 🎉

    초기 네트워크 설정 및 웹 GUI 접속

    이제 설치된 OPNsense에 접속하여 기본적인 홈 네트워크 설정을 해야 합니다. 이 과정에서 삽질을 좀 했었어요. 처음엔 어떤 LAN 포트가 WAN이고 LAN인지 헷갈리더라고요. ⚠️

    1. 인터페이스 할당 (Interface Assignment)

      재부팅 후 콘솔 화면에서 1) Assign Interfaces를 선택합니다. 물리적인 네트워크 인터페이스 (예: igb0, igb1 등)를 WAN과 LAN에 할당해야 해요. 보통 첫 번째 포트가 WAN, 두 번째 포트가 LAN이 됩니다. 저는 igb0을 WAN, igb1을 LAN으로 할당했거든요. 헷갈리시면 케이블을 꽂고 뺐을 때 어떤 인터페이스의 링크 상태가 변하는지 확인해보세요.

      Available interfaces:
      igb0 (up)
      igb1 (up)
      
      Enter the WAN interface name or 'a' for auto-detection: igb0
      Enter the LAN interface name or 'a' for auto-detection: igb1
      Do you want to proceed? [y/N]: y
      
    2. LAN IP 주소 설정

      인터페이스 할당 후, 다시 메인 메뉴로 돌아와 2) Set interface IP address를 선택하고 LAN을 선택합니다. 홈 네트워크에서 사용할 사설 IP 대역 (예: 192.168.1.1/24)을 설정하면 돼요. 저는 192.168.1.1로 설정했습니다.

      Enter the new LAN IPv4 address: 192.168.1.1
      Enter the new LAN IPv4 subnet bit count: 24
      

      이후 DHCP(Dynamic Host Configuration Protocol) 서버를 활성화할지 묻는데, 당장은 N을 선택하고 웹 GUI에서 설정하는 것이 편합니다.

    3. 웹 GUI 접속

      LAN 포트에 연결된 PC에서 웹 브라우저를 열고, 방금 설정한 LAN IP 주소(예: https://192.168.1.1)로 접속하면 돼요. 초기 사용자 이름은 root, 비밀번호는 opnsense입니다. 로그인 후에는 보안을 위해 반드시 비밀번호를 변경하세요!

      OPNsense 웹 관리 인터페이스의 대시보드 초기 화면입니다. 시스템 정보와 네트워크 상태를 한눈에 볼 수 있습니다.

    ⚠️ 주의사항 및 트러블슈팅: 제가 겪었던 문제들

    제가 처음 OPNsense를 설치하고 홈 네트워크를 구축하면서 겪었던 몇 가지 문제와 해결 팁을 공유해볼게요. 여러분은 저처럼 삽질하지 마시라고요! ㅎㅎ

    • NIC 할당 오류: 처음에는 물리적인 포트와 OPNsense에서 인식하는 인터페이스(igb0, igb1 등) 매칭이 어려웠거든요. 해결책은 간단합니다. WAN 포트에만 인터넷 케이블을 연결하고 부팅한 다음, ifconfig 명령어로 어떤 인터페이스가 링크 업(link up)되었는지 확인하면 돼요. 그리고 그 인터페이스를 WAN으로 할당하면 됩니다. LAN 포트도 마찬가지고요.
    • Double NAT 문제: 기존 통신사 공유기 뒤에 OPNsense를 설치하면 Double NAT(이중 NAT)가 발생할 수 있더라고요. 이렇게 되면 외부에서 내부 네트워크로 접속하는 포트 포워딩(Port Forwarding)이 복잡해지거나, 일부 서비스에서 문제가 발생할 수 있습니다. 가능하면 통신사 공유기를 브릿지 모드(Bridge Mode)로 변경하거나, OPNsense를 통신사 모뎀 바로 뒤에 연결하여 메인 라우터로 사용하는 것이 좋아요.
    • 방화벽 규칙 (Firewall Rules): OPNsense는 기본적으로 매우 강력한 방화벽 기능을 제공합니다. 즉, 허용되지 않은 트래픽은 모두 차단하거든요. 처음에는 인터넷이 안 돼서 당황했는데, LAN to WAN 트래픽을 허용하는 기본 규칙이 제대로 적용되었는지 확인해야 합니다. 특정 포트나 서비스가 작동하지 않을 때는 Firewall > Rules에서 해당 트래픽을 허용하는 규칙을 추가해야 해요.
    • 관리자 비밀번호 변경: 초기 비밀번호(opnsense)는 반드시 변경하세요! 홈 네트워크라도 외부 공격에 노출될 수 있으니, 강력한 비밀번호를 설정하는 것이 중요합니다.

    검증 및 활용: 나만의 홈 네트워크 완성!

    이제 기본적인 설치와 설정이 끝났으니, 제대로 작동하는지 확인해볼 차례입니다. 🎉

    1. 인터넷 연결 확인: LAN에 연결된 PC에서 인터넷 접속을 시도해보세요. 웹페이지가 잘 열린다면 성공입니다!
    2. DHCP 서버 활성화: Services > DHCPv4 > [LAN] 메뉴에서 DHCP 서버를 활성화하고, IP 주소 범위(Pool)를 설정하면 홈 네트워크에 연결되는 기기들이 자동으로 IP 주소를 받아갈 수 있어요.
    3. DNS 설정: System > Settings > General에서 DNS 서버를 설정할 수 있습니다. 저는 주로 Cloudflare DNS(1.1.1.1, 1.0.0.1)나 Google DNS(8.8.8.8, 8.8.4.4)를 사용하더라고요.

    여기까지 완료하셨다면, 여러분은 이제 기본적인 라우터 겸 방화벽을 성공적으로 구축하신 거예요! 이젠 단순히 인터넷만 되는 공유기가 아니라, 여러분의 의지대로 트래픽을 제어하고 보안을 강화할 수 있는 강력한 홈 네트워크 장비를 가지게 된 겁니다.

    💡 다음 단계로 나아가기

    OPNsense는 여기서 끝이 아닙니다. 더 많은 기능들을 활용해볼 수 있어요.

    • VPN 서버 구축 (OpenVPN, WireGuard): 외부에서 홈 네트워크로 안전하게 접속할 수 있게 해줍니다.
    • VLAN 설정: IoT 기기나 게스트 네트워크를 분리하여 홈 네트워크 보안을 강화할 수 있습니다.
    • 침입 탐지/방지 시스템 (IDS/IPS): Suricata나 Zenarmor(Sensei) 플러그인을 사용하여 네트워크 위협을 실시간으로 탐지하고 차단해요.
    • Multi-WAN: 두 개 이상의 인터넷 회선을 연결하여 로드 밸런싱(Load Balancing)이나 페일오버(Failover)를 구성할 수 있습니다.

    pfSense와 OPNsense의 핵심 기능을 비교하는 인포그래픽입니다. 각 솔루션의 장점을 시각적으로 보여줍니다.

    마무리하며: 나만의 홈 네트워크, 그 시작점!

    오늘은 오픈소스 방화벽/라우터의 세계, 특히 pfSense와 OPNsense에 대해 깊이 파고들어 봤어요. 처음엔 다소 복잡하게 느껴질 수 있지만, 직접 하나하나 설정해보면서 네트워크가 어떻게 작동하는지 이해하게 되는 과정은 정말 값진 경험이거든요.

    저도 13년차 인프라 엔지니어지만, 홈 네트워크를 구축하면서 새로운 기술을 만날 때마다 여전히 설레고, 가끔은 삽질도 하면서 배우고 있습니다. 여러분도 이번 기회를 통해 나만의 홈 네트워크를 직접 구축하고, 더 안전하고 효율적인 환경을 만들어보시길 강력히 추천합니다.

    다음 글에서는 OPNsense에 VPN 서버를 구축하는 방법에 대해 좀 더 자세히 다뤄볼 예정이니 기대해주세요! 홈 네트워크의 재미는 이제 시작입니다. 궁금한 점이 있다면 언제든지 댓글로 남겨주세요. 제가 아는 선에서 성심성의껏 답변해드리겠습니다! 😊