Virtualbox를 이용해서 집에서 Ubuntu Server에 FTP운영하기 - Part 1

오늘은 virtualbox에 ubuntu server를 설치해서 ftp서버를 운영하는 방법을 일러드리겠습니다.

이 방법은 같은 공유기를 사용하는 집안에서만 가능합니다.
집밖에서도 이용하시려면 포트포워딩을 해주어야 합니다.
맨 아래의 p.s)에 포트포워딩에 관한 약간의 설명이 있습니다만,
실제로 이용하시려면인터넷 서비스 업체(SKT,KT,LG u+)등의 서비스 센터에 전화하셔서 
포트포워딩을 할겁니다.어떻게 하면 됩니까 라고 물으면 친절하게 그 과정을 설명해주기고 하고,
windows를 이용중이시면 원격접속을 통해 해결해 주기도 한답니다.

virtualbox를 이용해서,
windows7 으로 부팅할때도 쓰고, Linux Mint로 부팅할때도 쓰고,
지금 Ubuntu 13.04 테스트버전을 함께 이용하고 있으니 
그것으로 부팅할때도 쓰고 할 수 있게 꾸밀겁니다.

설치는 저의 주 OS 인 Linux Mint에서 시작하겠습니다.
이런 과정을 겪게 됩니다.
포스트가 너무 길어지는 관계로 ,파트를 나누어서 올리겠습니다.

Part 1)
* Virtualbox 설치
* Ubuntu server 12.04.1 또는 Ubuntu server 12.10 설치
* Virtualbox 네트워크 설정 변경 - nat 를 브릿지모드로 변경
* ssh 설치
* Linux Mint 터미널에서 서버에 원격 접속하는 방법
* 설치한 server upgrade - 터미널을 이용해서 원격접속으로
* vsftpd 설치
* vsftpd.conf 설정 변경
* vsftpd.chroot_list 생성 - 여러 사용자를 추가하면서 사용할때 이용합니다.

Part 2)
* Filezilla 설치 - 패키지 관리자
* Filezilla를 이용해서 서버에 자료 올리기
* Linux Mint 와 Windows7 전원관리자 설정 변경 - 절전모드는 인터넷 연결을 끊음
* windows7의 virtualbox에서 ubuntu server 불러오기- 네트워크설정 변경
* windows7에서 putty를 이용해서 서버에 원격 접속하는 방법
* 스마트폰에서 server에 원격 접속하기 - connectbot,vssh lite
* 스마트폰에서  ftp클라이언트 이용하기 - es 파일 탐색기 ,ftpmanager free

동영상 tutorial 을 먼저 보신후에 글을 읽으면 더 편합니다.
동영상은 480p 이상에서 큰화면 또는, 전체화면을 권장합니다.



1)Virtualbox 설치하기
Virtualbox 최신 버전을 설치하실 분들은 virtualbox.org에 가셔서 해당하는 패키지를 다운받아서 설치하시구요,
이글을 참고하시면 도움이 될겁니다.http://bagjunggyu.blogspot.kr/2012/09/virtualbox.html

이미 설치 하신분들은 설치한 virtualbox를 이용하시구요

오늘은 기본제공 되는 virtualbox를 이용해보겠습니다.
터미널에서
apt install virtualbox -y 하시면 됩니다.

2)Ubuntu Server 설치하기
오늘은 Ubuntu Server 12.10  32-bit 를 이용해 보겠습니다.
우분투 홈페이지에는 현재 12.10 버전의 서버는 64-bit만 소개되어 있습니다.

32-bit 다운로드는 : http://releases.ubuntu.com/quantal/ 에서 ubuntu-12.10-server-i386.iso 를 찾으세요 ,
64-bit 이시면 ubuntu-12.10-server-amd64.iso를 다운받으시거나
우분투 홈페이지 다운로드를 이용하세요.http://www.ubuntu.com/download/server

Ubuntu Server 12.04.1을 이용해 보시려면,우분투 홈페이지 다운로드를 이용하시거나
이곳에서 컴퓨터 사양에 맞는 버전을 찾아 다운받으세요 http://releases.ubuntu.com/precise/ 

32-bit 와 64-bit의 차이점을 보시려면 이글을 참고하세요
http://bagjunggyu.blogspot.kr/2012/09/12.html

자 그럼,
다운받은 ubuntu server iso 파일을 ,virtualbox에서 설치하겠습니다.

windows7과 함께 사용하기 위해서 기본 생성 위치를 windows의 C: 드라이브에 만들겠습니다.
파일 - 환경설정을 클릭하셔서

기본 머신 폴더에서 기타

windows7의 c: 드라이브 마운트

폴더 만들기 -->VirtualBox VMs 를 만드세요

이제 기본 머신 폴더가 windows7의 c: 드라이버 VirtualBox VMs 로 바뀌었습니다.

설치 시작해 볼까요! 그림으로 설명을 대신하겠습니다.








어느정도 크기로 만들고 싶으세요?저는 16GB로 했습니다.
소유하고 계시는 파일들과 활용하려는 목적등 자신에게 맞게 크기를 결정하면 됩니다.



시스템 구성이 끝났습니다.
이제 iso이미지를 불러들여 본격적으로 설치할겁니다.그런데,그전에
네트워크 설정을 변경해야 ssh 와 ftp를 사용 할 수 있습니다.
설정을 누르세요

네트워크를 선택하세요
네트워크를 보면 기본 NAT로 되어 있는게 보이실 겁니다.
이부분을 바꿀겁니다.

다음에 연결됨(A) : NAT 부분을 브리지 어댑터로 바꾸고
무작위 모드(P): 를 가상 머신에 허용 으로 바꾸세요
이제 ubuntu server 를 설치해서 ssh 와 ftp를 이용하실수 있게 되었습니다.

시작을 눌러서 ubuntu server를 설치하겠습니다.

선택할 미디어를 선택 할 차례입니다.마우스 포인터 화살표가 있는 폴더를 클릭하셔서

설치하려는 iso 이미지가 있는 폴더를 찾습니다.
아까 다운 받아둔 ubuntu-12.10-server-i386.iso 이미지를 선택합니다.



드디어 Ubuntu Server 설치화면입니다.
먼저 언어를 선택할 차례입니다.아쉽지만 영어를 선택하겠습니다.



이부분이 locale을 지정해주는 부분이고,여기서 결정되어지는 지역에 의해서 저장소의 위치가 결정됩니다.
이 설정 대로 하면 우분투 한국 저장소인 kr.archive.ubuntu.com/ubuntu 가 기본으로 설정됩니다.
나중에 저장소 위치를 바꾸는 방법을  맨아래에 따로 P.S)에서 말씀 드리겠습니다.




키보드 배열찾기를 할까요? 아니오~~



이 컴퓨터의 이름,호스트 이름을 정하는 겁니다.
어떤거냐구요? 부팅하게 되면 이런 형식으로 나오게됩니다.
사용자@호스트
아래 그림에선 사용자는 server 이구요, 호스트가 ftp 입니다.
바로 여기서 결정 하는 것이 저 호스트의 이름입니다.
어떤 것으로 하시렵니까? iris,rose,등의 꽃말도 있고,등등...원하시는 이름을 적용하세요

이젠 사용자 이름 차례입니다.


비밀번호


시작폴더를 암호화 할까요? 아니오~

표준시간대가 아시아/서울이 맞습니까? 네~

디스크 전체를 사용하며 LVM을 설정하시겠습니까? 예.


바뀐점을 디스크에 쓰고 LVM을 설정 하시겠습니까? 예.

파티션등에 사용할 그룹의 크기 ,아까 설정한 16GB가 적용됩니다. Enter

바뀐점을 디스크에 쓰시겠습니까?예~

Enter

자동업데이트를 하시겠습니까? 아니오 ,예를 하셔도 괜찮습니다.
제가 실험들을 하기위해서 아니오를 선택한겁니다.

설치할 소프트웨어 선택 입니다.
여러가지 서버들이 보이죠? 우린 오늘 SSH 서버를 이용할겁니다.Enter

마스터 부트 레코드에 GRUB(그러브)부트로더를 설치하시겠습니까?예~

설치를 마쳤습니다.
자동으로 미디어 장치가 제거됩니다. Enter

Ubuntu Server 를 실행 하겠습니다.

Enter 누르세요

아까 설정한 사용자를 입력합니다.저는 server

이번엔 비밀번호

로그인 한후 첫화면 입니다.
여기에 중요한 정보가 나옵니다.
여러분의 화면에 보이는 IP 주소를 외워두세요
나중에 모든 원격접속에 사용될겁니다.

위에처럼 안나오신 분들은 ifconfig 를 입력하시면 inet addr: 에 ip주소가 나올겁니다.

3)이제 ssh 서버를 설치해 볼까요?

sudo apt-get install ssh 입니다.

왜 ssh 서버를 설치했느냐 하면요,밖에서 활동 하면서도 이 서버를 움직이기 위해서 랍니다.
여러가지 방법이 있는데요.
* 다른 컴퓨터에서 나의 Linux Mint Booting usb 를 이용해서 접속하기
* windows에서 putty를 이용해서 접속하기
* 아이폰 , 안드로이드폰,테블릿PC 등등에서 터미널 에뮬레이터를 이용해서 접속하기
이 모든 방법으로 지금 설치한 ubuntu server를 관리하기 위해서 랍니다.

그중에서 Linux Mint 혹은 Ubuntu의 터미널을 이용한 접속을 먼저 보여드릴게요
터미널을 열고
sudo ssh 사용자@호스트 IP주소 하면 네트워크를 이용해서 서버에 접속하게됩니다.
직접 볼까요? 제경우

sudo ssh server@192.168.219.16
하면,현재 사용중인 데스크탑 사용자의 비밀번호를 입력하구요
그러면 ,안내 문구가 나옵니다.yes를 입력하시구요
그다음,server 사용자의 비밀번호를 입력합니다.

보이시죠? 제목에 server@ftp:~ 라고 나오지요?
바로위의 ubuntu server 화면과 같은 내용의 화면이 터미널에 나옵니다.
원격접속이 된거에요

그럼 여기 터미널에서 ubuntu server 업그레이드를 시작해보겠습니다.

먼저 업그레이드 하기전의 ubuntu server 상태를 한번 볼까요?
커널이 3.5.0-17 입니다.

자 그럼 업그레이드 하겠습니다.터미널에서

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

이제 다시시작을 해서 업그레이드를 적용하겠습니다.
sudo reboot 하면 터미널과의 원격접속은 끊기고, ubuntu server는 재부팅을 하게됩니다.
그냥 연결을 끊을때는 ~. 을 누르거나 exit 을 입력합니다.

sudo reboot

그리고,커널을 볼까요?
3.5.0-23  입니다.업그레이드가 되었습니다.

4)자 그럼 이제,오늘의 하일라이트 ftp를 설치하겠습니다.

sudo apt-get install vsftpd 해서
very secure file transfer protocol daemon 을 설치하겠습니다.

sudo apt-get install vsftpd

이젠 몇가지 설정파일을 변경해서 ftp를 움직여 보겠습니다.
설정 파일은 /etc/vsftpd.conf 입니다.

sudo vim /etc/vsftpd.conf

여기에서 ftp 사용자를 설정해주는데요
아무나 사용은 안되고,
이 ubuntu server 를 사용하는 local_user 에게 읽고,쓰는(업로드) 권한을 주겠습니다.

anonymous_enable=NO  -- 아무나 로그인 할 수 없습니다.
local_enable=YES  -- 이 ubuntu server 사용자가 ftp 서버에 로그인 할 수 있습니다.
write_enalbe=YES -- 이 ubuntu server 사용자가 ftp 서버에 로그인해서 업로드 할수 있습니다.

이렇게 되어야 제가 이 ftp서버에서 업로드 ,다운로드를 마음대로 할 수 있게됩니다.

그런데,그림의 맨아래에 보면 write_enable=YES 의 색깔이 다르죠?
이러면,사용자가 다운로드는 할 수 있지만,업로드는 할 수 없습니다.
write_enable=YES를 활성화 시켜주어야 업로드를 할 수 있게됩니다.
바꿔보겠습니다.

설정을 바꾸려면  a  를 눌러주세요 INSERT 표시가 나오지요? 설정을 바꿀 수 있는 상태랍니다.
다 바꾸셨으면 esc 키를 눌러주세요 INSERT 표시가 사라졌을겁니다.
저장하고 나가려면  : (콜론) = Shift + ; (세미콜론) 을 눌러서 session을 멈추고
wq 를 눌러서 저장하고 나옵니다.변경하지 않고 그냥 나올때는 q 를 눌러줍니다.
이젠 write_enable=YES가 하얀색으로 활성화 되었습니다.

그러면, vsftpd를 다시 작동해주어야 변경된 설정이 적용됩니다.

sudo service vsftpd restart

이제,ftp 서버의 설정은 끝났구요
여러가지 ftp 클라이언트들이 있습니다.그중에 저는 filezilla를 이용하고 있습니다.
이부분은 Part 2에서 다루겠습니다.
 http://bagjunggyu.blogspot.kr/2013/02/virtualbox-ubuntu-server-ftp-part-2_16.html
물론,파일관리자(노틸러스,니모)의 '서버에 연결'을 이용하셔도 좋습니다.

그리고, 마지막으로 FTP  사용자 아이디 만들기 입니다.

먼저 ,이 포스트의 목적을 다시 한번 되 짚어 보겠습니다.

이 포스트는, 집에서 사용하는 가정용 컴퓨터(데스크탑,노트북,등등)를 이용해서
Virtualbox 라는 가상 컴퓨터 제조기를 이용해 만든,가상의 컴퓨터에
우분투 서버라는 OS를 설치해서,
개인용 저장소를 만들어 FTP를 통해 운영하는 것을 설명 하고 있습니다.

조금전에 vsftpd.conf의 설정을 변경해서,
이 서버를 이용하는 사용자는 누구나 FTP를 사용 할 수 있게 설정을 했습니다.

이제 ,이 서버의 FTP 이용만을 위해 만드는 FTP 전용 아이디를 만들겠습니다.
앞으로 이 아이디만을 이용해서 FTP를 이용하려고 합니다.
sudo 권한을 가진 사용자로 로그인을 할 수도 있지만
FTP의 이용은 ,FTP만을 위한 전용 계정을 만들어 이용하는 것이 여러모로 좋습니다.

자 그럼,사용자(아이디)를 추가 하겠습니다.

추가되는 아이디에는 sudo 권한이 없습니다.
추가되는 아이디가 곧,폴더 이름이 됩니다.
편리하게 사용할 이름을 만들면 좋습니다.

사용자 추가 : sudo adduser 사용자아이디 입니다.
사용자 지우기 : sudo userdel 사용자아이디 입니다.
사용자의 폴더와 내용(파일)들을 함께 지울때는 : sudo rm -rf /home/사용자아이디 입니다.
                                                                       또는 : sudo userdel 사용자아이디 -r 입니다.

ftpuser라는 아이디를 FTP 전용 사용자로 등록하고,지워 보겠습니다.

sudo adduser ftpuser
그림처럼, 관리자 비밀번호를 넣고 나면, ftpuser를 등록하는 절차가 자동으로 진행됩니다.

ftpuser 라는 디렉토리(폴더)가  생기구요 /home/ftpuser
ftpuser 의 비밀번호를 만들고 : Enter new UNIX password:
ftpuser 의 비밀번호를 확인하고 : Retype new UNIX password:

사용자 정보를 만듭니다.
특별히 입력하지 않아도 됩니다.Enter를 눌러서 기본설정으로 합니다.
지금 이정보가 맞습니까? [Y/n] y
이러면 사용자 ftpuser가 만들어 진것입니다.

이제부턴 이 ftpuser를 이용해서 FTP를 이용할겁니다.

그리고,이 사용자를 지우는 과정입니다.
sudo userdel ftpuser -r  : ftpuser를 지운겁니다.
sudo rm -rf /home/ftpuser  :ftpuser 디렉토리(폴더)와 그 내용들을 함께 지운겁니다.

이렇게 FTP 이용 준비를 마무리 했습니다.

P.S)우분투 서버 저장소 변경하기 
우분투 서버의 저장소를 바꾸는 방법입니다.

sudo vim /etc/apt/sources.list
이곳에서 붉은색으로 보이는 부분 kr.archive.ubuntu.com/ubuntu 를 원하는 서버로 바꾸면 됩니다.
ftp.daum.net/ubuntu 가 있죠 



P.S) 
포트포워딩 과정은 이렇습니다.
기본 게이트웨이 주소를 알아내서 인터넷 브라우저를 통해 라우터에 접속합니다.
인터넷 서비스 공급자(SK,LG,KT등)에  라우터 혹은 공유기의아이디와 비밀번호를 알아내서 로그인하고 
NAT의 포트포워딩에서 WAN ip(외부 ip)와 통할 LAN ip(내부 ip)를 포트번호로 설정해서 이용하는 겁니다. 


이런 식이죠 ,포트 21과  22를 내부 ip와 통할 포트로 지정하고 ip주소를 지정해주면
외부에서 접속할때 하나의 ip주소로 접속을 해도 다른포트를 입력하면 그 포트에 해당하는 ip주소로 연결하는 겁니다.
외부 ip 123.456~~ 으로 접속한 것중 포트번호 21은 내부 ip 주소 192.168.~~.11 으로 연결하세요
외부 ip 123.456~~ 으로 접속한 것중 포트번호 22은 내부 ip 주소 192.168.~~.22 로 연결하세요 와 같은겁니다.
그리고 포트가 지정되어 있지 않으면 접속 되지 않는겁니다.

밖에서 스마트폰이나 컴퓨터로 접속할땐 WAN ip (외부 ip)를 호스트에 입력합니다.
또는 WAN ip(외부 ip)를 DDNS를 이용해서 바꾼후에 이용하기도 합니다.