작성일 댓글 5개

우분투 자작 NAS – 13강, SSL 인증서와 HTTPS 접속

이런 저런 이유로 포스팅을 한동안 할 수 없었다.

13강에서는 원래 하려고 했던게 아니라 HTTPS 보안 연결에 대해서 포스팅 해본다. 사실 작년에 StartSSL로 HTTPS 연결을 시도하다가 인증서를 날려먹어 접어두었었다. 그러다가 갑자기 생각이 나서 다시 시도하게 되었다.

HTTPS 연결의 필요성

한국의 웹 환경을 생각해보자. 보안이 필요하다 싶은 곳은 전부다 액티브X로 도배가 되어있다. 요즘은 액티브X를 없앤다고 하는데 액티브X를 사용하지는 않지만 똑같은 프로그램을 액티브X가 아닌 다른 방식으로 설치하는 식이다. 결국 똑같다. 해외의 웹 환경을 경험해보면 좋은 비교가 된다. 해외 직구를 위해 결제라도 하나 해보게 되면, 너무 확연하게 차이가 남을 즉시 느낄 수 있을 것이다. 보안 프로그램 설치? 없다. HTTPS 보안 연결 하나로 끝이다. 개인 웹서버에 HTTPS 연결을 설정한다면 그와 비슷한 수준의 보안이 보장될 수 있다.

개인 웹서버에 HTTPS 연결이 무슨 필요나 할 수도 있겠지만, ownCloud에서는 HTTPS 연결을 권장하고 있다. 비교적 털릴 것이 없는 보통 사람이라고 해서 보안에 신경쓰지 않아도 되는 것은 아니다. HTTPS에 대한 복잡한 논의들이 있지만, 일단 보안에 굉장히 취약한 자작 NAS를 위해 HTTPS 연결을 설정해보자.

무료 SSL 인증서

무료로 SSL 인증서를 발급해 주는 곳은 몇 군데 있다. StartSSL, WoSign, Let’s Encrypt 등. 나는 세 군데 모두에서 SSL 인증서를 발급받아 보았다. 각기 장단점이 있는데 간략하게 적어본다.

StartSSL

  • 인증서 기간은 1년이다. 1년마다 재발급.
  • 무료로 발급해 주기는 하지만 관리할 때에는 유료다.
  • 분실했을 때 재발급은 유료다.
  • 그래서 작년에 한번 분실하고서는 쓸 수가 없었다.
  • 더 잘 찾아보지 않아서 그럴수도 있는데, 그 이후로는 쓸 수가 없게 되었다.

WoSign

  • 인증서 기간을 1~3년까지 지정할 수 있다.
  • 중국 쪽 업체라 그런지 대인배 마인드로 무료 지원이 굉장히 넓다.
  • 몇몇 브라우저에서 인증서를 신뢰할 수 없다고 뜬다.
  • 특히 모바일에서는 대부분 인증서를 신뢰할 수 없다고 뜬다. 이게 가장 치명적인 단점이다.

Let’s Encrypt

  • 인증서 기간은 90일이다. 연장하는 방법은 간단하다.
  • 얼마전까지는 비공개로 초대장이 있어야 사용할 수 있었는데 지금(2016년 3월 중순 기준)은 퍼블릭 베타이다.
  • 웹사이트에서 인증서를 받는 StartSSL이나 WoSign과는 달리 콘솔로 서버에 접속해서 받아야 한다. 해서 웹서버를 임대했거나 웹서버를 구축하지 않았다면 사용할 수 없다.

그래서 선택은 Let’s Encrypt다. 이 사이트에 대한 더 자세한 정보를 소개한다.

Let’s Encrypt

Lets’ Encrypt는 HTTPS를 사용하기 위해 SSL을 구매해야 하는 부분이 HTTPS 보급에 방해된다고 생각해서 SSL을 무료로 제공해서 HTTPS를 보급하기 위해 작년 말에 만들어졌다. 초기에는 Mozilla, Cisco, Akamai, EFF, id entrust 등이 모여서 ISRG(Internet Security Research Group)라는 새로운 SSL 인증기관을 만들어서 올해 SSL을 무료로 제공하겠다고 발표했다. 지금은 이 Lets’ Encrypt에 Facebook, 워드프레스를 만드는 Automattic, shopify 등 많은 회사가 스폰서로 참여하고 있다.

출처: Let’s Encrypt로 무료로 HTTPS 지원하기

Let’s Encrypt를 이용해 HTTPS 설정하기

우리가 지금까지 구축한 서버의 환경은 운영체제가 Ubuntu Server 14.04 LTS 이고, 웹 서버는 Apache2 를 이용하고 있다. 같은 환경이 아니면 설치 방법이 달라질 수 있으니 유의해야 한다. 설치과정은 Let’s Encrypt 사이트의 Getting Started 문서를 따라 진행된다.

서버에 Let’s Encrypt 설치

먼저 git 패키지를 설치한다. 설치되어 있지 않으면 GitHub에서 소스를 내려받을 수 없다.

~$ sudo apt-get install git

콘솔을 이용하여 서버에 SSH로 접속을 한 후 다음 명령어를 순서대로 입력한다.

~$ git clone https://github.com/letsencrypt/letsencrypt
~$ cd letsencrypt
~$ ./letsencrypt-auto --help

한줄 한줄 순서대로 설명을 하면,
1) GitHub에 있는 Let’s Encrypt 소스를 내려받고, (letsencrypt 디렉토리에 내려받는다)
2) letsencrypt 디렉토리에 들어가서,
3) letsencrypt-auto 를 실행한다.

세 번째 줄을 입력하게 되면, 알아서 의존성 관련 패키지들을 다운받고 설치한다. 꽤 많다.
여기까지 왔으면 거의 다 했다.

인증서 받고 적용하기

이제 다음 명령을 사용하면 끝이다(?).

~$ ./letsencrypt-auto

자신이 설정한 가상호스트에 따라서 목록은 많을 수도 있고 적을 수도 있다. HTTPS를 설정하고자 하는 도메인을 체크한 후, OK를 누른다.

letsencrypt_01

이메일을 입력하라는 창이 뜨는데 이메일을 잘 기입한다. 마지막으로는 Easy와 Secure가 뜰 것이다.

Easy는 HTTP와 HTTPS 연결 모두를 허용하는 것이고,
Secure는 HTTPS 연결만 되도록 하는 것인데, 상황에 따라 결정하면 될 것이다.
나는 후자를 선택했다.

일단은 이게 끝이다. 간단해서 좋다.
만약 가상호스트 설정에서 HTTPS 연결을 위한 설정을 해놨다면 알아서 수정을 해놨을 것이다.
이전에 설정해 놓지 않았다면, /etc/apache2/sites-available 디렉토리에 들어가서 파일 목록을 확인해 보라.

가상호스트 파일의 이름이 owncloud.conf 인 경우, owncloud-le-ssl.conf 가 새로 생겼을 것이다. 알아서 HTTPS 연결을 위한 설정 파일을 생성해 준다. (새로 생성한 파일 끝에는 -le-ssl가 붙는다)

그래서 끝이다.

덧글, 2016년 3월 16일 기준으로 이 블로그에도 HTTPS 보안 연결이 설정 되었다.

작성일 댓글 남기기

Ubuntu 업데이트 하기

업데이트는 상당히 중요하다. 무조건 최신이 좋은 것만은 아니다. 우분투 배포판을 예로 든다면, 2011년도부터 사용자 인터페이스로 완성이 덜된 것 같은 유니티[ref]유니티는 11.04 배포판부터 desktop용에 적용되었고, 초창기에는 특별히 한글 사용환경에서 문제가 많다는 이야기를 들었다. 최근에 와서는 특별한 문제는 없는 것 같다.[/ref]를 적용한 것이 배포판 인기 순위 1위의 자리를 리눅스민트에게 내준 것이 아닌가 한다.

어쨌든, 업데이트update를 해 보자. 두 가지 방법이 있는데, 소프트웨어 업데이트 프로그램을 이용할 것이냐, 터미널에서 직접 업데이트를 할 것이냐이다. 우분투를 사용하면 터미널에 익숙해지는 것이 정신건강에 좋다.

터미널에서 업데이트 하기

터미널 실행 : Ctrl + Alt + T

터미널에서 “소프트웨어 업데이트 도구”를 실행하여 진행할 수도 있다. 아래의 “소프트웨어 업데이트 도구” 이용하기 참고

update-manager

하지만 터미널에서 직접 업데이트를 진행해보자.

sudo apt-get update
sudo apt-get upgrade

이 두 줄이면 업데이트를 할 수 있다. 이 명령어를 하나씩 입력하여 진행한다. 비밀번호를 입력하는 부분에서는 계정의 비밀번호를 입력하면 된다.
*명령어 중 맨 앞에 붙는 ‘sudo’의 의미는 관리자 권한으로 실행하겠다는 것이다.
update-1

업데이트 정보를 내려받는다.
update-2

완료되면 upgrade를 입력한다.
update-3

y를 입력하면 업데이트가 진행된다.
update-4

DOS 환경을 접해보지 않았다면 터미널이 매우 어렵게 느껴질 수 있지만, 사실 그렇지 않다. 오히려 편하기까지 하다.

“소프트웨어 업데이트 도구” 이용하기

왼쪽 상단의 우분투 마크를 눌러 “update”를 입력하면 “소프트웨어 업데이트 도구”가 나올 것이다.
실행하면 업데이트 정보를 받고, 완료되면 프로그램 창이 뜬다.

update-5
[지금 설치]를 눌러 업데이트를 진행하면 된다.

*위 스크린샷들은 거의 일주일만에 업데이트를 하는 것이다. 보통 우분투는 하루에서 이틀 꼴로 업데이트 내용이 올라온다. 매일 해주면 귀찮을 수 있으니 어느정도 기간을 주어 업데이트 하면 될 것이다.

작성일 댓글 남기기

우분투 설치하기

우분투 선택하기

우분투를 설치하려고 해도 우선은 어떤 판을 설치할 것인지 결정해야 한다. 다른 버전은 일단 제껴두고 Desktop용으로만 한정하자. 현재 설치할만한 판은 다음과 같다.

1) 12.04 LTS (~ 2017-04)
2) 14.04 LTS (~ 2019-04)
3) 14.10 (~ 2015-07)
*괄호 안은 지원기간이다.

LTS는 2년마다 나오는 장기지원 버전이다. 다음 LTS는 16년 4월에 나오는 16.04이다. LTS를 사용하는 것을 추천하는데 12.04 LTS보다는 14.04 LTS가 지원기간이 훨씬 많이 남았다. 따라서 14.04를 선택하기로 했다.

설치하기에 앞서서

여기서는 오직 설치만을 다룬다. 컴퓨터 하드디스크의 파티션 구성을 어떻게 해야하는지에 대해서나 윈도우나 맥 등과의 듀얼 부팅은 어떻게 해야 하는지에 대해서는 다루지 않는다. 좋은 글들이 많이 있으니 구글에서 찾아보면 된다.

우분투 다른 버전을 사용하여 설치해도 무관하다. 설치과정은 다 비슷하고 별 차이가 없기 때문이다. 특히 리눅스민트를 추천한다.

우분투 14.04 LTS 설치하기

1. Ubuntu 14.04 LTS 다운로드

우분투를 다운 받을 수 있는 곳은 우분투 공식홈페이지 말고도 굉장히 많이 있다. 그 중에서 한국에서 운영되고 있는 FTP 사이트를 몇군데 소개한다.

1) KAIST / ftp.kaist.ac.kr
2) DAUM / ftp.daum.net
3) NEOWIZ / ftp.neowiz.com

이중에서 Daily Build는 KAIST ftp로 들어간다. 그리고 /ubuntu-cd/14.04.2 로 들어가면 설치 이미지 파일을 찾을 수 있다.

64비트 사용자는 ubuntu-14.04.2-desktop-amd64.iso를 32비트 사용자는 ubuntu-14.04.2-desktop-i386.iso를 다운 받는다.

2. 우분투 설치 USB 만들기

윈도우에서 우분투 설치 USB를 만드는 방법이다.

아래 주소로 들어가 우분투 설치 USB를 만들어주는 일명 UUI를 다운로드 받는다(2015년 4월 22일 기준으로 1.9.5.9가 최신버전이다).
http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

다운로드 받은 파일을 실행하면 프로그램 설치과정이 따로 없고
[I Agree]를 눌러 [설치 USB]를 만드는 과정으로 넘어간다.

[Step 1]의 목록에서 [Ubuntu]를 선택하고 [Step 2]에서 오른쪽의 [browse]버튼을 눌러 1.에서 받은 우분투 이미지 파일을 선택한다.

[Step 3]에서 설치 USB로 만들 USB드라이브를 선택한 후 [Create] 버튼을 누르면 설치 USB를 만들어 준다.
*USB를 포멧하기를 원한다면 [We will format …]을 체크하고 진행하면 된다.

다 만들어진 USB를 들고 다음 과정으로 간다.

3. 설치 USB로 부팅하기

각자의 컴퓨터 혹은 노트북에 2.에서 만든 설치 USB를 꽂고 USB로 부팅을 한다. CMOS세팅을 하거나 기능키를 눌러 USB부팅을 선택할 수 있다.

4. 우분투 설치하기

제대로 했다면 다음과 같은 화면이 뜬다. 왼쪽의 언어를 한국어로 바꾸고 [Try Ubuntu]버튼을 누른다. 언어를 한국어로 바꾸면 버튼이 [우분투 사용해보기]로 바뀐다.
Ubuntu_Install_01

이제 먼저 왼쪽 유니티에서 Ubuntu Software Center를 클릭하여 실행한다. 업데이트 파일을 내려받을 서버를 바꾸기 위해서다. 기본으로 설정된 서버가 너무 느리기 때문이다.
Ubuntu_Install_02

아래와 같이 창이 뜨고, 마우스를 맨 위쪽 검은 부분에 올리면 안보이던 메뉴가 나온다.
[Edit – Software Source]를 선택한다.
Ubuntu_Install_03

[Download from: Main server]를 클릭하여 뜨는 항목 중 맨 밑의 항목을 선택한다.
Ubuntu_Install_04-1024x575

다음과 같이 서버 선택창이 뜨면, 아래 사진처럼 대한민국으로 하지 말고 일본의 [ftp.jaist.ac.jp]를 선택한다.[ref]한국 KAIST 서버보다 일본 JAIST 서버가 더 안정적이라는 평가가 많다.[/ref] Ubuntu_Install_05

이제 [설치] 프로그램을 실행한다
Ubuntu_Install_06

설치창이 뜨면 역시 한국어를 선택하고 [계속]을 눌러준다.
Ubuntu_Install_07

혹여나 지금까지 무선랜이나 유선랜 연결을 안했다면 인터넷에 연결하라고 창이 뜨는데, 연결을 안하게 되면 업데이트 파일과 언어 파일을 받지 못하고 그냥 설치하게 된다. 나중에 설치 후 업데이트와 언어 설정을 해주면 되니 크게 상관은 없다.
나는 연결했다.
Ubuntu_Install_08 Ubuntu_Install_09

위에서도 잠깐 언급했지만, 인터넷에 연결되어 있다면 아래처럼 설치 중 업데이트를 다운로드하거나 서드 파티 소프트웨어를 설치할 수 있다는 장점이 있다.
Ubuntu_Install_11

설치 USB 때문에 뜨는 창이다. [아니오]를 선택한다.
Ubuntu_Install_12

설치형식은 반드시 [기타]를 선택하여 수동으로 파티션을 설정해 준다.
새 노트북에 오직 우분투만 사용하겠다 하는 사람들은 뭘해도 상관없지만, 파티션을 구성해서 사용하겠다 하는 분은 [기타]를 선택한다.
Ubuntu_Install_13

하드디스크가 어떤 것인지 잘 살펴보고 설정해 준다. 특별한 경우를 제외하고는 설치하고자 하는 하드디스크가 sda로 잡힐 것이다.
*부트로더를 설치할 장치를 반드시 운영체제를 설치할 하드디스크로 설정해야 한다.
**sda1에 설치하는 화면이지만 부트로더는 sda에 설치한다.
Ubuntu_Install_14-1024x575

우분투를 설치할 파티션을 설정할 때는 용도를 [EXT4 저널링 파일 시스템]으로 하고 마운트 위치를 반드시 정해줘야 한다.
/ 는 root라는 뜻으로 이 파티션을 root에 마운트 하겠다는 것이다. root에 아무것도 마운트하지 않으면 아무것도 할 수 없다. 윈도우를 생각해 본다면, C드라이브에 아무런 용량이 설정되지 않았는데 설치해보려고 하면 설치가 불가능한 것과 비슷할 것이다.
* swap 파티션도 잡아줘야 한다. 그림에는 없지만 swap 파티션은 윈도우의 [가상메모리]와 같은 역할을 한다. swap파티션을 잡지 않으면 오직 물리 메모리로만 작동을 하기 때문에 메모리 부족 현상이 오게 될지도 모른다. 때문에 가상 메모리로 사용할 파티션을 지정해 준다.
** 또한 swap파티션을 자신의 물리 메모리 크기 이상으로 지정해 주어야 [최대절전모드]가 가능하다. 데스크탑은 몰라도 노트북에서는 유용한 기능이다.
Ubuntu_Install_15

외국인이 아닌 이상 한국어로 선택하고 [계속]한다.
Ubuntu_Install_16

계정 설정을 하는 곳입니다.
Ubuntu_Install_17

나는 다음과 같이 입력했다.
Ubuntu_Install_18

이제 본격적인 설치가 진행된다.
Ubuntu_Install_20

설치 과정이 끝난 후 재시작을 한다.
설정한 계정으로 로그인을 하면 아래와 같은 기본화면이 뜬다.
Ubuntu_Install_30

드디어 우분투 설치가 끝났다. 이제 우분투를 즐기면 된다! 🙂