• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

proxmox vm 내부 트래픽 관리?

무백 211

0

3

proxmox 에서 클러스터를 만들어 2개의 노드가 활성화 되어있는 상황입니다.

 

OPNsense router - gigabit switch - proxmox servers 의 구성으로 되어있는데, vm 내부에서는 다른 vm이나 OPNsense web ui 와 ssh, proxmox host web ui와 ssh 에 접속할 수 없게 하고 싶습니다.

 

vm 내부에서 다른 vm이나 host나 OPNsense로의 접근을 차단하는 게 목적입니다.

 

그러면서도 외부 트래픽을 받거나 통신(인터넷 서핑 등)은 가능했으면 좋겠습니다.

 

지금까지 테스트해본 방식들은

 

  1. Datacenter -> SDN -> Zones 생성 후 Vnets 에서 IP 대역 할당 -> VM에 해당 디바이스 할당
    실패이유: 192.168.xxx.xxx 대역을 할당할 경우 외부 통신은 가능했지만 다른 vm으로의 연결이나 host, OPNsense로의 접속 또한 가능했으며, 10.xxx.xxx.xxx 대역을 할당할 경우 외부 통신이 불가능했음 (따로 bridge?를 해줘야 할 것 같은 느낌이었으나.. 다른 자료를 더 찾지 못해 포기)
  2. 방화벽 설정
    실패 이유: 분명 하라는대로 했지만 그냥 아무것도 먹히질 않아 포기
  3.  OPNsense에서 LAN Rules 설정
    실패 이유: 이 또한 안막혀서 포기 
  4. VLAN
    사실 이 방법을 가장 처음, 가장 오래 시도해봤지만.. 애초에 다른 자료들과의 차이가 많아 이해하기 어려웠고
    유튜브도 영알못 이슈로 인해(?) 의역된 자막들 수십번씩 보았지만 저사람들은 있는 게 왜 난 없지.. 하며
    중간중간에 계속 host 네트워크가 날아가서 2주정도 붙잡다가 포기..
  5. iptables
    반쯤 성공(?)한 방법
    각 노드 shell에서 vm들의 대역에서 host의 8006 port로 접근을 reject 시켜보았는데 이건 성공 그러나 다른 기능들은 아무것도 못해서 반만 성공한 방법

node들의 /etc/network/interfaces 내용은 기본적으로 다음과 같습니다. (전부 초기로 돌려둔 상태)

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface enp6s0 inet manual

iface ens4 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.103/24
        gateway 192.168.1.1
        bridge-ports enp6s0
        bridge-stp off
        bridge-fd 0

source /etc/network/interfaces.d/*

각 노드들의 현재 네트워크 상태는 다음과 같습니다.

image.png.jpg

PVE 버전은 8.1.4이고
vm에 현재 할당되어있는 네트워크 디바이스는 이렇습니다.

image.png.jpg

(언젠가 Intel E1000보다 VirtIO (반가상화) 가 더 성능이 좋다는 댓글을 봐서 해당 옵션으로 해보려 했는데 얘는 인터넷이 안통하더라구요)

 

방화벽옵션들은 전부 다 삭제시켜둔 상황이구요

SDN 관련 옵션들도 전부 다 삭제시켜 초기상태로 돌려뒀습니다.

 

제가 해왔던 방법들이 잘못되었던 걸까요? 

아니면 기본적으로 vlan과 같은 기능은 switch에서 지원하지 않으면 안되는 거였을까요..?

 

신고공유스크랩
3
1등
klayf 2024.04.28. 18:58

단순히 VM에서 PVE로의 통신을 막는다면 OPNsense의 Private VLAN으로 분리할 수 있고,
VM과 VM간 통신까지 막아야 한다면 PVE에서 iptables로 통제 가능한 부분이라 생각됩니다.

특히 특정 VM에서 다른 VM(또는 CT)간의 블로킹은 특정 서브넷으로 가는 인/아웃 트래픽을 드롭하고 그 외 0.0.0.0/0에 대한 트래픽은 가능한 형태는 저도 설정하고 있는 부분입니다.

DC 레벨에서 Security Policy 정의 후 각 VM/CT에서 동일한 Security Policy를 선택하여 적용할 수 있는데, 혹시 VM과 PVE간 서브넷이 분리되어 있거나 VLAN이 분리되어 있는지 궁금합니다.

일반적으로 특정 포트를 차단하는 것보다는 서브넷 단위로 차단하시는게 확실합니다.

 

가능할 때 CT간 차단 룰 이미지를 추가하겠습니다..!

무백 글쓴이 2024.04.28. 20:20
klayf

답글 달아주셔서 감사드립니다.


우선 OPNsense 관련 설정은 포트포워딩과 WireGuard 설정을 제외하고는 아무것도 만지지 않은(초기로 돌려둔) 상태입니다.

외부와 통신해야 하는 vm 포트 1개만 열어둔 상태이고 pve 접속이나 vm 접속 등은 모두 OPNsense 에 WIreGuard VPN Server 을 설치하여 해당 방식으로만 접근중입니다.

 

일단 제 OPNsense가 정상이 아닌 상태인지라.. 다른 걸로 변경을 시도해야 하나 고민중이긴 합니다.

예를 들어 현재 DHCP 연결 상태를 보기 위해 Services -> ISC DHCPv4 -> Leases 로 들어가면 

image.png.jpg

와 같은 오류가 뜬다던지.. ssh 연결 시에 연결은 되고 메뉴도 나오는데 무슨무슨 오류로 안됨을 시전한다던지..(좀 오래되어서 기억이..)

 

말씀해주신 OPNsense Private VLAN은 제가 미처 몰랐던 방법인지라 

해당 링크를 참고하여 이렇게 하는 것이 맞는지는 모르겠으나 아래와 같이 하나 추가 해보았습니다.

image.png.jpg

건드린 옵션은 다음과 같습니다.

image.png.jpg

image.png.jpg

잘 되었는지는 모르겠습니다만 일단 apply 시킨 후 막상 pve에 가보니 이걸 어떻게 추가시켜야할 지 몰라서 아직 찾아보고 있는 중입니다..

 

바로 아래 말씀해주신

"VM과 VM간 통신까지 막아야 한다면 PVE에서 iptables로 통제 가능한 부분이라 생각됩니다."

에 대해서는 PVE shell 에서 vm to pve 혹은 pve to vm 으로는 iptables로 통제가 가능하다고 생각했지만

vm to vm에 대해서까지 iptables로 통제가 가능한 것은 미처 몰랐습니다.

이 부분에 대해서는 추가적으로 더 알아보고 있는 중입니다만 만약 vm들의 ip 대역이 192.168.1.100/27이라면

iptables -I FORWARD -s 192.168.1.100/27 -d 192.168.1.100/27 -j REJECT

이렇게 하면 되는 걸까요?

 

그 다음 말씀으로는

"DC 레벨에서 Security Policy 정의 후 각 VM/CT에서 동일한 Security Policy를 선택하여 적용할 수 있는데, 혹시 VM과 PVE간 서브넷이 분리되어 있거나 VLAN이 분리되어 있는지 궁금합니다."

 

제가 잘은 모르지만 해석해본 바로는

데이터센터에서 Security Policy 정의 후 해당 그룹으로 묶어서 vm/ct를 통제? 할 수 있다 뭐 이런 뜻으로 해석이 되는데 이는 방화벽을 말씀하시는 걸까요? 이건 사실 거의 모르겠습니다. 하여 아래와 같이 모든 설정을 첨부하겠습니다. (vm에서 opnsense 로의 접속을 막고 싶었는데 안되더군요.. 저렇게 하는 게 아닌 건가..)

image.png.jpg

image.png.jpg

image.png.jpg

 

"일반적으로 특정 포트를 차단하는 것보다는 서브넷 단위로 차단하시는게 확실합니다."

 

포트를 차단한다기 보다는 아예 같은 망에 있는 것이 아닌 것처럼 모든 통신을 차단하고 싶습니다.

 

추후 아예 서버실을 임대해서 꾸릴 계획이고 (취미입니다.)

그 전에도 노드도 몇 개 더 추가하고 일부는 친구들과 지인들에게 나눠줄 계획인데, 아예 상호간 접근을 못하게 해야 할 것 같아서요. 혹여나 누군가 다른 vm에 접속하거나 pve, opnsense에 접속할 수도 있는 노릇이고. 그게 아니더라도 특정 vm이 해킹당한 순간 다른 vm에 마수를 뻗치는 것은 아주 쉬운일일 듯 해서요..

 

전 직장에서도 배운 거 하나도 없이 Cisco 장비 만지면서 그냥 스크립트 복붙만 하고 다녀서 그런가 지식이 너무 없습니다.. 

klayf 2024.04.29. 00:22
무백

https://svrforum.com/software/1399671

위 링크에 간략하게 작성하였으니 참고해보시면 좋을 것 같습니다.
작성하고 보니까 내용이 엉성한데, 혹시 이해가 안되는 부분 있으실 경우 댓글 남겨주시면 설명해드리겠습니다..!!

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
오픈소스 개인 구독 추적기 Wallos 7 달소 1일 전23:26 270 +2
질문 /var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 3일 전20:42 275 +1
잡담 jellyfin 자원 진짜 안쓰네요 1 kmw_ 3일 전19:26 409 +1
1448 질문
normal
서버구축하자 8시간 전21:59 37 0
1447 질문
image
경호 19시간 전10:34 171 0
1446 질문
normal
맛밥 2일 전16:13 193 0
1445 질문
normal
니속사정 3일 전20:42 275 +1
1444 질문
image
ljr10 3일 전12:45 177 0
1443 질문
normal
스키피95 5일 전00:07 140 0
1442 질문
normal
고심분투 5일 전17:10 244 0
1441 질문
image
경호 5일 전15:50 109 0
1440 질문
normal
경호 5일 전13:23 74 0
1439 질문
image
EXP 24.05.02.23:48 101 0
1438 질문
normal
홍익 24.05.02.19:26 244 0
1437 질문
normal
purndal 24.04.30.14:32 252 0
1436 질문
image
초보나스 24.04.30.10:46 114 0
1435 질문
normal
keiminem 24.04.30.09:29 370 0
1434 질문
normal
환경설정 24.04.29.13:31 426 0
1433 질문
image
ljr10 24.04.28.20:47 401 0
질문
image
무백 24.04.27.21:45 211 0
1431 질문
normal
까칠한나그네 24.04.26.15:44 124 0
1430 질문
normal
감자칩 24.04.25.18:56 254 0
1429 질문
image
게르노 24.04.25.16:08 98 0