포트포워딩 하기, KVM 설치 및 설정

관련 포스트


포트포워딩 이란


우리가 사용하는 인터넷의 요금은 IP주소 한개당 부과된다. 즉 하나의 IP주소만 사용할 수 있는것이다.
하지만 우리는 인터넷기기가 넘쳐나는 21세기에 살고있으므로 가정에서 하나의 IP만 사용하는건 현실적으로 불가능하다. 그래서 우리는 공유기를 사용한다.

공유기는 IP하나를 자기가 혼자 먹어버리고 아래에 물려있는 기기들에 사설 IP를 부여한다. 보통 우리가 사용하는 컴퓨터는 공유기를 거친 사설ip를 사용한다. 지금 내 서버도 공유기 아래에 물려있다.

문제는 여기서 시작된다. 나는 집이아닌 외부에서 내 서버에 원격으로 접속하고싶다.내가 아는건 우리집의 외부 IP주소 뿐이다.
외부 IP로는 내 서버에 원격으로 접속 할 수 없다. 마치 내 서버가 어느 아파트에 사는지는 알지만 몇동 몇호 인지는 모르는 것과 같다.
내 서버가 어디있는지 알려주려면 공유기에 내 서버의 주소를 알려주면 된다. 이 과정이 포트포워딩이다.

우리집의 외부 IP주소가 10.0.0.1이고, 내 서버의 사설 IP주소가 10.0.1.1일때

‘외부에서 10.0.0.1에 22번 포트로 접속을 시도한다면 10.0.1.1으로 연결시킨다’ 라는 규칙을 공유기에 알려주면 된다.

나는 SKB공유기를 사용하고있다. 보통 공유기 설정페이지는 192.168.x.1 로 접속하면 된다. 공유기마다 ‘x’가 다르니 참고.

처음 접속시 화면. 보통 사용자ID는 admin이고 암호는 공유기의 유선 맥주소 뒤 6자리인 경우가 많다.

first

로그인에 성공하면 포트포워드탭을 찾아보자. 공유기마다 위치가 다르니 참고.

second

설정은 다음 사진처럼 외부에서 접속할 포트번호를 입력해주고, 포워딩할 IP주소를 원하는 사설IP로 입력하면된다. SSH접속을 위한 포트포워딩 이라면 다음과같이 22번 기본포트를 포워딩 해주면 된다.

만약 SSH포트를 변경했다면 내부포트를 변경한 포트번호로 바꿔주자.

third

여기까지 했다면 다 되었다. 이제 외부IP로 서버에 원격접속을 해보자.

참고로 같은 공유기 아래에서 접속하는건 외부접속이 아니므로 사설IP인 192.168.x.25로 접속해야한다는거 잊지말자.


KVM


이제 본격적으로 서버를 활용하기위해 KVM과 더불어 Web-managementTool인 KimChi를 설치해 보자.

서버에 SSH로 접속하거나 직접 모니터와 키보드를달아서 콘솔을 띄운다.
시작전에 업데이트, 업그레이드도 해주자.

$ sudo apt-get update && sudo apt-get upgrade -y


KVM 의존성 패키지들을 먼저 설치한다.

$ sudo apt-get install qemu qemu-kvm kibvirt-bin


잘 설치되었는지 확인한다. 다음과같이 나온다면 성공이다.

check

이제 KVM을 설치했으니 web으로 쉽게 관리할수있는 KimChi(김치)를 설치해 보자.

$ sudo apt-get install nginx
$ wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/wok-2.5.0-0.noarch.deb

$ wget http://kimchi-project.github.io/gingerbase/downloads/latest/ginger-base.noarch.deb

$ wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.noarch.deb


다음 커맨드를 차례대로 입력하자.

sudo dpkg -i wok-2.5.0-0.noarch.deb

sudo apt-get install -f

sudo service wokd start

sudo dpkg -i ginger-base.noarch.deb

sudo apt-get install -f

sudo service wokd restart

#재부팅 하자.
sudo reboot

sudo dpkg -i kimchi-2.5.0-0.noarch.deb

sudo apt-get install -f

#재부팅 한번더.
sudo reboot

#방화벽 설정. 8001번포트 열어주기.
sudo ufw allow 8001/tcp


자 이제 모든준비가 끝났다! 웹 인터페이스를 열어보자.
https://Server_IP:8001

ID와 PW는 서버와 동일하다.

first_page

이제 거의 다 되었다. 가상머신을 한번 올려보자.
기본 iso파일의 위치는 /var/lib/kimchi/isos에 있다.

$ cd /var/lib/kimchi/isos
$ sudo wget http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-server-amd64.iso


이제 Virtualization > 템플리트 > 템플리트 추가 메뉴를 탭하면 방금 추가했던 우분투 서버 iso파일이 보인다.

추가 후 입맛에맞게 스펙(메모리, 디스크, CPU 등)을 설정해주고 게스트 탭으로 가보자.

templete_page

작성 버튼을 누르고 가상머신을 시작하면 끝.
원하는 OS의 이미지파일을 올려두고 가상머신을 만들어 보자.



ISO파일로 가상머신을 만들면 김치의 기본 디렉토리에 스토리지풀이 잡힌다.
보통 OS가 있는 하드다.

하지만 우리는 가상머신 데이터도 소중하기때문에 레이드로 묶여있는 하드에 저장하고싶다. 기본 스토리지 풀을 바꿔주자.

$ virsh pool-list

Name                 State      Autostart
-------------------------------------------
default              active     yes


일단 기본 스토리지 풀을 없애고,

$ virsh pool-destroy default
Pool default destroyed


디폴트 풀 값을 지운다.

$ virsh pool-undefine default
Pool default has been undefined


그리고 “default”라는 이름의 새 풀을 만든다.

$ virsh pool-define-as --name default --type dir --target /원하는/디렉토리/
Pool default defined


libvirt 데몬이 시작될때 풀도 자동으로 시작되도록 설정한다.

$ virsh pool-autostart default
Pool default marked as autostarted


풀 시작.

$ virsh pool-start default
Pool default started


잘 적용되었는지 확인.

$ virsh pool-list
Name                 State      Autostart
-------------------------------------------
default              active     yes


이제 템플릿 편집창에서 스토리지 풀을 선택할수있다.
새로 설정한 default를 선택하면 지정한 경로로 vm이미지가 생성된다.

edit_templete

후 여기까지 성공했다면 마음껏 VM을 올리고 개발환경을 구축하고 테스트 해보는 일만 남았다!!


드디어 끝


기본적인 서버 사용법을 소개했다. 여기까지 오는데 엄청난 삽질이 있었지만, 배우는 과정이었기에 결과적으로 성공했다는 데 의의를 두기로 했다ㅠ

이제 다음포스트 부터는 가상머신이 아닌 미디어서버로 활용하는 방법을 소개하려한다.

부족하지만 내 포스트가 많은 도움이 되었길 바란다.