Pages

terça-feira, 25 de setembro de 2012

Owncloud 4 - Tenha sua própria nuvem.

Já falei anteriormente aqui neste blog sobre owncloud 3, agora temos owncloud 4 com melhorias no dsigner e algumas funções extras. Vamos a Instalação.


Introdução

Este é um artigo e guia sobre o Owncloud, um produto que pretende dar às pessoas a possibilidade de criarem, de forma privada, uma cloud pessoal, dando assim total liberdade e privacidade ao utilizador final.
De referir que a palavra cloud sofre constantes abusos e nunca se sabe o que quer dizer realmente.
Neste caso, o produto tem como principal funcionalidade a criação de um repositório central de ficheiros que sejam de fácil acesso a partir de vários dispositivos.
Na prática é um competidor com o famoso serviço “Dropbox”, mas em que a parte servidor é controlada pelo próprio utilizador, tendo ele total controlo sobre limites e formas de uso.
Esta é só a principal funcionalidade, porque com um sistema de plugins, é possível ter mais funcionalidades, como vão poder ver neste artigo.
Ficam aqui as principais características deste produto:
- Solução integrada de storage.
- Fácil acesso aos ficheiros, através de uma página Web, um Cliente que pode ser instalado nos principais sistema operativos ou por WebDav.
- Página Web de fácil acesso, usando html5. É possível fazer drag and drop de ficheiros na página Web.
- Possibilidade de criação de utilizadores e com isso, partilha de ficheiros.
- Versões de ficheiros, que permitem recuperar versões antigas.
- Encriptação.
- Temas.
- Editores e visualizadores de vários ficheiros, como ficheiros de imagens, som ou texto.
- Uma api para uso com outras aplicações ou plugins.
- Migração dos dados ou utilizadores.
- Integração de calendário e tasks que podem ser acedidos por outros dispositivos.
- Uma store onde é possível instalar aplicações dentro do Owncloud.
Por fim, referir que este artigo está dividido em duas partes principais. Primeiro a instalação e segundo a utilização do Owncloud.

Instalação

Para este artigo, decidi criar duas máquinas virtuais. Uma é o servidor onde vou instalar o Owncloud 4 e o segundo é uma máquina cliente onde vou aceder e utilizar o Owncloud de várias formas.
Devido à sua popularidade, vou utilizar o Windows 7 como máquina cliente, utilizando o Firefox 12 como browser.
Também devido à sua popularidade no mundo linux, no servidor vou utilizar Ubuntu Server, na sua versão mais recente a 12.04.

Para criação das máquinas virtuais, usei Virtualbox, onde coloquei as duas máquinas num ambiente de testes.

No servidor com Ubuntu, fiz a instalação base, adicionando só a funcionalidade do serviço de openssh, para poder aceder remotamente.

O Windows 7 é uma instalação base, sem adicionar nada. Apenas confirmei que estavam as duas máquinas na mesma rede.

Para efeitos de teste e para não estar sempre a passar o comando “sudo”, coloquei uma password no utilizador “root” e acedo ao servidor com este utilizador.
Para colocar uma password neste utilizador, corri o comando:
sudo passwd

A primeira coisa que se deve fazer, no servidor, é ter a máquina actualizada, com o comando:
apt-get update && apt-get dist-upgrade
Em seguida é preciso instalar os requisitos para instalar o Owncloud. Para tal, devemos correr o comando:
apt-get install apache2 php5 php5-gd php5-sqlite curl libcurl3
libcurl4-openssl-dev php5-curl php5-common php-xml-parser sqlite openssl

Por sua vez, este software tem outras dependências, que são listadas. Basta apenas aceitar carregando no “y”.

Na máquina Windows, como é um teste e estou a aceder por rede local, no ficheiro “hosts” que se encontra em “C:\windows\system32\drivers\etc” coloco a seguinte entrada:
192.168.1.112       cloud.own
Este ip é o ip do servidor e esta entrada serve para poder aceder ao Owncloud com aquele nome.

Acedendo por browser a “cloud.own” podemos ver que o Webserver está a funcionar.

Devido a várias funcionalidades no Owncloud, é necessário activar vários módulos de Apache. Para isso, é necessário correr os seguintes comandos
a2enmod rewrite
a2enmod headers
service apache2 restart
O último comando serve para reiniciar o serviço do apache e assim os módulos sejam activados de forma efectiva.
É dado uma mensagem que o apache não sabe o nome do servidor. Isto acontece porque não tenho esse parâmetro definido no ficheiro de configuração.
Num teste, isto não é problemático.

Em seguida devemos efectuar o download do Owncloud 4 com o comando:
wget -O owncloud4.tar.bz2 http://owncloud.org/owncloud-download-4-0-0

Devemos depois descomprimir o ficheiro que efectuamos o download, com o comando:
 tar -jxvf owncloud4.tar.bz2

Se listarmos os ficheiros, com o comando:
ls
Podemos ver que temos uma pasta com o Owncloud. Devemos por isso copiar a pasta para o local onde se encontram os ficheiros do Webserver, com o comando:
cp -r owncloud /var/www/owncloud

Podemos então aceder à pasta onde se encontram agora os ficheiros, com o comando:
cd /var/www/owncloud
Correndo o comando para listar, visualizamos o seu conteúdo.

Para o Owncloud poder manipular os ficheiros é preciso que o dono dos ficheiros seja o utilizador com que é executado o apache.
Para tal, devemos correr o comando:
chown -R www-data:www-data /var/www/owncloud

Podemos aceder ao Owncloud de duas formas. De uma forma pouco segura, por http, em que tudo o que é transmitido vai em clear text ou por https em que a ligação é encriptada.
Penso que a melhor forma é por https e para tal vão ser necessárias várias alterações na configuração.
A primeira coisa é activar o módulo ssl no apache. Para tal, devemos correr o comando:
a2enmod ssl
service apache2 restart

Para usarmos https, é preciso tratar de gerar certificados. Começamos por correr.
openssl genrsa -des3 -out servidor.key 1024

Em seguida:
mv servidor.key servidor.old.key
Seguido por:
openssl rsa -in servidor.old.key -out servidor.key

Devemos correr em seguida:
openssl req -new -key servidor.key -out cert.csr
Durante a execução deste comando é necessário preencher os nossos dados.

Quase a finalizar, correr o comando:
openssl x509 -req -days 9000 -in cert.csr -signkey servidor.key -out cert.crt

Temosn que mover os ficheiros para a sua localização correcta, com os comandos:
mv cert.csr /etc/ssl/certs/
mv servidor.key /etc/ssl/private

Para configurar o apache, podemos criar um novo virtual host, ou podemos editar o ficheiro de configuração do site de default. Para este teste, escolhi a segunda hipótese, com o comando:
nano /etc/apache2/sites-availabe/default-ssl

Devemos alterar as seguintes linhas:
DocumentRoot /var/www/owncloud

< Directory /var/www/owncloud >
Options Indexes MultiViews FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Allow from all
< /Directory >

Também devemos alterar as seguintes linhas:
SSLEngine on

SSLCertificateFile /etc/ssl/certs/cert.csr
SSLCertificateKeyFile /etc/ssl/private/servidor.key

Finalmente, devemos activar o site, com o comando:
a2ensite
E efectuar um restart ao servidor apache, para tornarmos todas as alterações efectivas, com o comando:
service apache2 restart

Para verificarmos que temos acesso ao Owncloud e para acabar a instalação, devemos aceder ao site por:
https://cloud.own
Vamos verificar que em qualquer browser, temos um alerta de certificado, que é assinado por ele próprio e não tem ninguém que possa validar a sua autenticidade.
Isto é normal, pois é verdade que temos um certificado que passamos a nós mesmos.

Temos portanto que adicionar uma excepção para não nos dar novamente este alerta. Para tal, basta carregar no botão:
Add Exception

Se virmos as propriedades do certificado, podemos então confirmar que foi o que criamos.

Podemos então passar a excepção, carregando no botão:
Confirm Security Exception

Podemos ver finalmente o site que criamos do Owncloud.
Temos que colocar um utilizador e password que vai ser o administrador do Owncloud.

Se carregarmos nas opções avançadas, podemos definir onde vão-se encontrar os dados e onde se encontra a base de dados sqlite. Neste caso é em “localhost”.
Estando todos os dados introduzidos, podemos carregar no botão:
Finish Setup
 
Fonte: http://portal.zwame.pt/30218/guia/owncloud-4-uma-cloud-pessoal

segunda-feira, 24 de setembro de 2012

Virus No Pendrive (VNP) rsrs...

Bom pra começar bem a semana tive um problema com meu pendrive, peguei um virus onde o mesmo escondeu meus arquivos como se fosse uma Pasta do windows, de começo me preocupei quando abri o pendrive e nao vi meus arquivos, mas quando fui nas propriedades do pendrive vi que tava sendo usado 13 gb de espaço entao fui pesquisar,e achei a solução... segue pra quem tiver o mesmo problema ;)

primeiramente va em: iniciar\painel de controle\opções de pasta\modo de exibição\ Desmarque as 2 opções. como segue o exe.

logo em seguida abra o prompt de comando o CMD.
e utilize o seguinte comando para alterar as opções da pasta, attrib -sh "caminho do pendrive\caminho dos arquivos" lembrando que tem que ser arquivo por arquivo..
espero ter ajudado... duvidas postem ai valeu!

Agradecimento especial à Juliano Roberto Westarp.

segunda-feira, 10 de setembro de 2012

[Shell Script] Estrutura FOR – chega de ficar repetindo comandos!!!

Uma das principais funções de um script de Shell para um administrador Linux é agilizar o cumprimento de tarefas de alta demanda. No post anterior, utilizamos o “canivete suíço” FIND para fazer backup via script de Shell Bash e neste aqui vamos ver 2 exemplos de uma estrutura de repetição importantíssima: o FOR.
A estrutura FOR é fundamental para que tarefas repetidas sejam facilmente executadas sem muito esforço por parte do administrador. O uso de tal estrutura em linguagem BASH vai permitir a manipulação de listas de dados, como usuários a serem criados, diretórios para backup, IPS e MACs em regras de firewall, etc.
A sintaxe da estrutura FOR é a seguinte:

for <variável> in <lista>

do

<comandos>

done

Em síntese, a cada vez que cada item da lista é interpretado, o valor dele é atribuído à variável, sendo assim, podemos tratar um valor da lista de cada vez nos comandos que serão executados.
Aqui nesse laboratório nós vamos tratar 2 ‘cases’:
Criação de usuários em demanda;
Bloqueio de acesso a uma lista de domínios através do Iptables.
CRIAÇÃO DE USUÁRIOS EM DEMANDA

Antes de começarmos, aí vai uma explicação básica sobre o comando ‘useradd’ :

#useradd -m -d <HOMEDIR> -s <SHELL DO USUÁRIO> -g <GRUPO PRIMÁRIO> <LOGIN DO USUÁRIO>

O comando useradd tem uma sintaxe bem peculiar, uma vez que o último item é o login do usuário.

Vamos à criação do script:

#vim /usr/local/bin/cria_usr.sh



Explicando:

A estrutura for funciona tratando listas de dados e processando linha por linha dessas listas.
No caso do programa acima, primeiro existe a declaração da variável ‘lista’ contendo a leitura de um arquivo chamado ‘listas.txt’, dentro do diretório /root. Dentro deste arquivo, será criada uma lista com os usuários e grupos na estrutura <usuário>:<grupo> .
O for irá processar cada linha dessa lista de cada vez, atribuindo seus valores à variável usr, uma linha por vez, isto significa que se a primeira linha do arquivo for joao:cpd, o primeiro valor da variável usr será este e o próximo valor será o valor da segunda linha e assim por diante.
As variáveis login e grupo “pegam” os campos 1 e 2 do “print” da variável usr, tendo como separador de campo o caractere : .



Agora é só aplicar os dados no comando useradd :



Criando o arquivo de lista de usuários:

Executando o Script:

#chmod +x /usr/local/bin/cria_usr.sh

#cria_usr.sh



BLOQUEIO A UMA LISTA DE DOMÍNIOS

Neste caso, temos um arquivo com uma lista de domínios que receberão regras de bloqueio na chain FORWARD da tabela Filter do Iptables. Isso significa que pacotes que passarem pelo firewall e que tiverem como destino estes domínios serão negados.

Vamos à lista:

#vim /root/lista_dom.txt



Criando o script:

#vim /usr/local/sbin/block_dom.sh



Executando o script:

#chmod +x /usr/local/sbin/block_dom.sh

#block_dom.sh

Conferindo as regras:

#iptables -nvL


Todos os pacotes oriundos da rede 10.10.10.0/24 e com destino a qualquer IP dos domínios contidos na lista, serão rejeitados pelo Firewall.
Neste caso, quando o administrador quiser bloquear uma lista de domínios ou IPs, basta incluí-los no arquivo /root/lista_dom.txt e executar novamente o script em questão.