달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'오드로이드/XU4 + OMV(펌)'에 해당되는 글 18건

  1. 2018.03.20 오드로이드 XU4 + OMV 로 NAS 구축 순서 예시 - README !(펌) 2
  2. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Wordpress + 도메인/SSL(펌)
  3. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Wordpress(펌)
  4. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - SMTP (이메일 알림)(펌)
  5. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - Rsync(펌)
  6. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - WebDAV(펌)
  7. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - SSL 적용하기(펌)
  8. 2018.03.20 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 도메인 적용하기(펌)
  9. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 9. 포트포워딩 적용하기(펌)
  10. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 8. Transmission(펌)
  11. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 7. Plex Media Server(펌)
  12. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 6. Seafile(펌)
  13. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 5. MySQL(펌)
  14. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 4. Nginx(펌)
  15. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 3. FTP(펌)
  16. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 2. Samba(펌) 2
  17. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 1. OMV 설치 / 설정(펌)
  18. 2018.02.02 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 0. 개요(펌)

최초작성일: 170808 16:59

오드로이드 XU4와 외장하드를 이용해 NAS를 구축하는 건 나름 가성비가 좋습니다. 저도 계속 사용하고 있구요.

OMV로 개인 NAS를 구축하실 때, 누구나 쉽게 구축할 수 있도록 나름 대로 가이드를 올렸는데요,

글 제목에 순서를 나타내는 번호가 있지만 사실 하다보니 큰 의미가 없어졌습니다.

따라가기 어렵기도 해요. 어디까지가 초보자용이지? 어디까지 리눅스를 몰라도 할 수 있지?

그래서 여기선 일단 번호를 지우고, 제가 포스팅한 자료를 이용해 나름의 구축 순서를 제안하려고 합니다.


* 이 순서대로 하셔도, 이상한 게 있을 수 있어요. 예를 들어, 그렇진 않지만 초급 5단계를 하는데 중급 1단계 지식이 필요하다던가.. 오타도 있을 수 있겠구요. 이상한 게 발견되면 바로 댓글로 알려주세요 :) 




초급

* 초급 단계에서는 리눅스에 대한 지식이 없어도 됩니다. 터미널 환경을 사용하지도 않아요.
* Samba까진 Local(집 안에서만) 사용을 위함이고, FTP부턴 외부에서 포트포워딩을 통해 사용하실 수 있습니다.

1. 개요
2. OMV 설치 / 설정
3. Samba
---------- 
4. FTP
5. WebDAV
6. Transmission
7. 포트포워딩 이란? / 포트포워딩 적용하기

중급

* Nginx/MySQL 설치가 필요하기 전과 후로 나누었습니다. Seafile, Wordpress는 Nginx/MySQL 설정이 필요합니다.
* OMV_3_0_88_Odroidxu4_4.9.46 버전 이상을 설치하셨다면 OMV 웹 - SSH 메뉴에서 "루트 로그인 허용" 을 활성화해주셔야 SSH 접속이 가능합니다.
* OMV 의 초기 접속 계정 정보는 root / openmediavault 입니다.

1. NAS 기본 지식 - 리눅스
2. Rsync
3. Plex Media Server
4. Serviio (DLNA)
---------- 
5. Nginx / MySQL
6. Seafile
7. Wordpress
8. OMV 이메일 알림

고급

* 도메인과 SSL에 대해서 다룹니다. 어려울 수 있지만, 잘 따라가시면 누구나 하실 수 있을 거라 믿어요.
* 간단히 사용할 때 꼭 필요한 단계는 아닙니다.
* 아직 리눅스나 NAS에 대한 지식이 부족한 분들로부터 이거 따라하는데 잘 안 된다 하는 피드백이 많이 없기 때문에, 적극적으로 물어봐주세요. 바로 반영하도록 하겠습니다.

1. 도메인
--- a. 도메인 (내도메인.한국)
--- b. DDNS (DuckDNS) (추천)
2. SSL
3. Wordpress + 도메인/SSL

기타

* 구축에 대한 게 아닌 여러 사용 관련 팁들을 올리고 있습니다.
* 괜찮은 걸 알아갈 때마다 계속 추가하고 있어요.

- SBC를 이용한 자작 NAS 장비 선택
- NAS를 위한 하드디스크와 백업
- OMV에서 HDD 파일 시스템 새로 만드는 방법
- 오드로이드 XU4 UAS 해제하기
- nPlayer 를 이용해 FTP, WebDAV, Samba, DLNA 동영상 스트리밍하기
- Seafile 에 업로드 한 파일 찾기 - Seaf-fuse
- Seafile 에 SMTP 설정으로 이메일 관련 기능 활성화 + 파일 공유하기
- NAS - 트랜스미션(Transmission) 토렌트 완료 시 자동으로 분류/삭제 스크립트
- NAS - 트랜스미션(Transmission) + Flexget, 매주 자동으로 예능 드라마 받기
- VPN 개념 / OpenVPN 서버 구축 가이드


출처 : http://awesometic.tistory.com/74?category=964085

Posted by 타카스 류지
|

이번엔 설치한 Wordpress에 도메인과 SSL을 입혀보겠습니다.

Wordpress에 대한 도메인은 이미 받았다고 가정할게요. 잘 모르시는 분들은,

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 도메인 적용하기 또는
NAS에 DDNS 적용하기 - DuckDNS

를 참고하시면 되겠습니다.




1. 도메인 적용하기

앞서 말했듯 도메인을 발급받은 상태라고 가정하겠습니다.

1) Nginx 설정 변경

OMV Nginx 메뉴 - 서버 탭으로 가서

이렇게 Wordpress에 대한 서버를 누른 후 편집 버튼을 누릅니다.

포트 기반으로 8001 번 포트로 했었는데, 다시 80번으로 바꿔주고 이름-기반, 적절한 도메인 이름을 적어줍니다.

그리고 저장/적용해주세요.


2) Wordpress 설정 변경

SSH로 접속하신 뒤 아래 명령어를 입력해주세요. Wordpress가 /var/www/wordpress 경로에 설치되어 있다고 가정합니다. {도메인} 부분에 자신의 도메인을 입력해주세요.

# http:// 를 포함해 적어주세요.
WP_DOMAIN='http://wordpress.example.com'
echo -e "\ndefine('WP_HOME', '"$WP_DOMAIN"');\ndefine('WP_SITEURL', '"$WP_DOMAIN"');" >> /var/www/wordpress/wp-config.php
Bash

그리고 자신의 워드프레스 도메인을 통해 접속해봅니다.

잘 됩니다.



2. SSL 적용하기

도메인이 있으니 SSL을 적용해봅시다. 요새는 네트워크 대역폭 최대치를 찍어야만 하는 서비스가 아니라면 SSL이 필수인 것 같습니다.

사용하던 대로 Let's Encrypt를 이용해봅시다.

1) Nginx에서 Wordpress 서버 설정 변경

가이드라인을 따라오신 분들은 임시로 디렉토리를 만들고 그 곳을 Webroot로 해서 SSL 인증서를 발급받는 걸 해보셨을 겁니다. 근데 Wordpress는 저희가 소스 파일을 가지고 돌리는 거라, 임시 디렉토리가 필요가 없어요. Nginx에도 이미 Wordpress에 대한 서버가 있죠. OMV Nginx 메뉴에서  Wordpress 서버를 편집합시다.

밑에 추가 옵션 부분에 아래 내용을 추가만 추가해주세요.

location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
}
nginx

아래 스크린샷처럼 될 겁니다.

그리고 저장/적용합시다.

인증서를 발급받을 준비가 다 된 겁니다.


2) SSL 인증서 발급받기

이젠 정말 발급을 받으셔야 합니다. SSH 로 접속합니다.

그리고 아래 명령어를 입력해줍니다.

# http:// 부분을 뺀 도메인만을 example.com 대신 적습니다.
WP_DOMAIN='wordpress.example.com'
certbot certonly --webroot -w /var/www/wordpress -d $WP_DOMAIN
Bash

이러면 제 경우엔,

WP_DOMAIN='wordpress.awesometic-test.kro.kr'
certbot certonly --webroot -w /var/www/wordpress -d $WP_DOMAIN
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wordpress.awesometic-test.kro.kr
Using the webroot path /var/www/wordpress for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0005_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0005_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/wordpress.awesometic-test.kro.kr/fullchain.pem.
   Your cert will expire on 2017-11-06. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
Bash

기가 막히게 잘 됩니다.


3) SSL 인증서, OMV Web UI에 불러와 적용하기

새로 발급 받은 인증서를 OMV에 불러와봅시다. 그래야 OMV 안에서 쓸 수 있거든요.

OMV 인증 메뉴 - SSL 탭으로 갑니다. 그리고 추가 버튼 - 불러오기를 눌러줍니다.

여기서 저번에 하셨던 것처럼 개인 키와 인증 정보를 복붙해줍니다. 개인 키는 /etc/letsencypt/live/{도메인}/privkey.pem, 인증은 fullcahin.pem 입니다.

그러면,

이렇게 될텐데, 저장/적용해줍니다.

그리고 OMV Nginx 메뉴 - 서버 탭으로 가 다시 Wordpress 서버 편집을 합니다.

이런 식으로 적용해주시고 저장/적용해주세요.


4) Wordpress 도메인 설정 변경하기

마지막 단계입니다. Wordpress는 지가 어느 도메인인지 알고 있어야 해요. 그걸 변경해줍시다.

아래 명령어를 입력합니다.

# http:// 부분을 뺀 도메인만을 example.com 대신 적습니다.
WP_DOMAIN='wordpress.example.com'
sed --in-place=.bak 's,http://'$WP_DOMAIN',https://'$WP_DOMAIN',g' /var/www/wordpress/wp-config.php
Bash

다 됐습니다 :)


5) 접속 테스트

SSL이 잘 씌워졌는 지 접속해봅시다.

잘 됩니다 :)


출처 : http://awesometic.tistory.com/72?category=964085

Posted by 타카스 류지
|

오드로이드 NAS를 개인 블로그 호스팅 장비로 사용해봅시다. 간단한 블로그, 웹사이트, 포트폴리오 사이트 등 어느 걸로도 활용될 수 있어요. Wordpress를 사용해 간단하게 보기 좋은 사이트를 구축하실 수 있습니다.

Wordpress 설치 과정은 조금 까다로울 수 있습니다만, 잘 따라오시면 누구나 충분히 하실 수 있어요. 옛날엔 OMV의 플러그인으로 쉽게 설치하실 수 있었는데, 요새는 귀찮아졌네요.




0. Nginx, MySQL 설치

사전에 Nginx와 MySQL 플러그인이 설치되어 있어야 합니다.

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 4. Nginx
오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 5. MySQL



1. MySQL에 워드프레스용 데이터베이스 생성

워드프레스는 데이터베이스를 굉장히 많이 활용합니다. 그래서 자신의 DBMS(MySQL 등)에 워드프레스용 데이터베이스를 만들어줘야 해요. OMV를 쓰니까, 쉽게 하실 수 있습니다.

OMV MySQL 메뉴로 갑니다.

그리고 아래에 SQL 관리 사이트를 활성화시키신 후 저장/적용 해주세요. 그럼 위에

버튼들 중에 보이기 버튼이 활성화가 될 겁니다. 이 버튼을 눌러줍니다.

이런 관리 사이트 접속 화면이 뜹니다. root 계정으로 로그인할게요.

이런 화면이 뜰텐데, 여기서 왼쪽 위 메뉴 중 데이터베이스-새로 만들기 를 클릭해줍니다.

이런 식으로 작성해주세요. 그리고 데이터베이스를 만듭니다.

만드신 후 다시 메뉴에서 도구-사용자 관리 를 클릭하시면,

이런 창이 뜹니다. 사용자 추가 버튼을 누르셔서,

이런 식으로 적어넣어 줍니다. 그리고 사용자 추가.

위의 Select a User가 살아났을 겁니다. 여기서 새로 만든 사용자를 클릭하시고, 데이터베이스 권한 탭으로 가셔서 새로 만든 워드프레스용 데이터베이스에 대한 권한을 모두 줍니다. 그리고 업데이트 사용자 버튼을 누릅니다.

워드프레스를 위한 데이터베이스 준비가 완료되었습니다.



2. Wordpress 설치

wget으로 최신 워드프레스를 받아둡시다. 지금은 4.8.1 이지만, 사이트에 접속해 최신 버전을 확인해주세요. 어차피 자체 업데이트가 가능하니 상관은 없습니다.

SSH 로 오드로이드 NAS에 접속한 뒤 아래 명령어를 입력해줍니다.

wget https://ko.wordpress.org/wordpress-4.8.1-ko_KR.zip
Bash

다운이 다 되면 압축을 풀어줍니다. /var/www 아래에 풀겠습니다.

unzip -d /var/www/ wordpress-4.8.1-ko_KR.zip
rm wordpress-4.8.1-ko_KR.zip
Bash

그리고 텍스트 에디터를 사용해 워드프레스 설정 파일을 편집해주세요. vi, nano 중 편한 걸 쓰시면 됩니다.

cd /var/www/wordpress
# vi wp-config-sample.php
nano wp-config-sample.php
Bash

파일을 열고, 아래 내용들을 찾아 수정해주세요.

...

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress-db'); // 생성한 워드프레스용 데이터베이스 이름

/** MySQL database username */
define('DB_USER', 'wordpress'); // 생성한 새로운 데이터베이스 사용자 이름

/** MySQL database password */
define('DB_PASSWORD', 'wordpress); // 새로운 사용자의 비밀번호

...

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
/* 아래 나온 내용을 모두 지운 후 링크로 가셔서 그대로 아래 내용을 대신하게끔 복붙합니다. */
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
PHP

주석의 설명을 따라주세요.

그리고 -sample.php 이 없는 이름으로 복사해줍시다.

cp wp-config-sample.php wp-config.php
Bash

마지막으로 권한 설정을 위해 새로운 파일을 하나 만들어줍니다.

touch fix-wordpress-permission.sh
Bash

텍스트 에디터로 새로 만든 파일을 열어주신 후, 아래 내용을 복사해 넣고 저장합니다.

#!/bin/bash
#
# This script configures WordPress file permissions based on recommendations
# from http://codex.wordpress.org/Hardening_WordPress#File_permissions
#
# Author: Michael Conigliaro 
#
WP_OWNER=www-data # <-- wordpress owner
WP_GROUP=www-data # <-- wordpress group
WP_ROOT=$1 # <-- wordpress root directory
WS_GROUP=www-data # <-- webserver group

# reset to safe defaults
find ${WP_ROOT} -exec chown ${WP_OWNER}:${WP_GROUP} {} \;
find ${WP_ROOT} -type d -exec chmod 755 {} \;
find ${WP_ROOT} -type f -exec chmod 644 {} \;

# allow wordpress to manage wp-config.php (but prevent world access)
chgrp ${WS_GROUP} ${WP_ROOT}/wp-config.php
chmod 660 ${WP_ROOT}/wp-config.php

# allow wordpress to manage wp-content
find ${WP_ROOT}/wp-content -exec chgrp ${WS_GROUP} {} \;
find ${WP_ROOT}/wp-content -type d -exec chmod 775 {} \;
find ${WP_ROOT}/wp-content -type f -exec chmod 664 {} \;
Bash

저장하고 빠져 나오신 후 실행 권한을 부여해 실행합니다.

chmod 755 fix-wordpress-permission.sh
./fix-wordpress-permission.sh /var/www/wordpress
Bash



3. Nginx 설정

Wordpress 사이트로 접속하기 위해 웹서버 Nginx 를 설정하셔야 합니다.

단일 파일 최대 업로드 크기를 늘리기 위해 /etc/nginx/nginx.conf 파일을 수정해줍시다. http 블럭 안에

client_max_body_size 100M;
Bash

위의 내용을 추가해주겠습니다. 클라이언트가 최대 100MB 정도의 파일을 업로드할 수 있습니다. 어차피 사진 등만 업로드하지 그리 큰 파일은 업로드를 안 하기 때문에 100MB면 충분합니다. 부족하신 분들은 늘려주세요. 최대 2048MB까진 될 겁니다.

그리고 OMV Nginx 메뉴에서 Pools(풀) 탭으로 갑니다.

추가 버튼을 누르셔서,

이런 식으로 채워주시고 저장/적용 해줍니다.

그리고 서버 탭으로 가셔서 또 추가 버튼을 누르신 뒤,

이렇게 채워주시고, 추가옵션에는

root /var/www/wordpress/;
client_max_body_size 100M;

location = /favicon.ico {
    log_not_found off;
    access_log off;
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

location / {
    # This is cool because no php is touched for static content.
    # include the "?$args" part so non-default permalinks doesn't break when using query string
    try_files $uri $uri/ /index.php?$args;
    client_max_body_size 100M;
}

 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
     expires max;
     log_not_found off;
}
nginx

그리고 아직 도메인을 받지 않았다는 가정 하에 8001 번 포트로 하겠습니다. 저장/적용 해줍니다.



4. 접속 후 설정

해당 포트로 접속해봅시다.

바로 설정 페이지가 뜹니다. 적절히 넣으시고 설치하기 버튼을 누르면,

성공합니다.

로그인하면 이런 화면이 뜹니다. 

이제 워드프레스를 꾸미실 수 있어요.


* 도메인, SSL 관련 포스팅은 따로 진행됩니다.


출처 : http://awesometic.tistory.com/70?category=964085

Posted by 타카스 류지
|

OMV 같은 NAS는 한 번 구축해놓으면 시스템에 신경을 잘 안 쓰게 됩니다. 밥은 먹고 다니나 종종 궁금해지긴 하는데, 살다보면 막상 접속해보거나 그러진 않아요. Samba로 데이터나 잘 넣고 Plex나 FTP로 동영상이나 잘 보면 되죠.

근데 얘도 시간이 지나면 지날수록 한 두 군데 나사가 풀리고 맛이 갈 겁니다. 저흰 얘가 죽어가는 와중에도 Samba나 Plex나 이상이 없어 힘힘들어하는지 뭔지 모를 거에요.

때문에 OMV는 알림 기능이 있습니다. 이메일 SMTP서버를 설정해 두면, 알아서 저한테 힘든 일이 있거나 어디 하드디스크 하나가 맛이 가려고 할 때 등등 여러 가지를 알려줍니다. 필요하죠.

설정하러 갑시다.




0. 준비

저희 시스템이 메일 서버가 되는 게 아닙니다. 그냥 다른 서버를 빌려서 메일을 보내는 거에요. 그래서 다른 서버에, "날 사용해도 좋다" 하는 걸 설정해놔야 합니다.

Google Gmail로 할 겁니다. 다음이나 네이버도 될 것 같은데, 제가 해본 결과 일단 다음은 잘 안 되더라구요. Gmail이 확실합니다.



1. Gmail 앱용 비밀번호 생성

먼저 Gmail로 접속합니다.

그리고 이렇게 오른쪽 위에 저걸 눌러 내 계정 버튼을 눌러줍니다.

왼쪽 중간쯤에 이런 게 있어요. Google에 로그인 을 눌러줍니다.

이런 부분을 찾아야 해요. 그리고 2단계 인증을 만드셔야 합니다. 2단계 인증이 좀 귀찮은데 이걸 만들어야만 해요. 만드는 건 쉬우니 만드시고 나면, 아래에 앱 비밀번호 란을 눌러줍니다.

없대요. 원래 있었는데 보여드릴려고 지웠습니다. 생성할 앱 및 기기 선택에서 앱 선택-기타 를 누르면, 이름을 아무렇게나 지정할 수 있게 돼요. 적절한 이름을 넣은 뒤 생성 버튼을 눌러줍니다.

생성이 완료되면 이런 창이 뜹니다. 기기용 앱 비밀번호, 저 노란 부분에 있는 글자들을 복사해두세요. 지금 아니면 다시 보려고 해도 못 봅니다.

타 앱에서 SMTP를 위한 기초 작업이 완료되었습니다.



2. SMTP 활성화

OMV 알림 메뉴로 가서,

이런 식으로 채워주세요. SMTP 서버, 포트, SSL/TLS, 등등 전부 위 스크린샷처럼 맞게 써주시면 됩니다. 송신자 전자우편은 제가 아무렇게나 쓴 건데, 이게 먹히진 않더라구요. 저게 왜 있는 지 모르겠어요.

사용자 이름에는 앱 비밀번호를 생성한 Gmail 주소, 그리고 암호에는 생성해서 복사해놨던 앱 비밀번호를 써줍니다.

밑에 수신자의 주 전자우편으로 OMV 알림을 받을 메일 주소를 써주세요.

그리고, 저장/적용하신 뒤 위의 시험용 전자우편 발송 버튼을 눌러 테스트해봅시다.

확인해보면,

이렇게 아주 잘 와 있네요!



* 호스트/도메인 이름 설정

메일 앞에 [odroidxu4] 라고 쓰여있습니다. 얘가 지금 오드로이드 NAS의 호스트 이름인데, 바꿔줄 수 있어요.

OMV 네트워크 메뉴로 갑시다.

이렇게 있죠, 여기에 적은 내용들이 메일 제목 앞에 붙어서 오게 됩니다.

도메인 이름이 만약 example.com 이면,

odroidxu4.example.com 이런 형식으로 오게 돼요. 멋있게 적절히 알아서 잘 넣어줍시다.


* 알림 항목 설정

모든 일에 대해서 알림을 받기 좀 귀찮을 때가 있습니다. 다 받을 만하지만, 그래도 거르고 싶은 게 있다면 이메일로 알릴 항목을 선택해줄 수 있어요.

OMV 알림 메뉴에서 알림 탭으로 갑시다.

거를 거 걸러주시고, 저장/적용 해주세요.


출처 : http://awesometic.tistory.com/68?category=964085

Posted by 타카스 류지
|

Rsync는 로컬이나 원격의 다른 컴퓨터 시스템에 대해 파일 전송과 동기화 기능을 제공하는 유틸리티입니다. CLI 기반이기 때문에 단순히 명령어 하나 만으로 다른 곳과 파일을 동기화할 수 있어요. 굉장히 편리합니다.

Ubuntu나 다른 리눅스 기준이라면 복잡해 보이는 명령어를 막 입력해야 하겠지만, OMV이기 때문에 간단하게 사용법을 적어보려고 합니다.

참고로 OMV의 경우 활성화 시 자동으로 Rsync가 스케줄링 되는데, 그러니까 매번 특정 시간이나 매 시간, 이런 기준에 따라 자동으로 실행돼서 파일이 목적 위치와 동기화된단 말이죠. 한 번만 여유있는 다른 곳의 하드디스크로 설정해 놓으시면 2차 백업에 대해선 걱정 없으실 겁니다.

NAS를 구축하셨지만 RAID를 구성하지 못하신 분에게는 더 필요한 솔루션인 것 같습니다. 하드디스크는 생각보다 쉽게 고장나요. 또 한 번 고장나면 보통 물리적 고장이기 때문에 전문 장비 없이는 살리기가 어렵습니다. 백업을 항상 중요시하세요. 뭐든지 일이 저질러지기 전에 예방하는 것이 먼저잖아요.

요새는 Rsync에서 파일을 전송할 때 SSH 프로토콜을 이용한다고 하네요. SSH 는 기본적으로 암호화가 목적이기 때문에 Rsnyc로 파일을 전송할 때도 암호화해 보안성이 높아집니다.

여기선 로컬 시스템에서 원격 시스템으로의 NAS 백업을 중점으로 쓰겠습니다.


참고: https://www.joinc.co.kr/w/Site/Tip/Rsync
참고 2: https://www.digitalocean.com/community/tutorials/how-to-copy-files-with-rsync-over-ssh
참고 3: https://forum.openmediavault.org/index.php/Thread/7143-Rsync-two-OMV-machines/?postID=65611#post65611
참고 4: https://forum.openmediavault.org/index.php/Thread/18586-RSYNC-SSH-help-needed/



0. 준비

당연한 말이지만, NAS 백업이기 때문에 NAS에 사용되는 HDD보다 더 큰 HDD가 필요합니다. NAS에서 3TB를 사용한다면, 백업할 장소는 3TB 이상이어야 하죠. 물론 3TB 전부 다 중요하진 않고 거기서 쥐똥만큼인 30GB가 진짜진짜 중요한 데이터다 싶으시면 그 곳만 백업하면 되니 상관 없습니다.

그리고 Rsync로 데이터를 받을 시스템 또한 Rsync가 필요합니다. 하지만 Rsync는 거의 필수 패키지라 대부분의 리눅스 배포판엔 이미 포함되어 있으니 신경 안 쓰셔도 됩니다. 로컬과 원격에서 조금만 손 봐주면 바로 사용하실 수 있습니다.

Rsync는 "나" 가 로컬이고 "상대" 가 원격입니다. 나는 상대에게 파일을 줄 수도 있고, 상대로부터 파일을 받을 수도 있습니다. 또한 나를 기준으로 상대의 파일과 디렉토리들을 동기화시킬 수 있고, 내가 상대의 기준으로 동기화할 수도 있습니다. 다른 시스템에 접속만 하면 다 돼요.

 

1. 로컬 시스템에서 SSH 인증 키 생성

인증할 때 비밀번호를 치는 게 아닌 SSH 키를 사용합니다. 비밀번호를 매번 입력하거나 비밀번호 그대로 저장해 둘 필요가 없어 편리하지만, 그 SSH 인증 키만 있다면 어떤 시스템에서도 해당 계정으로 로그인이 가능하단 단점이 있어요. 잘 간수하셔야 합니다. 이게 싫으면 Rsync 서버를 열어야 하는데, Rsync는 암호화가 적용이 안 되기 때문에 입맛에 맞춰 하시면 되겠습니다. 

먼저 로컬 시스템 OMV 인증 메뉴 - SSH 탭으로 갑니다.

그리고 추가-생성 버튼을 눌러 SSH 인증 키를 하나 생성해줍시다. 묻는 게 별로 없어요, 그냥 설명 간단하게 채워주시면 됩니다.

전 이렇게 했어요. 다 됐습니다.

그리고 새로 생긴 애를 누른 후 편집을 눌러줍니다.

RSA 공개 키라는 부분이 있고, 오른쪽에 파일이랑 종이 그려진 아이콘이 있는데 그 아이콘을 눌러 복사해 둡니다.



2. 원격 시스템 설정

원격 시스템에선 SSH 접속이 필요합니다.

먼저 Rsync가 설치되어 있는 지 확인합니다. 안 되어있으면 설치하도록 바로 install을 때리겠습니다.

sudo apt-get install -y rsync
Bash

Rsync가 설치가 되어 있다면, SSH에 접속한 뒤 로컬에서 생성한 공개 키를 ~/.ssh/authorized_keys 경로에 저장합니다.

{공개키} 부분에 방금 복사한 공개키를 입력해주세요.

PUB_KEY='{공개키}'
echo $PUB_KEY > ~/.ssh/authorized_keys
Bash

그리고 Rsync로 동기화 할 디렉토리를 생성하겠습니다.

경로는 각자 적절한 위치로 해주세요. 전 외장하드가 연결된 곳으로 하겠습니다.

sudo mkdir /media/hdd/ext1/rsync
Bash



3. Rsync 테스트

다시 로컬 시스템(OMV)으로 오겠습니다.  

OMV Rsync 메뉴로 갑시다.

여기서 추가 버튼을 눌러줍니다.

그리고 이런 식으로 채워줍니다. 대상 서버에 {계정@IP}:{경로} 포맷으로 적어주심 됩니다. 그리고 인증을 공개 키로 설정, SSH 포트는 보통 22번일 거고 인증서는 처음에 만든 SSH 인증서를 선택해줍니다. OMV NAS의 파일을 원격 시스템으로 보내는 것이기 때문에 밀어넣기 로 설정하겠습니다.

이번에도 그렇고 OMV 번역이 좀 종종 미묘한데, 그냥 Push 라고 영어로 쓰여 있음 더 좋았을 것 같네요.

해당 Rsync 작업을 반복하고 싶으시면 매 N분/시간/일 마다를 체크해주시고, 시간을 지정해 주시면 됩니다. * 일 경우는 잘 모르겠군요, cron이라면 매분, 매시간, 이런 건데 말이죠. 설정에 1 도 있어서 * 이랑 1 이랑 뭐가 다른진 모르겠네요.

저장/적용 하시면,

이렇게 됩니다.

10분에 한번 동기화를 하는 걸로 설정했는데, 기다리기 미묘하니 대충 테스트 해봅시다.

Samba로 동기화하고자 하는 폴더에 아무 거나 넣어봤습니다.

이런 느낌으로요. 그리고 OMV Rsync 메뉴에서, 위 스크린샷에도 있는 실행 버튼을 눌러 테스트해봤습니다.

되게 error 이런 말 뜨면서 뭐라고 하는데, 막상 확인해 보니

아주 잘 들어가 있네요. 기똥찹니다.

백업하세요.


* 여유가 된다면 우분투 시스템에서 Rsync 하는 법을 포스팅하겠습니다.


출처 : http://awesometic.tistory.com/67?category=964085

Posted by 타카스 류지
|

WebDAV는 완전히 인터넷(www) 기반의 디렉토리, 문서 편집/관리 도구입니다. 보통 웹은 "읽기"만 가능한 환경이었는데, 여기에 "쓰기"까지 가능하게 한다는 것이 WebDAV의 기본 목적인 것 같습니다.

NAS 사용자 입장에서는, NAS의 하드디스크를 마치 내 컴퓨터의 디스크인냥 들락날락 하고 싶은 욕망이 있죠. 그래야 관리가 편하거든요. Samba가 그것을 가능하게 해주지만, Samba의 목적 자체가 내부 네트워크 용이라는 점에서 한계가 있습니다. 예를 들어, 집에서 자신의 노트북에 NAS Samba에 대한 드라이브를 하나 만들어놔도, 카페에 가면 그 드라이브에 접근할 수가 없어요.

WebDAV는 웹으로 접근하는 것이기 때문에 그것이 가능합니다. 그러면서도 웹이기 때문에 SSL을 적용할 수 있어 보안성도 높아요. 뜻 자체가 웹 분산 저작 및 버전 관리라는 뜻인데, 그 말 뜻처럼 실시간 파일 편집에 강하고 여러 사람이 하나의 파일을 동시에 건들일 수 없도록 보호해준다네요. 단일 파일 최대 전송 용량이 어느 정도 한계가 있다는 게 아쉽지만, 그런 건 눈감아 줄 수 있는 괜찮은 서비스죠. 

저도 잘 안 써서 몰랐지만, 동영상 스트리밍도 WebDAV로 많이 한다더라구요.

OMV를 이용해 WebDAV 서비스를 열고, 내 컴퓨터에 등록까지 해봅시다.


참고: http://yaruki0318.tistory.com/entry/%EC%B0%A8%EC%84%B8%EB%8C%80-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C-WebDAV-%EA%B0%80%EB%8A%A5%EC%84%B1
참고 2: https://www.qnap.com/ko-kr/how-to/tutorial/article/webdav%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-qnap-%EC%9B%90%EA%B2%A9-%EC%95%A1%EC%84%B8%EC%8A%A4




1. WebDAV 설치/활성화

OMV 플러그인에서 WebDAV 를 검색해 설치합니다.

그리고 페이지가 새로고침되면 OMV에 WebDAV 메뉴가 생겼을 거에요. 가봅시다.

굉장히 생각보다 더 단순하네요. 

여기서 공유폴더를 지정할 때 빨간 글씨로 경고가 뜰 겁니다. 그 경고를 없애주러 OMV 공유 폴더 메뉴로 갑시다.

그리고 WebDAV 접속 시 사용하고자 하는 공유폴더를 클릭하고 위의 접근 제어 목록(ACL) 버튼을 클릭하면, 아래와 같은 창이 뜹니다. 

위의 사진처럼 webdav와 webdav-users에 대해 읽기/쓰기 권한을 줍시다. 재귀적으로도 활성화하신 뒤 적용합니다.

그리고 OMV 사용자 메뉴로 가서 WebDAV 접속에 사용하고자 하는 계정을 누르신 뒤, 편집 버튼을 누르세요.

그리고 그룹 탭으로 가셔서,

이런 식으로, 원래는 users만 체크가 되어있을텐데 webdav-users도 체크해줍니다.

그리고 저장하시게 되면,

그룹에 users와 webdav-users가 있게 됩니다.

다시 OMV WebDAV 메뉴로 갑시다.

그리고 이렇게 고쳐주세요. FileSize upload limit을 4095로 지정하겠습니다. 4GB를 노린 건데, 원래는 4096MB이지만 너무 딱 맞춰서 넣으면 정신을 못 차릴까봐 1MB 빼고 갈게요. 저장/적용 해줍니다.

마지막으로 활성화된 위의 보이기 버튼을 누르면,

이렇게 딱 뜨는 것을 보실 수 있습니다. 



2. 내 컴퓨터에 드라이브로 등록하기

원래는 Samba처럼 익스플로러의 자체 기능을 통해 등록할 수 있습니다만,

왠지 어떻게 해도 안 되더라구요. 레지스트리도 변경해보고 뭐 이것 저것 다 해봤어요. OMV 때문인 지 뭔진 몰라도 결국 써드 파티 프로그램을 사용하게 됐습니다.

NetDrive가 이런 FTP, WebDAV로 열린 서버를 내 컴퓨터에 드라이브로 등록하는 프로그램인데, 굉장히 유명해요. 하지만 기간의 제한이 있는 트라이얼 버전이라, 유료를 사지 않으면 한 때 무료였던 엄청 구버전을 사용해야 합니다. 해도 좋지만, 저희는 얼마전 새로 나왔다던 국산 프로그램인 RaiDrive를 사용할게요.

링크를 통해 다운로드 받아 설치합니다. 설치는 굉장히 단순해서 따로 설명드리진 않겠습니다.

그리고 실행하게 되면,

시작해보자고 제안하네요.

추가 버튼을 눌러서,

위 스크린샷처럼 채워줍니다. WebDAV, 드라이브 알파뱃은 가능한 한 제일 마지막 것으로, 주소와 계정정보 등등.. SSL이 아니신 분들은 주소의 체크를 해제해주세요.

그리고 확인 버튼을 누르면,

이렇게 생기게 됩니다. 내 컴퓨터의 하드디스크인냥 돌아다닐 수 있어요. 다만 이래 보여도 웹에 연결하는 거라, 대용량 파일의 경우 웹에 업로드가 오래걸릴 수 있습니다. 물론 집에선 내부 네트워크니까 속도가 빠를 거에요. 관련해서 업로드 중이다, 속도는 어떻고 얼마나 남았다 하는 정보도 뜨면 좋겠는데 그런 건 아직 안 뜨더라구요. 새로 나온 서비스니 기다려 봅시다.

WebDAV는 간단한 문서작업, 대학 과제, 사진 업로드 등에 적합해 보입니다.

여담으로 디자인을 마이크로소프트 Visual Studio 에서 따온 것 같네요. 설치부터 마소 냄새가 확 납니다. 느낌은 조금 다르지만 보기 좋아요.


출처 : http://awesometic.tistory.com/64?category=964085

Posted by 타카스 류지
|

* SSL 적용은 옵션입니다.

* SSL 적용 시 20~30%, 많게는 50% 이상 속도가 저하될 수 있습니다. 통신 패킷 암호화 때문인 것 같은데, FTP로 고화질 동영상 스트리밍 등 빠른 전송 속도를 위해선 SSL이 없는 상태로 접속해 사용하세요. 중요한 파일을 다루거나, 중요한 파일로 접근할 수 있는 계정을 사용할 때 카페 등 공용 인터넷이 불안하시다면 SSL을 사용하시면 되겠습니다. 대부분의 720p나 TV 예능 정도의 1080p 동영상 스트리밍에는 문제가 없을 겁니다.

SSL은 TLS(Transport Layer Security)라고도 불리는 보안 소켓 레이어입니다. 전송 계층 보안이라는 의미의 TLS가 더 받아들이기 쉬운 이름인 것 같네요.

원래 인터넷은 전부 패킷의 이동입니다. 패킷은 데이터 조각이라고 보시면 되는데, 머리부분에 출발지와 도착지의 정보를 포함한 여러 정보가, 몸통 부분에 보내고 받고자 하는 필요한 데이터들이 들어 있어요. 이런 수없이 많은 패킷이 인터넷 세상에 뿌려져 도착지까지 잘 이동하는 겁니다.

근데 몸통부분에 데이터를 넣을 때 암호화하지 않으면, 패킷의 이동 경로에 있는 누구나 그 데이터를 볼 수 있어요. 요새는 대표적으로 공유기인데, 카페나 식당 등에서 제공되는 무료 와이파이가 그래서 위험합니다. 경로상의 패킷을 잡아내는 프로그램이 있어요. 이런 프로그램과 여러 다른 툴들을 잘 섞어 쓰면 내가 어느 사이트에 어떤 계정과 비밀번호로 로그인하는 지도 알아낼 수 있습니다. 살짝 네트워크 + 웹 해킹을 조금 공부한 적이 있었는데, 거의 대부분의 웹 사이트는 사실 굉장히 취약해요.

그래서 여러 유명 웹사이트 관리자들은 이런 보안 문제를 중요하게 생각해왔습니다. 결국 SSL이 탄생했어요.

SSL은 간단하게 인증서 + 공개키 + 대칭키 암호화 방식으로 암호화를 진행하는 겁니다. 자세한 건 모르셔도 되지만(저도 잘 모르지만), 아무튼 엄청나게 암호화시키고 놉니다. 인증서도 빼고 간략하게 한 버전이 제가 예전에 다룬 Node.js 와 Android 간 RSA + AES 암호화 방식이겠네요. 이렇게 되면 중간에 누군가 패킷을 가로채더라도 복호화 키가 없어 어떤 데이터인지 알아볼 수 없어요.

참고로 SSL은 데이터 통신 그 자체에만 보안이 좋을 뿐이지, 악성 코드를 SSL 방식으로 보내거나 하는 건 가능하기 때문에 약간 다르게 보셔야 합니다.

아무튼 SSL의 중요성이 점점 높아지는 추세인 걸로 보입니다. 예전엔 인증서를 얻기도 어려웠는데, 이젠 누구나 간단하게 인증서를 얻을 수 있어요. 간단하게 얻으러 갑시다.


* Let's Encrypt를 사용하지 않더라도 자체 인증서를 생성할 수 있습니다. 하지만 이럴 경우 사이트 접속 시마다 인증서의 인증 기관이 신뢰받지 않았다는 이유로 경고창이 매번 보여집니다. 따라서 조금 어렵더라도 Let's Encrypt 사용을 권장합니다.




0. 포트포워딩

80번, 443번이 오드로이드 NAS로 포트포워딩 되어 있어야 합니다.



1. OMV Let's Encrypt 설치

OMV 플러그인 메뉴에서 Let's Encrypt 검색 후 설치합니다.




2. Let's Encrpyt 로 인증서 발급

여기선 OMV 관리자 페이지에 대한 SSL 인증서를 발급받아 사용해보겠습니다.

OMV의 Let's Encrypt 메뉴로 갑시다.

뭔가 어려워보입니다. 얘를,

이런 식으로 바꿔 넣어 줍시다. OMV 관리자 페이지에 대한 도메인 주소를 넣고, 전자우편에는 자신이 정말로 사용하는 이메일 주소를 넣습니다. 그리고 Schedule Refresh를 활성화한 후 저장/적용 합니다.

저 이메일 주소에 SSL 인증서 재발급, 만료 알림이 보내질 겁니다.

그 다음 Generate Certificate 버튼을 누르면,

이렇게 축하해줍니다.

그리고 왠지 변경된 설정을 적용하라는 알림이 뜰 텐데요, 적용 해줍시다. 그러고 나면 곳곳에 추가된 게 있을 거에요.

일단 OMV 인증 메뉴 - SSL을 가봅시다.

새롭게 발급 받은 인증서가 추가된 걸 보실 수 있습니다.

그리고 OMV 예약된 작업 메뉴로 가봅시다.

작업이 하나 생겨 있네요, 매월 수행되는 작업이고, omv-letsencrypt 명령을 실행하나 봅니다. 설명을 보니 Let's Encrypt 플러그인으로 받은 인증서를 계속 최신화 시켜주는 작업이며, 여기서 삭제하면 안 되고 플러그인을 통해 비활성화 시키라네요.



3. 적용

성공적으로 인증서를 발급받았으니 바로 적용해 봅시다. OMV 일반 설정 메뉴로 갑시다.

보안 연결 관련 설정이 있어요. 얘를 활성화시켜주고, 인증에 방금 발급받은 인증서를 선택해 줍니다.

이렇게요. 그리고 저장, 적용하시면 됩니다.

그리고 https://{도메인} 으로 가봅시다! 전 https://omv.awesometic-test.kro.kr/ 이네요. 도메인 때문에 다들 접속하실 수 있을 듯 :)


이랬던 애가,


이렇게 바뀌었습니다. 누가 봐도 안전해졌네요!

지금은 강제 SSL/TLS 옵션이 꺼져 있기 때문에 SSL이 없는 http:// 로도 접속이 가능합니다. 저 옵션을 켜주시면 SSL(https)로만 접속이 가능해져요.



* OMV의 Let's Encrypt로 발급받으려는 인증서가 2개 이상일 때

OMV 에서는 Let's Encrypt 플러그인을 통한 인증서가 최대 하나밖에 지원이 안 됩니다. 하나를 더 생성하면, 생성이 되더라도 OMV SSL 인증서 목록에 가장 최근에 생성한 하나만 떠요. 아니면 그냥 에러가 나버립니다.

그래서 만약 위의 예시처럼 내가 이미 OMV 관리자 페이지를 위한 인증서를 하나 발급받았는데, 한 개 더 Seafile에 쓰일 인증서로 발급받고 싶다! 하셔서 플러그인을 통해 발급을 받는다 해도 기존의 OMV 도메인에 대한 인증서는 없어집니다.

사실 굉장히 불편하고 이상하게 만들어졌어요.

그래서 제 나름대로 인증서는 터미널에서 발급받고, OMV SSL 인증서 목록에 직접 추가해주는 방법을 생각해냈습니다. 이렇게 해도 플러그인으로 발급받은 인증서와 함께 매월 갱신 될 것 같아요. => 실제로 갱신되는 지 확인해 봐야 합니다.

어려워 보이지만, 사실 한 두번 해보면 굉장히 쉽습니다.

0) Nginx에 새로운 서버 추가/설정

Webroot 플러그인을 이용한 SSL 인증서를 받기 위해 Nginx 서버들의 설정을 바꿔줘야 합니다. 자세한 내용은 바로 다음 단계에서 진행됩니다.

인증서를 발급해주기 전 Nginx 에 서버가 등록되어 있어야 합니다. 도메인을 사용할 경우 Nginx에서 그 도메인에 대해 필요한 서비스로 들어가게끔 해줘야 하거든요.

가이드를 처음부터 따라오셔서 도메인도 추가하신 분은 추가 옵션 맨 밑에 아래 내용만 넣어주시면 됩니다.

Nginx가 웹 사이트 소스에 직접 접근한다면 root 부분을 주석처리 해주세요. 그게 아니라면 root 부분에 해당하는 디렉토리를 만들고 진행해야 합니다. 다음 단계에서 설명됩니다.

location ^~ /.well-known/acme-challenge/ {
    root /var/www/sub.example.com;
    allow all;
    default_type "text/plain";
}
nginx

이렇게 될 겁니다.

* FTP의 경우 새로 만드셔서 추가 옵션에 저 내용만 넣으시면 될 것 같습니다만, 아직 테스트 중입니다. 기본적으로 Nginx는 HTTP 서버지 FTP서버가 아니기 때문에, HTTP 서버에 임시로 저렇게 해서 인증서를 발급받아도 FTP에 사용할 수 있는 지 테스트해보고 업데이트 하겠습니다.


1) SSH 접속 후 인증서 발급

지금까지 강좌를 잘 따라오신 분들이라면, 터미널에 Putty 프로그램을 이용해 SSH로 접속하는 건 이미 익숙해졌을 겁니다.

접속해 들어갑니다.

SSL 인증서 발급에는, OMV로 하실 때 보셨는 지 모르겠지만 Webroot 플러그인을 사용해서 발급하셨을 겁니다. OMV 에선 필수인데, 사실 필수는 아니고 플러그인 형식으로 명령어의 옵션을 통해 주입해서 사용하는 거에요. Webroot를 사용하지 않는 Standalone 방식도 있습니다.

Webroot 플러그인을 사용할 경우 인증서 갱신이나 인증서 관련 문제들을 해결할 때 서버를 멈추지 않아도 되기 때문에 요새 대부분의 서버에서 인증서를 발급받을 때 해당 플러그인을 사용한다고 합니다.

Webroot 플러그인은 서버 내에 해당 웹 사이트 소스 파일 경로가 존재하는 지 유효성을 판단합니다. Web root는 그 웹 사이트 소스의 경로라고 생각하시면 돼요. 플러그인을 사용할 때 웹 사이트 소스 경로를 지정하며, 사용할 경우 사이트 소스 파일 경로에 임시 디렉토리와 임시 파일이 생겨 인증 기관에서 도메인을 통해 직접 그 파일에 접근해 비교함으로써 유효성이 판단됩니다.

위의 설정을 한 이유도 그것 때문입니다. 임시로 디렉토리를 만들어 그 곳에 접근하는데, example.com/.well-known/acme-challenge 도메인으로 들어와 임시로 만들어진 파일을 읽습니다. 그래서 Nginx 설정에 해당 경로로 들어오는 건 모두 허용해 줘라 설정해 주는 것입니다. root는 웹 사이트 소스가 없는 페이지의 경우(Reverse proxy 서버로 사용할 경우) 해당 디렉토리를 못 찾을테니 임시로 지정해준 겁니다.

저희는 그런 Webroot 플러그인을 사용한다고 가정하겠습니다.

여기서 두 가지로 나눠집니다.

Wordpress 등 소스 파일을 받아서 열거나, 직접 웹사이트 소스를 작성해 여는 경우)

이럴 경우엔 보통 /var/www/wordpress/ 경로 아래에 index.html나 index.php 등이 있을 겁니다. Nginx가 그 index 파일을 찾아서 클라이언트한테 보내주는 거에요. 그렇기 때문에 Webroot 플러그인을 사용할 때 해당 웹 사이트 소스 파일 경로로 지정해주시면 됩니다.

아래의 명령어를 입력해줍시다. {경로} 에는 웹 사이트 소스의 절대 경로를, {도메인} 에는 자신의 해당 웹사이트에 SSL로 접근하고자 하는 도메인을 적어주세요.

WEBROOT_PATH='{경로}'
WEBROOT_DOMAIN='{도메인}'
certbot certonly --webroot -w $WEBROOT_PATH -d $WEBROOT_DOMAIN
Bash

예시입니다.

certbot certonly --webroot -w /var/www/wordpress/ -d wordpress.example.com
Bash

이러면 축하해주면서 인증서도 줄 겁니다.


Seafile이나 Transmission등을 도메인 접속을 위해 Nginx를 Reverse proxy 서버로 쓰는 경우)

이럴 경우엔 /var/www/ 아래에 해당 웹사이트에 대한 경로가 없습니다. 알아서 구축이 되어 있기 때문에, 그 웹사이트 경로를 찾기도 어렵고 찾아도 미묘해요.

그래서 일단 SSL 인증 기관에게 "그래도 얘는 내 서버에서 돌고 있다"는 걸 알려만 주면 되기 때문에 명시적으로 디렉토리를 만들어주면 됩니다.

아래의 명령어를 입력해줍시다. 역시 {경로} 에는 웹 사이트 소스의 절대 경로를, {도메인} 에는 자신의 해당 웹사이트에 SSL로 접근하고자 하는 도메인을 적어주세요.

명시적인 디렉토리를 먼저 만들고 그 디렉토리를 이용해서 인증서를 발급받겠습니다.

WEBROOT_PATH='{경로}'
WEBROOT_DOMAIN='{도메인}'
mkdir -p /var/www/$WEBROOT_DOMAIN
certbot certonly --webroot -w $WEBROOT_PATH -d $WEBROOT_DOMAIN
Bash

예시입니다.

mkdir -p /var/www/seafile.example.com
certbot certonly --webroot -w /var/www/seafile.example.com/ -d seafile.example.com
Bash

가이드를 따라오신 분들도 이 방법으로 진행하시면 됩니다. FTP, Seafile, Transmission 모두 인증서를 받아주세요.

잘 입력하시면 역시 축하해주면서 인증서를 발급해줍니다.

인증서가 잘 받급되었나 보시고 싶으시면 아래 명령어를 입력해주세요.

ls -al /etc/letsencrypt/live/
total 16
drwxrwxrwx 2 root root 4096 Jul 26 16:46 omv.awesometic-test.kro.kr
drwxr-xr-x 2 root root 4096 Jul 27 17:48 seafile.awesometic-test.kro.kr
drwxr-xr-x 2 root root 4096 Jul 27 17:48 transmission.awesometic-test.kro.kr
Bash


2) OMV에 인증서 등록

발급받은 인증서를 OMV 인증 - SSL 메뉴에 등록해주셔야 합니다.

OMV 인증 - SSL 으로 갑시다.

아직 인증서가 하나밖에 없습니다. 왼쪽 위 추가 - 불러오기 를 눌러줍시다.

불러오기 좋은 창이 하나 듭니다. 쉬워요. 복붙만 하시면 됩니다.

Putty로 연결한 터미널에서 아래 명령어를 쳐줍니다. {도메인} 부분에 자신한테 맞는 도메인만 적어주시면 됩니다.

개인 키에는 아래 명령어의 결과를 적습니다. -----BEGIN~ 부터 END CERTIFICATE----- 까지 전부 복사/붙여넣기 하셔야 합니다.

WEBROOT_DOMAIN='{도메인}'
cat /etc/letsencrypt/live/$WEBROOT_DOMAIN/privkey.pem
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDjlFCISt815m0f
...
hLCV6C3rlO1rKEF1sqLP0nRBsA==
-----END PRIVATE KEY-----
Bash

인증에는 아래 명령어의 결과를 적습니다.

cat /etc/letsencrypt/live/$WEBROOT_DOMAIN/fullchain.pem
-----BEGIN CERTIFICATE-----
MIIFHzCCBAegAwIBAgISAxT89JsCCNDJ7SvlEAYQ+6fJMA0GCSqGSIb3DQEBCwUA
...
JhXpMMZWNLytB4qjuzd6s5thHA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
...
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
Bash

설명엔 적절한 설명을 적어줍시다. 전 Let's Encrypt - example.com 이라고 적겠습니다. 물론 example.com 대신 적절한 도메인을 적어주세요.

그럼 이렇게 됩니다.

이렇게 하나씩 넣어주시면 됩니다.. :) 그리고 저장/적용 해주세요.

그리고 Seafile과 Transmission에 적용해보겠습니다.


* Seafile, Transmission에 적용

이런 식으로 인증서들이 준비되었을 겁니다. Seafile 부터 적용해봅시다.

OMV Nginx - 서버 에서 Seafile 부분을 누르신 후 편집 버튼을 눌러줍니다.

SSL 활성화 옵션이 있습니다. 활성화해준 다음 인증에서 Seafile 인증서를 클릭해주세요.

그럼 이렇게 될 겁니다. Only use SSL 을 활성화해주세요.

그리고 밑으로 내려 추가옵션 쪽으로 가 내용을 지우고 아래 내용을 복사/붙여넣기 해줍시다. 마지막에 location ^~ /.well-known... 블럭 안에 root 부분만 자신한테 맞는 경로로 설정해주세요.

proxy_set_header X-Forwarded-For $remote_addr;

location / {
    fastcgi_pass    127.0.0.1:8000;
    fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO           $fastcgi_script_name;

    fastcgi_param    SERVER_PROTOCOL        $server_protocol;
    fastcgi_param   QUERY_STRING        $query_string;
    fastcgi_param   REQUEST_METHOD      $request_method;
    fastcgi_param   CONTENT_TYPE        $content_type;
    fastcgi_param   CONTENT_LENGTH      $content_length;
    fastcgi_param    SERVER_ADDR        $server_addr;
    fastcgi_param    SERVER_PORT        $server_port;
    fastcgi_param    SERVER_NAME        $server_name;
    fastcgi_param   REMOTE_ADDR         $remote_addr;
    fastcgi_param   HTTPS               on;
    fastcgi_param   HTTP_SCHEME         https;

    access_log      /var/log/nginx/seahub.access.log;
    error_log       /var/log/nginx/seahub.error.log;
    fastcgi_read_timeout 36000;
    client_max_body_size 0;
}

location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
    send_timeout  36000s;
}

location /media {
    root /var/www/seafile/seafile-server-latest/seahub;
}

location ^~ /.well-known/acme-challenge/ {
    root {seafile 임시 디렉토리 경로};
    allow all;
    default_type "text/plain";
}
nginx

이런 식으로 됩니다.

저장 및 적용 해줍니다.

Transmission의 경우 같은 방법으로 하시는데, 추가 옵션을 아래 내용으로 바꿔주시면 됩니다. Only use SSL도 활성화해줍니다. 마지막에 location ^~ /.well-known... 블럭 안에 root 부분만 자신한테 맞는 경로로 설정해주세요.

location / {
    return 301 https://$server_name/transmission/;
}
      
location ^~ /transmission {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass_header X-Transmission-Session-Id;
    add_header Front-End-Https on;
      
    location /transmission/rpc {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/ {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/upload {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/style/ {
        alias /usr/share/transmission/web/style/;
    }
      
    location /transmission/web/javascript/ {
        alias /usr/share/transmission/web/javascript/;
    }
      
    location /transmission/web/images/ {
        alias /usr/share/transmission/web/images/;
    }
          
    location /transmission/ {
        return 301 https://$server_name/transmission/web;
    }
}

location ^~ /.well-known/acme-challenge/ {
    root {transmission 임시 디렉토리 경로};
    allow all;
    default_type "text/plain";
}
nginx

그러고 저장 및 적용하시면, 아래처럼 될 겁니다.

새로운 https 도메인으로 접속해봅니다.


Seafile과 Transmission 모두 잘 되네요 :) 모바일에서도 물론 잘 들어가집니다. Seafile은 안드로이드 스마트폰에서 자동 업로드 테스트해본 결과에요.

만약 Seafile 웹사이트에 파일 업로드가 안 될 경우 관리자 설정 - 설정에 가셔서 URL들을 SSL이 적용된 https로 바꿔보세요. 아마 이미 바뀌어 있을 겁니다.


* FTP에 적용

FTP는 Nginx 를 거치는 것이 아니라 더 쉽습니다. 인증서만 임시로 받기 위해 /var/www/ 밑에 디렉토리를 생성하고 OMV Nginx에 ftp 서브도메인에 대해 해당 디렉토리를 사용하도록 서버를 추가한 뒤 발급받아 주시고, OMV SSL 메뉴에 넣고, 마우스 클릭 몇 번과 21번 포트만 오드로이드 NAS로 포트포워딩 되어 있으면 돼요. 간단한거지만 간단하기만 한 절차는 아니네요 :(

윗부분의 내용을 참고해 인증서도 받고, OMV에 불러오기도 하셨다면 OMV FTP 메뉴 - SSL/TLS 탭으로 갑니다.

이렇게 SSL/TLS 활성화 및 인증에 ftp 관련 인증서를 선택해주시고, 저장/적용 하시면 됩니다.

Filezilla로 테스트해보겠습니다.

OMV FTP에서 SSL을 설정하셨으면, 설정한 도메인을 호스트에 넣어줍니다. 그리고 계정은 OMV의 사용자 계정으로 해줍시다.

빠른 연결 버튼을 누르시게 되면,

알 수 없는 인증서라면서 겁을 줍니다. 원래 인증 기관 정보는 클라이언트 프로그램에 저장이 되어 있다더군요, 크롬 등 여러 인터넷 브라우저에선 Let's Encrypt 발급자를 이미 믿고 있는데 Filezilla FTP 클라이언트에선 얘가 믿을 만한 애인 지 모르는 모양입니다.

아무튼 확인을 눌러 넘어갑시다. 그러면,

연결이 되었네요! 파일 주고 받는 것도 잘 됩니다 :)

안드로이드 ES 파일 탐색기에서 FTP 접속하실 땐 주소에 SSL 인증서를 받은 도메인 주소를 넣어주세요. 그러면 인증이 됩니다. ES 파일 탐색기에서 새로 만들기 - FTPS 는 동작하지 않아요. 아래처럼 해주시면 됩니다.



* ipTIME DDNS

참고로 ipTIME DDNS(*.iptime.org)에 대해선 발급을 해주지 않나 봅니다. 된다는 분들도 계시는 것 같은데, 최근에 해보니까 iptime.org 에 대해 너무 많은 요청이 있다는 비슷한 메세지를 뿌리며 발급을 해주질 않네요. 다른 공유기의 DDNS 서비스에 대해선 잘 모르겠습니다. 참고하세요.


출처 : http://awesometic.tistory.com/60?category=964085

Posted by 타카스 류지
|

도메인 적용은 옵션입니다. 꼭 해주시지 않아도 됩니다. 하지만 보안 등의 이유로 SSL을 원하신다면 SSL의 선행과정으로 꼭 하셔야 합니다.

도메인은 IP가 사람이 외우기 어렵기 때문에 탄생했습니다. 네이버도 naver.com 이 아니라 23.42.168.102 라면 매번 접속하는 게 굉장히 불편하겠죠. 그래서 도메인 관리 기관에 naver.com 은 23.42.168.102 라고 저장시켜 놓고 우린 숫자가 아닌 naver.com 을 입력하는 것 만으로도 네이버에 접속할 수 있게 된 겁니다.

우리가 사용하는 오드로이드 NAS도 똑같습니다. 이름이 없으니 집의 공인 IP를 외워서 사용해야 합니다. 가족끼리만 사용한다면 하나만 외우면 되니까, 한 번만 설정해두면 되니까 괜찮긴 합니다만 블로그 호스팅 등 사용자의 범위를 넓힌다면 도메인이 필요하게 됩니다.

또한 SSL을 적용하려면 도메인이 꼭 필요합니다. SSL 인증서를 발급할 때 도메인이 포함된 웹 사이트의 호스트 헤더를 기준으로 발급한다고 합니다. IP로는 발급할 수가 없어요.

도메인이 있다면 서브 도메인을 통해 각종 서비스에 쉽게 접근하실 수 있습니다. 만약 내 도메인이 example.com이고, OMV 관리자 페이지, Seafile, Wordpress을 서브 도메인을 통해 제공한다고 합시다. 그럼 omv.example.com, seafile.example.com, wordpress.example.com 등으로 접근할 수가 있어 IP를 외우지 않아도 돼 편리합니다.

도메인을 얻고, 적용해 보겠습니다.


* DDNS 를 적용하고 싶으신 분은 
2017/08/02 - [오드로이드 XU4/Misc] - NAS에 DDNS 적용하기 - DuckDNS
를 참고하세요!


* 도메인 관련 Nginx 설정에 문제가 있는 것 같으니 가이드를 다시 검토해보겠습니다. 해당 문서를 보시는 분들은 직접 적용하시진 말아주세요! - 누락/오탈자 수정 및 추가 설명 보충했습니다.

* Seafile 관련 문제가 있는 것 같습니다. 적용하지 말아주세요!

* 180309 현재 OMV3 + Nginx 플러그인 조합에 오류가 있습니다! 서버 추가 시 Nginx가 먹통이 되네요. 이 게시글을 참고해주세요: http://awesometic.tistory.com/121




1. 내도메인.한국 에서 도메인 얻기

* 테스트용이므로 바로 도메인을 해지했습니다.

무료로 도메인을 제공해주는 사이트는 많습니다만, 지금은 내도메인.한국이 가장 안정적이고 깔끔하게 무료로 도메인을 제공해주는 것 같습니다. 사이트에 접속해 가입하고, 위의 "도메인 등록" 메뉴를 클릭합니다.

그럼 위의 도메인 검색 화면이 뜹니다. 일반 도메인 검색에 awesometic-test 라고 타이핑해 검색해보니 아래의 도메인들을 등록할 수가 있네요. kro.kr 로 등록해보겠습니다. 마음에 드는 도메인 옆의 파란색 "등록하기" 글자를 누르면 보안코드를 입력하라고 합니다. 보안코드를 입력하면 바로 도메인 발급이 완료됩니다. 

도메인 발급이 완료되면 아래와 같은 설정 페이지가 뜹니다.

여러 가지 옵션이 있지만, 저희는 "고급설정 (DNS)" 에서 "IP연결(A)" 만 사용할 겁니다.

"IP연결(A)" 를 체크해주신 후, 원하는 서브 도메인 이름과 오드로이드 NAS의 외부 IP 주소를 입력합니다.

위 스크린샷과 같이 할 수 있겠죠. 완료되셨으면 보안코드 입력 후 아래 "수정하기" 버튼을 눌러 적용합니다.

이제 사용할 수 있는 서브 도메인 4개가 생겼습니다.

저희는 오드로이드 NAS의 Nginx 를 이용해 도메인 별로 다른 서비스를 제공하도록 할 겁니다. Nginx는 웹 서버, 즉 80번(+ SSL 445번) 포트만 이용하므로 이 작업이 잘 끝나면 FTP의 21, Seafile의 8000, 8082 포트와 Transmission의 9091 포트에 대한 포트포워딩 규칙을 삭제하셔도 됩니다.



2. Nginx에 적용하기

일단 서브 도메인을 사용하게 되면, 모든 접근이 서버의 웹 서버 프로그램으로 몰려야 이 웹 서버 프로그램이 각 서브 도메인 이름별로 나눠줍니다. 때문에 저희는 OMV에서 지원하는 Nginx로 다 몰고, Nginx에서 나눠줍시다.

OMV Nginx 메뉴로 가서, "서버" 탭으로 갑니다.

아무 것도 없을텐데, 위의 "추가" 버튼을 누르면,

이런 대화 상자가 나타납니다. 저희는 Nginx를 통해 Seafile과 Transmission을 제공할 겁니다. FTP 접속은 알아서 21번 포트로 보내주는 것 같습니다. Seafile과 Transmission 은 저희가 웹 사이트를 직접 구축해 연다던가, Wordpress처럼 웹 사이트 소스를 가져와 연다던가 하는 것이 아니기 때문에, 해당 도메인 이름으로 접속하는 정보를 다른 곳에 열려있는 Seafile과 Transmission 으로 넘겨줘야 합니다. Nginx를 프록시 서버로 사용하는 겁니다.

* 기본 서버 활성화는 하지 마세요.

1) Seafile 적용

OMV Nginx 서버 추가에서 호스트 유형을 이름-기반 으로 바꿔 Seafile로 접근하고자 하는 도메인을 입력합니다.

그리고 PHP, Index 항목들을 전부 비활성화하신 뒤 헤더 버퍼 크기를 32K로 맞춰줍시다.

마지막으로 추가 옵션에 아래 내용을 넣습니다.

proxy_set_header X-Forwarded-For $remote_addr;

location / {
    fastcgi_pass    127.0.0.1:8000;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   PATH_INFO          $fastcgi_script_name;

    fastcgi_param   SERVER_PROTOCOL    $server_protocol;
    fastcgi_param   QUERY_STRING       $query_string;
    fastcgi_param   REQUEST_METHOD     $request_method;
    fastcgi_param   ONTENT_TYPE        $content_type;
    fastcgi_param   CONTENT_LENGTH     $content_length;
    fastcgi_param   SERVER_ADDR        $server_addr;
    fastcgi_param   SERVER_PORT        $server_port;
    fastcgi_param   SERVER_NAME        $server_name;
    fastcgi_param   REMOTE_ADDR        $remote_addr;

    fastcgi_read_timeout 36000;
    client_max_body_size 0;
}

location /seafhttp {
    rewrite ^/seafhttp(.*)$ $1 break;
    proxy_pass http://127.0.0.1:8082;
    client_max_body_size 0;
    proxy_connect_timeout  36000s;
    proxy_read_timeout  36000s;
    proxy_send_timeout  36000s;
    send_timeout  36000s;
}

location /media {
    root /var/www/seafile/seafile-server-latest/seahub;
}
nginx

참고: https://manual.seafile.com/deploy/deploy_with_nginx.html

그리고 SSH 접속을 한 뒤, 아래 명령어를 차례대로 입력해 설정 파일 2개를 수정해줍시다.

아래 명령어에서 100.100.100.100은 포트포워딩된 자신의 외부 IP로, http://seafile.awesometic-tset.kro.kr 부분을 꼭 자신의 도메인에 맞게 수정한 뒤 입력해주세요! 두 줄의 명령어 모두 해당됩니다. 두 번째 줄의 /seafhttp는 지우지 말아주세요.

sed --in-place=.bak 's,http://100.100.100.100:8000,http://seafile.awesometic-test.kro.kr,g' /var/www/seafile/conf/ccnet.conf
echo "FILE_SERVER_ROOT = 'http://seafile.awesometic-test.kro.kr/seafhttp'" >> /var/www/seafile/conf/seahub_settings.py
echo "SERVE_STATIC = False" >> /var/www/seafile/conf/seahub_settings.py
Bash

추가로 자동 시작을 위해 등록했던 서비스를 살짝 고쳐줍니다. 다음 명령어를 입력하시면 됩니다.

sed --in-place=.bak '/ExecStart/,/start/s/start/start-fastcgi/' /etc/systemd/system/seahub.service
systemctl daemon-reload
Bash

* 웹 UI에서 URL을 설정하시면 SSH을 통해 설정한 사항들이 무시됩니다. 훗날 독이 되어 돌아올 것 같으니 Seafile 웹사이트의 설정 페이지에선 URL을 설정하지 마세요. 아마 알아서 바뀌어 있을 건데, 바뀌어있지 않을 경우에만 설정해주세요.


그리고 다시 SSH 접속했던 곳에서

service seafile restart && service seahub restart
Bash

위의 명령어를 통해 서비스를 재시작해주시면 됩니다.


2) Transmission 적용

Transmission에 적용하는 건 더 쉽습니다.

먼저, OMV Nginx 서버 추가에서 호스트 유형을 이름-기반 으로 한 뒤 Transmission에 접근하고자 하는 도메인을 입력합니다.

그리고 PHP, Index 항목들을 전부 비활성화하신 뒤 헤더 버퍼 크기를 32K로 맞춰줍시다.

마지막으로 추가 옵션에 아래 내용을 넣습니다.

location / {
    return 301 http://$server_name/transmission/;
}
      
location ^~ /transmission {
      
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_pass_header X-Transmission-Session-Id;

    location /transmission/rpc {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/ {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/upload {
        proxy_pass http://127.0.0.1:9091;
    }
      
    location /transmission/web/style/ {
        alias /usr/share/transmission/web/style/;
    }
      
    location /transmission/web/javascript/ {
        alias /usr/share/transmission/web/javascript/;
    }
      
    location /transmission/web/images/ {
       alias /usr/share/transmission/web/images/;
    }
      
    location /transmission/ {
       return 301 http://$server_name/transmission/web;
    }
}
nginx

참고: https://gist.github.com/Belphemur/47f76c40defef0269615


3. 테스트

Seafile과 Transmission에 각 도메인으로 접속해보세요.

그리고, 안드로이드 스마트폰에 설정된 Seafile과 Transmission도 포트포워딩 후 외부 IP로 수정했을 때처럼 주소를 도메인으로 바꾼 후 테스트해보세요.


4. 포트포워딩 해제

이제 80번 포트로 모든 접속이 몰리니 Seafile과 Transmission에 대한 포트포워딩 설정을 해제하셔도 좋습니다. :) 


* 도메인을 얻으셨으면 이제 SSL 인증서도 발급받아 더욱 안전하게 사용하실 수 있습니다. 다음 포스팅에서 진행됩니다.

출처 : http://awesometic.tistory.com/59?category=964085

Posted by 타카스 류지
|

포트포워딩을 해주셔야만 카페 등 외부에서 오드로이드 NAS 로 접근하실 수 있습니다.

포트포워딩이 뭔지 잘 모르시는 분들은 아래 포스팅을 봐주세요.

2017/07/21 - [오드로이드 XU4] - 포트포워딩 이란?

적용해 봅시다.


* 오드로이드 NAS가 공유기를 거치지 않고 공인 IP를 바로 사용한다면 포트포워딩을 해주시지 않아도 좋습니다. 공인 IP로 바로 접근하실 수 있어요. 또는 공유기에서 공인 IP에 들어오는 정보들을 오드로이드 MAC 주소에 바로 쏴줄 수도 있습니다. Twin IP나, DMZ 기능도 있구요. 이럴 경우에도 포트포워딩이 필요하지 않습니다. 하지만 이럴 경우 포트포워딩은 이미 하실 줄 안다고 생각할 수 있기 때문에 오드로이드 NAS를 위한 포트포워딩 과정을 설명하도록 하겠습니다.




1. 공인(외부) IP 알아내기

포트포워딩 설명 포스팅에서 말씀드렸듯, 공인 IP를 알아내야 다른 장소에서도 집의 오드로이드 NAS에 접근할 수 있습니다. 공인 IP를 알아내는 사이트는 굉장히 많은데, 저희는

https://www.whatismyip.com/

여기로 들어가서 알아봅시다. 링크를 눌러 들어가시게 되면

이런 화면이 나와요. "Your IP Address Is: " 아래 모자이크 친 부분에 IP가 쓰여 있을 겁니다.



2. 공유기 설정 페이지 접속

공유기의 설정 페이지는 보통 게이트웨이 주소로 접근하실 수 있습니다.

게이트웨이는 어떤 공간이나 지역에 들어가기 위해 거쳐야만 하는 어떤 관문 같은 것이라 생각하시면 됩니다. 위키피디아의 예시에도 나와있듯, 비행기를 타고 해외 여행을 갈 때 꼭 들려야 하는 공항을 게이트웨이라 할 수 있다고 합니다.

보통 ipTIME 공유기라면 웹 브라우저 주소창에 192.168.0.1 라고 입력하시면 됩니다.

만약 안 된다면 아래 표를 참고해주시고,

출처: http://brand-me.tistory.com/195

그래도 모르시겠다면 출처에서 cmd 를 통해 게이트웨이 주소를 알아내는 것을 따라해보시길 바랍니다.

공유기 설정 페이지에 접속하시면, ipTIME의 경우

이런 삭막한 화면이 뜹니다. 암호와 보안문자 입력 후 "관리도구" 아이콘 클릭, 마지막으로 "고급 설정"에서 포트포워딩 관련 메뉴로 찾아갑시다.

여기서 규칙을 추가해주시면 됩니다.



3. 포트포워딩 적용

이전에 설명 드렸듯, 포트포워딩은 규칙입니다. 이런 포트로 누가 접근하면, 여기로 넘겨줘라. 이게 끝입니다.

이런 식으로 적어줍시다. 내부 IP주소는 목적지 IP 주소라고 보시면 됩니다. 제 오드로이드는 192.168.50.10 이니까 이렇게 적었습니다. 그리고 웹 접근을 위한 약속된 외부 포트가 80번이니 그대로 내부 포트 80으로 보내줍시다.

지금까지 설정한 NAS 기능들을 나열해보면, 

서비스 (포트번호)

FTP (21)
SSH (22)
Web (80)
Seafile (8000, 8021)
Plex (32400)
Transmission (9091)

등등이 있겠네요. Samba는 내부 네트워크 전용 기능이라 외부에서 사용하실 수 없습니다. VPN을 사용하면 가능하긴 하지만 여기선 다루지 않겠습니다. 

위의 6개 서비스가 있다면,

이런 식으로 될 수 있겠습니다. Seafile이 포트 2개를 사용하기 때문에 나열된 6개보다 한 개가 더 많습니다.

참고로 SSH의 경우 22번 그대로 쓰시게 되면 보안상 위험할 수 있습니다. 외부 포트로 특별히 다른 포트(1024 이상의)를 지정해주신 뒤 내부 포트 22로 돌리시면 됩니다.

마지막으로,

오른쪽 위의 "저장" 버튼을 눌러줍시다.



4. 적용 및 테스트

이제 외부 IP를 통해서 오드로이드 NAS에 접근하실 수 있습니다. 지금까지 사용하던 오드로이드 NAS의 가짜 아이피(192.168.x.x) 대신 외부 IP를 넣어주시면 됩니다. Plex도 가능해졌어요. 하나씩 설정해봅시다. Web(OMV 관리자 페이지)과 SSH는 제외했습니다.

1) FTP (안드로이드)

ES 파일 탐색기 앱에서 네트워크 - FTP 메뉴로 들어갑니다.

이전에 설정해 둔 FTP 폴더가 있습니다. 길게 누르고 있으면,

이렇게 "스캔" 버튼 아래에 메뉴가 생깁니다. "서버 편집" 메뉴를 누릅니다.

그리고 이렇게 서버 란을 외부 IP(예시, 100.100.100.100)로 바꿔주심 됩니다.


2) Seafile (안드로이드)

Seafile은 웹 클라이언트와 안드로이드 클라이언트 모두 바꿔주셔야 합니다.

먼저 웹부터 바꿔봅시다. Seafile 에 웹으로 접속해봅니다. 

그리고 위의 스크린샷처럼 사용자 프로필을 누르면 "시스템 관리자" 메뉴가 있습니다. 들어가 "설정" 메뉴로 갑니다.

여기서 "SERVICE_URL" 과 "FILE_SERVER_ROOT"의 IP 주소를 외부 IP로 바꿔주시면 됩니다.

수정하실 때 오른쪽에 생기는 V 표시를 꼭 눌러주세요. 그리고 꼭 실수 없이 적어주셔야 합니다.

// 웹을 통한 주소 변경 테스트 필요

이제 안드로이드 앱에서 설정해봅시다. 앱을 열으신 후 오른쪽 위의 메뉴 버튼을 누르면,

이렇게 "설정" 메뉴가 있습니다. 들어가신 다음 "로그아웃" 옵션을 눌러 로그아웃해줍니다. 그러면,

처음 Seafile 앱을 켰을 때처럼 서버와 계정을 설정해주실 수 있습니다. "계정 추가"를 누르신 뒤,

이렇게 외부 IP 주소와 포트 번호를 적어주시고 로그인하시면 됩니다.


3) Plex

Plex는 웹 클라이언트에서 외부 연결 설정만 해주시면 됩니다. 아주 간단합니다.

Plex 웹 클라이언트로 접속해 서버 설정에서 "원격 접속" 메뉴로 가봅시다.

스크린샷처럼 아래에 "공개 포트 수동 설정"을 체크해주시고, 32400 을 넣으신 뒤 "재시도" 버튼을 눌러보세요. 전 이미 사용하는 오드로이드 NAS가 따로 돌고 있기 때문에 스크린샷에선 이용 불가라고 뜨지만,

잘 설정될 경우 "외부에서 완전히 접근 가능" 메시지가 나타납니다. 이렇게 되면, 드디어 안드로이드 앱에 로그인해 외부에서 원격으로 보실 수 있습니다.


4) Transmission (안드로이드)

Transmission 앱에서 왼쪽 벽을 오른쪽으로 밀어 Navigation Drawer를 열면,

아래에 "설정" 메뉴가 있습니다. 눌러봅시다.

"서버" 메뉴가 있네요. 얘로 들어가면,

이렇게 설정해둔 Transmission 웹 클라이언트 서버 목록들이 뜹니다. 눌러서 들어가게 되면,

서버 주소를 바꿀 수 있게 됩니다. 외부 IP를 넣으시면 됩니다.



* 포트포워딩을 한다는 것 자체가 공유기 나름의 방화벽 기능입니다. 포트포워딩을 하지 않으면 내부 네트워크의 어떤 호스트(장치)에도 접근할 수가 없습니다. 그리고 SSH 외부 포트를 다르게 지정하는 것도, SSH 접근을 어렵게 하기 위한 기능이 됩니다.

* 인터넷 TV 등의 이유로 공인 IP를 받은 공유기와 오드로이드가 연결된 공유기가 서로 다르다면, 두(또는 그 이상) 공유기 모두 포트포워딩 설정을 하셔서 오드로이드 NAS로 길을 뚫으셔야 합니다. 이 경우 공유기 설정 페이지 주소(게이트웨이 주소)가 다를 수 있으니 직접 알아보셔야 합니다. 

* 만약 도메인을 사용하시게 되면, 도메인과 서브 도메인을 통해 각 서비스에 접근하실 수 있습니다. 예를 들어, example.com 이란 도메인을 얻으셨을 때, OMV 관리자 페이지는 omv.example.com, Transmission은 transmission.example.com 등으로 접근이 가능합니다. 따라서 포트포워딩도 80번 하나로 줄여질 수 있습니다. 이 작업에 대해선 추후 도메인 관련 포스팅에서 다루도록 하겠습니다.

출처 : http://awesometic.tistory.com/58?category=964085

Posted by 타카스 류지
|

오드로이드 NAS 서버에서도 토렌트를 받으실 수 있습니다. 서버는 365일 24시간 돌아갑니다. 토렌트도 365일 24시간 받게 할 수 있으며, 저희는 NAS 용도이기 때문에 받는 족족 모바일이나 다른 기기에서 스트리밍할 수 있어 굉장히 편합니다.

OMV 플러그인으로 지원하는 토렌트 클라이언트인 Transmission 을 설치해 사용해봅시다.




1. Transmission 설치

OMV 플러그인 메뉴로 가 transmission을 검색하신 후 설치하시면 됩니다.



2. 공유 폴더 생성

토렌트 파일을 받을 위치에 대한 공유 폴더를 먼저 만들어주셔야 합니다.

OMV 공유 폴더 메뉴로 가 Torrent 라는 이름의 공유 폴더를 생성하겠습니다.

그리고 새로 생성한 공유 폴더의 접근 제어 목록(ACL)을 설정해줍니다.

"공유 폴더 ACL 수정" 대화 상자가 떴다면, 사용자/그룹 권한에서 debian-transmission 사용자와 그룹에 대해 읽기/쓰기 권한을 부여해줍니다. 그리고 "재귀적으로" 스위치를 활성화해줍니다.

위 스크린샷과 같이 되면 됩니다. "적용"을 누르신 후, "닫기" 버튼을 통해 빠져나옵시다.

이것으로 Transmission 사용을 위한 디렉토리가 준비되었습니다.



3. 활성화

OMV BitTorrent 메뉴로 갑시다.

이것 저것 많아 보이지만, 잘 따라오시면 편리하게 사용하실 수 있습니다.

먼저 "Files and Locations" 메뉴로 갑니다.

위 스크린샷의 화면처럼 나올 겁니다. "내려받기", "미완료", "감시"가 있습니다. 하나씩 설정해줘야 합니다.

먼저 "내려받기"의 공유 폴더를 좀 전에 만든 Torrent 공유 폴더로 지정해줍니다.

그리고 디렉터리에 complete 등을 써놓습니다. 토렌트 다운로드가 완료될 때 파일이 옮겨질 디렉토리입니다.

적용 예시 스크린샷입니다.

"미완료"에는 먼저 활성화 하신 후, 공유 폴더는 "내려받기"와 같은 Torrent 공유 폴더, 디렉터리는 미리 입력된 incomplete를 씁시다.

적용 예시 스크린샷입니다.

"감시"도 동일하게 적용해줍니다. 디렉터리는 미리 입력된 watch 로 하겠습니다.

적용 예시 스크린샷입니다.

설정이 완료되었으면 저장 및 적용합니다.

위의 "설정" 탭으로 이동해 활성화, 저장 및 적용합니다.

웹이나 모바일에서 토렌트를 관리하기 위해 위의 "RPC" 탭으로 이동합시다.

사용자 이름과 암호를 적절히 바꿔준 후, 활성화해 저장 / 적용합니다. 위는 적용 예시입니다. 필요하다면 포트 번호도 바꿔주실 수 있습니다.

* RPC 관련한 설정은 OMV에서 저장/적용 해도 실제로는 상당히 오랜 시간 동안 웹 페이지에 접속이 불가능할 수 있습니다. 적용 5분 정도 후 트랜스미션 웹 페이지에 접속해 보세요.

그리고 "보이기" 버튼을 클릭해봅시다.

정해둔 계정 정보로 로그인하게 되면,

이런 화면이 뜹니다. 여기서 토렌트를 관리하시면 됩니다.



4. 안드로이드 스마트폰에서 토렌트 업/다운로드 관리하기

* 지금은 같은 네트워크(공유기) 안에 있을 때만 가능합니다.

* 테스트에 사용된 스마트폰은 USIM이 없는 갤럭시 노트4 입니다.

컴퓨터를 키지 않고도 안드로이드 스마트폰에서 편하게 관리하실 수 있습니다.

먼저 Transmission 컨트롤 앱을 다운로드 받습니다. Transmission 공식 앱은 없고, 다른 개발자들이 웹에서처럼 Transmission을 컨트롤하기 위해 개발한 앱들입니다. 

https://play.google.com/store/apps/details?id=net.yupol.transmissionremote.app&hl=ko

그리고 실행해보면,

환영해줍니다. 서버를 추가해줍시다.

위 스크린샷처럼 적어주시면 되겠습니다. 이름과 안드로이드 IP 주소, 그리고 인증 정보입니다. 그리고 "확인" 버튼을 누르시면

이렇게 스마트폰에서 관리할 수 있게 됩니다.



5. 사용 테스트

간단하게 토렌트 파일 몇 개를 업로드해서 테스트해보겠습니다.

웹과 안드로이드 모두 잘 되네요 :)

다 받으면,

이렇게 알림도 줍니다 :)



* 웹 클라이언트에 도메인/SSL 적용

9091 포트로 접근할 수 있지만, 보안을 위해 도메인과 SSL을 적용할 수 있습니다. 이는 다른 포스팅에서 진행됩니다.


* RSS

RSS를 통해 드라마나 예능을 매주 자동으로 받을 수 있습니다. 파일 이름으로 걸러내 받기 때문에 매번 정확하고 신뢰높은 자료를 받는다는 보장은 없지만, 대부분의 경우 잘 받아지는 것 같습니다.

하지만 RSS 로 토렌트를 제공하는 믿을 만한 토렌트 사이트를 먼저 알아내셔야 하고, 무엇보다 제가 아직 RSS 로 자동으로 토렌트를 받아보진 않았기 때문에 추후 업데이트 하도록 하겠습니다.


출처 : http://awesometic.tistory.com/57?category=964085

Posted by 타카스 류지
|

FTP로 동영상을 스트리밍하실 수 있습니다. 하지만 원본 동영상이기 때문에 영상에 따라 데이터가 굉장히 많이 들 수 있어요. 2GB 가량의 예능이나 드라마 한 편을 봐도 파일을 그대로 가져오기 때문에 보통 와이파이 없이는 할 수 없습니다. 

Plex는 데이터 걱정을 덜어줍니다. 트랜스코딩을 지원하기 때문에, 원하는 동영상 해상도를 지정해서 스트리밍을 쏴줍니다. 예를 들어, 720p 예능 한 편이 2GB여서 부담이 됐다면, 480p 정도로 트랜스코딩하여 부담을 줄일 수 있어요. 트랜스코딩 후 실제 데이터 사용량은 1GB 밑이 됩니다.

또한 Plex는 스트리밍하고자 하는 장치에서 지원하지 않는 코덱이라도 트랜스코딩을 통해 지원하게끔 해줍니다. 트랜스코딩이 결국 실시간 인코딩이기 때문에 가능한 일이죠.

하지만 역시 서버의 성능이 좋아야 합니다. 인코딩, 디코딩에 높은 성능이 필요한 영상 코덱이라면 서버에 부담이 많이 가중됩니다. 그래도 XU4는 720p~1080p정도 x264 드라마, 예능 정도라면 혼자 볼 땐 충분히 받쳐주는 것 같더라구요. 압축률이 높고 비트레이트가 아주 높은 (10000kbps 이상)의 영상이 아닌 이상 볼 만합니다.

게다가 Plex는 TV 영상이나 드라마, 음악 등 공공 미디어에 대한 메타 데이터를 외부 서버로부터 가져와 붙여줍니다. 만약 태양의 후예라면, 단순한 파일 리스팅이 아닌 각 화별 썸네일, 줄거리, 매 화 이름 등등을 보여줍니다. 외국 드라마의 경우 테마 곡까지 들려주고, 영화는 예고편도 가져와주더라구요. 파일 이름을 통해 외부 서버로부터 가져오는 것이기 때문에 별도의 파일 네이밍 작업이 조금 필요하고, 국내 TV나 음악의 지원을 위해 별도의 작업 또한 필요하지만 모아놓고 보면 굉장히 뿌듯해지는 기능입니다.




1. Plex 설치

OMV Extras 메뉴로 갑시다.

Plexmediaserver 항목이 있습니다. 클릭해서 편집을 누르시면 활성화 스위치가 있는데, 활성화하신 다음 저장 후 적용하시면 됩니다.

그리고 OMV 플러그인 메뉴로 가 plex 라고 검색해 설치합시다.



2. Plex 활성화

OMV Plex Media Server 메뉴로 갑시다.

데이터베이스 볼륨으로 장착한 HDD 선택한 다음 활성화해준 후 저장, 적용합니다.

그러면,

이렇게 바뀝니다. Plexpy addon 항목이 생겼는데 얘는 무시해주셔도 됩니다. 위에 "플렉스 웹 클라이언트"라는 버튼을 누릅시다.

이런 창이 뜹니다. 간단히 회원가입 후 넘어가줍시다.

넘어가시다 보면 이런 화면이 뜹니다. 친근한 이름을 정해주시고, 집 밖에서도 미디어에 접근 가능하도록 허용하신 후 다음을 눌러줍니다.

라이브러리를 추가해줍니다.

이름을 적당히 넣어주시고, 언어는 한국어로 해줍니다. 그리고 왼쪽의 "폴더 추가" 메뉴를 누르시면, "미디어 폴더 찾아보기" 버튼이 있습니다. 얘를 누르면,

이런 창이 뜹니다. OMV에선 저장장치가 보통 "/srv/dev-disk-by-id-..." 형식의 디렉토리에 마운트되는 것으로 보입니다. 해당 폴더를 선택하시면 자신의 저장 장치 내용이 뜰 겁니다. 적절한 폴더를 선택한 후 추가해줍니다.

그리고 마지막으로 "고급" 메뉴를 눌러줍니다.

여러 가지 상세한 설정을 하실 수 있습니다. 보통 아무 것도 안 만져도 되지만, 필요하신 분은 잘 읽어보신 다음 설정해주시면 될 것 같습니다. 참고로 영화의 경우 "Localized title" 옵션이 있는 것 같습니다. 이걸 체크해주시면 한글을 1순위로 줄거리와 제목이 뜰 겁니다.

"라이브러리 추가" 버튼을 누르시면 추가된 라이브러리를 보실 수 있습니다. 필요에 따라 전부 다 추가됐다 싶으면 "다음" 버튼을 눌러 넘어가줍시다. 앱을 받아라, 사용 정보를 전송해달라 하는데 읽어보신 후 넘어가시면,

이렇게 뜹니다. 지정한 폴더에 미디어를 넣으시면 해당 미디어의 포스터와 정보가 보여질 겁니다. 만약 안 뜬다면, Plex 미디어 준비 페이지를 참고해 파일 네이밍을 다시 해주시거나, 아래의 국내 TV 메타 데이터를 위한 추가 작업을 하시면 됩니다.



3. 기본 설정

Plex 설정을 위해 설정화면으로 가야 합니다. 메인 화면에서 오른쪽 위의 스페어, 드라이버가 X 자로 놓여진 아이콘을 누릅니다. 왼쪽에서 두번째 아이콘입니다.

1) 트랜스코딩

트랜스코딩 관련 설정을 통해 XU4에 부하를 줄여줍시다.

"서버" - "트랜스코더" 메뉴로 갑시다.

품질과 동시 트랜스코딩 수를 정해줄 수 있습니다. 이것도 중요하지만, 먼저 오른쪽 위의 "고급설정 보이기" 버튼을 클릭합시다.

뭔가 항목이 많아졌습니다. 저희가 건들 건 품질과 임시 디렉토리, 프리셋입니다.

품질은 "속도 위주 인코딩"으로 맞춰주시고, 마지막에 x264 프리셋을 "최고로 빠르게"로 맞춰줍니다. 마지막 항목은, 모바일 기기에서 감상하기 전 Plex에서 미리 트랜스코딩을 해놓는 최적화 작업을 따로 설정해줄 수 있는데 그 작업에 해당하는 것으로 보입니다. 추가된 영상을 바로 보시지 않고 오랜 시간 후 보시게 된다면, 기본값인 "매우 빠르게"로 보시면 될 것 같습니다. 최적화를 사용하시지 않는 분들은 무시하셔도 됩니다.

그리고 트랜스코더 임시 디렉토리를 설정해줄 수 있습니다. 트랜스코딩할 땐 인코딩된 조각 파일들이 서버 어딘가에 저장되어야만 합니다. 기본값으로 데이터베이스 볼륨 아래에 저장됩니다. 여기서, 외장하드에 데이터베이스 볼륨을 설정하면 접근 속도와 전송 속도가 OS가 설치된 저장장치에 비해 느리다는 단점이 있습니다만, SBC를 쓰는 저희는 OS가 설치된 SD카드가 외장하드보다 더 느리기 때문에 그대로 두겠습니다. 만약 PC나 노트북 등에 OMV를 설치하신 후 이 글을 보시는 분들이 계시다면 경로를 /tmp 아래로 바꿔주시길 바랍니다.


2) 라이브러리 자동 갱신

Plex 라이브러리로 묶인 폴더에 새로운 동영상 파일을 추가할 때 매번 갱신을 해주지 않으면 Plex에 나타나질 않습니다. 동영상을 추가할 때마다 갱신을 해주는 건 굉장히 귀찮기 때문에 자동으로 갱신하게끔 설정해줍시다.

"서버" - "라이브러리" 메뉴로 갑시다.

"내 라이브러리 자동갱신" 과 "변경사항이 발견될 때 부분적인 스캔 실행" 을 체크해준 후 스크롤을 내려 "변경 저장" 버튼을 눌러줍니다. 부분 스캔 관련 옵션은 "고급설정 보이기" 버튼을 클릭했을 때만 나타납니다.

이 설정들 외에 다른 설정들도 읽어보시고, 필요하신 걸 해주시면 되곘습니다.



* Plex 플러그인 설치를 통해 국내 TV, 음악 호환성 높이기

참고: https://forums.plex.tv/discussion/75675/korean-movie-tv-music-metadata-agents

Plex 는 기본적으로 외국(특히 미국?) 서비스라, 모든 나라의 모든 영상 매체를 호환하진 않는 것 같습니다. 나와도 영어 설명으로 나올 확률이 크구요.

우린 한국인이기 때문에 OMV 플러그인을 통해 국내 Agent를 추가해줘야 좋습니다. 꼭 하셔야만 하는 과정은 아닙니다.

여기서 조금 전문스러워집니다. 먼저 UAS 해제 포스팅을 참고하여 SSH 접속해줍시다.

플러그인을 다운받아야 합니다.

한 줄씩 복사해서 붙여넣어 주세요. /srv/dev-.. 로 시작하는 경로만 각자 다를 수 있습니다.

아래 명령어를 통해 받아줍니다.

wget https://github.com/hojel/DaumMovie.bundle/archive/master.zip
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip
Bash

아마 master.zip, master.zip.1 로 받아졌을 겁니다. 얘네 압축을 플러그인 폴더에 해제해야 합니다. Plex 플러그인 폴더는 그 Plex를 처음 활성화할 때 지정한 데이터베이스 볼륨에 존재합니다. 따라서 사람마다 다르기 때문에 각자 경로를 찾아 지정해줘야 해요.

다음 명령어를 통해 경로를 찾고,

df | grep /dev/sda1 | awk '{print$6}'
/srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1
Bash

결과로 나온 경로를 참고해 압축을 풀어줍니다.

unzip master.zip -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
unzip master.zip.1 -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
Bash

그리고 해당 경로로 가 Plex 프로그램이 플러그인인 것을 알아챌 수 있도록 이름을 바꿔줍시다.

cd /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
mv DaumMovie.bundle-master DaumMovie.bundle
mv NaverMusic.bundle-master NaverMusic.bundle
Bash

마지막으로 소유권을 Plex로 바꿔줍시다.

chown -R plex:nogroup DaumMovie.bundle
chown -R plex:nogroup NaverMusic.bundle
Bash

이젠 Putty를 종료하셔도 됩니다.

exit
Bash

설정을 잘 하셨다면, 라이브러리 편집을 통해 이번에 추가한 국내 Agent로 바꿔줄 수 있습니다.

추가한 라이브러리에서 "편집" 메뉴로 갑시다. 대시보드(메인 화면)를 통해 아래 그림처럼 가시면 됩니다.

"고급" 메뉴를 누르시면,

에이전트 부분이 있습니다. 이걸 Daum Movie로 바꾸시면 됩니다.



* Plex 수동 업데이트

OMV 플러그인은 해당 프로그램을 OMV화해서 제공하는 게 아니라, OMV 웹에서 쉽게 다룰 수 있도록 프로그램과 OMV 사이에 다리만 놔주는 느낌입니다. 모든 게 그런 건 아닙니다만 Plex 플러그인은 그 성질이 좀 더 강해서, 다른 앱들과 다르게 OMV 업데이트할 때 Plex의 버전까진 올라가질 않습니다.

그래서 Plex를 수동으로 업데이트해줘야 합니다. 여기서 또 오드로이드 서버에 SSH 접속을 해야만 합니다.

먼저 OMV Plex Media Server 메뉴에서 활성화를 해제해준 후 플러그인을 설치할 때처럼 SSH에 접속합니다. 활성화 해제하실 때 저장 및 적용 잊지 마시구요.

그리고 아래 명령어를 통해 현재 작동 중인 Plex 프로그램을 확실히 중지합니다.

service plexmediaserver stop
Bash

ARM 용 Plex 최신 버전을 제공해주는 저장소에서 최신 버전 Plex 설치 파일 링크 주소를 복사합니다.

2017년 7월 24일 현재 1.7.5.4035입니다. 해당 저장소엔 항상 최신 파일만 유지되는 것으로 보이니, 있는 파일을 우클릭하여 링크를 복사하시면 됩니다.

그리고 wget으로 설치 파일을 받아줍니다. 파일 이름이 다를 수 있으니 꼭 확인하시고, 맞는 주소를 입력해주세요.

wget https://dev2day.de/pms/pool/main/p/plexmediaserver-installer/plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb
Bash

dpkg 명령어를 통해 설치합니다.

dpkg -i plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb
Bash

OMV Plex Media Server 메뉴에서 다시 활성화해줍니다. 이미 활성화가 되어 있는 경우 해제 후 다시 활성화해줍니다. 각 단계마다 저장 및 적용을 하셔야만 하구요.



* 안드로이드 스마트폰 연동과 포트포워딩

https://play.google.com/store/apps/details?id=com.plexapp.android&hl=ko

Plex 에서 공식적으로 안드로이드 앱을 제공해줍니다. 설치하고 키면 로그인을 할텐데, 로그인까지 하시면 바로 오드로이드 XU4의 Plex 서버가 뜹니다.

하지만 아직 사용하실 수 없습니다. Plex는 계정에 서버 IP와 포트를 저장해놓습니다. 그 계정은 Plex 본사에서 관리하구요. 안드로이드 앱으로 접근하려면 앱 로그인 -> 본사에서 서버 IP, 포트 확인 -> 연결 순서를 거치는데, 지금은 포트포워딩이 되어있지 않기 때문에 사용하실 수 없습니다. 사용하시려면 같은 네트워크(같은 공유기) 사이에서 http://{오드로이드IP}:32400/ 주소를 통해서만 사용하실 수 있어요. 포트포워딩 적용은 다른 포스팅에서 다룹니다.

출처 : http://awesometic.tistory.com/56?category=964085

Posted by 타카스 류지
|

많은 분들이 Dropbox, Google Drive 등 클라우드 스토리지 서비스를 사용하고 계십니다. 스마트폰의 사진이나 동영상을 백업하기 위해서요. 스마트폰의 용량은 한정되어 있는데, 요새는 사진 한 장 한 장이 워낙 고화질이라 너무 크죠. 그런 고화질의 사진을 찍고 저장할 때마다 백업을 함으로써 스마트폰이 분실되어도 찍었던 소중한 사진, 동영상을 볼 수 있다는 장점이 있습니다.

하지만 Dropbox, Google Drive, Microsoft OneDrive는 유료 서비스입니다. 무료로는 찔끔밖에 안 줘요. 그 유명한 Dropbox는 2GB입니다. 땅바닥에 굴러다니는 USB 메모리도 이거보단 커요.

매년 10만원이 넘는 돈을 지불하면서 이런 서비스를 사용해야 할까요? 남의 서버에? 심지어 유명 서비스들은 전부 해외에 있습니다. 그래서 전송 속도가 느려요. 국내 서비스인 네이버 클라우드랑 다음 클라우드는... 다음 클라우드는 문을 닫았지만 네이버 클라우드는 무료 30GB로 서비스 중이네요. 100GB도 안 됩니다.

오드로이드 XU4 + OMV로 NAS를 구축하고 있으니, 직접 클라우드 스토리지 서비스도 구축해 사용해 봅시다. 설치비만 빼면 외장하드 크기 만큼 매년 무료로 사용하실 수 있어요.


* 물론 Dropbox 가 무료로 2GB밖에 안 주면서 아직까지 유명한 이유 중 하나로 굉장히 강력한 동기화 성능과 안정성에 있습니다. 실시간 동기화가 중요하신 분들은 Seafile 로 완전히 이사하진 마시고 먼저 조금씩 사용해보세요.

* 유료 클라우드 스토리지 서비스의 장점은 데이터 분실 위험이 거의 없다는 점입니다. 여러 하드디스크에 같은 데이터를 씀으로서 하드디스크 고장으로 인한 데이터 손실을 최소화해요. 메이저급 회사들은 저런 단순 RAID가 아니라 굉장히 복잡한 방식으로 데이터를 보존한다고 하니, 운명적으로 수백 개의 하드디스크가 동시에 망가지지 않는 이상 데이터를 보존하실 수 있습니다. 하지만 직접 구축할 경우 2차 백업을 하시지 않으면 바로 데이터 손실로 이어질 수 있으니 주의해 주세요.

* Seafile 매뉴얼: https://manual.seafile.com/

* easy_install --upgrade pip 를 알려주신 박현성님 감사드립니다.




* 왜 Seafile?

NAS 좀 아시는 분들은 ownCloud Pydio를 생각하실 겁니다. 또는 유료로 FileCloud도 생각하실 수 있어요. 하지만 Seafile을 사용하는 여러 가지 이유 중 가장 큰 이유는 Seafile이 C와 Python으로 이루어져 있다는 점입니다.

Seafile은 ownCloud, Pydio처럼 PHP로 이루어지지 않았습니다. 이것이 무엇을 의미하냐면, 복잡하고 민감한 PHP 설정을 제쳐둘 수 있다는 것, 나아가 설치 및 설정이 쉽고 속도가 빠르다는 것을 의미합니다. 또한 32비트 기반 플랫폼에서 2GB 이상의 파일을 별도의 설정 없이 곧바로 업/다운로드 할 수 있습니다.

그리고 ownCloud, Pydio보다 더 나은 클라이언트 프로그램을 제공합니다. 윈도우 클라이언트 프로그램은 몰라도 ownCloud, Pydio의 안드로이드 앱은 최악이었어요.

그렇기 때문에 32비트 ARM 기반 SBC NAS에서 Seafile이 최선은 될 순 없지만, 현재 선택할 수 있는 가장 나은 선택이라고 생각하여 포스팅합니다.



0. Seafile 설치 준비

Seafile 설치는 조금 어려울 수 있습니다. 하지만 모든 과정을 하나씩 따라해 오시면 충분히 하실 수 있습니다.

이전에 Nginx와 MySQL이 설치되어 있어야 합니다.

먼저 사용하고 계신 NAS의 IP를 알고 있어야 합니다. 하나씩 따라오셨다면 이미 알고 계십니다. 모르시는 분들은 아래 링크를 참고해 확인하실 수 있습니다.

2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - OMV 설치 / 설정

그리고 터미널로 접속하기 위해 SSH 클라이언트를 설치해야 합니다. 역시 하나씩 따라하시면서 UAS도 해제하신 분들이라면 이미 SSH로 접속이 가능합니다. 혹시나 모르시는 분들은 아래 링크를 참고해 주세요.

2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 UAS 해제하기

Putty를 통해 로그인 한 상태에서 시작하겠습니다.

* 앞으로 많이 복사 후 붙여넣으실텐데, Putty에서 붙여넣기 방법은 마우스 오른쪽 클릭입니다.

* 뭔가 복사할 일은 없으시겠지만 혹시나 복사한다고 컨트롤 + C 는 절대 누르시지 마세요.

* OMV_3_0_88_Odroidxu4_4.9.46 버전 이상을 설치하셨다면 OMV 웹 - SSH 메뉴에서 "루트 로그인 허용" 을 활성화해주셔야 SSH 접속이 가능합니다. OMV 의 초기 접속 계정 정보는 root / openmediavault 입니다.
참고: 2018/01/25 - [오드로이드 XU4/XU4 + OMV 자작 NAS 만들기] - OMV 에서 SSH 접속하는 방법



1. Seafile 다운로드 및 설치

Seafile 은 OMV에서 제공하지 않습니다. 따라서 저희가 터미널을 통해 오드로이드 안으로 들어가 직접 설치해야만 합니다.

먼저 Putty를 통해 성공적으로 접속하셨다면 아래와 같은 화면이 뜰 겁니다.

여기서 다음 명령어를 통해 라즈베리파이용 Seafile 서버를 다운 받습니다. 라즈베리파이나 오드로이드나 플랫폼 종류(32비트 ARM)가 같기 때문에 그대로 사용하셔도 됩니다.

wget https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
Bash

그러면,

wget https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
--2017-07-20 10:25:28--  https://github.com/haiwen/seafile-rpi/releases/download/v6.1.1/seafile-server_6.1.1_stable_pi.tar.gz
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://github-production-release-asset-2e65be.s3.amazonaws.com/34115988/3cf96010-573c-11e7-9f81-48708f2c7743?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170720%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170720T082528Z&X-Amz-Expires=300&X-Amz-Signature=8b4763beb8db8b12cebe4fec8053272bbce6e6e751f94f4600acf01e52536c69&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dseafile-server_6.1.1_stable_pi.tar.gz&response-content-type=application%2Foctet-stream [following]
--2017-07-20 10:25:29--  https://github-production-release-asset-2e65be.s3.amazonaws.com/34115988/3cf96010-573c-11e7-9f81-48708f2c7743?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20170720%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20170720T082528Z&X-Amz-Expires=300&X-Amz-Signature=8b4763beb8db8b12cebe4fec8053272bbce6e6e751f94f4600acf01e52536c69&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dseafile-server_6.1.1_stable_pi.tar.gz&response-content-type=application%2Foctet-stream
Resolving github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)... 54.231.81.226
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|54.231.81.226|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30186571 (29M) [application/octet-stream]
Saving to: ‘seafile-server_6.1.1_stable_pi.tar.gz’

seafile-server_6.1.1_stable_pi.tar.gz                100%[======================================================================================================================>]  28.79M   407KB/s   in 25s    

2017-07-20 10:25:54 (1.15 MB/s) - ‘seafile-server_6.1.1_stable_pi.tar.gz’ saved [30186571/30186571]

Bash

이런 식으로 결과가 나옵니다.

이후 다음 명령어를 쳤을 때 다음과 결과와 같이 파일이 잘 있으면 됩니다.

ls -l
total 29480
-rw-r--r-- 1 root root 30186571 Jun 22 11:16 seafile-server_6.1.1_stable_pi.tar.gz
Bash

설치 파일 준비가 완료되었습니다.

이제 Seafile이 들어갈 디렉토리를 구성해줘야 합니다. 저희는 훗날 Nginx에 연동해서 쓸 테니 /var/www 에 seafile이란 디렉토리를 만들어 진행하겠습니다.

* 사실 Nginx에 연동한다고 굳이 /var/www 일 필요는 없습니다만, 터미널에 root로 로그인했기 때문에 /root 디렉토리 아래에 설치하기 보단 권한이나 이것저것 생각해 /var/www 아래에 설치하는 게 맞다고 생각했습니다. /root 디렉토리가 아닌 편한 곳에 설치해 주세요.

mkdir -p /var/www/seafile
Bash

그리고 아래 명령어들을 입력해 디렉토리를 구성해줍시다.

mv seafile-server_* /var/www/seafile
cd /var/www/seafile
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
Bash

설치 전 Seafile 설치에 필요한 필수 패키지들을 다음 명령어를 통해 설치해줍니다. 복사, 붙여넣기 해주세요.

apt-get install python python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-mysqldb python-memcache python-urllib3 python-pip python-dev libmemcached-dev memcached
Bash

하드디스크의 절대경로(정확한 위치)가 어디인지 알아야 합니다.

아래 명령어를 통해 알아냅시다.

df | grep /dev/sda1 | awk '{print$6}'
/srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1
Bash

결과로 나온 /srv/dev-disk-by-id-... 경로는 복사해둡시다. 복사는 마우스로 끌어서 블록으로 만든 후 마우스 오른쪽 클릭입니다. 한번 Putty에 입력될텐데 걱정 않으셔도 됩니다.

마지막으로 설치하기 위해 다음 명령어들을 입력해줍니다.

cd seafile-server-6.1.1
./setup-seafile-mysql.sh
Bash

이제 설치 과정이 시작됩니다.

엔터를 눌러 진행해줍니다.

아래는 전체 과정을 복사, 붙여넣기 한 것입니다.

서버 도메인을 두 번째 질문에서 물어보는데, 일단 오드로이드 IP를 적어 주세요.

seafile data 경로로 방금 전 알아둔 /srv/dev-... 경로를 붙여넣으신 뒤에 /seafile-data 라고 덧붙이신 뒤 입력해주세요.

밑에 빈 칸은 default 값을 그대로 이용(그냥 엔터)하거나 패스워드 입력 입니다.

제가 진행한 전체 과정을 참고하시면서 진행하시면 되겠습니다.

./setup-seafile-mysql.sh 
Checking python on this machine ...
  Checking python module: setuptools ... Done.
  Checking python module: python-imaging ... Done.
  Checking python module: python-mysqldb ... Done.

-----------------------------------------------------------------
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at

        https://github.com/haiwen/seafile/wiki

Press ENTER to continue
-----------------------------------------------------------------


What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] AwesometicNAS

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] 192.168.50.10

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/var/www/seafile/seafile-data" ] /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/seafile-data

Which port do you want to use for the seafile fileserver?
[ default "8082" ] 

-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------

[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases

[ 1 or 2 ] 1

What is the host of mysql server?
[ default "localhost" ] 

What is the port of mysql server?
[ default "3306" ] 

What is the password of the mysql root user?
[ root password ] 

verifying password of user root ...  done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ] 

Enter the password for mysql user "seafile":
[ password for seafile ] 

Enter the database name for ccnet-server:
[ default "ccnet-db" ] 

Enter the database name for seafile-server:
[ default "seafile-db" ] 

Enter the database name for seahub:
[ default "seahub-db" ] 

---------------------------------
This is your configuration
---------------------------------

    server name:            AwesometicNAS
    server ip/domain:       192.168.50.10

    seafile data dir:       /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/seafile-data
    fileserver port:        8082

    database:               create new
    ccnet database:         ccnet-db
    seafile database:       seafile-db
    seahub database:        seahub-db
    database user:          seafile



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Generating ccnet configuration ...

done
Successly create configuration dir /var/www/seafile/ccnet.
Generating seafile configuration ...

Done.
done
Generating seahub configuration ...

----------------------------------------
Now creating seahub database tables ...

----------------------------------------

creating seafile-server-latest symbolic link ...  done




-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start  | stop | restart  }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki

for information.
Bash

설치가 완료되었습니다.



2. Seafile 기본 설정

1) 시간대 변경

Seafile의 시간대를 바꿔야 정상적으로 파일 관련 시간을 보실 수 있습니다. 생성/수정/삭제 시간 등등요.

시간대를 바꿔주기 위해 conf/seahub_settings.py 파일을 수정해줄 겁니다.

다음의 명령어를 입력해주세요. Asia/Seoul 시간대로 바꾸도록 파일을 수정해줍니다.

간단히 한 줄만 추가해주기 때문에 나중에 다른 시간대로 변경하시려면 해당 명령어를 입력하시지 말고 직접 수정하셔야 합니다.

echo "TIME_ZONE = 'Asia/Seoul'" >> /var/www/seafile/conf/seahub_settings.py && cat /var/www/seafile/conf/seahub_settings.py
Bash

복사해서 넣으시면(마우스 우클릭) 결과로,

echo "TIME_ZONE = 'Asia/Seoul'" >> /var/www/seafile/conf/seahub_settings.py && cat /var/www/seafile/conf/seahub_settings.py
# -*- coding: utf-8 -*-
SECRET_KEY = "-!tn(wqs==1)bs13ar_5b1zk*3tafv3e$w)a9sfvyjockd$-2r"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub-db',
        'USER': 'seafile',
        'PASSWORD': 'admin',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

TIME_ZONE = 'Asia/Seoul'
Bash

마지막에 TIME_ZONE = Asia/Seoul 이라고 한 줄만 떠야 정상입니다. SECRET_KEY가 고유 키이기 때문에 위의 내용을 그대로 복사/붙여넣기 하시면 안 됩니다.


2) 부팅 시 자동 시작 설정

Seafile 은 PHP와 다르게 웹서버에 물려있지 않는 자체 서비스이기 때문에 쉘 스트립트 파일로 실행을 스스로 해줘야 합니다.

하지만 매번 재부팅 할 때마다 이런 작업을 하는 건 매우 불편하니, 서비스를 등록함으로써 리눅스가 시작할 때 알아서 실행되도록 해줍시다.

먼저 /etc/system/system 에 service 파일을 생성하겠습니다. Seafile 서비스의 핵심 모듈인 seafile과 웹 서비스 제공 모듈인 seahub가 각각 따로 실행되기 때문에 service 파일을 각각 만들어 진행해야 합니다.

하나씩 잘 따라가 주세요.

nano /etc/systemd/system/seafile.service
Bash

화면이 바뀌면, 아래 내용을 복사한 후 화면이 바뀐 Putty에 마우스 우클릭을 통해 붙여 넣어 줍니다.

[Unit]
Description=Seafile
# add mysql.service or postgresql.service depending on your database to the line below
After=network.target mysql.service

[Service]
Type=oneshot
ExecStart=/var/www/seafile/seafile-server-latest/seafile.sh start
ExecStop=/var/www/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
User=root
Group=root

[Install]
WantedBy=multi-user.target
Bash

붙여 넣으셨으면 "컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 줍니다. 저장해서 빠져나오는 과정입니다.

그리고 seahub.service도 만들어줍니다.

nano /etc/systemd/system/seahub.service
Bash

역시 아래 내용을 복사 후 붙여넣어 줍니다.

[Unit]
Description=Seafile hub
After=network.target seafile.service

[Service]
# change start to start-fastcgi if you want to run fastcgi
ExecStart=/var/www/seafile/seafile-server-latest/seahub.sh start
ExecStop=/var/www/seafile/seafile-server-latest/seahub.sh stop
User=root
Group=root
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Bash

방금 전과 같이 "컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 저장 후 빠져나옵니다.

마지막으로 다음 명령어를 복사/붙여넣기 후 엔터를 입력합니다.

systemctl enable seafile.service && systemctl enable seahub.service
Bash


3) Memcache 추가로 성능 최적화

Memcache를 추가해 Seafile의 반응 속도를 올려봅시다. Memcache는 사용 가능한 메모리에 데이터를 미리 저장시켜 놓는다고 생각하시면 됩니다. 이걸 하지 않으면 매번 새로 데이터를 만들고 가공해서 보여줘야 하는데, 메모리에 저장시켜 놓음으로써 같은 내용을 다시 볼 때 새로 작업하지 않고 바로 볼 수 있어 빠릅니다.

Seafile에서 정식으로 지원하기 때문에 설치가 굉장히 간단합니다. 잘 따라해 주세요.

먼저 pip 라는 Python 패키지 관리자를 통해 필요한 패키지들을 설치합니다.

sudo easy_install --upgrade pip
sudo -H pip install pylibmc
sudo -H pip install django-pylibmc
Bash

그리고 conf/seahub_settings.py 파일을 열어 마지막에 아래 내용을 붙여 넣습니다. 방법은 조금 다릅니다. 먼저 아래 명령어를 입력해주세요.

echo -e '\n' >> /var/www/seafile/conf/seahub_settings.py
Bash

입력하신 후 nano로 열어 줍니다.

nano /var/www/seafile/conf/seahub_settings.py
Bash

그리고 아래 방향키를 쭉 내리셔서 초록색 prompt를 파일 내용 가장 아래로 보낸 후, 아래 내용을 복사/붙여넣기 합니다.

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
Bash

"컨트롤+x" , "y 키", "엔터"를 순서대로 눌러 빠져나옵니다.



3. Seafile 실행

이제 Seafile을 실행해봅시다.

서비스로 실행 파일을 등록했기 때문에 "service seafile start" 등의 명령어로 실행이 가능합니다.

하지만 seahub의 경우 처음 실행하기 때문에 실행 시 관리자 이메일을 어떤 걸로 쓸 건지 묻습니다. 물음에 대답하기 위해 seahub는 직접 실행해줘야 합니다. 한 줄씩 따라서 입력해 주세요.

cd /var/www/seafile/seafile-server-latest
./seafile.sh start
./seahub.sh start
Bash

seahub 실행 시 결과는 다음과 같습니다. 제 경우를 든 예시입니다. 이메일과 비밀번호를 적절히 입력해 주세요.

./seahub.sh start

LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] 

What is the password for the admin account?
[ admin password ] 

Enter the password again:
[ admin password again ] 



----------------------------------------
Successfully created seafile admin
----------------------------------------




Seahub is started

Done.
Bash

다음부터는 service seafile start, service seahub start 를 입력하시면 됩니다. 하지만 자동으로 시작하기 때문에 직접 입력하실 일은 없을 거에요.

그리고 인터넷 주소창에 http://{오드로이드IP}:8000/ 을 입력해 들어가 봅시다.

seahub를 처음 실행했을 때 계정 정보로 로그인해 들어가면,

이렇게 환영해합니다.



4. 클라이언트 설치

1) 윈도우

Seafile 클라이언트를 컴퓨터에 설치해서 편리하게 접근하실 수 있습니다.

클라이언트를 설치함으로써 내 컴퓨터의 폴더 하나를 만들어 그것을 NAS와 동기화시키는 겁니다. 그 폴더에 어떤 파일을 넣으면 자동으로 서버에 올라가는 거에요.

https://www.seafile.com/en/download/

여기서 Client for Windows 를 다운받습니다.

그리고 설치하면,

알아서 이렇게 실행됩니다.

서버와 동기화할 폴더를 지정하라는 거에요. 제 컴퓨터에는 자료 저장용으로 D드라이브가 하나 더 있기 때문에 저기에 만들겠다고 하는 것 같네요. 일단 기본값으로 그냥 다음 버튼을 눌러줍니다.

계정 추가 화면입니다. 여기선 서버에 자신의 오드로이드 서버 와 8000번 포트로 지정해줍니다. 아래 예시가 나와있어요.

그리고 전자메일과 암호는 seahub를 처음 실행시킬 때 만든 계정으로 입력합니다.

로그인하면 이런 화면이 떠요. 기본 라이브러리를 만들자는 건데, 이걸 만들면 내 컴퓨터에 하드디스크가 뜨듯 Seafile 아이콘이 생깁니다. 예 버튼을 눌러 만듭시다.

다 됐다고 하네요. 열기를 해봅시다. 그러면 동기화되고 있는 폴더가 뜰 거에요.

그리고 무엇보다 내 컴퓨터에 Seafile 아이콘으로 된 내 라이브러리라는 항목이 생겼을 겁니다.


이렇게요. 저 라이브러리에 파일을 넣거나 수정, 삭제하면 바로 Seafile 서버의 해당 라이브러리에도 적용됩니다.


2) 안드로이드

안드로이드를 통해서 간편하게 하실 수 있습니다. 무엇보다 이 앱을 설치하면 스마트폰 사진 백업이 자동으로 이루어져요.

https://play.google.com/store/apps/details?id=com.seafile.seadroid2

안드로이드 스마트폰 마켓을 통해 Seafile 앱을 설치합니다.

환영해줍니다. 계정 추가를 누른 후 다른 Seafile 서버 를 클릭합시다.

계정을 추가할 수 있는 화면으로 넘어왔습니다. 서버 주소에 오드로이드 IP를, 192.168.50.10:8000 형식으로 적어줍니다. 계정 이름과 암호는 역시 seahub 처음 만들 때 계정 정보로 합시다.

그리고 로그인하게 되면,

이렇게 내가 사용하고 있는 라이브러리가 나타납니다. 스마트폰을 통해서도 파일을 추가, 수정, 삭제하실 수 있고, 설정에서 사진 백업 옵션을 통해 자동으로 저장되는 사진을 백업하실 수 있습니다.

그런데 ES 파일 탐색기와 함께 쓰면 권한 허가 문제가 있는데, ES 파일 탐색기가 "다른 앱 위에 그리기" 권한을 갖고 있기 때문인지 Seafile 앱에서 파일 읽기/쓰기 권한을 얻을 수 없습니다. "다른 앱 위에 그리기" 권한을 이 앱만 갖고 있는 게 아닌데 이상하게 안 되네요. ES 파일 탐색기에서 ES Swipe 옵션을 비활성화 해주면 잘 됩니다.

ES 파일 탐색기를 키신 후,


ES Swipe 메뉴로 들어갑니다.



그리고, 비활성화 해주면 됩니다.

사실 ES 파일 탐색기가 파일 관리 뿐 아니라 이것 저것 다 하려고 해서 앱의 덩치가 많이 큽니다. 메모리도 많이 먹구요. 하지만 FTP 서버를 사용하기 위해선 아직 이만한 대안이 없으니 사용하고 있습니다. 더 가볍고 좋은 앱이 있으면 알려주세요 :)


* 해당 가이드는 오드로이드 XU4 + OMV에서 Seafile의 사용 준비만을 다룹니다. 자세한 사용법은 올리지 않겠습니다.

* Seafile의 포트포워딩에 대해선 아직 다루지 않았습니다. 다른 서비스들의 설치까지 모두 다룬 후 한 번에 포트포워딩 하려고 합니다. 이미 하실 줄 아시는 분들은 8000번을 포트포워딩 하시면 될 것으로 보입니다. 윈도우나 모바일 클라이언트로 접속 시 8000번으로 시도해보세요.

* Seafile도 도메인을 얻고 SSL도 적용해 보안도 강화시키면 더욱 좋습니다. 해당 사항에 대해선 차후에 포스팅하겠습니다.


출처 : http://awesometic.tistory.com/52?category=964085

Posted by 타카스 류지
|

MySQL은 무료 Database Management System입니다. 그냥 수백, 수천 개 이상의 데이터를 무료로 관리할 수 있도록 해줍니다.

데이터베이스의 기본 개념과 사용법은 생략하겠습니다. 그냥 앞으로 설치할 서비스들을 사용하기 위해 필요한 프로그램이라 생각하시면 됩니다.




* MySQL 설치

OMV 플러그인 메뉴에서 설치하실 수 있습니다. Nginx 설치하듯 플러그인을 설치하시면 됩니다. 그리고 OMV MySQL 메뉴로 갑시다.

여러 버튼이 있습니다. 활성화하기 전 추가옵션으로 다음 내용을 적어줍니다.

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci

그리고 활성화, 저장 / 적용해줍니다.

마지막으로 암호 재설정 버튼을 눌러 암호를 하나 지정해 두고, 기억해 둡시다.

역시 왕초보 코스이기 때문에 MySQL을 직접 어떻게 다룰 수 있느냐는 다루지 않겠습니다.

출처 : http://awesometic.tistory.com/54?category=964085

Posted by 타카스 류지
|

Nginx 는 간단하고 빠릿한 웹서버 프로그램입니다. Apache IIS 와 같은 역할을 수행합니다만 요근래 좋은 성능을 이유로 점유율이 점점 높아지고 있는 프로그램입니다. 해당 웹서버 프로그램이 있어야 워드프레스 등 개인 블로그를 호스팅하거나 도메인을 얻어 여러 가지 서비스를 도메인만으로 접속하실 수 있습니다. 예를 들어, blog.example.com 으로 제 개인 블로그에 접속할 수 있게 해줘요.

원래 OMV에는 OMV 관리자 페이지를 제공하기 위해 PHP와 함께 Nginx가 설치되어 있지만, 플러그인을 통해 사용자가 웹 서버를 추가로 설정할 수 있도록 해줘야 합니다.




* Nginx 설치

OMV 플러그인 메뉴로 갑시다.

뭔가 많습니다. OMV에서 제공하는 다양한 플러그인들입니다. 우선 저희는 여기서 Nginx를 검색할 겁니다.

그럼 이 항목 하나만 결과로 나타납니다. 체크 후 설치합니다.

이렇게 설치하고 완료하면, 페이지를 새로 고친다고 알립니다.

페이지를 새로고침하면, 왼쪽 OMV 메뉴 중 서비스 - Nginx (websites) 가 나타난 것을 보실 수 있습니다.

OMV에서 플러그인은 이런 식으로 설치가 됩니다. 꼭 서비스 메뉴의 하위 메뉴로 나타나진 않지만, 이렇듯 새로운 메뉴가 추가되는 것으로 플러그인 설치 완료를 알 수 있습니다.

Nginx 메뉴를 클릭해 들어가면,

이런 화면이 나타나는데요, 일단 여기서 서버 이름 해시 버킷 크기를 128로 설정하신 후 활성화, 저장 / 적용 해줍시다.

적용이 완료되었으면 Nginx의 사용 준비가 완료된 겁니다.

저희는 왕초보 코스를 타고 있으니, 이렇게 활성화만 시켜둔 다음 OMV Nginx의 활용법은 앞으로 있을 다음 게시글에서 확인해보겠습니다.


출처 : http://awesometic.tistory.com/53?category=964085



Posted by 타카스 류지
|

오드로이드 XU4 + OMV 로 FTP 설정하는 방법과 접속 방법을 알려 드리려 합니다.

FTP만 설정해도 어지간히 활용하실 수 있어요.


* 해당 가이드를 따라하셔도 카페나 지하철 등 외부 네트워크를 통한 접속은 불가능합니다. 포트포워딩을 설정해 줘야 하는데, 이에 관해선 다른 게시글로 포스팅하겠습니다.

* 해당 가이드는 OMV에서 어떻게 FTP 서버를 열고, 어떤 FTP 클라이언트로 FTP 서버에 접속하는지를 간략히 소개하기 위해 쓰였습니다. 때문에 각 프로그램의 사용법에 대해선 필요 이상으론 자세히 다루지 않았습니다.




0. FTP와 보안

진행하기 앞서 FTP에 대해서 간단히 알아야 합니다. 

FTP는 File Transfer Protocol의 약자입니다. 말 그대로 파일 전송 프로토콜인데요, 프로토콜이라 하면 어떤 행위를 하기 위한 상호간 약속이라고 보시면 됩니다. FTP는 파일을 주고받을 때 서로 사용하는 약속같은 거죠. 서버가 FTP 서버를 열면, 그 약속에 따라 FTP 클라이언트에서 접속해 파일을 주고 받는 겁니다. 

문제는 FTP가 보안에 굉장히 취약하단 점입니다. 모든 데이터가 평문으로 전송돼요. 서버에 FTP 접속할 때 로그인하는 그 사용자 계정 정보부터 패킷에 평문으로 담겨 보내집니다. 어느 IP에 어떤 포트로 접속하는 지, 현재 위치에서 어떤 파일들과 디렉토리들이 있는지도 뜨구요. Spoofing 등으로 전송 경로를 가로채 파일의 내용까지도 알 수 있겠죠. 리눅스에서 계정 관리가 제대로 안 됐다면 SSH에 해당 계정으로 접속도 가능하겠네요.

그래서 보통 SFTP를 사용합니다. SFTP(SSH File Transfer Protocol)는 SSH에서 제공하는 간단한 FTP 서비스를 사용하는 것입니다. SSH(Secure Shell) 는 기본적으로 암호화 통신으로만 이루어집니다. 패킷을 뜯어봐도 암호화된 문자만 뜨므로 제대로 해석할 수 없어요. 때문에 SFTP라면 암호화된 통신으로 파일을 주고 받을 수 있어 더 안전합니다. SSH가 정확히 무엇인지는 생략하겠습니다. 참고로 OMV에선 SSH가 기본적으로 활성화되어 있습니다.

FTP 서버를 이용해야만 한다면 FTPS를 사용합니다. FTPS(File Transfer Protocol Secure)는 FTP에 SSL(Secure Sockets Layer 또는 TLS, Transport Layer Security)을 입힌 거에요. 간단하게 보안을 위한 계층을 하나 더 씌워 모든 통신을 암호화시킵니다. 하지만 이건 도메인도 필요하고, 인증 기관으로부터 SSL 인증서도 발급받고, 갱신하고, FTP에 설정도 이것 저것 바꿔야만 하므로 귀찮죠. 그래서 SFTP를 많이 사용합니다.

여기까지 보면 FTP는 굳이 사용할 필요가 없다고 느껴지실 겁니다. SSH만 사용해도 돼 보여요. 하지만 또 각각의 장단점은 있을 수 있어요. 그래서 결국 사용자의 선택일텐데, 전 개인적으로 SFTP 사용을 추천드립니다. SFTP가 보편화되면서 대부분의 FTP 클라이언트 프로그램에서도 SFTP를 당연히 지원하게 됐거든요.

지금은 OMV에서 사용자 계정을 만들고, 또한 그 계정은 Shell이 부여되지 않아 터미널에 접속할 수 없는 상태입니다. 또한 OMV NAS에서 그렇게 중요하지 않은 자료들을 다룰 수도 있고, 활용할 수도 있으니 FTP 서버에 대한 포스팅을 시작하겠습니다. 무엇보다 OMV에서 SFTP를 파일 공유 목적으로 사용하려면 현재 OMV 사용자 계정에 홈 디렉토리를 생성하고, Shell도 부여해야 하며, 터미널에서 직접 공유 폴더를 지정해줘야 합니다. 필요하다 생각되면 진행하겠습니다.

아무쪼록, 보안이 취약하다는 건 알고 진행해 주세요.

해당 사항은 FTP 자체 특성이므로 어떤 기성 NAS나 자작 NAS를 사용하더라도 똑같이 적용됩니다.



1. FTP 설정 및 활성화

OMV FTP 메뉴로 갑시다.


여기서도 간단히 활성화 켜주시고, 아래 고급 설정 부분으로 갑니다.

Passive FTP 부분을 활성화합니다. 그리고 나중에 포트포워딩도 49152~65534까지 하셔야합니다. 한글로는 수동 FTP 라고 나와있을 겁니다. 

왜냐하면, FTP가 Active(능동) 모드와 Passive(수동) 모드가 있는데, 능동 모드일 경우 데이터를 보낼 때 서버가 클라이언트에 접속해 보냅니다. 때문에 클라이언트가 서버로부터 들어올 포트를 열어둬야 해요. 방화벽을 사용하는 서버 사이 전송일 경우에도 그렇고 이런 게 잘 될 리가 없습니다.

반면에 수동 모드는 전부 클라이언트에서 서버로 접속하는 형태입니다. 처음에 21번 포트로 서버에 들어왔다가, 서버가 정해진 포트 범위 내에서 하나를 골라 이걸 쓰라고 응답합니다. 그러면 그 포트를 통해 서버로 데이터 수신을 위한 접속을 합니다. 이건 서버만 방화벽 설정하면 되죠. 

참고: https://extrememanual.net/3504

그리고 조금 더 밑으로 내려가 전송 기록 활성화도 체크하신 뒤 저장/적용합시다.


마지막으로 공유 탭으로 가 공유 폴더를 추가해줍니다.


2. FTP 접속

FTP 서버를 열었으니, FTP 클라이언트를 통해 접속할 수 있습니다. Chrome 등 사용하시던 웹브라우저나 FileZilla, 알FTP, XFtp, Cyberduck 등 FTP 클라이언트 프로그램 또는 안드로이드나 iOS 앱을 통해서도 접속이 가능합니다.

여기선 웹브라우저와 프로그램, 안드로이드 접속 방법을 하나씩 알려드리겠습니다.

1) Chrome 으로 접속하기

대부분 많이들 쓰시는 Chrome 웹브라우저로 접속하는 방법이 있습니다. 파일 업로드는 불가능하지만, 가장 간편하게 접속해 파일을 다운로드 하실 수 있습니다.

방법은 주소창에 ftp://{오드로이드IP}/ 를 적으시면 됩니다. 접속하시게 되면,

이런 로그인 프롬프트가 뜨는데요, OMV NAS 사용자 계정으로 로그인하시면,

이렇게 OMV FTP 설정에서 추가된 공유 폴더가 나타납니다. 기가 막히네요.

해당 공유 폴더에 권한이 있는 OMV 사용자 계정으로 로그인하셨다면 바로 다운로드 하실 수 있지만, 권한이 없다면 해당 공유 폴더에 접근하실 수 없거나 다운로드하실 수 없습니다.


2) FileZilla 로 접속하기

FileZilla는 대단히 유명한 오래된 오픈 소스 FTP 클라이언트 프로그램입니다. 윈도우, 리눅스, 맥을 모두 지원하며, FTP 전용 클라이언트 프로그램이기 때문에 FTP, SFTP, FTPS 등을 모두 지원하고 업/다운로드가 간단합니다.

FileZilla 다운로드 링크로 가셔서 클라이언트 프로그램을 다운로드 받고 설치합니다.

설치한 프로그램을 실행하시면,

이런 화면이 뜨는데요. 여기서 호스트에 자신의 오드로이드 IP, 사용자명과 비밀번호에 OMV NAS 사용자 계정을 입력해주시면 됩니다. 포트는 21번이구요. 참고로 FTP 서비스의 기본 포트는 21번입니다. 약속 같은 건데, 입맛대로 바꿔줄 순 있어요.

OMV NAS 사용자 계정으로 로그인하면 이렇게 됩니다. 로그인이 잘 됐다는 메시지와 함께 오른쪽 아래에 5TB 공유 폴더가 보이네요.

파일을 업/다운로드가 제대로 되는 지 테스트 겸 속도도 보겠습니다. 목적지 경로에 파일을 끌어다가 놓으시면 됩니다.

업로드


다운로드

보시면 업로드 93MB/s, 다운로드 113.2 MB/s 로 굉장히 준수하네요. XU4가 UAS를 껐는데도 이런 속도가 나와서 놀랍습니다.


3) 안드로이드에서 접속하기

안드로이드에서 FTP 서버에 접근할 때, 전 ES 파일 탐색기를 추천합니다. 무료버전이라 광고가 덕지덕지 많은 것 빼곤 기능도 많고, 무엇보다 이걸 대체할 앱이 없어요.

플레이스토어에서 ES 파일 탐색기를 검색해 설치하고, 실행해 봅시다. 참고로 테스트 기기는 갤럭시 노트 4 입니다. 처음에 안내 화면이 나오는데, 하나씩 넘겨 완료하면,

이런 화면이 뜹니다. 여기서 왼쪽 위의 Navigation Drawer Open 버튼을 클릭해준 후 네트워크-FTP 메뉴로 들어가면,

이 화면이 떠요. 밑의 스캔 버튼이 있어 해당 네트워크 내의 FTP 서버를 자동으로 스캔을 해 주기도 하지만, 저희는 명시적으로 딱 잘라 이용하기 위해 오른쪽 위의 새로 만들기 버튼을 눌러 줍시다. 누르면 FTP냐, SFTP냐, 이런 걸 묻는데 FTP를 선택해주면,

이렇게 새로운 FTP 서버를 추가하기 위한 Dialog가 떠요. 제 스크린샷을 참고하여 각 항목별로 알맞게 적어줍시다. Mode는 수동 모드이고, 인코딩은 Auto로 되어있을텐데 안전하게 UTF-8로 바꿔줍시다.

그리고 확인을 누르면,

이래이래 방금 설정한 FTP 서버가 떠요. 이 곳을 들어가면 귀신같이 자신이 설정한 공유 폴더가 뜹니다. 이제 사용할 수 있어요.

공유 폴더에서 파일을 다운로드 하는 방법은, 파일을 지긋이 잠깐 누르고 있으면 여러 개를 선택할 수 있는데, 이 상태에서 필요한 파일을 선택한 뒤

아래의 기타를 누르면 위와 같은 메뉴들이 뜨는데, 여기서 이동이나 복사를 클릭하시면 됩니다. 그러면,

이렇게 다운로드 받을 위치를 선택하라 합니다. 전 Download에 들어가 확인을 눌렀어요.

이런 전송 중이란 Dialog가 뜹니다. 숨기기를 누르면 알림으로 남아있어 얼마나 진행됐는지 알 수 있구요. 속도는 지금 공유기가 802.11ac를 지원하지 않는 공유기라 느리네요. 5GHz 802.11ac를 지원하는 공유기라면 20 MB/s 이상 속도가 나올 겁니다.

반대로 업로드는, 안드로이드의 공유 기능을 이용하시면 됩니다.

기본적으로 제공되는 내 파일 등의 파일 탐색기 앱을 쓰셔도 되지만, 여기선 갤러리를 예로 들게요. 갤러리에서 업로드하고 싶은 사진들을 선택하신 뒤 공유 버튼을 누르면,

이렇게 공유가 가능한 어플리케이션 목록이 뜹니다. ES 에 저장을 눌러 줍시다. 느낌상 Send by LAN 같은데 지금은 아니에요.

그럼 또 이렇게 경로를 선택하라는 Dialog가 뜹니다. 이번엔 반대로 올라가죠. 왼쪽 위의 "<-" 버튼을 누르시면,

아까 생성한 OMV NAS의 FTP 설정 폴더가 보입니다. 저 곳으로 들어가 적절한 경로에서 선택하시면 아까 다운로드 할 때 뜬 Dialog가 뜨면서 진행됩니다.

FTP의 또 다른 대표적인 활용 방법으로 동영상 스트리밍이 있는데, 이건 다른 게시글에서 다루도록 하겠습니다.
=> nPlayer 를 이용해 FTP, WebDAV, Samba, DNLA 동영상 스트리밍하기



* 한글 깨짐 방지

FTP 클라이언트가 UTF8을 제대로 지원해야 한글이 문제없이 들어가는 것 같네요

윈도우 PC에선 파일질라나 XFtp를 추천드립니다 :)

출처 : http://awesometic.tistory.com/51?category=964085

Posted by 타카스 류지
|

OMV 에서 Samba 를 아주 간단하게 설정해봅시다.

Samba를 설정하면, 윈도우가 깔린 내 컴퓨터에서 NAS의 하드디스크를 내 컴퓨터 하드디스크인냥 들락날락 하실 수 있습니다. 물론 자료도 주고 받을 수 있어요.




1. Samba 설정 및 활성화

OMV SMB/CIFS 메뉴로 갑시다.


간단합니다. 여기서 활성화해주시면 돼요. 저장 및 적용 하시구요.

* 사실 작업 그룹이 중요합니다. 윈도우 기본값이 WROKGROUP이라 대부분의 시스템에선 바로 작동할 겁니다. 하지만 다른 작업 그룹명을 사용하는 윈도우에선 그 그룹명을 Samba 서버에 설정해주지 않으면 사용하실 수 없습니다.

공유 탭으로 가시면, 추가 버튼이 있습니다. 이 버튼을 누르면,


이런 창이 뜨는데, Samba로 공유하고 싶은 폴더를 지정해주는 겁니다. 공유 폴더는 이전에 생성해놓은 걸로 하죠. 전 5TB였구요.

공유 폴더만 설정하신 뒤 저장을 누르시면 아래와 같이 새로운 아이템이 뜹니다.

적용 알림이 뜨면 적용하시면 됩니다.


2. 네트워크 드라이브 등록

내 컴퓨터에서 내 컴퓨터의 C드라이브 들락날락하듯 NAS에 연결된 하드디스크를 들락날락 하게 해줍시다.

내 컴퓨터를 열어줍시다.

그리고 사진의 네트워크 드라이브 연결을 누르세요. 한번 더 뜨는데 또 누르시면 됩니다.

이런 창이 뜨죠. 여기서 찾아보기를 누릅시다.

찾아보기 창에 ODROIDXU4가 있습니다. OMV Samba 설정 기본값으로 이렇게 뜨게 해놨어요. ODROIDXU4가 아니라 다른 이름으로 간단히 바꾸실 수 있습니다. 저것을 더블클릭하면,

이런 게 뜹니다. 여기서 저번에 새로 만든 NAS 사용자 이름와 암호를 넣으시면 됩니다. 매번 로그인하기 귀찮으실테니 내 자격 증명 기억을 체크해주시구요.

완료하면,

이렇게 아까 OMV에서 추가한 공유 폴더가 뜹니다. 기가 막힙니다. 나타난 공유 폴더를 클릭하신 뒤 확인을 누르시고, 마침 버튼을 누르시면 됩니다.

이제 내 컴퓨터에 이런 드라이브가 생성됐을 겁니다. 들락날락 하시면 됩니다.

테스트 겸 속도를 보겠습니다.

업로드


다운로드

XU4에서 UAS를 꺼도 굉장히 빠릿하네요.


출처 : http://awesometic.tistory.com/49?category=964085

Posted by 타카스 류지
|

오드로이드 XU4의 OMV 설치 및 설정 방법입니다.




1. OMV 설치

컴퓨터를 이용해 마이크로 SD카드에 OMV를 올리고, 그걸 오드로이드 XU4에 꼽으면 설치가 완료됩니다.

1) OMV 이미지 다운받기

https://sourceforge.net/projects/openmediavault/files/Odroid-XU3_XU4/

위의 링크로 가서 OMV_3_0_85_Odroidxu4_4.9.37.7z 를 다운받으시면 됩니다. (2017. 07. 19 현재)

받고, 어디든 압축을 푸시면

Armbian_5.33_Odroidxu4_Debian_jessie_next_4.9.37.img

란 1.9GB 가량의 파일이 나올겁니다. 이걸 Etcher를 통해 SD카드에 올릴 거에요.

* Win32DiskImager와 달리 Etcher는 윈도우, 리눅스, 맥을 모두 지원하는 프로그램입니다. 이미지 파일이 포함된 zip 압축파일을 압축을 해제하지 않고도 사용 가능하며, 이미지 Writing 후 자동으로 파일 검증까지 수행해줍니다. 여기선 OMV에서 7z 파일로 제공하므로 아직 지원하지 않아 압축을 해제하고 사용하는 과정을 잘 따라와주시면 됩니다.


2) Etcher 다운받아 OMV 올리기

https://etcher.io/

가셔서, 자신의 컴퓨터에 맞게 다운로드하시고 설치하시면 됩니다.

프로그램을 키시면

이런 화면이 나오는데, Select image 버튼을 눌러 방금 압축 해제한 Armbian_5.27_Odroidxu4_Debian_jessie_next_4.9.28.img 파일을 불러와줍시다. Select drive에선 사용할 MicroSD 카드를 선택해주시고 (하나밖에 없을 시 자동 선택) Flash를 누르시면 검증까지 알아서 모든 게 진행됩니다.

마지막으로 오드로이드에 해당 SD카드를 꼽아주시면 됩니다.


3) OMV 접속

SD카드와 랜선, 외장하드를 꼽고 전원을 넣으세요. 랜선의 반대쪽은 사용하고 계신 공유기에 꼽으시면 되구요.

그리고 OS를 설치하는 과정 때문에 5분정도 기다리셔야 하는데, 기다리는 동안 오드로이드 XU4의 IP 주소를 알아내 봅시다. 그 주소를 알아야 설치된 OMV에 들어갈 수가 있거든요. 이미 아시는 분들은 바로 들어가셔도 한 번 자동으로 재부팅되니 5분을 기다리시는 게 좋습니다.

오드로이드의 IP를 알아내는 방법은 간단합니다. 

http://angryip.org/

위의 링크를 들어가셔서 프로그램을 다운받아 실행해 주세요.

Angry IP Scanner가 자동으로 게이트웨이와 서브넷 마스크를 감지하여 IP Range를 잡아주는 것으로 보이네요.

여기서 바로 Start 버튼을 누르면,

이렇게 검색을 해줍니다. Hostname에 ODROIDXU4 라고 되어 있는 곳의 IP가 192.168.50.10 이네요. 이걸 기억하시면 됩니다.


또는 공유기 설정 페이지를 통해서도 아실 수 있습니다. ipTIME 공유기를 사용한다고 생각하겠습니다.

ipTIME 공유기 관리자 페이지 주소는 http://192.168.0.1/ 입니다. 링크를 눌러도 들어가지지 않는 분들은 직접 주소창에 치시면 됩니다. 만약 그래도 안 된다면 게이트웨이를 알아내야 하니 댓글로 문의해주세요.

접속하게 되면 이런 게 보일텐데, 대부분 초기암호가 이미 쓰여있듯 admin 입니다.

로그인하고 관리 도구에 들어가셔서,


이런 경로로 오시면 같은 화면이 뜰 건데요,

사용 중인 IP 주소 정보에서 odroidxu4 를 찾으시면 됩니다. 전 192.168.50.10 이네요.


오드로이드의 IP도 알아냈고, 총 5분정도 지났다 싶으시면 http://{오드로이드IP}/ 로 접속해보세요.


이런 화면이 뜹니다. admin / openmediavault 로 로그인하시면 아래처럼 대시 보드 화면이 뜹니다.




2. OMV 설정

바로 사용할 수 있으면 좋겠지만, S/W 업데이트나 시간대 변경 등의 작업이 필요합니다.

1) 기본 설정

먼저 일반 설정으로 갑시다.

여기서 세션 만료를 0으로 바꿔주세요. 자동 로그인을 비활성화하시는 게 편합니다. 물론 밖에서 접속해 사용하실 땐 보안상의 이유로 주의하셔야 하구요. 0으로 바꾸고 저장을 누르시면


위와 같은 노란 알림이 뜹니다. 앞으로 OMV에서 하실 대부분의 설정은 저장을 누를 때 저런 알림이 떠요. 바뀐 설정을 적용하시기 위해선 저기서적용을 누르시면 됩니다. 

옆의 웹 관리자 암호 탭에도 들어가 openmediavault가 아닌 새로운 암호로 변경해 줍시다. 얘는 설정 적용하라고 물어보진 않아요.

그리고 OMV 날짜 및 시간 메뉴에서 시간대를 설정해줍시다. Europe/Berlin에 거주하시지 않으시다면 자신의 거주지로 바꿔주세요. 전 Asia/Seoul입니다. NTP 서버 사용 체크하신 뒤 저장 / 적용


2) 패키지 업데이트

Update Management로 가줍시다.


처음이라 위 스크린샷처럼 업데이트가 많이 있을 거에요. 만약 아무 것도 없다면 왼쪽 위의 검사를 누른 후 기다려주세요.

패키지 정보 글자 왼쪽의 체크 박스를 눌러 전체 선택을 하신 후, 활성화된 업그레이드 버튼을 누릅시다.


이런 식으로 업데이트가 진행될 거에요. OS설치한 후 수행하는 첫 업데이트라 시간이 많이 걸립니다. 차라도 드시던가 밀린 집안일 하나 하시고 오시면 돼요.

업데이트가 완료되면 페이지 한번 새로고침하겠다 합니다. 확인 버튼을 눌러 새로고침하시고, 이번 업데이트엔 커널 업데이트가 포함되어 있으니 아래 그림과 같이 버튼을 눌러 재부팅 해줍시다.


참고로 재부팅을 하실 때 오류 발생, Bad Gateway 뭐 이러는데 재부팅 자체가 서버가 완전히 종료된 후 다시 켜지는 것이기 때문에 발생하는 당연한 오류입니다. 다른 때 나오면 조금 당황스럽지만요.

재부팅 후 다시 로그인해 줍시다.


3) HDD 마운트

# 2017. 7. 31 해당 과정 진행 중 이상이 생기면 UAS를 해제하고 다시 시도해보세요.
2017/07/19 - [오드로이드 XU4] - 오드로이드 XU4 UAS 해제하기

OMV 물리 디스크 메뉴로 가시면 현재 연결된 물리 디스크가 어떤 게 있는지 확인하실 수 있습니다.

/dev/sda 에 장착하신 외장하드가 저렇게 뜰 거에요.

인식이 확인되셨으면 OMV 파일 시스템 메뉴로 갑시다.

OMV 를 올렸던 SD카드는 인식하지만, 아직 새로운 HDD를 사용하지 않고 있어요. 하지만 제대로 인식은 하고 있다는 걸 방금 전 확인했기 때문에, 왼쪽 위의 생성 버튼을 눌러 줍시다.

장치에 새로 인식된 장치인 /dev/sda 를 선택하셔서 확인을 누르시면, 알아서 포맷해줍니다.

시간이 조금 걸릴 수 있는데, 이 과정이 지나면

위 스크린샷처럼 /dev/sda1 이 새로 생긴 걸 보실 수 있어요. 새로 생긴 애를 누르셔서 마운트하신 뒤 저장 / 적용 하시면,

이렇게 바뀝니다. 이제 이 하드디스크는 사용하실 수 있게 됐어요.


4) 사용자 추가

지금은 관리자 계정밖에 없습니다. 여기서 관리자란 시스템 관리자를 의미해요. NAS 사용자가 아닙니다. 그래서 NAS 사용자를 추가해줘야 합니다.

OMV 사용자 메뉴로 들어가세요. 아무 것도 안 뜰텐데, 추가를 누르시면


이런 창이 뜹니다. 이름과 암호 정도만 입력하신 뒤 저장 / 적용 하시면 됩니다.


5) 공유 폴더 추가

OMV에서 공유 폴더란 말 그대로 공유할 때 쓰일 경로를 말합니다. 경로의 시작지점을 저장해줄 수 있어요. 그리고 그 지점을 각 서비스에서 골라 사용합니다.

외장하드에 영화, 드라마, 사진 폴더가 있다고 칩시다.

/ 을 외장하드 제일 바깥쪽 경로라고 한다면, "/영화", "/드라마", "/사진" 형식의 폴더가 있는 거에요.

OMV에서 각 폴더를 공유폴더로 설정했을 때, 동영상 스트리밍 서비스에선 "/영화"와 "/드라마"만 사용하고, 파일 공유 서비스에선 세 개 다 사용하겠다, 이렇게 설정할 수가 있습니다.

공유폴더로 지정해놓은 곳이 없으면 OMV 내에서 어떤 서비스도 사용하실 수 없습니다. 가장 바깥쪽 경로라도 설정해 놔야 해요.

OMV 공유 폴더 메뉴로 갑시다. 역시 추가 버튼이 있는데, 이 버튼을 누르시면


이런 창이 뜹니다. 장치로 방금 전 마운트한 파일시스템을 선택하고, 5TB 외장하드이므로 이름을 간단히 5TB로 지정했으며 경로는 가장 바깥쪽인 / 로 설정했습니다.

저장을 누르시면 아무것도 없던 목록에 5TB라는 아이템이 하나 추가됩니다.

여기서 권한을 눌러, 다음 스크린샷처럼 방금 만든 사용자에 대해 읽기/쓰기 권한을 줍시다. 해당 권한을 주지 않으면 아무것도 할 수 없습니다.

그리고 접근 제어 목록을 눌러줍니다. 방금 만든 사용자에 대해 읽기/쓰기 권한 체크 여부를 확인해주시고, 체크를 하신 뒤 저장합니다.


이것으로 가장 기본적인 설정이 완료되었습니다.


출처 : http://awesometic.tistory.com/48?category=964085

Posted by 타카스 류지
|

지난 번 오드로이드 XU4가 4.9 커널을 공식 지원하면서, 정리할 겸 포맷하고 새로 NAS를 구축했습니다. 그리고 그 과정을 하나씩 블로그에 포스팅했어요.

성능 개선(지금은 이미 커널에 적용되어 쓰이지 않는)까지 총 12편이었습니다. 이 글들을 하나씩 따라하면서 많은 분들이 자신만의 홈 NAS를 구축하신 걸로 알아요. 한 20명쯤 될까 예상합니다만.. :)

그 방법도 좋습니다. 리눅스와 서버에 어느 정도 지식이 있는 분들은 그렇게 NAS를 구축하시는 걸 더 좋아하실 수 있어요.

그런데 지금부터 쓸 과정은 조금 다릅니다. 리눅스와 서버가 낯설으신 분들, 하지만 Dropbox, Google Drive 등을 유료로 사용하긴 싫고 밖에서 인터넷으로 내 자료, 내가 저장한 동영상을 보고 싶으신 분들을 위해 OMV를 적용해서 새로 써보려고 합니다.

이전 가이드는 맨 앞에 "독자가 어느 정도 오드로이드와 리눅스 시스템에 지식이 있다고 생각하며 작성하겠다"고 써 놨지만, 이번엔 "독자가 오드로이드와 리눅스 시스템을 세상 들어본 적도 없다"고 생각하며 최대한 작성하겠습니다.


사실 이 글의 진정한 목적은 SBC(Single Board Computer)로 NAS 구축하기 입니다. 오드로이드 XU4, 오드로이드 XU4Q뿐 아니라 오드로이드 C2, 라즈베리파이2, 라즈베리파이3, 바나나파이, 파이64 등 OMV가 제공되는ARM 기반 SBC라면 전부 따라하실 수 있을 거라 생각합니다.

천천히 가봅시다.




시작하기 앞서 많은 분들이 NAS를 잘 모르실 거라 생각됩니다. 인터넷만 있으면 내 자료를 관리할 수 있고, 내가 저장한 동영상도 스트리밍하거나 다운받아 볼 수 있고, 토렌트도 대신 받아주고 하는 기계 정도로만 생각하실 것 같은데요. 그걸 저렴하게 만들려고 이 게시글을 보시는 거고 그쵸.

전 그게 맞다고 봅니다. 그런 걸 하는 게 NAS입니다. 하지만 살짝 개념은 잡고 가셔야 해요.

NAS(Network Attached Storage) 는 서버의 한 종류 입니다. 서버는 다들 대충 들으셨다시피 24시간 365일 내내 돌고 있어야 해요. 네이버도 어디 서버가 돌고 있기 때문에 뜨는 거잖아요? 네이버가 10시~6시에 접속이 안 되고 그러진 않죠.

그래서 저희가 만들 NAS도 하루 종일 돌아야 합니다. 

집안에서 컴퓨터를 하루 종일 돌리려면 드는 돈이 벌써 어마어마합니다. 데스크탑을 NAS로 활용할 순 있겠지만, 그러기엔 전력 소모가 너무 많습니다.


그래서 전 SBC를 선택했습니다. 요새 나오는 건 NAS 용도로는 충분해요. 심지어 시중에 파는 가정용 NAS보다도 성능은 더 좋은데 더 저렴하구요.

가정 내 빠른 인터넷 속도를 위해 기가비트 이더넷이 필요하고, USB 외장하드와 연결 속도도 빨라야 하니 USB 3.0도 필요합니다. USB에 외장하드처럼 보조저장장치를 달 때 속도를 최적화시켜주는 UASP를 지원하면 더 좋구요.

그러다보니 오드로이드 XU4 를 선택했습니다. 라즈베리파이나 바나나파이는 기가비트 이더넷이 안 되던가 USB 3.0이 안 되던가 다양하게 안 돼요.

관련 정보는 아래 포스팅을 참고해주세요.

2017/08/09 - [오드로이드 XU4/Misc] - SBC를 이용한 자작 NAS 장비 선택


외장하드는 UASP가 지원되는가를 보시고 오시면 돼요. 지금도 오드로이드 XU4에선 모든 컨트롤러에 대해 호환이 잘 되는 건 아니지만, JMicron 컨트롤러를 사용한다면 UASP 지원 보장이 되는 것 같습니다.

아니면.. 오드로이드라면 오드로이드 XU4Q와 CloudShell2, 3.5인치 HDD를 사셔도 되구요.

그리고 대부분의 SBC는 마이크로 SD카드가 필요합니다.


따라서 준비물

오드로이드 XU4
 - NAS 서버 컴퓨터

오드로이드 XU4 전원 어댑터 및 케이블

MicroSD 카드
 - 운영체제를 올릴 부팅 디스크 용

외장하드 1개 이상
 - 음악, 사진, 동영상 등 미디어 저장 용

기가비트 공유기
 - NAS에 데이터를 빠르게 넣거나 NAS로부터 빠르게 가져오기 위해 필요

CAT5e 이상의 LAN 케이블
 - 기가비트를 지원하기 위해선 CAT5e 이상 규격이 필요
 - 랜선 케이블의 글씨를 잘 보시면 카테고리(CAT) 몇인지 나와 있으니 확인 필요

NAS 구축을 위한 인터넷이 연결된 컴퓨터
 - 오드로이드에 운영체제를 올리거나 오드로이드에 OMV, SSH 접속해 작업을 하기 위함

유전원 USB 3.0 허브
 - 외장하드가 2개 이상일 경우 안정적인 전원을 공급하기 위함
 - 외장하드가 1개일 경우에도 안정적인 전원 공급을 위해 유전원 허브를 구매 추천. 실제로 플래터가 많고 대용량이거나 3.5인치 HDD가 들어간 외장하드라면 전원 공급이 안 되어 제대로 작동하지 않을 수 있습니다.


이번 가이드를 잘 따라가신다면,

- 스마트폰 자료 자동 백업하기

- 인터넷으로 내 자료 관리, 공유하기

- 밖에서 내가 저장한 동영상 스트리밍하기

- 토렌트를 스마트폰으로 다운로드받고 관리하기

- 개인 블로그 호스팅하기

- 보안을 위해 SSL 적용

등등을 하실 수 있으실 겁니다.

OMV를 기반으로 할 거구요, 리눅스가 어색한 분들을 위해 최대한 쉬운 방향으로 가이드를 작성하려고 합니다.

출처 : http://awesometic.tistory.com/47?category=964085


Posted by 타카스 류지
|