이전포스트

[Programming tip] Virtual Box SSH Port Forwarding 하기. (Windows, MAC)

freemmer 2011. 5. 28. 13:04

  1. Virtual Box에 Ubuntu 설치 & Setting 하기.
  2. Ubuntu에 SSH 설치하기.
    1. SSH 설치하기.
    2. SSH Port Forwarding 하기. (Windows, MAC)
  3. Ubuntu에 SVN (Subversion) 설치 하기.
    1. Ubuntu에 SVN 설치 및 Setting.
    2. SVN Port Forwarding 하기. (Windows, MAC)
    3. SVN 명령어 및 팁.
  4. Ubuntu에 Media Wiki 설치하기.
    1. Ubuntu에 Media Wiki 설치 및 Setting.
    2. Media Wiki 처음으로 사용하기.
    3. Media Wiki 문법 및 팁.
  5. 활용하기.

Virtual Box의 Ubuntu에 SSH를 설치 했다면, 외부 (Host PC)에서 Ubuntu (Guest PC)에 접속 할 수 있도록 설정을 해주어야 한다. (설정 전에 Host PC에서 Ubuntu로 SSH 접속을 해보면 접속이 되지 않을 것이다)

Port Forwarding을 통해서 Host PC에서 Guest PC로 접속할 수 있도록 할 것이다.

[참고자료]
Port Forwarding 란???
from Wikipedia, the free encyclopedia
Port forwarding allows remote computers (e.g. public machines on the Internet) to connect to a specific computer within a private LAN.
For example:
    forwarding port 80 to run an HTTP webserver
    forwarding port 22 to allow Secure Shell access
    forwarding port 21 to allow FTP access
일단, 자신의 PC (Host PC)에서 Windows를 사용하든 Mac을 사용하든 Linux를 사용하던 아무 상관없이 동일한 방법이 적용된다. 이것이 가능한 이유는 Virtual Box에서 동일한 Interface를 제공하기 때문이다.

다만, Virtual Box에서 Port Forwarding시 사용되는 'VBoxManage' 라는 파일의 위치만 틀리는데, 이는 Ubuntu 혹은 Mac에서 다음과 같은 명령어로 쉽게 찾을 수 있다.

# sudo find / -name VBoxManage

위의 스샷은 Mac에서 설정한 화면이다. (Windows도 동일하다)
일단, VBoxManage 파일이 있는 곳을 찾게되면 Windows, Mac 등 상관없이 Virtual Box가 설치된 Platform이라면 모두 동일한 명령으로 설정이 가능하다. (Mac의 경우 /Applications/VirtualBox.app/Contents/MacOS 에 VBoxManage가 있다)

그럼 이제 Port Forwarding을 설정해 보자.

1. Terminal 혹은 Consol창을 열어 VBoxManage가 있는 경로로 이동한다.
<Windows인 경우>
C:\> cd "C:\Program Files\Oracle\VirtualBox"

<Mac인 경우>
# cd /Application/VirtualBox.app/Contents/MacOS

2. 아래와 같은 명령어를 실행한다.
# VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 22
#
VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
# VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
위에서 "Ubuntu11-04"는 필자가 설치한 가상머신(Guest PC)의 이름이고, SSH는 기본 Default 포트인 22를 이용하였다.

참고로, 아래의 방법은 SSH설정을 삭제하는 명령이다.
# VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort"
# VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"
# VBoxManage setextradata "Ubuntu11-04" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol"
위와 같이 맨 뒤쪽에 Port 번호 (22) 혹은 Protocol 종류 (TCP)를 입력하지 않으면 해당 항목이 삭제된다.

3. 설정 상태를 확인한다.
# VBoxManage getextradata "Ubuntu11-04" enumerate

4. Virtual Box를 재시작 한다.


이제 정상적으로 동작하는지 확인 해 보자.
Host PC에서 SSH접속 프로그램으로 Guest PC에 접속해 보자. (윈도우의 경우 Putty가 freeware이므로 이를 이용한다)
(접속하는 부분은 생략하도록 한다)

만약, SSH 접속이 안된다면.
Ubuntu의 방화벽을 다음과 같은 명령을 끄도록 한다. (물론, SSH가 사용하는 Port를 허용하는 방식으로 처리해도 된다)
# sudo ufw disable



[참고자료]
방화벽 켜기
# sudo ufw enable

특정 포트/프로토콜 허용
# sudo ufw allow (Port number)(/Protocol)
ex1 ) sudo ufw allow 22
ex2 ) sudo ufw allow 22/tcp

특정 포트/프로토콜 차단
# sudo ufw deny (Port number)(/Protocol)
ex1 ) sudo ufw deny 22
ex2 ) sudo ufw deny 22/tcp

규칙 삭제
# sudo ufw delete (allow/deny) (Port number)(/Protocol)
ex1 ) sudo ufw delete allow 22/tcp
ex2 ) sudo ufw delete deny 22/tcp
ex 3) sudo ufw delete deny from 111.111.111.111

IP 차단
# sudo ufw deny from IP
ex 1) sudo ufw deny from 111.111.111.111

ufw상태 확인
# sudo ufw status









반응형