13년차의 서버실

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

[태그:] 네트워크 세그멘테이션

  • [HomeLabs] 홈랩 네트워크 보안 강화: VLAN 기반 망 분리 체크리스트

    [HomeLabs] 홈랩 네트워크 보안 강화: VLAN 기반 망 분리 체크리스트

    홈랩 네트워크 보안 강화: VLAN 기반 망 분리 체크리스트

    안녕하세요, 13년차 서버실을 지키고 있는 인프라 엔지니어입니다. 요즘 홈랩 꾸미는 재미에 푹 빠져 계신 분들 많으시죠? 저도 그렇습니다! 그런데 홈랩이 커지면 커질수록 문득 ‘이대로 괜찮을까?’ 하는 불안감이 엄습할 때가 있더라고요. 특히 스마트 홈 기기들, 서버들, 그리고 개인 노트북과 스마트폰이 모두 같은 네트워크에 뒤섞여 있을 때 말이죠. 만약 IoT 기기 중 하나가 해킹당하면, 우리 집의 모든 소중한 데이터가 위험해질 수도 있겠다는 생각, 혹시 해보셨나요?

    제가 처음 홈랩을 구성했을 때도 그랬습니다. 편리함에만 집중하다 보니 보안은 뒷전이었죠. 그러다 문득 ‘기업 네트워크처럼 내 홈랩도 좀 더 안전하게 만들 수는 없을까?’ 하는 생각이 들더라고요. 그래서 VLAN(Virtual Local Area Network) 기반의 망 분리(Network Segmentation)를 직접 구현해보면서 많은 삽질을 했습니다. 오늘은 그 경험을 바탕으로, 여러분의 홈랩 네트워크 보안을 한층 강화할 수 있는 VLAN 기반 망 분리 체크리스트를 공유해볼까 합니다. 저의 시행착오를 통해 여러분은 좀 더 빠르고 안전하게 홈랩을 구축하시길 바랍니다. 🎉

    홈랩 네트워크 전체 아키텍처 다이어그램, VLAN 기반 망 분리 구성도

    홈랩 네트워크의 전체적인 구성과 VLAN으로 분리된 논리적 망을 보여주는 다이어그램입니다.

    VLAN과 망 분리, 왜 중요할까요?

    우선, 핵심 개념부터 잡고 갈게요. VLAN(Virtual Local Area Network, 가상 근거리 통신망)은 물리적으로는 하나의 스위치에 연결되어 있지만, 논리적으로는 여러 개의 독립적인 네트워크로 분리하는 기술입니다. 쉽게 말해, 한 아파트 건물에 살면서도 각 세대가 별도의 현관문을 가지고 독립적으로 생활하는 것과 비슷하다고 생각하시면 됩니다. 서로 다른 세대끼리는 함부로 드나들 수 없죠? 💡

    그리고 망 분리(Network Segmentation, 네트워크 세그멘테이션)는 이렇게 VLAN을 활용해서 전체 네트워크를 여러 개의 작은 논리적 네트워크로 나누는 작업을 의미합니다. 이게 왜 중요하냐면요:

    • 보안 강화: 만약 IoT 기기 하나가 해킹당하더라도, 해당 VLAN 내에서만 피해가 확산되고 다른 중요한 네트워크(예: 개인 PC가 있는 신뢰 네트워크)로는 침투하기 어려워집니다. Lateral Movement(측면 이동) 공격을 방지하는 데 아주 효과적이죠.
    • 성능 향상: 브로드캐스트 도메인을 분리하여 네트워크 트래픽 부담을 줄이고, 특정 네트워크의 트래픽이 다른 네트워크에 영향을 미치는 것을 최소화합니다.
    • 관리 용이성: 네트워크 정책을 특정 VLAN에만 적용하거나, 문제 발생 시 해당 VLAN만 격리하여 트러블슈팅 시간을 단축할 수 있습니다.

    특히 홈랩 네트워크 보안은 정말 중요하거든요. 외부 인터넷에 항상 노출되어 있고, 다양한 출처의 기기들을 연결하기 때문에 잠재적인 위협이 많거든요. 그래서 저는 망 분리를 ‘필수’라고 생각합니다.

    실전 구현: VLAN 기반 망 분리 체크리스트

    자, 이제 직접 홈랩에 VLAN을 적용해보는 실전 단계입니다. 준비물은 VLAN을 지원하는 매니지드 스위치(Managed Switch)와 VLAN 및 멀티 서브넷을 지원하는 라우터(예: pfSense, OpenWrt, MikroTik RouterOS 등)입니다. 저는 개인적으로 pfSense를 메인 라우터로 쓰고 있어서 이 환경에 맞게 설명드리겠지만, 개념은 대부분의 VLAN 지원 라우터에 적용 가능합니다.

    ✅ 1. 네트워크 설계 및 IP 주소 계획

    가장 먼저 할 일은 어떤 네트워크 존을 만들지, 그리고 각 존에 어떤 VLAN ID와 IP 대역을 할당할지 계획하는 겁니다. 이건 마치 건축 설계를 하는 것과 같아요. 대충 시작하면 나중에 큰코다칩니다. 😅

    • 관리 네트워크 (VLAN 1, 기본): 라우터, 스위치, NAS 등 핵심 인프라 장치 관리용. (예: 192.168.1.0/24)
    • 신뢰 네트워크 (VLAN 10): 개인 PC, 스마트폰 등 주로 사용하는 기기. (예: 192.168.10.0/24)
    • IoT 네트워크 (VLAN 20): 스마트 플러그, 카메라, 센서 등 IoT 기기. (예: 192.168.20.0/24)
    • 게스트 네트워크 (VLAN 30): 방문객을 위한 임시 Wi-Fi. (예: 192.168.30.0/24)

    이런 식으로 논리적인 구획을 나누는 게 첫걸음이에요. 각 VLAN ID는 1부터 4094까지 지정할 수 있는데, 보통 1은 기본 관리 VLAN으로 사용하니 다른 번호부터 시작하는 것이 좋습니다.

    ✅ 2. 라우터 설정: 서브 인터페이스 및 DHCP 서버 구성

    라우터에서 각 VLAN에 대한 서브 인터페이스(Sub-interface)를 생성하고, 해당 VLAN에 맞는 IP 주소와 DHCP 서버를 설정해야 합니다. 라우터가 각 VLAN의 게이트웨이 역할을 하게 되는 거죠.

    1. 라우터 관리 페이지에 접속합니다.
    2. ‘인터페이스(Interfaces)’ 또는 ‘VLAN 설정’ 메뉴로 이동합니다.
    3. 물리적 이더넷 포트(예: LAN 포트)에 대해 각 VLAN ID(예: 10, 20, 30)를 가진 서브 인터페이스를 생성합니다.
    4. 각 서브 인터페이스에 계획했던 IP 주소(예: 192.168.10.1, 192.168.20.1)를 할당합니다.
    5. 각 VLAN 인터페이스에 대한 DHCP 서버를 활성화하고, 해당 대역에서 IP 주소를 할당하도록 설정합니다.

    이 과정이 조금 복잡하게 느껴질 수도 있지만, 대부분의 홈랩용 라우터는 GUI로 쉽게 설정할 수 있게 되어 있습니다. 중요한 건 각 VLAN에 맞는 IP 대역과 게이트웨이를 정확히 설정하는 것입니다.

    ✅ 3. 스위치 설정: VLAN 생성 및 포트 할당

    이제 매니지드 스위치 차례입니다. 스위치에 접속해서 VLAN을 생성하고, 각 포트를 적절한 VLAN에 할당해야 합니다. 여기가 가장 핵심적인 부분 중 하나입니다.

    
    # 스위치에 로그인 후 전역 설정 모드로 진입 (장치에 따라 명령어 상이)
    configure terminal
    
    # VLAN 10 생성 및 이름 지정 (신뢰 네트워크용)
    vlan 10
     name TRUSTED_NETWORK
     exit
    
    # VLAN 20 생성 및 이름 지정 (IoT 네트워크용)
    vlan 20
     name IOT_NETWORK
     exit
    
    # VLAN 30 생성 및 이름 지정 (게스트 네트워크용)
    vlan 30
     name GUEST_NETWORK
     exit
    
    # 포트 1번을 VLAN 10 (신뢰)의 Access 포트로 설정
    # 여기에 개인 PC, Wi-Fi AP 등을 연결합니다.
    interface GigabitEthernet0/1
     switchport mode access
     switchport access vlan 10
     exit
    
    # 포트 5번을 VLAN 20 (IoT)의 Access 포트로 설정
    # 여기에 IoT 기기들을 연결합니다.
    interface GigabitEthernet0/5
     switchport mode access
     switchport access vlan 20
     exit
    
    # 포트 10번을 VLAN 30 (게스트)의 Access 포트로 설정
    # 게스트용 Wi-Fi AP 등을 여기에 연결할 수 있습니다.
    interface GigabitEthernet0/10
     switchport mode access
     switchport access vlan 30
     exit
    
    # 라우터와 연결될 포트 (예: 24번 포트)를 Trunk 모드로 설정
    # 모든 VLAN 트래픽이 이 포트를 통해 라우터로 전달됩니다.
    interface GigabitEthernet0/24
     switchport mode trunk
     switchport trunk allowed vlan 10,20,30
     # 혹은 모든 VLAN 허용: switchport trunk allowed vlan all
     exit
    
    # 설정 저장 (장치에 따라 명령어 상이: copy running-config startup-config, write memory 등)
    write memory
    end
    

    여기서 중요한 건 Access Port(액세스 포트)와 Trunk Port(트렁크 포트)의 개념입니다. Access Port는 특정 하나의 VLAN에만 속하는 포트로, 일반적인 종단 장치(PC, IoT 기기 등)를 연결할 때 사용합니다. 반면 Trunk Port는 여러 VLAN의 트래픽을 동시에 전달할 수 있는 포트로, 주로 라우터나 다른 스위치와 연결할 때 사용합니다. 라우터와 연결되는 포트는 반드시 Trunk 모드로 설정해야 합니다. ⚠️

    매니지드 스위치 VLAN 설정 및 포트 할당 완료 화면

    매니지드 스위치에서 각 VLAN을 생성하고 포트를 할당하는 설정 화면입니다.

    ✅ 4. 방화벽 규칙 설정: VLAN 간 통신 정책 정의

    마지막이자 가장 중요한 단계입니다. 라우터의 방화벽에서 각 VLAN 간의 통신 정책을 정의해야 합니다. VLAN으로 망 분리를 해놨다고 해서 끝이 아닙니다. 필요한 통신은 허용하고, 불필요한 통신은 엄격히 차단해야 진정한 보안 강화가 이루어집니다.

    기본적으로 라우터는 다른 서브넷 간의 통신을 허용하지만, VLAN을 분리한 목적이 보안 강화이므로 명시적으로 차단 규칙을 먼저 적용하고, 필요한 것만 허용하는 ‘Deny All, Allow Exception (기본 차단, 예외 허용)’ 정책을 사용하는 것이 좋습니다.

    예를 들어:

    • IoT 네트워크 ➡️ 신뢰 네트워크: 🚫 차단 (가장 중요!)
    • 신뢰 네트워크 ➡️ IoT 네트워크: ✅ 허용 (스마트폰으로 IoT 기기 제어 등)
    • 게스트 네트워크 ➡️ 모든 내부 네트워크: 🚫 차단 (오직 인터넷만 허용)
    • 모든 내부 네트워크 ➡️ 관리 네트워크: 🚫 차단, 단 관리 PC ➡️ 관리 네트워크는 ✅ 허용

    이 규칙들을 라우터의 방화벽 설정(예: pfSense의 Firewall Rules, OpenWrt의 Firewall Zones)에서 적용하면 됩니다. 처음엔 이 방화벽 규칙 때문에 삽질을 많이 했었는데, ‘어떤 트래픽이 어떤 방향으로 가야 하는가’를 명확히 정의하는 것이 핵심이더라고요. 하나씩 꼼꼼히 따져봐야 합니다.

    ⚠️ 주의사항 및 트러블슈팅 팁

    제가 직접 겪었던 문제들과 해결 팁을 공유해드릴게요. 아마 여러분도 비슷한 상황을 겪을 수 있을 겁니다.

    1. IP 주소를 못 받아와요! (DHCP 문제)
      라우터에서 해당 VLAN 인터페이스에 대한 DHCP 서버가 제대로 활성화되어 있는지, IP 풀(Pool) 범위는 올바른지 확인하세요. 스위치의 포트가 Access 모드로 잘 설정되어 있는지, VLAN ID가 정확한지 다시 한번 체크해봐야 합니다.
    2. 특정 VLAN끼리 통신이 안 돼요! (방화벽 문제)
      가장 흔한 문제입니다. 라우터의 방화벽 규칙을 다시 확인하세요. 기본적으로 VLAN 간 통신은 차단될 수 있으니, 필요한 통신은 명시적으로 ‘허용(Allow)’ 규칙을 추가해야 합니다. 로그를 확인하면 어떤 트래픽이 차단되는지 알 수 있습니다.
    3. VLAN 태그가 안 먹어요! (Trunk/Access 포트 설정 오류)
      라우터와 스위치를 연결하는 포트가 Trunk 모드로 설정되었는지, 그리고 허용된 VLAN 목록이 정확한지 확인해야 합니다. 일반 장치를 연결하는 포트는 Access 모드여야 하고, 할당된 VLAN ID가 정확한지 보세요. 태그가 없는(Untagged) 트래픽과 태그가 있는(Tagged) 트래픽의 개념을 이해하는 게 중요합니다.

    ✅ 검증: 제대로 작동하는지 확인하기

    모든 설정을 마쳤다면, 이제 제대로 작동하는지 확인해야겠죠? 저는 주로 다음 방법들을 사용합니다.

    
    # 1. 클라이언트 장치에서 IP 주소 확인
    # VLAN이 잘 적용되었다면, 해당 VLAN에 맞는 IP 대역을 받을 겁니다.
    # 예: IoT 기기는 192.168.20.x 대역을 받아야 합니다.
    ip addr show
    
    # 예시 출력 (enp0s31f6.20은 VLAN 20 인터페이스)
    # ...
    # 3: enp0s31f6.20@enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    #     link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
    #     inet 192.168.20.50/24 brd 192.168.20.255 scope global dynamic enp0s31f6.20
    #        valid_lft 3599sec preferred_lft 3599sec
    # ...
    
    # 2. 다른 VLAN 대역의 장치로 Ping 테스트
    # 차단되어야 하는 네트워크로는 ping이 가지 않아야 합니다.
    # 예: IoT 네트워크에서 신뢰 네트워크 장치(192.168.10.10)로 Ping 시도 시 실패 예상
    ping 192.168.10.10
    
    # 예: IoT 네트워크에서 IoT 게이트웨이(192.168.20.1)로 Ping 시도 시 성공 예상
    ping 192.168.20.1
    
    # 3. 라우터의 방화벽 로그 확인
    # 라우터 관리 페이지에서 방화벽 로그를 확인하여 차단된 트래픽이 올바른지 검증합니다.
    # 예상치 못한 차단이나, 허용되어야 할 트래픽이 차단되는 경우 규칙을 조정해야 합니다.
    

    이런 테스트를 통해 각 VLAN이 의도한 대로 분리되었고, 방화벽 규칙도 제대로 작동하는지 확인할 수 있습니다. 저는 이 과정을 여러 번 반복하면서 ‘드디어 됐다!’ 하고 외쳤던 기억이 나네요. 🎉

    VLAN별 네트워크 트래픽 및 방화벽 차단 로그 모니터링 대시보드

    VLAN별 트래픽 흐름이나 방화벽 차단 로그를 보여주는 모니터링 대시보드 예시입니다.

    마무리하며: 홈랩 네트워크 보안은 선택이 아닌 필수!

    지금까지 홈랩 네트워크 보안을 강화하기 위한 VLAN 기반 망 분리 체크리스트를 자세히 살펴봤습니다. 13년차 인프라 엔지니어로서 제가 수많은 삽질 끝에 얻은 결론은, ‘홈랩 네트워크 보안은 이제 선택이 아닌 필수’라는 겁니다. 특히 IoT 기기들이 늘어나면서 보안 위협도 기하급수적으로 증가하고 있거든요.

    어떤 홈랩 환경이든, 최소한 ‘신뢰 네트워크’와 ‘IoT/게스트 네트워크’는 반드시 분리하는 것을 강력히 권장합니다. 저처럼 처음부터 완벽하게 모든 것을 나누기 어렵다면, 가장 취약하다고 생각되는 부분부터 점진적으로 분리해나가는 것도 좋은 방법입니다. VLAN 설정은 한 번 해두면 두고두고 든든한 방어막이 되어줄 겁니다.

    네트워크 존 (VLAN ID) 설명 주요 연결 장치 보안 정책 (라우터 방화벽)
    관리 네트워크 (VLAN 1) 라우터, 스위치, NAS 등 핵심 인프라 장치 관리용. 관리 PC, NAS, 서버 모든 내부 네트워크 접근 허용, 외부 접근 엄격히 제한
    신뢰 네트워크 (VLAN 10) 주로 사용하는 PC, 스마트폰 등 개인 기기. 인터넷 접근 허용. 개인 PC, 스마트폰, 태블릿 외부 인터넷 및 관리 네트워크 접근 허용, IoT/게스트 네트워크 접근 차단
    IoT 네트워크 (VLAN 20) 스마트 플러그, 전구, 로봇 청소기 등 IoT 기기. 스마트 플러그, 카메라, 센서 외부 인터넷 제한적 허용 (필요한 서버만), 신뢰/관리 네트워크 접근 차단
    게스트 네트워크 (VLAN 30) 방문객을 위한 임시 네트워크. 방문객 스마트폰, 노트북 외부 인터넷만 허용, 모든 내부 네트워크 접근 차단
    VLAN 기반 망 분리 이점 및 핵심 단계 요약 인포그래픽

    VLAN 기반 망 분리의 주요 이점과 핵심 설정 단계를 한눈에 볼 수 있는 요약 정보입니다.

    다음번에는 이렇게 분리된 네트워크에 침입 탐지 시스템(IDS/IPS)을 어떻게 적용해서 보안을 한층 더 고도화할 수 있는지, 제가 직접 구축한 경험을 바탕으로 이야기해보는 시간을 가져볼까 합니다. 궁금하시다면 다음 글도 기대해주세요! 그럼 오늘도 안전하고 즐거운 홈랩 생활 되시길 바랍니다. 😊

  • [Proxmox] Proxmox VE 보안 강화 체크리스트 10가지: 안전한 가상화 환경 구축

    [Proxmox] Proxmox VE 보안 강화 체크리스트 10가지: 안전한 가상화 환경 구축

    안녕하세요! 13년차 인프라 엔지니어, 13년차의 서버실 운영자입니다. 오늘은 제가 홈랩(Homelab)에서 Proxmox VE를 운영하면서 겪었던 일들과 함께, 여러분의 소중한 가상화 환경을 더욱 안전하게 보호할 수 있는 Proxmox 보안 강화 체크리스트 10가지를 공유해볼까 합니다. 사실 처음엔 저도 ‘내 개인 서버인데 뭐 그렇게까지 해야 하나?’ 싶었거든요. 근데 한번 호되게 당하고 나서는 생각이 싹 바뀌었습니다. 인터넷에 연결된 모든 시스템은 잠재적인 공격 대상이 될 수 있다는 걸 뼈저리게 느꼈죠. 이 글을 통해 여러분은 저처럼 삽질하지 마시고, 처음부터 튼튼한 Proxmox VE 환경을 구축하시길 바랍니다. 이 체크리스트만 따라 해도 웬만한 위협에서는 훨씬 안전해질 거예요! 자, 그럼 시작해볼까요? 🎉

    Proxmox VE의 구성 요소와 각 영역에 적용될 보안 조치들을 시각적으로 보여주는 다이어그램입니다.

    1. 강력한 관리자 비밀번호와 SSH 키 인증 ✅

    보안의 가장 기본은 뭐니 뭐니 해도 비밀번호거든요. Proxmox VE 설치 시 설정하는 root 계정 비밀번호는 물론, 추가로 생성하는 모든 사용자 계정 비밀번호는 길고 복잡하게 만들어야 합니다. 숫자, 특수문자, 대소문자를 섞어서 최소 12자리 이상이죠. 저는 보통 16자리 이상으로 만듭니다.

    그리고 SSH(Secure Shell) 접속 시에는 비밀번호 인증 대신 SSH 키 인증(SSH Key Authentication)을 사용하는 게 훨씬 안전해요. 비밀번호는 무작위 대입 공격(Brute-force attack)에 취약하거든요. 제가 직접 해보니 키 인증 한 번 설정해두면 훨씬 편하고 안전하더라고요. 처음엔 좀 번거롭지만, 한 번 해두면 두고두고 안심입니다.

    # 1. SSH 키 생성 (클라이언트 PC에서 실행)
    ssh-keygen -t rsa -b 4096 -C "[email protected]"
    
    # 2. Proxmox VE 서버로 공개 키 복사
    ssh-copy-id -i ~/.ssh/id_rsa.pub root@your_proxmox_ip
    
    # 3. 비밀번호 없이 SSH 접속 확인
    ssh root@your_proxmox_ip

    이렇게 하면 다음부터는 비밀번호 입력 없이 SSH에 접속할 수 있습니다. 💡 팁: ssh-agent를 활용하면 키 비밀번호(passphrase)도 한 번만 입력해도 되더라고요.

    2. Proxmox VE 웹 UI 2단계 인증 (2FA) 🛡️

    Proxmox VE의 웹 관리 UI는 모든 설정의 핵심이거든요. 이곳이 뚫리면 모든 게 끝장입니다. 그래서 2단계 인증(Two-Factor Authentication, 2FA)은 선택이 아닌 필수죠. 구글 OTP(Google Authenticator) 같은 TOTP(Time-based One-Time Password) 앱을 연동해서 로그인할 때마다 일회용 코드를 입력하게 하는 거예요.

    제가 직접 설정해보니 생각보다 간단하더라고요. Proxmox VE 웹 UI에 로그인해서 [Datacenter] > [Permissions] > [Users]로 가서 여러분의 사용자 계정을 선택한 다음, [TFA] 탭에서 [Add] > [TOTP Factor]를 선택하면 됩니다. 그러면 QR 코드가 나오는데, 이걸 OTP 앱으로 스캔하면 끝! 로그인할 때 아이디/비밀번호 입력 후 OTP 코드를 한 번 더 입력하게 됩니다.

    Proxmox VE 웹 UI 2단계 인증 (TOTP) 설정 화면

    Proxmox VE 웹 인터페이스에서 TOTP(Time-based One-Time Password) 2단계 인증을 활성화하는 과정을 보여주는 스크린샷입니다.

    3. SSH 기본 설정 강화 🔒

    앞서 SSH 키 인증을 설정했다면, 이제 sshd 설정을 강화할 차례예요. 기본 설정을 그대로 두면 보안에 취약할 수 있거든요. 특히 root 계정으로 바로 로그인하는 것을 막고, 비밀번호 인증도 비활성화하는 것이 좋습니다. 저는 이 설정을 안 했다가 한동안 SSH 무작위 대입 공격 시도 로그를 보면서 식겁했던 경험이 있습니다. ㅎㅎ

    # Proxmox VE 서버에서 실행
    
    # 1. SSH 설정 파일 백업 (중요!)
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    
    # 2. 설정 파일 수정
    nano /etc/ssh/sshd_config
    
    # 다음 라인들을 찾아서 수정하거나 추가합니다.
    # PermitRootLogin no             # root 계정 직접 로그인 금지
    # PasswordAuthentication no      # 비밀번호 인증 비활성화 (키 인증 필수)
    # Port 2222                      # SSH 기본 포트 22번 대신 다른 포트 사용 (예: 2222)
    
    # 3. SSH 서비스 재시작
    systemctl restart sshd

    ⚠️ 주의사항: PermitRootLogin no와 PasswordAuthentication no를 설정하기 전에, 반드시 일반 사용자 계정을 만들고 SSH 키 인증으로 로그인 가능한지 확인해야 합니다. 안 그러면 서버에 접속하지 못하는 불상사가 발생할 수 있거든요! 저도 한 번 실수로 root 계정으로만 접속 가능한 상태에서 이 설정을 했다가 콘솔에 매달려야 했던 적이 있습니다… 😅

    4. Proxmox VE 내장 방화벽 활용 🔥

    Proxmox VE는 자체적으로 방화벽(Firewall) 기능을 제공하는데, 정말 강력해요. 호스트 레벨과 VM(Virtual Machine)/컨테이너(Container) 레벨 모두에서 네트워크 보안(Network Security)을 구현할 수 있거든요. Ingress(인그레스, 외부에서 내부로 들어오는 트래픽)와 Egress(이그레스, 내부에서 외부로 나가는 트래픽) 규칙을 세밀하게 제어할 수 있습니다.

    제가 홈랩에서 가장 먼저 하는 일 중 하나가 바로 이 방화벽 설정입니다. 불필요한 포트는 모두 막아두고, 필요한 포트(예: Proxmox 웹 UI 8006, SSH 변경 포트)만 열어두는 거죠. VM마다 다른 보안 정책을 적용할 수 있어서 정말 유용하더라고요.

    # Proxmox VE 호스트 레벨 방화벽 활성화
    pve-firewall start
    pve-firewall enable
    
    # 방화벽 규칙 설정은 Web UI를 권장합니다:
    # [Datacenter] > [Firewall] 또는 [Node] > [Firewall]
    # [VM/Container] > [Firewall]

    이건 Proxmox VE의 꽃 같은 기능이라고 생각합니다. 네트워크 세그멘테이션과 함께 사용하면 시너지가 정말 엄청나거든요!

    5. 네트워크 세그멘테이션 🌐

    네트워크 세그멘테이션(Network Segmentation)은 물리적 또는 가상적으로 네트워크를 여러 개의 작은 구역으로 나누는 것을 의미해요. 예를 들어, Proxmox VE 관리용 네트워크, VM 서비스용 네트워크, 스토리지용 네트워크 등을 분리하는 거죠. 이렇게 하면 한 구역이 뚫려도 다른 구역으로의 확산을 막을 수 있습니다.

    저는 보통 물리적 네트워크 인터페이스 카드(NIC)를 여러 개 사용하거나, VLAN(Virtual Local Area Network)을 활용해서 네트워크를 나눕니다. 관리 네트워크는 외부 인터넷과 직접 연결되지 않도록 하고, VM 서비스 네트워크만 필요한 포트만 열어두죠. 처음엔 귀찮아서 한데 뭉쳐놨었는데, 나중에 문제가 생겼을 때 트러블슈팅도 훨씬 어렵고, 보안적으로도 너무 취약하더라고요. 그래서 지금은 무조건 나누는 걸 원칙으로 합니다.

    Proxmox VE에서는 vmbr0, vmbr1 등 리눅스 브릿지(Linux Bridge)를 활용해서 가상 네트워크를 구성해요. 물리 NIC와 연결하거나, VLAN 태그를 지정할 수 있죠.

    6. Proxmox VE 시스템 최신 유지 🔄

    소프트웨어는 항상 최신 상태로 유지하는 게 중요합니다. Proxmox VE도 마찬가지거든요. 개발팀은 지속적으로 보안 취약점을 패치하고 새로운 기능을 추가하니까요. 오래된 버전은 알려진 취약점에 노출될 위험이 크거든요.

    저는 정기적으로 업데이트를 확인하고 적용하는 루틴을 가지고 있습니다. 한 달에 한 번 정도는 꼭 확인해서 업데이트를 진행하죠. 물론 업데이트 전에 백업은 필수예요! 업데이트하다가 예기치 않은 문제가 생길 수도 있거든요. 이 부분은 제가 나중에 백업 관련 글로 자세히 다룰 예정입니다.

    # Proxmox VE 업데이트
    apt update
    apt dist-upgrade
    
    # 재부팅이 필요한 경우 (커널 업데이트 등)
    reboot

    apt dist-upgrade는 새로운 커널이나 주요 패키지 업데이트를 포함하므로, 항상 변경 내용을 확인하고 신중하게 진행해야 합니다. 특히 프로덕션 환경이라면 더더욱 그렇고요!

    7. 백업 및 복구 전략 보안 💾

    아무리 보안을 잘해도 사고는 언제든 일어날 수 있어요. 랜섬웨어 공격, 하드웨어 고장, 실수로 인한 데이터 손실 등 다양한 위협으로부터 데이터를 보호하기 위해 백업은 필수입니다. 그리고 이 백업 데이터 자체도 안전하게 관리해야 합니다.

    저는 Proxmox Backup Server (PBS)를 활용해서 백업을 하더라고요. PBS는 효율적인 증분 백업(Incremental Backup)과 중복 제거(Deduplication)는 물론, 백업 암호화(Backup Encryption) 기능까지 제공해서 데이터를 안전하게 보관할 수 있게 해줍니다. 백업 데이터를 외부(Off-site) 스토리지에 보관하는 것도 중요해요. 물리적으로 다른 위치에 두는 거죠.

    그리고 백업이 잘 되는지 주기적으로 복구 테스트를 해보는 것도 정말 중요합니다. 백업만 있고 복구가 안 되면 아무 소용 없잖아요? 제가 예전에 백업은 잘 했는데, 복구 테스트를 안 했다가 막상 필요할 때 복구가 안 돼서 식은땀 흘렸던 적이 있어요… 😅

    Proxmox VE 보안 강화 체크리스트 10가지 요약 인포그래픽

    Proxmox VE 보안 강화의 핵심 10가지 항목을 요약하고 시각적으로 강조한 인포그래픽입니다.

    8. 사용자 및 권한 관리 (RBAC) 👥

    Proxmox VE는 역할 기반 접근 제어(Role-Based Access Control, RBAC)를 지원해요. 관리자 계정 하나로 모든 걸 다 하는 것보다는, 필요한 최소한의 권한만 부여하는 최소 권한 원칙(Principle of Least Privilege)을 지키는 게 중요합니다. 예를 들어, VM만 관리하는 사용자에게는 스토리지나 네트워크 설정 권한을 주지 않는 거죠.

    Proxmox VE 웹 UI에서 [Datacenter] > [Permissions]로 들어가면 사용자(Users), 그룹(Groups), 역할(Roles)을 정의할 수 있습니다. 처음엔 좀 복잡하게 느껴질 수도 있지만, 익숙해지면 훨씬 체계적으로 관리할 수 있더라고요.

    저도 처음엔 그냥 root 계정 하나로 모든 걸 했다가, 실수로 중요한 설정을 건드릴 뻔한 적이 여러 번 있습니다. 그때마다 ‘아, 이러면 안 되겠구나’ 싶어서 권한을 쪼개기 시작했죠. 특히 여러 사람이 함께 Proxmox VE를 관리하는 환경이라면 이 기능은 정말 필수예요.

    9. 불필요한 서비스 비활성화 🛑

    운영체제에는 기본적으로 다양한 서비스(Daemon)들이 설치되어 있어요. 이 중에는 Proxmox VE 운영에 반드시 필요하지 않거나, 사용하지 않는 서비스들도 있을 수 있습니다. 불필요한 서비스를 비활성화하면 공격 표면(Attack Surface)을 줄이고 시스템 자원을 절약할 수 있거든요.

    예를 들어, Proxmox VE를 설치하면 apt-cacher-ng 서비스가 자동으로 설치되는 경우가 있는데, 만약 여러 대의 Proxmox 서버를 운영하는 환경이 아니라면 굳이 필요 없을 수 있습니다. 이런 서비스들을 확인하고 비활성화하는 것이 좋아요.

    # 현재 실행 중인 서비스 목록 확인
    systemctl list-units --type=service --state=running
    
    # 특정 서비스 비활성화 (예시: apt-cacher-ng)
    systemctl stop apt-cacher-ng
    systemctl disable apt-cacher-ng

    ⚠️ 경고: 어떤 서비스가 시스템에 필요한지 확실히 모른다면 섣불리 비활성화하지 마세요. 잘못하면 시스템이 부팅되지 않거나 정상적으로 작동하지 않을 수 있거든요. Proxmox 관련 핵심 서비스는 절대 건드리면 안 됩니다!

    10. 정기적인 보안 감사 및 모니터링 🔍

    마지막으로, 모든 보안 설정이 잘 작동하는지 정기적으로 확인하고 모니터링하는 게 정말 중요합니다. 시스템 로그를 확인하고, 이상 징후는 없는지 살펴보는 거죠. fail2ban 같은 도구를 사용하면 SSH 무작위 대입 공격 시도를 자동으로 차단하는 데 큰 도움이 됩니다.

    저는 journalctl 명령어를 자주 사용해서 로그를 살펴봐요. 특히 SSH 접속 시도 로그나 방화벽 차단 로그 같은 것들이죠. 처음엔 그냥 지나쳤는데, 자세히 보니 수상한 IP에서 계속 접속 시도가 있더라고요. 그때부터 fail2ban을 설치해서 사용하기 시작했습니다. 이거 진짜 편하더라고요!

    # 최근 로그 확인
    journalctl -f
    
    # fail2ban 설치 및 설정
    apt install fail2ban
    cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    nano /etc/fail2ban/jail.local
    # [sshd] 섹션에서 enabled = true 로 변경하거나 원하는 설정 적용
    systemctl enable fail2ban
    systemctl start fail2ban

    ⚠️ 삽질 경험과 해결 과정

    솔직히 이 모든 과정을 한 번에 완벽하게 해내기란 쉽지 않습니다. 저도 여러 번 삽질 좀 했거든요. 특히 SSH 설정을 강화하다가 제 발등을 찍었던 적이 많아요. PermitRootLogin no와 PasswordAuthentication no를 설정하고 sshd를 재시작했는데, 그만 SSH 키 인증이 제대로 안 되어 있어서 서버에 접속하지 못했던 거죠. 다행히 Proxmox VE는 콘솔 접속(Keyboard & Monitor)이 가능해서 직접 가서 복구했습니다만… 원격으로만 관리하는 서버였다면 정말 큰일 날 뻔했어요.

    이런 경험을 통해 배운 건, ‘변경 전에 항상 백업하고, 변경 후에는 반드시 검증하라’는 거예요. 특히 원격 접속 설정은 더더욱 신중해야 합니다. 콘솔 접속이 불가능한 환경이라면 ‘Rollback Plan(롤백 계획)’을 미리 세워두는 것이 좋아요.

    🎉 안전한 Proxmox 환경, 직접 확인해보니

    위에 언급된 체크리스트를 하나씩 적용하고 나면, 여러분의 Proxmox VE 환경은 훨씬 견고해질 겁니다. SSH 포트가 바뀌고, 키 인증으로만 접속되며, 웹 UI는 2단계 인증을 거쳐야만 들어갈 수 있게 되죠. 방화벽 덕분에 불필요한 트래픽은 차단되고, 시스템은 항상 최신 상태를 유지하게 됩니다. 이런 변화들을 직접 체감하면 정말 뿌듯하더라고요!

    각 설정이 제대로 적용되었는지 확인하는 것도 중요합니다. 예를 들어, SSH 포트 변경은 netstat -tuln | grep <새로운 포트> 명령어로 확인할 수 있고, 방화벽 규칙은 Proxmox VE 웹 UI의 [Datacenter] > [Firewall] 섹션에서 확인할 수 있어요.

    보안 강화 설정이 완료된 Proxmox VE 환경 대시보드

    Proxmox VE의 보안 설정이 강화된 후의 상태를 보여주는 대시보드 또는 주요 보안 설정 활성화 여부를 시각적으로 나타낸 이미지입니다.

    💡 마무리하며: 13년차 서버실의 다음 이야기

    오늘은 Proxmox VE 보안 강화 체크리스트 10가지를 통해 안전한 가상화 환경을 구축하는 방법을 알아봤습니다. 기본적인 비밀번호부터 시작해서 SSH 보안, 2FA Proxmox, Proxmox 방화벽 설정, 네트워크 세그멘테이션까지, 이 모든 과정이 처음엔 어렵게 느껴질 수 있지만, 하나씩 따라 하다 보면 어느새 튼튼한 서버실을 만들고 있는 자신을 발견할 수 있을 거예요. 이 경험들이 여러분의 인프라 엔지니어링 여정에 큰 도움이 되기를 바랍니다. 다음번에는 Proxmox VE의 백업 전략에 대해 좀 더 깊이 있는 이야기를 나눠볼까 합니다. 그때까지 여러분의 서버실이 안전하길 바랍니다! 궁금한 점이 있다면 언제든지 댓글로 남겨주세요. 저도 함께 고민해드릴게요! 😊