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!

RaspberryPi com RPI monitor

Quando no artigo anterior sugeri uma página web para controlar a temperatura do nosso RaspberryPi em tempo real, até comecei a desenvolver uma mas… o google tem tudo! 😀

Apresento-vos o RPI-Monitor. Há outros projetos semelhantes mas gostei da facilidade de instalação.

Vamos instalar no nosso Raspberry com Debian? Embora pra consola!

Primeiro instalamos umas dependências:

sudo apt-get install librrds-perl libhttp-daemon-perl

Em seguida fazemos download da versão mais recente até à data:

wget https://github.com/XavierBerger/RPi-Monitor-deb/blob/master/packages/rpimonitor_1.5-1_all.deb?raw=true -O rpimonitor_1.5-1_all.deb

instalamos:

sudo dpkg -i rpimonitor_1.5-1_all.deb

e… já está! Basta abrir o browser e escrever http://ip-do-raspberry:8888

01

Clicamos em Start e encontramos uma página com informação completa sobre o nosso sistema:

02

Em Statistics temos acesso a um gráfico temporal com o registo dos sensores:

03

Por fim temos acesso a um menu de configuração onde podemos ativar algumas opções:

04

Shellinabox permite-nos ter acesso a uma consola no browser. Para funcionar temos que instalar primeiro:

sudo apt-get install shellinabox

No browser vamos a http://ip-do-raspberry:4200 e aceitamos o certificado. Et voilá, temos a nossa shell no browser! Não aconselho ativar o shellinabox se o nosso Raspberry estiver exposto ao mundo sem ter algumas proteções adicionais, tipo fail2ban e reverse proxy mas fica para uma próxima!

Caso tenham o ufw ativo não esquecer de abrir a porta 8888(RPI-Monitor) e 4200(shellinabox) na firewall:

sudo ufw allow 8888

sudo ufw allow 4200 (opcional)

 

Que a força esteja convosco! 😀

Temperatura no Raspberry Pi

Quem tem um Raspberry Pi pode sempre pôr o “brinquedo” a andar um pouco mais depressa, usando o método do overclock.

Como fazer isso? Estando ligados localmente ou por SSH, escrevemos o seguinte comando:

sudo raspi-config

Escolhemos a opção 7 “Overclock”

overclock

Para terem uma ideia do aumento da performance, esta pode chegar aos 50% na opção “Turbo” relativamente à velocidade original! Podem experimentar gradualmente os níveis de “Overclock” e ver se o sistema se mantém estável.  Caso o nosso Raspberry bloqueie podemos sempre desactivar o “Overclock” no arranque, mantendo premida a tecla “Shift! 

Mas surge um problema que é o aquecimento que, se for em excesso vai acelerar o fim de vida do nosso Raspberry e a perda de garantia. O processador tem um “Sticky bit” que é ativado quando chegamos a configurações proibidas. Podemos verificar o estado do nosso “sticky bit”  com o seguinte comando:

cat /proc/cpuinfo

Normalmente o campo “Revision” tem um valor XXXX mas se o “Sticky bit” estiver ativo, o campo “Revision” terá um valor 100XXXX. Podemos dizer adeus à nossa garantia 😦

Devemos manter a temperatura abaixo dos 60 graus Celsius e para tal podemos usar diversos métodos, desde a aplicação de um dissipador passivo até ao uso de ventoinhas, tudo para que se possa manter o nosso Raspberry fresco 🙂

Uma maneira de saber a temperatura do Raspberry é inserir o seguinte comando no terminal:

/opt/vc/bin/vcgencmd measure_temp

Se quiserem criar um comando mais fácil de decorar escrevam o seguinte num terminal (uma linha de cada vez):

cd ~

sudo nano .bash_aliases

alias temperatura=’/opt/vc/bin/vcgencmd measure_temp’

Onde está escrito “temperatura” podem escrever uma palavra que prefiram. Salvar o ficheiro, terminar sessão ou reiniciar o Raspberry e assim podem saber a temperatura a qualquer momento bastando para tal digitar o comando escolhido. Para os mais arrojados podem sempre criar uma página de internet e monitorizar em tempo real a temperatura do vosso Raspberry! 😀

Alerto para os perigos desta experiência poder avariar o vosso Raspberry. Façam isto por vossa conta e risco!