Cloud Computing

29 set, 2014

Construindo sua cloud pessoal com Raspberry Pi e OwnCloud

Publicidade

Olá, pessoal!

Atualmente, ter um local onde se possa armazenar seus dados na nuvem é mais do que necessário. A cada dia, crescem nossas demandas de compartilhamento de dados e o acesso a elas deve ser feito de forma fácil e rápida. Porém sabemos que “armazenar nossos dados na nuvem” é algo complicado se olharmos do ponto de vista da nossa privacidade na Rede Mundial de Computadores.

Mas o que fazer para ter seus dados em um local de fácil acesso, estando disponíveis quando e onde você precisar, e que também seja seguro?

Simples: vamos criar a nossa própria cloud!

Neste artigo, vamos abordar a criação de uma cloud pessoal (que também vai funcionar como NAS pra sua rede interna), usando um Raspberry Pi, um HD externo e o OwnCloud – uma aplicação open source que lhe permite criar uma nuvem pessoal de forma prática e simples.

Vamos lá?

Raspberry Pi

Se você não conhece o projeto, dá uma conferida aqui. Basicamente, ele é um minicomputador desenvolvido sob licenças de Open Hardware que roda, além de outras, algumas distribuições Linux especificamente customizadas pra ele.

Para adquirir um Rasp, como é carinhosamente chamado, é simples: existem várias lojas na internet (inclusive no Brasil) que o vendem, em média, por R$ 200. Faça uma busca simples no Google que vão aparecer vários links de lojas que comercializam o Raspberry Pi 😉

Neste artigo, vamos abordar a configuração feita em um Raspbian (Debian para Raspberry), que pode ser baixado aqui: http://www.raspbian.org/

raspi_hdd
Passo 1: Configurando a rede e baixando os pacotes necessários

Para que o nosso Rasp funcione bem como uma cloud, ele precisa de um IP fixo. Vamos configurá-lo usando o comando abaixo.

$ sudo nano /etc/network/interfaces

Dependendo das configurações da sua rede, os IPs do exemplo abaixo podem ser diferentes, mas tente deixar parecido com o que mostraremos a seguir:

auto eth0
iface eth0 inet static
address 192.168.1.118
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Pressione CTRL + O pra salvar e CTRL + X pra sair do editor de texto, e use o comando abaixo pra restartar suas configurações de rede.

$ sudo /etc/init.d/networking restart

Agora vamos atualizar as listas de pacote do nosso sistema:

$ sudo apt-get update

Feito isso, podemos instalar os pacotes que precisamos:

$ sudo apt-get install apache2 php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev
php5-curl php5-gd php5-cgi php-pear php5-dev build-essential libpcre3-dev php5 libapache2-mod-php5
php-apc gparted

Passo 2: Configurando o PHP e o Apache

Feitos o download e a instalação dos pacotes necessários, vamos começar as configurações. Porém antes vamos instalar e configurar a extensão APC do PHP:

$ sudo pecl install apc

Após a instalação, abra o arquivo de configuração do APC e deixe conforme o exemplo abaixo:

$ sudo nano /etc/php5/cgi/conf.d/apc.ini

extension=apc.so
apc.enabled=1
apc.shm_size=30

Salve e saia do arquivo. Agora nós vamos alterar o tamanho máximo de upload no php.ini e adicionar a extensão APC ao PHP:

$ sudo nano /etc/php5/apache2/php.ini

Dentro do php.ini, procure a linha upload_max_filesize, e altere o valor para 1024M, e a linha post_max_size, alterando o valor para 1200m, pois assim poderemos fazer uploads de até 1GB.

Agora ache a linha externsion= e adicione o APC, deixando assim: extension=apc.so.

Salve e saia do arquivo.

Agora vamos configurar o nosso Apache e habilitar o SSL. Abra o arquivo abaixo:

$ sudo nano /etc/apache2/sites-enabled/000-default

Dentro do arquivo, altere AllowOverride para None e execute os comandos abaixo:

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 reload

Agora execute os comandos abaixo para configurar o SSL:

sudo openssl genrsa -des3 -out server.key 1024; sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req -new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt;sudo cp server.crt /etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite default-ssl

Em seguida, é só restartar o Apache com o comando abaixo:

$ sudo service apache2 restart

Passo 3: Download e instalação do OwnCloud

Depois do Apache e do PHP devidamente configurados, vamos instalar o OwnCloud:

$ wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

Vamos extrair os arquivos:

$ sudo tar -xjf owncloud-7.0.2.tar.bz2

E copiar o Own Cloud para o nosso Document Root:

$ sudo cp -r owncloud /var/www

Depois da cópia, vamos dar as permissões para o Apache acessar os arquivos do OwnCloud:

$ sudo chown -R www-data:www-data /var/www/owncloud/

Não se esqueça de editar o .htaccess, colocando os mesmos valores de tamanho máximo de upload que configuramos no php.ini.

$ sudo nano /var/www/owncloud/.htaccess

Passo 4: Formatando o HD externo e automontando

O sistema operacional do Raspberry Pi é instalado no disco SD, e não no HD externo. Logo, precisaremos configurar o nosso HD para ser montado automaticamente. O primeiro passo é formatá-lo em NTFS, pois é um bom sistema de arquivos e suporta leitura/escrita de arquivos grandes.

Para formatá-lo em NTFS, você pode usar o gparted dentro do próprio Raspberry Pi. Rode o comando abaixo pra entrar no ambiente gráfico do Rasp, abra o Gparted, selecione o seu HD e formate-o em NTFS:

$ startx

$ sudo gprarted

Feito isso, vamos usar o comando abaixo para achar o UUID do nosso disco:

$ sudo blkid /dev/sda1

A saída desse comando deve ser algo como isto:

/dev/sda2: LABEL=”pidsk” UUID=”1AA26276A2625673” TYPE=”ntfs”

Guarde esse número do UUID!

Vamos criar o ponto de montagem do nosso HD e dar as permissões para o Apache:

$ sudo mkdir /media/owncloud

$ sudo chown -R www-data:www-data /media/owncloud

Agora vamos criar uma entrada no nosso FSTAB para montar automaticamente nosso HD no início do sistema:

$ sudo nano /etc/fstab

Adicione a linha abaixo (lembra do UUID que guardamos? Então, substitua-o na linha abaixo):

UUID=1AA26276A2625673 /media/owncloud ntfs-3g default 0

Agora seu HD externo será montado em todo início do sistema.

Passo 5: Configurando o OwnCloud

owncloud

Agora sim, está tudo pronto para configurarmos o OwnCloud. Acesse via browser o endereço abaixo e siga o passo a passo:

https://IPADDRESS/owncloud

Lembre-se de trocar o IPADDRESS pelo IP que configuramos no passo 1.

Na guia “Avançado”, você poderá trocar o local de armazenamento dos dados e setar o seu HD externo, que está em /media/owncloud

Passo 6: Acessando o OwnCloud remotamente

O OwnCloud já possui aplicativos para Android, iOS e Windows para facilitar a sua vida. Entretanto, nós configuramos o nosso Rasp em rede interna, ou seja, o IP que atribuímos a ele não poderá ser roteado pela Internet.

Para resolver isso, você tem duas saídas:

  1. Contratar um serviço de IP fixo na sua provedora de Internet.
  2. Configurar um serviço de DNS dinâmico, como o DynDNS. Alguns desses serviços são pagos, mas neste link tem um tutorial bem explicado para configuração do Free DNS.

Nota: O OwnCloud é uma ferramenta que eventualmente recebe atualizações e, em alguns casos, a forma de configuração e as aplicações necessárias podem mudar. Para isso, visite sempre o manual de administrador do OwnCloud.