Meo GO fora de casa




Meo GO ou Meo GO Multi ?

Meo GO permite até mais 3 ecrãs em casa, sim, EM CASA, além da box, o Meo GO permite visionar até 60 canais num PC, Tablet ou SmartPhone. É gratuito mas APENAS se for utilizado em casa.

Meo GO Multi, permite o mesmo que o MEO GO, mas com a diferença que não é necessário estar em casa para utilizar o serviço, basta ter um acesso à Internet seja ele onde for, mas claro, é pago, e não é barato, são 5€ por mês.

Eu prefiro minha receita, qual é ? Meo GO, onde me apetecer e sem dar cavaco aos senhores da MEO dispensando a versão Multi que é paga.

Funciona tanto usando um PC, um smartphone ou tablet (testei a solução apenas com android).

Quando acedemos ao Meo GO, a plataforma verifica de onde vem o pedido de streaming de video.
Porquê esta verificação? Para cruzar dados, isto é, para a plataforma Meo GO verificar se o cliente está realmente a aceder da sua rede em casa cruzando os dados de login com a origem IP do pedido.

Como dar a volta a esta questão? Usando uma VPN para casa. Porquê? Porque desta forma os pedidos à plataforma Meo GO tem origem na rede de casa, em vez de ter origem na rede onde estamos ligados (um café, na escola, etc etc).


  • Para colocar a VPN a funcionar, é conveniente mudar o endereçamento da rede em casa para isso podem consultar este tutorial
  • Após modificar o endereçamento podemos instalar e configurar o servidor OpenVPN no raspberry seguindo este tutorial, que ensina igualmente a configurar o cliente OpenVPN para windows.
  • Convém também configurar um Proxy em casa, consultando este tutorial que ensina a instalar o Squid. Quando ligamos a VPN através do PC, o túnel é criado, mas não é instalada uma rota por defeito através do túnel, é instalada apenas uma rota para a rede em casa (eu prefiro assim). Por este motivo, temos que redireccionar o tráfego HTTP pelo túnel até ao Proxy HTTP que está em casa. O Meo GO em PC é acedido usando o browser acedendo a este endereço, então o que fazemos é reencaminhar este tráfego pelo Proxy HTTP, desta forma enganamos a plataforma Meo GO pois o Proxy é o agente que está no meio, e ele é que pede os canais, e como está em casa, a plataforma Meo GO acede ao pedido sem problemas pois está a ser enganada ;-)

Para quem quer usar Meo GO através de Tablet ou Smartphone, terá que:
  • Instalar e configurar o cliente OpenVPN para android, podem consultar este tutorial

  • Instalar a APP para android é esta, e usá-la com a VPN ligada. Como neste caso TODO o tráfego é encaminhado pelo túnel, então não há necessidade de configurar o Proxy HTTP de casa para servir de agente entre o Meo GO e o dispositivo cliente na VPN.

Experimentem e em caso de dúvidas, apitem aqui em baixo nos comentários.

Servidor Proxy Squid. Como Instalar e Configurar ?



O que é um servidor proxy ? que serviço presta numa rede ?

Um servidor proxy funciona como um intermediário entre o browser cliente e o servidor onde está alojada a página que o cliente quer consultar. Portanto, resumidamente um proxy é um agente que tem autoridade para se passar por outro.

Um proxy, pode ajudar a melhorar o desempenho da Internet, porque poderá ser configurado para criar uma cópia das páginas Web mais visitadas pela rede local.

Em algumas situações, um proxy pode ser usado para filtrar o acesso a determinados conteúdos, ou poderá ser usado apenas para registar o acesso à Internet sem realizar qualquer tipo de filtragem.

O servidor proxy Squid é o mais conhecido e usado mundialmente. Podem consultar a sua página oficial aqui.

O servidor proxy Squid, suporta os seguintes protocolos vindos de clientes através de pedidos no formato HTTP:
  • HyperText Transfer Protocol (HTTP)
  • File Transfer Protocol (FTP)
  • Gopher
  • Wide Area Information Services (WAIS)
  • Secure Socket Layer
A sua instalação passa obviamente pelo comando apt-get

apt-get update && apt-get install squid

Os ficheiros de configuração do squid estão localizados em /etc/squid
Devemos editar o ficheiro squid.conf para realizar alterações à configuração base.
Recomendo que realizem um backup do ficheiro, dá sempre jeito para voltar atrás em caso de asneira.

cd /etc/squid/
cp squid.conf squid.conf.bak
pico /etc/squid/squid.conf

Tendo em conta que necessito utilizar o proxy, apenas quando estou fora da casa e usando a minha VPN, as particularidades mais relevantes desta configuração tem a ver com o facto de:

  • ter uma access-list para permitir acessos ao proxy vindos apenas da minha LAN 192.168.100.0/23 (pois a ponta do túnel da VPN fica com um IP na gama de IP's da minha LAN)
  • ter desabilitado a cache, pois não necessito dessa funcionalidade e não tendo cache, sempre poupo o cartão SD do Raspberry a mais uns acessos de leitura/escrita desnecessários.


Deixo aqui uma cópia do meu ficheiro de configuração do Squid. Limpei o ficheiro original retirando comentários e configurações não relevantes para o meu cenário de rede.


acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.100.0/23
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

access_log /var/log/squid/access.log squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern (Release|Packages(.gz)*)$       0       20%     2880
refresh_pattern .               0       20%     4320

acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast

acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
cache deny all


Após gravar o ficheiro de configuração, é necessário reiniciar o serviço:

service squid restart

Podem também visualizar os acessos em tempo real ao proxy usando o seguinte comando:

tail -f /var/log/squid/access.log

Se quiserem alterar ou acrescentar alguma configuração, podem consultar este link oficial com explicação de todas as directivas de configuração do squid.


Controlador UniFi da Ubiquiti em Raspberry

Chegou um brinquedo novo cá a casa, um Access Point da Ubiquiti Networks.

Esta marca de equipamentos de rede tem se revelado uma bela surpresa, é a segunda aquisição que faço, num futuro post falarei sobre as antenas da Ubiquiti que utilizo para expandir a minha rede local para o outro lado da rua.


 


Esta marca tem uma relação preço/qualidade muito interessante. Podem visitar o site  para conhecer a sua gama de produtos.

 
Uma das grandes vantagens do AP, é ser alimentado por PoE o que evita a necessidade se uma tomada eléctrica junto do Access Point.

Hoje vou exemplificar como instalar o controlador UniFi. Este controlador permite fazer a gestão de múltiplas redes wireless (multiplos Access Points) utilizando uma página web.


O software  está disponível para Mac, Windows e Linux. O tutorial aborda a instalação em Linux, mais propriamente no Raspberry.

Instalação do Software controlador e suas dependências

O software tem duas dependências, Java e MongoDB. O Java está instalado por defeito nas novas versões de Raspbian, mas caso não esteja :

sudo apt-get update 

sudo apt-get install oracle-java7-jdk

No caso do MongoDB vamos instalar uma versão pré-compilada para poupar tempo (Obrigado aos colaboradores da plataforma GitHub).

sudo mkdir /opt/mongodb 

cd /opt/mongodb 

sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/bsondump?raw=true -O bsondump 

sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongo?raw=true -O mongo 

sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongod?raw=true -O mongod 

sudo wget https://github.com/brice-morin/ArduPi/blob/master/mongodb-rpi/mongo/bin/mongodump?raw=true -O mongodump 

sudo chmod +x *


Após a instalação do MongoDB, passamos à instalação do controlador propriamente dito.
Primeiro fazemos o download da ultima versão do UniFi, usando o comando wget, : (Hoje é a versão 3.2.1, podem consultar a versão mais actual aqui adaptando o link do wget para reflectir a ultima versão)

cd /opt

wget http://www.ubnt.com/downloads/unifi/3.2.1/UniFi.unix.zip

unzip UniFi.unix.zip


cd /opt/UniFi/bin 

sudo ln -fs /opt/mongodb/mongod mongod

sudo java -jar /opt/UniFi/lib/ace.jar start &

A partir daqui a configuração é feita através do browser.
No meu caso acedendo a https://192.168.100.246:8443 o controlador fica à escuta no porto 8443 do dispositivo onde tiver sido instalado.

No primeiro passo configuram-se as definições regionais


O controlador vai tentar descobrir o Access Point na rede procurando na camada L2, havendo mais de um Access Point, irá aparecer na lista abaixo. No meu caso aparece apenas um, que obteve endereço IP através de DHCP,


de seguida configura-se o SSID e Password's desejadas, de notar que caso a rede tenha mais do que um access point, o controlador configura o mesmo SSID em todos, e esta é uma das grandes vantagens de usar o controlador, uma solução ideal para um hotel por exemplo.


No ultimo passo configura-se o username e password de acesso ao controlador.



Resta preparar o script de arranque do serviço.
Podem fazer download do script usando este link coloquem o ficheiro na pasta /etc/init.d

O script usa jsvc (uma livraria que permite correr Java em Linux de uma forma mais facilitada)
Devem instalar o jsvc e dar permissões de execução ao script.
A linha 36 do script tem um pequeno ajuste para que o controlador use apenas 383Mg de memória RAM, poderão alterar este valor se acharem necessário,

sudo apt-get update 

sudo apt-get install jsvc

sudo chmod +x /etc/init.d/unifi

sudo update-rc.d unifi defaults

sudo /etc/init.d/unifi start



A partir daqui, o controlador está pronto a ser utilizado. bastando aceder com o browser para realizar as tarefas de administração do(s) Access Point(s) da rede.

Este é o aspecto inicial do portal do controlador.


Página com dados estatísticos.


Histórico de clientes.


Clientes ligados actualmente.



Este tutorial pretende  abordar a instalação do controlador UniFi em Rasbperry, todas as restantes questões saem fora do âmbito.
No entanto em caso de dúvidas não relacionadas com a instalação, estão à vontade para colocar questões.