Raspberry Openfire Social Server

Com o passar dos anos todos vamos acumulando várias contas de conversação on-line. Os mais “antigos” (como eu) terão começado no IRC, depois no MSN, Google talk e mais recentemente no Facebook chat.

Bom, isto dá uma dor de cabeça na hora de configurar um novo pc ou telemóvel, para além de ter que lembrar palavras-passe e usar vários programas. E porque não ter uma única conta em que as várias contas de chat já estão configuradas e na hora de se configurar um novo dispositivo basta uma simples configuração? Muitos dirão: “Isso já há!” Temos o EBuddy ou comercialmente o fantástico Trillian. É verdade mas isso obriga a manter as nossas contas nas mãos de terceiros, o que de certo modo põe a nossa privacidade em risco. E se tivéssemos um servidor em casa que fizesse o mesmo?

Quando olho para o meu Raspberry Pi surge-me logo o seguinte pensamento: “O que vou tentar fazer hoje contigo?” Pois bem, desta vez o meu RasPi ficou social 😀

Há uma pérola no Open-Source de seu nome OpenFire que nos vai ajudar nesta missão!

Este projecto é válido para qualquer máquina e sistema compatível com OpenFire mas parto do princípio que o vão fazer num Raspberri Pi Mod. B, com o mais recente Raspbian. O baixo consumo do RasPi, tamanho pequeno e razoável performance tornam-no o equipamento ideal para o efeito. Também presumo que vão ter um serviço de DNS dinâmico configurado e pelo menos a porta 5222 aberta no router para o vosso RasPi.

Começamos então por desinstalar o Java da Oracle caso esteja instalado (no Raspbian mais recente está!):

sudo apt-get purge oracle-java7-jdk

Em seguida instalamos o Java-JRE:

sudo apt-get install default-jre

Por fim fazemos download do pacote de instalação do OpenFire:

wget -O openfire_3.8.2.deb  http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.8.2_all.deb

E instalamos:

sudo dpkg -i openfire_3.8.2.deb

… Já está instalado! Vamos configurar?

Temos  que aceder por browser ao nosso RasPi. Abrimos o navegador e escrevemos:

http://raspberry_ip:9090

openfire

Se tudo correu bem vamos encontrar uma página onde escolhemos a linguagem de configuração Tem Português Brasil que foi a minha escolha. Nas páginas seguintes vamos configurar o servidor. Podem usar os valores que são apresentados por defeito em caso de dúvida.

Posso-vos dizer que no meu RasPi, após a ultima página (onde defini a palavra-passe do admin) tive que aguardar uns bons 20 minutos. Altura para um café 😛

Por fim deparamo-nos com a seguinte página:

OpenFire1

Como configurar?

OpenFire1

1 – Configurar o utilizador (tab Usuários/Grupos) e se for para mais que um utilizador convém criar um grupo também para que possam conversar directamente (quem quiser mais protecção pode até encriptar a conversa)

2 – Ir ao tab Plugins e ativar o Kraken IM Gateway

3 – Ir ao tab Servidor e no sub-tab  Gateways realizar duas tarefas:

a) Nos Transports activar os protocolos pretendidos:

OpenFire2

b) Nos Registrations adicionamos as nossas contas sociais:

OpenFire3

usuário (JID) – Utilizador criado no ponto 1
gateway – Protocolo pretendido
usuário – Utilizador da conta externa (Gmail, Facebook, etc)
senha – Palavra-passe da conta externa
apelido – Nome a apresentar para a conta externa (nickname)

E pronto! Podemos ligar-nos ao nosso servidor com um IM-client. O protocolo usado será o XMPP.

Relativamente a portas do router que este servidor usa serão:
TCP 7777 – IM file transfer
TCP 7443 – SSL HTTP Bind
TCP 7070 – HTTP Bind
TCP 5269 – S2S port
TCP 5223 – SSL XMPP Jabber
TCP 5222 – TLS XMPP Jabber
TCP 9090 – Gestão Backoffice
TCP 9091 – Gestão Backoffice SSL
TCP 3478-3479 – STUN port
TCP 1935 – Red5 RTMP port
TCP,UDP 3000-3039 – RTP port
TCP,UDP 5060-5099 – SIP ports

A mais importante (essencial mesmo!) será a 5222. A porta 7777 será necessária se quiserem trocar ficheiros com os outros contactos. Não aconselho mais nenhuma a não ser que precisem mesmo 🙂

Para desktop costumo usar o Pidgin (Em Linux, Windows ou OSX). Para o Android uso o Xabber mas podem usar qualquer um que suporte o protocolo XMPP.
Como configurar?
Fácil, Adicionam uma conta XMPP, no campo de utilizador escrevem o criado_no_ponto1@DNS_dinamico e respetiva palavra passe. Por exemplo, eu criei um utilizador joao e o DNS dinâmico é mensageiro.dyndns.org. No nome de utilizador coloco joao@mensageiro.dyndns.org. 
Após alguns segundos o programa vai perguntar se aceitam o certificado e os vossos contactos começarão a aparecer!

Novo disco num servidor Linux

Por vezes temos o nosso servidor Linux todo configurado e a funcionar direitinho que até esquecemos onde está mas um dia reparamos que estamos a ficar sem espaço… Compramos um disco novo, instalamos fisicamente e… e agora? 😀 Como o particionamos na consola???

tux_question

As instruções que se seguem só terão sucesso com direitos administrativos, como root ou com o respectivo sudo antes de cada comando. Alerto para o facto de em caso de erro poderem perder informação! Façam apenas com absoluta certeza dos passos que estão a tomar!

1 – Listamos todos os nossos discos com o seguinte comando:

fdisk -l

No meu caso obtive o seguinte resultado:

fdisk_l

Tenho portanto dois discos, o de 40GB (SDA) que já existia e o de 80GB (SDB)  que é o que vamos configurar. Neste caso ele já vinha particionado mas é indiferente pois quero formatá-lo e testar para que não tenha surpresas desagradáveis no futuro.

2 – Usamos o seguinte comando para o particionar:

cfdisk /dev/sdb

CFDISK

Primeiro verificamos que estamos no disco correto e só depois podemos usar as ferramentas que estão no fundo do ecrã (alterar a escolha com as setas <- e -> e selecionar com a tecla “Enter“) . Neste caso criei uma única partição, com o espaço total do disco.

Com o processo terminado podemos formatar a partição criada. Se o disco for o “SDB” cada partição criada será SDB1, SDB2, etc.

3 – Formatamos a nossa nova partição com o seguinte comando:

mkfs -c -t ext4 /dev/sdb1

Aguardamos que a formatação e verificação terminem e já temos o nosso disco pronto para ser “montado” no sistema. No meu caso eu quero montar o disco numa pasta chamada “mp3” onde vou guardar todas as minhas músicas para depois ouvir numa página Web 😀

4 – Criamos a pasta primeiro:

mkdir /mp3

Já temos a nossa pasta pronta montar lá o nosso SDB1!

Como eu quero que o disco seja montado automaticamente no arranque do servidor vou recorrer a um ficheiro de nome fstab.

5 – a) Antes de editar o fstab quero saber o ID do disco. Vai ser com isso que vou identificar o nosso disco novo na tabela fstab! Começo por executar o seguinte comando:

blkid

blkid

b) Copio os valores ente aspas do nosso SDB1

c) Edito a tabela com o comando:

nano /etc/fstab

FSTAB

Acrescentei o que está sombreado. Comecei por identificar o disco (comentado com #) e na linha debaixo inseri o UUID, seguido do ponto de montagem (/mp3), o tipo de ficheiro (ext4) e por fim as permissões de acesso e opções. Atentem que separei os valores com a tecla TAB e não com a de espaços. Não esquecer de guardar o ficheiro, reiniciar e, se tudo estiver correto, o nosso novo disco ficará ao serviço do nosso servidor! Resta copiar para lá a informação pretendida e dar as respectivas permissões de acesso.

Cumprimentos!