안녕하세요
세팅을 열심히 해보았으니 잘 안되어 질문드립니다
목표는 외부에서 5153 포트로 원격데스크탑 접속시 내부의 가상화PC(192.168.122.134 3389)로 포트포워딩 하여 접속할 수 있도록 하려고 합니다
작업환경은 아래와 같습니다
OS : CENTOS7.9
서버 : 단독서버(고정IP)
가상화 : KVM을 통한 윈도우10가상화
가상화PC정보 : 192.168.122.134 , 원격데스크탑활성화(3389포트)
[참고]
서버 상단에 방화벽 없으며 서버 상단은 바로 ISP입니다. 서버 내부 방화벽은 firewalld 만을 사용합니다.
(참고로 ISP에서 5153포트가 막혔는지 확인했으나 막혀있지 않습니다)
[외부에서 접속하기 위해 포트포워딩 세팅]
1. 포트포워딩 가능여부 확인
# sysctl net.ipv4.ip_forward (결과 : net.ipv4.ip_forward = 1)
2. 존과 인터페이스 확인
# firewall-cmd --get-active-zones (결과 : public 존, em0 인터페이스)
3. 5153포트 열기
# firewall-cmd --permanent --zone=public --add-port=5153/tcp
4. 포트포워딩
# firewall-cmd --permanent --zone=public --add-forward-port=port=5153:proto=tcp:toport=3389:toaddr=192.168.122.134
5. 외부에서 내부 네트웍 접근가능하게 세팅
# firewall-cmd --permanent --zone=public --add-masquerade
6. 방화벽 재설정
# firewall-cmd --reload
[참고] 위 방화벽 세팅은 아래 URL을 참고하였습니다
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=webmcr&logNo=221362020592
위 세팅 이후 아래와 같은 상태입니다.
1. 외부, 내부(127.0.0.1) 모두 5153포트로 접속 불가 (telnet 에러메시지 : Connection refused)
2. 서버 내부 telnet 에서 192.168.122.134 3389 로 접속 가능
3. 서버의 gnome 에서 원격데스크탑으로 192.168.122.134 3389 로 접속 가능
즉, 5153포트를 192.168.122.134 3389 로 포트포워딩까지 세팅은 되어있으나 5153 포트로 접속이 안되는 상태입니다
여기까지 제가 시도한 상태입니다
고수님의 도움 부탁드립니다^^;
요즘은 그것보다 저제 더 나은가 봅니다??
여튼 개발쪽일을 하다 보니 저런거 보통의 문제점 원인이 뭐냐만 경험적인 부분에서만 알고있는 것들을 말씀드린다면..
가상화 머신의 포트와 외부바운더리 물리머신은 포트를 공유하지 않습니다.
보통구조는 외부머신의 포트는 리얼인데 내부머신의 포트는 버추얼이라 양자간의 연결을 해 주려면 중간에 특수한 인터페이스 게이트웨이 설정이 필요했던걸로 기억합니다. 해당설정이 있어야 외부포트가 내부 가상포트 맞물리는게 가능했었으니 그부분 상세히 찾아보시는게 어떨까 하네요. 윈도우 내 리눅스 가상화인 wsl만 해도 그런식입니다.. 도움이 되시려나 싶습니다... 어쨋든 전 무한 귀찮아서 걍 xen씁니다...ㄷㄷ
위, sysctl과 firewalld만으로 안 되는 경우입니다.
KVM이 관여해야 합니다.
KVM에 설정할 게 있습니다.
이 쪽으로 한 번 찾아보기 바랍니다.
1. 리눅스호스트 앞단에 방화벽이나 공유기를 추가하는 방법
2. 공인IP를 더 받을 수 있으면 가상VM을 공인 IP로 설정하는 방법
: VM의 NIC설정에서 Macvtap device를 호스트의 어댑터와 동일하게 설정하여 받음
3. pfSense 같은 오픈소스 방화벽을 VM 으로 설치하여 사설 네트웍을 구성하는 방법
: 외부IP는 pfSense가 받고, pfSense의 DHCP 기능을 활용하여 VM에는 내부 사설IP를 할당하고 Port Forwading 설정
그리고 포트 포워드를 하면 포트 허용으로 등록할 필요가 없습니다.
윈도우 제어판 방화벽 포트 허용에 추가를 해야 합니다. 체크해보세요.