웹사이트 검색

Ubuntu 16.04에서 Nextcloud를 설치하고 구성하는 방법


소개

ownCloud의 분기인 Nextcloud는 문서 및 사진과 같은 개인 콘텐츠를 Dropbox와 매우 유사한 중앙 위치에 저장할 수 있는 파일 공유 서버입니다. Nextcloud와의 차이점은 모든 기능이 오픈 소스라는 것입니다. 또한 중요한 데이터의 제어 및 보안을 다시 사용자에게 반환하므로 타사 클라우드 호스팅 서비스를 사용할 필요가 없습니다.

이 튜토리얼에서는 Ubuntu 16.04 서버에 Nextcloud 인스턴스를 설치하고 구성합니다.

참고: 이 기사가 처음 작성된 이후로 Nextcloud 프로젝트는 상당히 성숙되었습니다. 여기에 있는 콘텐츠는 2017년 10월 현재 권장되는 최신 설치 절차를 반영하도록 업데이트되었습니다. 이전 설명은 현재 지침 세트와 직접적인 관련이 없을 수 있습니다.

전제 조건

이 가이드의 단계를 완료하려면 다음이 필요합니다.

  • 서버에 구성된 sudo 사용자 및 방화벽: sudo 권한이 있는 사용자를 생성하고 Ubuntu 16.04 초기 서버 설정 가이드에 따라 기본 방화벽을 설정할 수 있습니다.
  • (선택 사항) 서버를 가리키는 도메인 이름: TLS/SSL을 사용하여 Nextcloud 설치에 대한 연결을 보호합니다. Nextcloud는 Let’s Encrypt를 사용하려는 경우 서버의 도메인 이름을 설정하는 방법에서 신뢰할 수 있는 무료 SSL 인증서를 설정하고 관리할 수 있습니다.

위의 단계를 완료한 후 계속해서 서버에서 Nextcloud를 설정하는 방법을 알아보세요.

1단계 – Nextcloud 설치

Snappy 패키징 시스템을 사용하여 Nextcloud를 설치할 것입니다. 기본적으로 Ubuntu 16.04에서 사용할 수 있는 이 패키징 시스템을 통해 조직은 자동 업데이트가 포함된 독립형 장치에 모든 관련 종속성 및 구성과 함께 소프트웨어를 제공할 수 있습니다. 즉, 웹 및 데이터베이스 서버를 설치 및 구성한 다음 여기에서 실행되도록 Nextcloud 앱을 구성하는 대신 기본 시스템을 자동으로 처리하는 snap 패키지를 설치할 수 있습니다.

Nextcloud snap 패키지를 다운로드하고 시스템에 설치하려면 다음을 입력하십시오.

  1. sudo snap install nextcloud

Nextcloud 패키지가 다운로드되어 서버에 설치됩니다. snap과 관련된 변경 사항을 나열하여 설치 프로세스가 성공했는지 확인할 수 있습니다.

  1. snap changes nextcloud
Output
ID Status Spawn Ready Summary 2 Done 2017-10-03T20:03:09Z 2017-10-03T20:03:26Z Install "nextcloud" snap

상태 및 요약은 문제 없이 설치가 완료되었음을 나타냅니다.

Nextcloud Snap에 대한 추가 정보 얻기

Nextcloud snap에 대한 추가 정보가 필요한 경우 유용한 몇 가지 명령이 있습니다.

snap info 명령은 설명, 사용 가능한 Nextcloud 관리 명령, 설치된 버전 및 추적 중인 스냅 채널을 표시할 수 있습니다.

  1. snap info nextcloud

Snap은 그들이 지원하는 인터페이스를 정의할 수 있습니다. 이 인터페이스는 함께 연결될 때 특정 기능 또는 액세스 수준에 대한 스냅 액세스를 제공하는 슬롯과 플러그로 구성됩니다. 예를 들어 네트워크 클라이언트로 작동해야 하는 스냅에는 네트워크 인터페이스가 있어야 합니다. 이 스냅이 정의하는 스냅 "인터페이스\를 보려면 다음을 입력하십시오.

  1. snap interfaces nextcloud
Output
Slot Plug :network nextcloud :network-bind nextcloud - nextcloud:removable-media

이 스냅이 제공하는 모든 특정 서비스 및 앱에 대해 알아보려면 다음을 입력하여 스냅 정의 파일을 살펴보십시오.

  1. cat /snap/nextcloud/current/meta/snap.yaml

이렇게 하면 디버깅에 도움이 필요한 경우 스냅에 포함된 개별 구성 요소를 볼 수 있습니다.

관리 계정 구성

Nextcloud 스냅을 구성할 수 있는 몇 가지 방법이 있습니다. 이 가이드에서는 서버의 IP 주소나 도메인 이름을 방문하는 모든 사람이 관리자 등록 페이지에 액세스할 수 있는 작은 창을 피하기 위해 웹 인터페이스를 통해 관리 사용자를 생성하는 대신 명령줄에서 관리 사용자를 생성합니다.

새 관리자 계정으로 Nextcloud를 구성하려면 nextcloud.manual-install 명령을 사용합니다. 사용자 이름과 암호를 인수로 전달해야 합니다.

  1. sudo nextcloud.manual-install sammy password

다음 메시지는 Nextcloud가 올바르게 구성되었음을 나타냅니다. PCNTL 확장이 Nextcloud 스냅에 포함되어 있지 않기 때문에 처음 몇 줄이 표시됩니다. 다음은 무시해도 됩니다.

Output
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php Nextcloud is not installed - only a limited number of commands are available Nextcloud was successfully installed

이제 Nextcloud가 설치되었으므로 Nextcloud가 서버의 도메인 이름 또는 IP 주소를 사용하여 요청에 응답하도록 신뢰할 수 있는 도메인을 조정해야 합니다.

신뢰할 수 있는 도메인 조정

명령줄에서 설치할 때 Nextcloud는 인스턴스가 응답할 호스트 이름을 제한합니다. 기본적으로 서비스는 "localhost\ 호스트 이름에 대한 요청에만 응답합니다. 서버의 도메인 이름 또는 IP 주소를 통해 Nextcloud에 액세스하므로 이러한 유형의 요청을 수락하려면 이 설정을 조정해야 합니다.

trusted_domains 배열의 값을 쿼리하여 현재 설정을 볼 수 있습니다.

  1. sudo nextcloud.occ config:system:get trusted_domains
Output
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php localhost

현재 localhost만 배열의 첫 번째 값으로 표시됩니다. 다음을 입력하여 서버의 도메인 이름 또는 IP 주소 항목을 추가할 수 있습니다.

  1. sudo nextcloud.occ config:system:set trusted_domains 1 --value=example.com
Output
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php System config value trusted_domains => 1 set to string example.com

신뢰할 수 있는 도메인을 다시 쿼리하면 이제 두 개의 항목이 있음을 알 수 있습니다.

  1. sudo nextcloud.occ config:system:get trusted_domains
Output
The process control (PCNTL) extensions are required in case you want to interrupt long running commands - see http://php.net/manual/en/book.pcntl.php localhost example.com

Nextcloud 인스턴스에 액세스하는 다른 방법을 추가해야 하는 경우 증가된 인덱스 번호(첫 번째 항목의 "1\)와 함께 config:system:set 명령을 다시 실행하여 도메인 또는 주소를 추가할 수 있습니다 명령) 및 --value를 조정합니다.

SSL로 Nextcloud 웹 인터페이스 보호

Nextcloud를 사용하기 전에 웹 인터페이스를 보호해야 합니다.

Nextcloud 서버와 연결된 도메인 이름이 있는 경우 Nextcloud 스냅은 Let’s Encrypt에서 신뢰할 수 있는 SSL 인증서를 얻고 구성하는 데 도움이 될 수 있습니다. Nextcloud 서버에 도메인 이름이 없는 경우, Nextcloud는 웹 트래픽을 암호화하지만 서버의 ID를 확인할 수 없는 자체 서명된 인증서를 구성할 수 있습니다.

이를 염두에 두고 시나리오와 일치하는 아래 섹션을 따르십시오.

옵션 1: Let’s Encrypt로 SSL 설정

Nextcloud 서버와 연결된 도메인 이름이 있는 경우 웹 인터페이스를 보호하는 가장 좋은 방법은 Let’s Encrypt SSL 인증서를 얻는 것입니다.

Let’s Encrypt가 도메인 소유권을 확인하는 데 사용하는 방화벽의 포트를 열어 시작합니다. 이렇게 하면 Nextcloud 로그인 페이지에 공개적으로 액세스할 수 있지만 이미 관리자 계정이 구성되어 있으므로 아무도 설치를 하이재킹할 수 없습니다.

  1. sudo ufw allow 80,443/tcp

다음으로 다음을 입력하여 Let's Encrypt 인증서를 요청합니다.

  1. sudo nextcloud.enable-https lets-encrypt

먼저 서버가 Let’s Encrypt 서비스에서 인증서를 요청하는 데 필요한 조건을 충족하는지 묻는 메시지가 나타납니다.

Output
In order for Let's Encrypt to verify that you actually own the domain(s) for which you're requesting a certificate, there are a number of requirements of which you need to be aware: 1. In order to register with the Let's Encrypt ACME server, you must agree to the currently-in-effect Subscriber Agreement located here: https://letsencrypt.org/repository/ By continuing to use this tool you agree to these terms. Please cancel now if otherwise. 2. You must have the domain name(s) for which you want certificates pointing at the external IP address of this machine. 3. Both ports 80 and 443 on the external IP address of this machine must point to this machine (e.g. port forwarding might need to be setup on your router). Have you met these requirements? (y/n)

계속하려면 y를 입력합니다.

다음으로 복구 작업에 사용할 이메일 주소를 제공하라는 메시지가 표시됩니다.

Output
Please enter an email address (for urgent notices or key recovery): your_email@domain.com

마지막으로 Nextcloud 서버와 연결된 도메인 이름을 입력합니다.

Output
Please enter your domain name(s) (space-separated): example.com

Let’s Encrypt 인증서가 요청되고 모든 것이 잘 진행되면 SSL을 즉시 구현하기 위해 내부 Apache 인스턴스가 다시 시작됩니다.

Output
Attempting to obtain certificates... done Restarting apache... done

이제 처음으로 Nextcloud에 로그인하기 위해 건너뛸 수 있습니다.

옵션 2: 자체 서명된 인증서로 SSL 설정

Nextcloud 서버에 도메인 이름이 없는 경우에도 자체 서명된 SSL 인증서를 생성하여 웹 인터페이스를 보호할 수 있습니다. 이 인증서는 암호화된 연결을 통해 웹 인터페이스에 대한 액세스를 허용하지만 서버의 ID를 확인할 수 없으므로 브라우저에 경고가 표시될 수 있습니다.

자체 서명된 인증서를 생성하고 이를 사용하도록 Nextcloud를 구성하려면 다음을 입력합니다.

  1. sudo nextcloud.enable-https self-signed
Output
Generating key and self-signed certificate... done Restarting apache... done

위의 출력은 Nextcloud가 자체 서명된 인증서를 생성하고 활성화했음을 나타냅니다.

이제 인터페이스가 안전하므로 방화벽에서 웹 포트를 열어 웹 인터페이스에 대한 액세스를 허용합니다.

  1. sudo ufw allow 80,443/tcp

이제 처음으로 Nextcloud에 로그인할 준비가 되었습니다.

Nextcloud 웹 인터페이스에 로그인

이제 Nextcloud가 구성되었으므로 웹 브라우저에서 서버의 도메인 이름 또는 IP 주소를 방문하십시오.

https://example.com

참고: 자체 서명된 SSL 인증서를 설정하는 경우 서버의 인증서가 인식된 인증 기관에 의해 서명되지 않았기 때문에 연결이 안전하지 않다는 경고가 브라우저에 표시될 수 있습니다. 이는 자체 서명된 인증서에 대해 예상되는 사항이므로 경고를 클릭하여 사이트로 이동하십시오.

이미 명령줄에서 관리자 계정을 구성했으므로 Nextcloud 로그인 페이지로 이동합니다. 관리 사용자에 대해 생성한 자격 증명을 입력합니다.

로그인 버튼을 클릭하여 Nextcloud 웹 인터페이스에 로그인합니다.

처음 입력하면 Nextcloud 인스턴스와 상호 작용하고 관리하는 데 사용할 수 있는 다양한 Nextcloud 클라이언트에 대한 링크가 있는 창이 표시됩니다.

클릭하여 관심 있는 클라이언트를 다운로드하거나 오른쪽 상단 모서리에 있는 X를 클릭하여 창을 종료합니다. 파일 업로드 및 관리를 시작할 수 있는 기본 Nextcloud 인터페이스로 이동합니다.

이제 설치가 완료되고 안전합니다. 새 시스템의 특징과 기능에 익숙해지려면 인터페이스를 자유롭게 탐색하십시오.

결론

Nextcloud는 널리 사용되는 타사 클라우드 스토리지 서비스의 기능을 복제할 수 있습니다. 공개 URL을 통해 사용자 간에 또는 외부적으로 콘텐츠를 공유할 수 있습니다. Nextcloud의 장점은 정보가 사용자가 제어하는 장소에 안전하게 저장된다는 것입니다.

인터페이스를 탐색하고 추가 기능을 사용하려면 Nextcloud의 앱 스토어를 사용하여 플러그인을 설치하십시오.