2018. 6. 7. 15:30

'VMware ESXi'에서 커스텀 포트를 열려면 방화벽(firewall)을 열어야 합니다.

 

'vi'에 익숙하다면 좀 편하겠지만 윈도우가 익숙한 저한테는 힘든 작업입니다 ㅎㅎㅎ

'winSCP'를 이용하면 조금 편하게 작업 할 수 있습니다.

 

 

1. 접속하기

SSH를 열어놓고 쉘로 접속합니다.

참고 : [VMware ESXi 6] 쉘(Shell) 활성화하기

 

 

2. 편집 허용하기

편집을 해야 할 파일은

'/etc/vmware/firewall/service.xml'

입니다.

 

'cd' 명령어를 사용하여 방화벽 폴더로 이동합니다.

입니다.


cd /etc/vmware/firewall

 

 

 

'ls'를 입력해 파일이 있는지 확인해 봅시다.

 


cd /etc/vmware/firewall

 

 

 

'service.xml'파일이 있는지 확인합시다.

 

 

 

저는 이미 백업한 파일이 있어서 폴더에 보이네요.

'service.xml.original'
'service.xml.bak'

 

쉘에서 백업하기

저는 'WinSCP'를 사용할 것이라 쉘 명령어로 백업할 필요가 없지만 쉘로 백업하는 방법도 알아봅시다.

'cp [원본 파일명] [대상 파일명]' 명령을 사용하여 백업본을 만들면 됩니다.

'service.xml'파일이 있는지 확인합시다.

 


cp service.xml service.xml.original

 

 

 

3. 파일 수정 권한 주기

'WinSCP'로 접속하기 전에 파일 수정 권한을 줘야 합니다.

'chmod'명령을 사용하여 권한을 바꿔줍니다.

 


chmod 644 service.xml
chmod +t service.xml

 

 

 

이렇게 하면 파일을 수정할 수 있게 됩니다.

 

4. 파일 수정하기

원래 'vi'를 사용하여 편집해야 하지만 전 'vi'가 익숙지 않으므로 'WinSCP'로 접속하여 작업합니다.

 

'WinSCP'를 실행하여 웹 UI와 같은 아이디와 비밀번호를 입력합니다.

 

 

 

접속이 성공하면 다음과 같이 파일이 보입니다.

 

 

 

'service.xml'파일을 로컬에 백업합니다.

백업이 끝나면 'service.xml'파일을 더블클릭하여 편집 창을 엽니다.

 

 

 

파일의 맨 끝으로 갑니다.

'</ConfigRoot>' 위에 다음 코드를 자신에게 맞게 수정하여 추가합니다.

 


<service id='[4자리 고유 숫자]'>
  <id>[구분용 고유 문자열]</id>
  <rule id='[4자리 룰 인덱스]'>
    <direction>[방화벽 규칙 inbound, outbound]</direction>
    <protocol>[프로토콜 tcp, udp]</protocol>
    <porttype>[포트 타입 dst]</porttype>
    <port>[허용할 포트]</port>
  </rule>
  <enabled>[사용할지 여부]</enabled>
  <required>[필수]</required>
</service>

<!-- 샘플 -->
<service id='0045'>
  <id>rd2</id>
  <rule id='0001'>
    <direction>inbound</direction>
    <protocol>tcp</protocol>
    <porttype>dst</porttype>
    <port>37161</port>
  </rule>
  <enabled>true</enabled>
  <required>true</required>
</service>

 

 

 

저도 자세한 내용은 잘 모릅니다.

웬만하면 기존 코드를 그대로 복사해서 수정해서 쓰는 것을 권장합니다.

 

수정을 다 했으면 저장합니다.

 

5. 권한 돌려놓기

이제 다시 편집할 수 없도록 권한을 수정해 줍니다.

 


chmod 444 service.xml

 

 

 

6. 방화벽 재시작하기

방화벽을 재시작해야 설정이 적용됩니다.

 


esxcli network firewall refresh

 

 

 

금방 재시작됩니다.

 

아래 명령어를 입력하여 자신이 추가한 규칙이 적용되었는지 확인해 봅니다.

 


esxcli network firewall ruleset list

 

 

 

 

 

맨 마지막에 제가 추가한 규칙이 보입니다.

 

하지만 컴퓨터가 재부팅 하면 규칙이 날아갑니다.

 

 

마무리

vmware쪽에서 이 기능을 UI 넣을 확률은 제로라는군요.

그도 그럴 것이 수동으로 수정한 내용도 저장이 안 되는데 기능을 따로 넣을 리가;;;;

 

이거 재부팅 하면 설정이 날아갑니다.

설정을 날리지 않으려면 설치 번들을 미리 만들어서 설치해야 합니다.

한마디로.... 이미 설치된 상태에서는 변경이 안 됩니다.

나중에 기회 되면 번들 만드는 것도 다뤄보겠습니다.

 

참고자료 : vladan - How to create custom ESXi 5.x Firewall rule and why you need to