안녕하세요! 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 "your_email@example.com"
# 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 웹 인터페이스에서 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가지 항목을 요약하고 시각적으로 강조한 인포그래픽입니다.
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의 보안 설정이 강화된 후의 상태를 보여주는 대시보드 또는 주요 보안 설정 활성화 여부를 시각적으로 나타낸 이미지입니다.
💡 마무리하며: 13년차 서버실의 다음 이야기
오늘은 Proxmox VE 보안 강화 체크리스트 10가지를 통해 안전한 가상화 환경을 구축하는 방법을 알아봤습니다. 기본적인 비밀번호부터 시작해서 SSH 보안, 2FA Proxmox, Proxmox 방화벽 설정, 네트워크 세그멘테이션까지, 이 모든 과정이 처음엔 어렵게 느껴질 수 있지만, 하나씩 따라 하다 보면 어느새 튼튼한 서버실을 만들고 있는 자신을 발견할 수 있을 거예요. 이 경험들이 여러분의 인프라 엔지니어링 여정에 큰 도움이 되기를 바랍니다. 다음번에는 Proxmox VE의 백업 전략에 대해 좀 더 깊이 있는 이야기를 나눠볼까 합니다. 그때까지 여러분의 서버실이 안전하길 바랍니다! 궁금한 점이 있다면 언제든지 댓글로 남겨주세요. 저도 함께 고민해드릴게요! 😊
'IT > Proxmox' 카테고리의 다른 글
| [Proxmox] Proxmox VE 8.2 심층 분석: 데이터센터 관리 기능과 주요 개선점 (0) | 2026.06.03 |
|---|---|
| [Proxmox] Proxmox Ceph 스토리지 1년 실사용 후기: 장점, 단점, 비용 분석 (0) | 2026.06.03 |
| [Proxmox] VMware ESXi에서 Proxmox 마이그레이션: 성공적인 전환을 위한 결정 기준과 고려사항 (0) | 2026.06.02 |
| [홈랩] Proxmox OMV 연동: NAS 구축을 위한 최적의 조합 분석 (1) | 2026.05.29 |
| [Proxmox] PCIe 패스스루 오류: vGPU 가상화 실패 디버깅 사례 (0) | 2026.05.28 |
| [Proxmox] ZFS vs Btrfs 비교: Proxmox 홈랩에서의 실측 성능과 데이터 무결성 분석 (1) | 2026.05.28 |