[Kubernetes] Kubernetes 미니홈서버 구축해 보기 - 6 - Proxmox 방화벽 점검해 보기
보안담당자는 경호원 같은 것이라 생각합니다.
없으면 중요한 것들을 지킬 수 없습니다.
따라서 방화벽 및 보안 설정등은 꼭 여러 번 점검해야 하는 내용이고
필요에 따라서 주기적으로 점검해줘야 합니다.
```
[k8s] Kubernetes 미니홈서버 구축해 보기 - 6 - Proxmox 방화벽 점검해 보기
```
이번 글을 통해 배워갈 내용
- DMZ 네트워크
- Proxmox Firewall 간단 설명
- 현 상황
- Proxmox Firewall 간단 세팅
- 결론 및 기타 보안 관련 몇 자 끄적여봅니다
1. DMZ 네트워크
DMZ는 외부에 공개할 서비스를 위한 별도의 작은 네트워크입니다.
외부에서 접근 가능하지만,
내부의 중요한 네트워크는 보호합니다.
쉽게 말해, 외부 장치는 DMZ와만 소통할 수 있고, 내부 네트워크에는 절대 못 들어옵니다.
여기서 로컬 네트워크는 안전한 곳으로 봅니다.
2. Proxmox Firewall 간단 설명
2-1. 방화벽의 3가지 레벨
Proxmox의 방화벽은 3개의 레벨에서 동작합니다.
- Datacenter Level: 모든 노드에 적용되는 방화벽 규칙
- Node Level: 특정 Proxmox 호스트에 적용되는 방화벽 규칙
- VM/Container Level: 개별 가상 머신(VM) 또는 컨테이너에 적용되는 방화벽 규칙
기본 설정 파일 위치
- 클러스터 레벨: /etc/pve/firewall/cluster.fw
- 노드 레벨: /etc/pve/nodes/<nodename>/host.fw
- VM/컨테이너 레벨: /etc/pve/firewall/<VMID>.fw
2-2. 방화벽의 4가지 Zone
Proxmox 방화벽은 네트워크 트래픽을 구역(Zone) 별로 관리할 수 있습니다.
네트워크 인터페이스와 IP 주소를 묶어 특정 Zone에 규칙을 적용할 수 있습니다.
Proxmox VE는 기본적으로 4개의 Zone을 제공합니다:
Input – 외부에서 들어오는 트래픽을 관리
Output – 외부로 나가는 트래픽을 관리
Forward – VM과 컨테이너 간의 트래픽을 관리
Host – Proxmox 호스트 자체 트래픽을 관리
2-3 Default 상태
datacenter level firewall은 default로 꺼진 상태입니다.
node level은 default로 firewall 이 켜진 상태입니다.
vm level은 default로 firewall 이 꺼진 상태입니다.
datacenter level에서 firewall이 꺼진 상태이면 node level에서 firewall이 켜져도 작동하지 않습니다.
3. 현 상황
Proxmox 네트워킹은 브리지(vmbr0)를 사용하며, VM은 독립적인 IP로 작동합니다.
SSH(포트 22)나 Proxmox 웹 인터페이스(포트 8006) 같은 관리 포트에 IP Whitelist를 적용할 것입니다.
4. Proxmox Firewall 간단 세팅
GUI 혹은 CMD 방법 모두 가능하며 하나씩 진행해 주면 됩니다.
1. Datacenter 레벨 방화벽 활성화
GUI
Datacenter → Firewall → Options에서 Firewall Yes로 선택
CMD
nano /etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
2. Node 레벨 방화벽 활성화
GUI
Node (pve) → Firewall → Options 에서 Firewall Yes 로 선택
CMD
nano /etc/pve/nodes/pve/host.fw:
[OPTIONS]
enable: 1
3.
그룹 생성해 주기
아이피는 예시입니다
192.168.1.100
192.168.1.101
를 원하시는 IP로 변경해 주시면 됩니다.
nano /etc/pve/firewall/cluster.fw
[group proxmox-host]
# Allow Proxmox GUI (port 8006) from specific IPs
IN ACCEPT -source 192.168.1.100 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 8006 -log nolog
# Allow SSH (port 22) from specific IPs
IN ACCEPT -source 192.168.1.100 -p tcp -dport 22 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 22 -log nolog
# Default deny all incoming traffic (applied later in RULES)
4.
생성한 그룹을 적용해 줍니다.
그룹에 적용된 룰 외에 모든 인바운드 트래픽을 막아주고 아웃바운드는 열었습니다.
nano /etc/pve/nodes/pve/host.fw
[RULES]
# Apply the proxmox-host group
GROUP proxmox-host
# Deny all incoming traffic by default
IN DROP
# Allow all outgoing traffic (optional, adjust as needed)
OUT ACCEPT
5.
VM 단에서는 따로 적용할 게 없습니다
열어두고 필요시 설정해 줍니다.
# nano /etc/pve/firewall/<VMID>.fw
6.
최종 코드
/etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
[group proxmox-host]
IN ACCEPT -source 192.168.1.100 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.100 -p tcp -dport 22 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 22 -log nolog
---
/etc/pve/nodes/pve/host.fw
[OPTIONS]
enable: 1
[RULES]
GROUP proxmox-host
IN DROP
# 필요시 Drop 한 로그를 보고 싶으시다면
# IN DROP -log notice
OUT ACCEPT
---
/etc/pve/firewall/<VMID>.fw
# Empty
파일을 수정하면 pve-firewall이 자동으로 몇 초 이내에 결과를 반영할 것입니다.
위에 세팅에서
IN DROP -log notice
사용을 하시게 되면 드롭된 로그도 확인 가능합니다.
journalctl -u pvefw-logger
5. 결론 및 기타 보안 관련 몇 자 끄적여봅니다
- 필요 없는 건 모두 차단해요
- 기본으로 모든 트래픽을 막고, 꼭 필요한 것만 열어요.
- 포트 8006은 관리 VLAN에서만 허용
- 전역에서 8006 포트를 차단하고, 관리 VLAN에서만 접근 가능하게 설정해요.
- 포트를 열 때 막연히 열지 말고, 어떤 VLAN에서만 가능한지 지정해요.
- 출발지와 목적지 네트워크도 명확히 설정하세요.
- 보안 키와 비밀번호 관리
- 키, 인증서, 비밀번호에 만료 날짜를 설정하세요.
- 루트 계정은 비밀번호로 로그인 못 하게 막고, 슈퍼유저를 대신 써요.
- 추가 보안 강화
- 2단계 인증(2FA)을 꼭 사용하세요.
- Fail2ban을 모든 노드에 설치해서 공격을 막아요.
- 안전한 서비스 설정
- FTP 대신 SFTP를 사용해요.
- 특수 포트로 서비스를 운영할 땐 전용 VLAN을 만들어 관리하세요.
- 클러스터 전체에 키 사용
- 모든 서버에서 키 기반 인증을 설정하고, 루트 대신 슈퍼유저로 접속하세요.
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
'DevOps > Kubernetes' 카테고리의 다른 글
쿠버네티스 미니홈서버 구축해보기 - 8 - HAPROXY 외부 네트워크 사설망에 연결 그리고 DDNS 설정 (0) | 2025.03.04 |
---|---|
쿠버네티스 미니홈서버 구축해보기 - 7 - Proxmox에서 프라이빗 네트워크 만들고 VM 연결하기 (1) | 2025.03.03 |
쿠버네티스 미니홈서버 구축해보기 - 5 - Master Node Control Plane설정해보기 (0) | 2025.03.01 |
쿠버네티스 미니홈서버 구축해보기 - 4 - PROXMOX Ubuntu VM 세팅하기 (2) | 2025.02.26 |
쿠버네티스 미니홈서버 구축해보기 - 3 - PROXMOX 보안설정하기 (0) | 2025.02.25 |
[Kubernetes] Kubernetes 미니홈서버 구축해 보기 - 6 - Proxmox 방화벽 점검해 보기
보안담당자는 경호원 같은 것이라 생각합니다.
없으면 중요한 것들을 지킬 수 없습니다.
따라서 방화벽 및 보안 설정등은 꼭 여러 번 점검해야 하는 내용이고
필요에 따라서 주기적으로 점검해줘야 합니다.
```
[k8s] Kubernetes 미니홈서버 구축해 보기 - 6 - Proxmox 방화벽 점검해 보기
```

이번 글을 통해 배워갈 내용
- DMZ 네트워크
- Proxmox Firewall 간단 설명
- 현 상황
- Proxmox Firewall 간단 세팅
- 결론 및 기타 보안 관련 몇 자 끄적여봅니다
1. DMZ 네트워크
DMZ는 외부에 공개할 서비스를 위한 별도의 작은 네트워크입니다.
외부에서 접근 가능하지만,
내부의 중요한 네트워크는 보호합니다.
쉽게 말해, 외부 장치는 DMZ와만 소통할 수 있고, 내부 네트워크에는 절대 못 들어옵니다.
여기서 로컬 네트워크는 안전한 곳으로 봅니다.
2. Proxmox Firewall 간단 설명
2-1. 방화벽의 3가지 레벨
Proxmox의 방화벽은 3개의 레벨에서 동작합니다.
- Datacenter Level: 모든 노드에 적용되는 방화벽 규칙
- Node Level: 특정 Proxmox 호스트에 적용되는 방화벽 규칙
- VM/Container Level: 개별 가상 머신(VM) 또는 컨테이너에 적용되는 방화벽 규칙
기본 설정 파일 위치
- 클러스터 레벨: /etc/pve/firewall/cluster.fw
- 노드 레벨: /etc/pve/nodes/<nodename>/host.fw
- VM/컨테이너 레벨: /etc/pve/firewall/<VMID>.fw
2-2. 방화벽의 4가지 Zone
Proxmox 방화벽은 네트워크 트래픽을 구역(Zone) 별로 관리할 수 있습니다.
네트워크 인터페이스와 IP 주소를 묶어 특정 Zone에 규칙을 적용할 수 있습니다.
Proxmox VE는 기본적으로 4개의 Zone을 제공합니다:
Input – 외부에서 들어오는 트래픽을 관리
Output – 외부로 나가는 트래픽을 관리
Forward – VM과 컨테이너 간의 트래픽을 관리
Host – Proxmox 호스트 자체 트래픽을 관리
2-3 Default 상태
datacenter level firewall은 default로 꺼진 상태입니다.
node level은 default로 firewall 이 켜진 상태입니다.
vm level은 default로 firewall 이 꺼진 상태입니다.
datacenter level에서 firewall이 꺼진 상태이면 node level에서 firewall이 켜져도 작동하지 않습니다.
3. 현 상황
Proxmox 네트워킹은 브리지(vmbr0)를 사용하며, VM은 독립적인 IP로 작동합니다.
SSH(포트 22)나 Proxmox 웹 인터페이스(포트 8006) 같은 관리 포트에 IP Whitelist를 적용할 것입니다.
4. Proxmox Firewall 간단 세팅
GUI 혹은 CMD 방법 모두 가능하며 하나씩 진행해 주면 됩니다.
1. Datacenter 레벨 방화벽 활성화
GUI
Datacenter → Firewall → Options에서 Firewall Yes로 선택
CMD
nano /etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
2. Node 레벨 방화벽 활성화
GUI
Node (pve) → Firewall → Options 에서 Firewall Yes 로 선택
CMD
nano /etc/pve/nodes/pve/host.fw:
[OPTIONS]
enable: 1
3.
그룹 생성해 주기
아이피는 예시입니다
192.168.1.100
192.168.1.101
를 원하시는 IP로 변경해 주시면 됩니다.
nano /etc/pve/firewall/cluster.fw
[group proxmox-host]
# Allow Proxmox GUI (port 8006) from specific IPs
IN ACCEPT -source 192.168.1.100 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 8006 -log nolog
# Allow SSH (port 22) from specific IPs
IN ACCEPT -source 192.168.1.100 -p tcp -dport 22 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 22 -log nolog
# Default deny all incoming traffic (applied later in RULES)
4.
생성한 그룹을 적용해 줍니다.
그룹에 적용된 룰 외에 모든 인바운드 트래픽을 막아주고 아웃바운드는 열었습니다.
nano /etc/pve/nodes/pve/host.fw
[RULES]
# Apply the proxmox-host group
GROUP proxmox-host
# Deny all incoming traffic by default
IN DROP
# Allow all outgoing traffic (optional, adjust as needed)
OUT ACCEPT
5.
VM 단에서는 따로 적용할 게 없습니다
열어두고 필요시 설정해 줍니다.
# nano /etc/pve/firewall/<VMID>.fw
6.
최종 코드
/etc/pve/firewall/cluster.fw
[OPTIONS]
enable: 1
[group proxmox-host]
IN ACCEPT -source 192.168.1.100 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 8006 -log nolog
IN ACCEPT -source 192.168.1.100 -p tcp -dport 22 -log nolog
IN ACCEPT -source 192.168.1.101 -p tcp -dport 22 -log nolog
---
/etc/pve/nodes/pve/host.fw
[OPTIONS]
enable: 1
[RULES]
GROUP proxmox-host
IN DROP
# 필요시 Drop 한 로그를 보고 싶으시다면
# IN DROP -log notice
OUT ACCEPT
---
/etc/pve/firewall/<VMID>.fw
# Empty
파일을 수정하면 pve-firewall이 자동으로 몇 초 이내에 결과를 반영할 것입니다.
위에 세팅에서
IN DROP -log notice
사용을 하시게 되면 드롭된 로그도 확인 가능합니다.
journalctl -u pvefw-logger
5. 결론 및 기타 보안 관련 몇 자 끄적여봅니다
- 필요 없는 건 모두 차단해요
- 기본으로 모든 트래픽을 막고, 꼭 필요한 것만 열어요.
- 포트 8006은 관리 VLAN에서만 허용
- 전역에서 8006 포트를 차단하고, 관리 VLAN에서만 접근 가능하게 설정해요.
- 포트를 열 때 막연히 열지 말고, 어떤 VLAN에서만 가능한지 지정해요.
- 출발지와 목적지 네트워크도 명확히 설정하세요.
- 보안 키와 비밀번호 관리
- 키, 인증서, 비밀번호에 만료 날짜를 설정하세요.
- 루트 계정은 비밀번호로 로그인 못 하게 막고, 슈퍼유저를 대신 써요.
- 추가 보안 강화
- 2단계 인증(2FA)을 꼭 사용하세요.
- Fail2ban을 모든 노드에 설치해서 공격을 막아요.
- 안전한 서비스 설정
- FTP 대신 SFTP를 사용해요.
- 특수 포트로 서비스를 운영할 땐 전용 VLAN을 만들어 관리하세요.
- 클러스터 전체에 키 사용
- 모든 서버에서 키 기반 인증을 설정하고, 루트 대신 슈퍼유저로 접속하세요.
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
참조 및 인용
'DevOps > Kubernetes' 카테고리의 다른 글
쿠버네티스 미니홈서버 구축해보기 - 8 - HAPROXY 외부 네트워크 사설망에 연결 그리고 DDNS 설정 (0) | 2025.03.04 |
---|---|
쿠버네티스 미니홈서버 구축해보기 - 7 - Proxmox에서 프라이빗 네트워크 만들고 VM 연결하기 (1) | 2025.03.03 |
쿠버네티스 미니홈서버 구축해보기 - 5 - Master Node Control Plane설정해보기 (0) | 2025.03.01 |
쿠버네티스 미니홈서버 구축해보기 - 4 - PROXMOX Ubuntu VM 세팅하기 (2) | 2025.02.26 |
쿠버네티스 미니홈서버 구축해보기 - 3 - PROXMOX 보안설정하기 (0) | 2025.02.25 |