생각보다 빨리 다음 글을 작성할 수 있게 되었군요.
이번에 쓴 방법은 전에 MS Azure에 openVPN 서버 구축할때 썼던 방법이었습니다.
역시 한번 해봤다고 이쪽은 순식간에 끝나버리네요.. 진작 이쪽으로 할껄;;
이번 글에서는 ubuntu 12.04 LTS 64bit 가상서버에 openVPN 서버를 설치하는 방법에 관해서 적습니다.
다만 캡쳐 이미지 수량이 너무 많아지는 관계로 우분투 설치과정은 조금 복잡하다 생각한 부분 빼곤 글 위주로 설명하겠습니다.
기존에 설치된 CentOS와 함께 멀티부팅 가능한 환경으로 구성하게 될것 같군요.
5번에 우분투 14.x LTS 업그레이드 부분을 추가했습니다. 구버전 우분투를 최신버전으로 올려도 openVPN은 작동하니 안심하고 올리시길.
제목에 있는 '응용법' 이란 일본의 인터넷 라디오 업체인 Radiko의 방송을 녹음할 수 있는 방법.
근데 이건 제 가상서버조차 도쿄가 아니라 히로시마로 잡혀서 도쿄 방송 녹음을 못하는 고로 링크 위주로 간단하게만 쓸 생각입니다.
여기에 Dropbox를 추가로 설치하던 해서 녹음된 파일을 빼내올 수 있으면 편하겠지요. 이 글에선 여기까진 안다룹니다.
-- 목 차 --
누르시면 바로 이동합니다.
1. Ubuntu 12.04 LTS (64bit) 설치
2. openVPN 서버 설치 및 설정
3. 접속 테스트 (iOS)
4. 번외 - Radiko 녹음환경 구축하기(링크 정리)
5. 추가 - 14.x LTS로 업그레이드
1. Ubuntu 12.04 LTS (64bit) 설치
먼저 1번에서의 업체 기본 제공 운영체제로 설정된 상태라는 가정으로 시작하겠습니다.
제가 설치할 패키지는 Ubuntu에서 써야 해서, CentOS에 Ubuntu를 추가로 설치해야 합니다.
기존에 설치된 CentOS는 삭제되지 않고 유지됩니다. 아마 거의 쓸일은 없을것 같지만..
이렇게 conoha가 제공하는 템플릿 운영체제 이외의 운영체제를 사용하게 되면, conoha에서 제공하는 시리얼 콘솔을 사용할 수 없게 됩니다.
물론 홈페이지에 접속해서 콘솔을 이용하는데는 문제가 없습니다만, 외부에서 편하게 접속할 수 있는 수단이 사라지게 되죠.
이때는 아래 페이지에서 '1. 서버측 설정' 을 따라하면 다시 시리얼 콘솔을 사용할 수 있게 됩니다.
Ubuntu でシリアルコンソール by yutarommxさん
아무튼 계속 하지요.
먼저 서비스 대시보드에 로그인한 뒤, 만들어진 VPS를 선택하고 OS Reinstallation 에서 Ubuntu를 선택합니다.
'Install Source'에서 'Template Image' 말고 'Install Image' 를 선택하면 하단 콤보박스가 바뀌는데,
그중에서 Ubuntu, 12.04 LTS 64bit를 선택합니다.
VNC Console Keymap은 en-us를 선택합니다. 기본값인 ja 를 선택할 경우 나중에 번거로워집니다.
특수문자가 현재 쓰시는 키보드에서 눌리는 키와 콘솔에서의 입력이 다르게 들어갑니다.
그리고 하단의 'Continue' 버튼을 누르면 앞서 설정한 내용을 확인하는 페이지가 나옵니다.
내용을 확인한 뒤 역시 'Continue' 를 클릭해줍니다.
이렇게 가상 서버가 꺼진 상태로 먼저 선택한 운영체제의 설치 이미지가 마운트됩니다. 위에 보이죠.
나중에 운영체제 설치 끝나면 저기에서 'Force eject' 를 눌러 이미지를 빼야 하니 위치 정도는 기억해둡시다.
이 상태로 화면 맨 위 좌측에 보이는 Start 버튼을 누릅니다. 가상머신이 켜집니다.
이제 하단 콘솔의 오른쪽 위에 보이는 시계방향 회전 화살표 아이콘을 눌러 콘솔을 새로고침합니다.
이렇게 설치화면이 뜨면 정상. Install 을 선택하고 엔터를 누릅니다.
이제 1시간 정도 이것저것 해봅시다. 먼저 언급했듯 여기서부터는 글 위주로 설명합니다.
중간에 파티션을 나눠야 하는 부분 빼고는 크게 어려울 부분도 없을것 같군요.
또, 글 다 적고 헷갈리지 않게 영문 순번을 달아봤습니다. 안의 내용은 순번 달기 전에 적은거니 문장이 전 문장과 어색하게 이어져도 감안해주시길.
a. Install을 선택하고 나면 언어나 국가, 키보드 레이아웃 관련 설정이 이어집니다.
언어설정은 영어(English)로, 국가는 미국(United State)으로, 키보드 레이아웃을 자동 감지하겠냐고 묻는 안내창에서는 No를 선택.
키보드 레이아웃 자동감지를 No로 하면 키보드를 선택하는 화면이 이어집니다.
키보드는 영어 ( english(us) ), 영문 키보드 종류는 맨 위 기본값( english(us) ).
b. 여기까지 되면 네트워크 관련 설정을 알아서 슥슥 합니다.
그러다가 호스트명, 그러니까 이 우분투 머신의 이름을 묻습니다. 마음에 드는 이름을 적으시면 됩니다.
c. 다음은 Ubuntu 업데이트나 패키지 설치시 사용할 서버의 지역을 선택합니다.
일본에 있는 서버인 만큼 일본이 제일 빠르겠죠. 리스트를 화살표키로 뒤지면 일본(Japan) 이 나옵니다. 선택.
jp.archive.ubuntu.com 혹은 이 비스무레(?)한게 나오면 제대로 선택하셨습니다. 엔터 눌러서 계속.
다음에 뜨는 프록시 설정은 빈 채로 엔터 누릅니다. 이제 잠시동안 구성요소를 로딩합니다.
d. 다음은 계정 정보입니다.
'당신의 이름을 입력하라' 라고 하는데, 그냥 적당한 아이디 입력하시면 됩니다.
다만 기본값으로 이 사용자 이름이 다음에서의 우분투 계정명이 되며, 로그인시 필요하니 알아서 잘 정하시면 되겠습니다.
다음에서 계정명까지 입력하면 비밀번호를 입력하고, 이 비밀번호를 확인하는 절차가 이어집니다.
이 다음엔 윈도우의 사용자 디렉터리에 해당하는 홈 디렉토리의 암호화 여부도 묻습니다. 전 굳이 안해도 될것 같아서 No 선택했습니다.
e. 표준 시간대는 기본값이 Asia/Tokyo로 되어있는데, 이걸로 그냥 Yes.
사실 JST와 KST는 시간차이도 안납니다; 어차피 일본 서버이기도 하니 그냥 이걸로.
f. 자 이제 파티션을 나눌 시간입니다.
먼저 CentOS가 설치되어 있는 상태고, conoha가 제공하는 템플릿 운영체제의 파티션 설정은 20 / 80 GB 이기 때문에
저는 이 80GB쪽 파티션의 일부를 쪼개서 Ubuntu를 설치하려 합니다.
여기에선 두번째, Guided - use entire disk 를 선택합니다.
참고로 첫번째를 선택하면 프로세스 진행중 파티션을 더이상 나눌 수 없다면서 에러가 났습니다.
또, 과거의 저처럼 운영체제를 여러번 설치하면서 저장장치의 공간 구성이 지금과 다른 상황일 때는
맨 마지막의 Manual을 선택해 파티션을 삭제 및 조정하고 설지를 계속해야 하는 경우도 있습니다.
Manual은 별로 쓰실일이 없을것 같으니 패스하도록 하지요.
무튼 저걸 선택하면,
이렇게 설치할 파티션을 선택받습니다. 용량 널널한 두번째를 선택하지요.
경고문에도 있지만 이러면 데이터 다 날아가니 저기다 뭐 저장해두신 분은 옮겼는지 확인하고 이 과정 진행하셔야 합니다.
제 경우는 VPS를 만든 직후 이 두번째 과정을 진행한다 가정하고 내용을 작성하고 있어서 위에서 따로 경고를 안드렸습니다만.
무튼 선택하면, 저 2번 디스크가 '다음과 같이 두개로 나뉘어 포멧된다' 는 취지의 경고창이 한번 더 뜨게 됩니다.
데이터는 모두 삭제되고, 이 작업은 복구할 수 없으며.. 같은 내용이 적혀 있습니다. Yes를 선택합니다.
이러면 알아서 파티션 나누고 패키지 설치를 진행합니다.
여기서부터는 약 10분 정도가 소요됩니다. 은근 걸려요;
g. 이 과정이 끝나면 자동 업데이트를 쓸건지 묻습니다.
두번째의 Install security update automatically 를 선택해줍니다. 뭐 안하셔도 관계는 없습니다. 전 안하긴 왠지 찝찝해서;
h. 그 다음이 중요한데, 서버의 용도를 묻고 그 용도에 따른 패키지를 자동으로 설치해주는 부분인데 전 기본값으로 갔습니다.
Basic Ubuntu Server.
다른거 선택하시면... 안될것 같진 않은데, 제게는 발생하지 않는 문제가 생길 수 있습니다.
i. 여기까지 하면 이어서 부팅에 필요한 파일을 설치합니다.
설치 도중 '다른 운영체제(아마 거의 CentOS 이실듯) 를 찾았다. GRUB 부트로더를 MBR에 설치하겠느냐' 하고 묻습니다.
요지는 다른 운영체제를 찾았는데, 이걸 부팅할때 선택할 수 있도록 할건지를 묻는겁니다.
저야 굳이 안할 이유는 없었으니 Yes 선택. No를 선택하면 어떻게 되는지는 안해봐서 잘 모르겠네요.
j. 다음에서 시간대 설정을 묻습니다. 그냥 기본값인 UTC로 설정.
k. 여기까지 하면 설치과정은 끝납니다.
부팅 이미지를 제거하라는 메시지가 뜨는데, 여기서 Continue를 선택하면 머신이 재부팅됩니다.
이때, 화면 상단에서 잽싸게 'Force eject' 를 눌러 부팅 이미지를 빼줍니다.
이거 안빼면 또 Install 화면 뜹니다.
아니면 Continue 선택하신 다음 상단에서 'Shutdown' 을 눌러 머신을 끈 다음,
상단에서 Eject를 눌러 이미지를 제거하고 Start로 머신을 켜서 쓰셔도 되구요. 끄셨다면 아예 아래에서 snapshot 만들고 오셔도 되겠고.
선택지는 여러가지지만 결국 이미지는 제거해야 합니다.
참고로 여기는 해도 되고 안해도 되는데,
대시보드의 Snapshots 메뉴에서 현재의 성공한 구성 디스크 사본을 만들어 놓을 수 있습니다.
나중에 삽질하다 시스템이 망하면(?) 여기서 1분 정도만에 되돌아가는것이 가능.
개인적으론 만들어두시는걸 추천드립니다. 급할땐 편하더라구요.
참고로 가상 서버가 꺼져야 snapshot 생성이 가능합니다.
무튼 이미지를 제거하고 머신을 켜면,
이렇게 운영체제를 선택할 수 있는 화면이 뜹니다. 맨 위의 Ubuntu를 선택합니다.
잠시 후 단촐한 로그인 화면이 뜨면 앞서 설치하며 입력한 계정명과 비밀번호로 로그인합니다.
이런 화면이요. 여기서 로그인까지 성공하면 다음을 진행할 수 있습니다.
2. openVPN 서버 설치 및 설정
제가 참고한 것은 MS Azure로 VPN 서버를 구축하려던 당시 발견한 openVPN측 도움말 페이지.
OpenVPN on Windows Azure
중간 정도까지는 Azure 머신을 구성하고 접속 환경을 설정하는 부분인데,
그 이후부터는 패키지를 설치하고 설정하는 방법이 안내되고 있습니다. 이 방법을 그대로 따라갈 예정.
콘솔에서 아래 명령을 실행해 필요한 패키지를 다운로드 받고 설치를 진행하며
openVPN 관리자 계정 비밀번호까지 설정합니다.
참고로 하단의 명령어 중 # 이후는 주석이라 입력하지 않으셔도 됩니다.
설치가 끝나면, 위 캡쳐 이미지의 빨간 박스 안처럼 현재 접속 가능한 주소를 붙혀 관리자 및 클라이언트 페이지 접속경로를 안내합니다.
그 중, https:// (서버 주소) : 943/admin 의 관리자 페이지로 접속합니다.
서버 인증서 경고가 나지만 무시하고 접속하고,
로그인 화면에서는 기본 관리자 계정명 openvpn과 먼저 위에서 설정한 비밀번호를 입력합니다.
잘 되면 위와 같은 화면이 뜹니다.
크게 설정을 바꾸지 않아도 이용 가능하기 때문에, 여기선 딱히 손대진 않겠습니다.
Server Network Settings 에서는 VPN이나 관리자 페이지 접속시 포트 번호를 변경할 수 있습니다.
안바꿔도 상관은 없지만, 바꿀 경우 부정접속 시도 등의 위험은 많이 줄어듭니다.
다만 VPN의 기본 포트 변경시 방화벽에도 설정을 적용(바뀐 포트를 여는) 해줘야 하는듯 합니다.
참고로 현재 이 openVPN 서버는 테스트 라이센스 상태로 한번에 두명까지만 접속이 가능합니다. [openVPN - Pricing]
뭐 그래도 혼자 쓰기에는 부담없는 수준이라 보네요. 트래픽에 제한이 있는것도 아니고.
그러고보니, 아무래도 관리자 계정으로 오만걸 다 쓰자니 찝찝한 감이 있습니다.
사용자용 계정을 하나 만들어 보겠습니다.
먼저 콘솔에서 사용자를 생성하고, 비밀번호를 설정하겠습니다.
아래 명령어를 차례대로 실행합니다.
다만 첫번째의 유저 생성시 비밀번호까지 설정한다면 마지막의 비밀번호 설정 명령은 건너뜁니다.
다 만들어졌다면 openVPN의 설정 화면 ( 서버 주소:943/admin ) 에 접속해 'User Permissions' 페이지로 갑니다.
이 화면에서 아까 콘솔에서 만든 계정명( 여기서는 예로 든 vpnconnector ) 을 New Username에다 입력하고
하단의 'Save Settings' 를 눌러 저장합니다.
저장한 뒤, 화면 상단에 뜨는 'Update Running Server' 버튼을 눌러야 VPN 서버에 반영됩니다.
자, 여기까지 하면 서버쪽 설정은 끝났군요.
3. 접속 테스트 (iOS)
이제 이걸로 연결해 보겠습니다.
제가 가장 많이 쓰는 iOS 기기, 아이패드 에어를 예로 들어보죠.
아이패드만을 예로 들지만, 클라이언트 페이지에서 설정파일을 다운로드 받아야 하는건 모든 운영체제가 동일합니다.
이렇게 받은 설정파일을 각 운영체제별 openVPN 클라이언트로 열어 접속하면 되는 방식.
먼저 각 운영체제별 openVPN 앱을 설치합니다. [ Windows, Mac, Android, iOS ]
저는 쓰고 있었기도 하고, 설치는 특별히 어려울게 없으니 방법은 건너뜁니다.
먼저 위에서 접속한 관리자 페이지 말고, https:// (서버 주소):943 으로 접속하면, 클라이언트 페이지가 뜹니다.
로그인 화면이 조금 더 넓은 그 페이지에서, 먼저 위에서 추가한 vpnconnector 계정으로 로그인합니다.
그리고 맨 아래의 링크를 눌러 openVPN 서버 설정 파일을 다운로드 받습니다.
openVPN 앱이 설치되어 있다면 'OpenVPN에서 열기' 가 뜰겁니다. 탭해줍니다.
이렇게 앱에서 설정을 불러옵니다.
User ID에는 아까 로그인한 계정명이 입력되어 있고, 비밀번호 란만 비어있군요. 혹시 UserID가 비어있다면 아까 생성한 사용자 계정을 입력합니다.
아까 클라이언트 페이지에 로그인할때 썼던 계정 비밀번호를 입력한 뒤, 옆의 Save에 체크해주고 하단의 Connection을 탭합니다.
아마 별일 없으면 연결 되실듯.
연결이 잘 됐는지 Radiko 앱도 켜봅니다. 히로시마로 뜨긴 하지만 잘 나오네요.
여기가 잘 되는걸 보니 다른곳은 굳이 안봐도 되겠습니다.
다만 지금은 VPS의 네트워크 트래픽이 제한되고 있어서,
이렇게 속도측정해도 느릿느릿하고 니코니코동화 등의 일부 동화 로딩도 간간히 느립니다.
그래도 이렇게 구축해보고 잘 안된다 싶으면 과금되기 전에 잽싸게 지울 수 있으니, 여러가지로 테스트 기간이 유용하지요.
2015.10.25 P.M 7:18분경 추가.
무료기간이 지나고 속도제한이 풀리면 얼마나 속도가 나올까- 에 대한걸 안올렸더군요;
위 측정치는 지난 휴일,
아이패드를 VPN에 연결하고 먼저 측정했던 사이트에서 설정변경 없이(기본값은 미국의 텍사스 서버와 속도측정) 측정해본 것입니다.
현재 KT FTTH 이용중(기가인터넷 아님) 입니다.
생각보다는 잘 안나오네 생각도 드는데, 가끔 일본의 고해상도 음원 판매 사이트인 e-onkyo에서 VPN 연결한 채로 음원을 다운로드 받으면
900KB/s를 채 못넘곤 하던데 이런걸 봐도 그럭저럭 현실적인 결과라는 생각이 드네요.
원래 conoha에서 제공하는 회선 자체도 100Mbps급이기도 하고 말이죠.
다만 딱 한번 측정한 것이고, 서버가 위치한 국가 등 다양한 요인에 따라 차이가 생길 수 있으니 감안하고 참고해 주시기 바랍니다. ///
여기까지가 구축과 테스트의 끝입니다.
4. 번외 - Radiko 녹음환경 구축하기(링크 정리)
VPN 서버 구축을 위한 정보를 찾다가 발견했는데, 방송 녹음이 가능한 쉘 스크립트가 있더군요.
이건 제가 본격적으로 써먹을건 아니라서 관련글 링크로 짧게 마무리 하겠습니다.
사실 위 Ubuntu 서버에서 설치해보려 했습니다만,
CentOS에서 시도한 경우가 많았기에 그 방법대로 여기서 시도하려니 운영체제가 달라 잘 안되더군요.
CentOS에서 잘 설치되면 위와 같은 스크립트 파일을 돌려 녹음을 할 수가 있습니다.
여기서 참고한 글은,
ServersMan@VPSでradikoを録音 (필수 설치 패키지)
CentOS上でRadikoを予約録音してMP3をDropboxへコピーする環境をつくる by 竹内仁 さん (필수 설치 패키지 및 방송국 명칭)
rtmpdumpでradikoにアクセスする手順 by zariganitosh さん (Radiko 녹음 쉘 스크립트)
입니다. 관심있는 분들은 참고하시길.
5. 추가 - 14.x LTS로 업그레이드
2016.2.22 P.M 2:40분경에 추가한 내용입니다.
슬슬 글 적은지 1년도 지나가고, 이 글을 쓰며 설치하는데 썼던 우분투 12.04 버전도 구버전이 됐더군요.
혹시 openVPN이 작동하지 않을까 싶어서 업그레이드를 미루고 있다가, 스냅샷 하나 만들어두고 14.04 버전으로 올렸는데 문제없이 정상 작동합니다.
그래도 혹시 문제 생길 경우를 대비해, 스냅샷(Snapshots)은 만들고 진행하시길.
이 글의 윗쪽을 따라가시다 보면 스냅샷 만들고 진행하라는 부분이 있습니다. 그쪽 내용을 참고하시길.
방법은 굉장히 간단합니다.
커맨드 라인에 do-release-upgrade 라는 명령어를 입력하면, 최신 버전과 비교 후 필요한 패키지를 다운로드받아 업그레이드를 진행합니다.
물론 이 명령을 실행하기 위해선 최상위 권한이 필요합니다.
위 명령어를 입력하고 root 비밀번호를 입력하면, 최신 버전과 비교해 필요한 패키지를 체크합니다.
그 뒤, 정말 진행할 것인지 한번 더 확인하는 과정이 있습니다.
동의할 경우 소문자 y, 중단할 경우 대문자 N, 상세 패키지 내역을 보고 싶으면 소문자 d를 입력하고 엔터를 누르면 되고,
이는 커멘드 라인에 표시되는 쪽을 따르시고 제가 먼저 적은 내용은 참고만 하시기 바랍니다. (큰 틀에선 동일하리라 생각합니다만)
y를 선택해 계속 진행할 경우, 패키지 설치 과정이 이어집니다. 넉넉하게 20-30분 정도 생각하시길.
중간에 위와 같이 패키지 업그레이드 과정을 일일히 확인할 것인지 아닌지 묻는 화면도 나옵니다.
수많은 패키지가 설치되기 때문에, 만약 위와 같이 '아니오'를 선택해 하나하나 확인하며 진행할 경우 상당히 피곤하실겁니다.
여기서는 '예' 를 선택해 업그레이드 하는 패키지를 하나하나 확인하지 않고 알아서 진행하게 합니다.
업그레이드가 진행되고 나면 구버전에 존재했던 불필요 패키지를 지울 것인지 묻는 화면도 나타날겁니다.
여기서도 소문자 y를 선택해 계속 진행하면 됩니다.
모든 과정이 끝나면 우분투를 재시작할 것인지 묻습니다. 안내되는 사항을 보고 필요한 문자를 입력해 재시작을 진행하시면 됩니다.
부팅되고 나면 로그인 커멘드 라인의 우분투 버전이 올라가 있을 것입니다.
로그인한 뒤 확인해보면 openVPN 프로세스도 잘 살아있고, VPN 접속해봐도 정상적으로 되는걸 확인할 수 있었습니다.
만약 openVPN 프로세스 실행에 문제가 있거나 VPN 접속이 되지 않을 경우,
먼저 만들었던 스냅샷을 써서 구버전 우분투로 복귀하시길. 그게 제일 확실하고 간편합니다.
///
이번 글은 여기까지.
조금 무리한 감도 있지만 이번주 안에 정리되어서 개인적으론 좀 개운하네요.
혹시나 시도해보려는 분이 있다면 곁들여 봐주시면 좋겠습니다.
그럼 또 다음 글로 뵙겠습니다.
글 끝에 적긴 뭐한 내용이지만, 관심있으면 이쪽도 둘러보시길.