vSphere Client 를 이용하여 ESXi 를 접속하는데, 방화벽 통과할 경우 접속 포트를 바꿀 필요가 있습니다.

vSphere Client 접속 포트는 902,443 이고, 443 포트는 방화벽에서 다른 포트로 포워딩이 가능합니다.

문제는 902 인증 데몬 포트입니다.


1. ESXi 에 ssh 로 접속

ssh 로 접속하는 설정은 http://netmaid.tistory.com/87 를 참고합니다.


2. /etc/vmware/config 확인

다음 항목을 확인합니다. (값을 바꾸거나 추가합니다.)

vmauthd.server.alwaysProxy = "TRUE"
authd.client.port = "9020"


3. /etc/services 편집

맨 마지막의 authd 를 확인하고 원하는 포트로 바꿉니다. (여기서는 902 에서 9020 으로 바꿈)

# Local services
authd           9020/tcp
sfcbdlock       55761/udp                       # used by sfbd as an instance lock
vprobes         57007/tcp                       # remote vprobe protocol


4. /etc/vmware/firewall/service.xml 편집

chmod +w+a /etc/vmware/firewall/service.xml
vi /etc/vmware/firewall/service.xml

902 포트번호를 9020 으로 바꿉니다.

:%s/902/9020/g

총 4군데가 있는데 다음과 같습니다.

<id>vpxHeartbeats</id> 에서 1개

<id>vSphereClient</id> 에서 1개

<id>NFC</id> 에서 2개

저장하고서 권한을 다시 되돌립니다.

chmod 444 /etc/vmware/firewall/service.xml


5. 영구적으로 설정을 기록

3번과 4번에서 설정을 바꾸어도 ESXi 시스템을 리부팅하면 초기 상태로 돌아갈 수 있습니다.

이를 영구적으로 반영하기 위해서는 기록이 가능한 파티션 영역에 설정 파일을 두고,

부팅할 때마다 이 설정 파일을 덮어씌우는 것입니다.


우선 현재의 설정을 datastore 에 보관합니다.

mkdir /vmfs/volumes/datastore1/etc
cp /etc/services /vmfs/volumes/datastore1/etc/
cp /etc/vmware/firewall/service.xml /vmfs/volumes/datastore1/etc/

부팅할 때 이 파일들을 덮어씌우도록 설정합니다.

vi /etc/rc.local.d/local.sh

다음과 같은 내용을 추가합니다.

cp /vmfs/volumes/datastore1/etc/service.xml /etc/vmware/firewall/
esxcli network firewall refresh
cp /vmfs/volumes/datastore1/etc/services /etc/services
kill -HUP `cat /var/run/inetd.pid`


6. 방화벽에서 포트 포워딩 설정

방화벽에서 30001 포트를 443 포트로, 9020 포트를 9020 포트로 포워딩 설정해줍니다.


이제 시스템을 리부팅하면 외부에서 vSphere Client 로 접속이 가능합니다.


참고:


Posted by 집시F