De entre as várias formas que existem para disponibilizar os dados do nosso servidor de Plex a utilizadores remotos, as minhas preferidas, porque têm mecanismos de protecção melhores do que qualquer outra, são:
- Através de plex.tv
- Usando OpenVPN
Uma e outra têm mecanismos de protecção que, além deuserid
epassword
, incluem umsecurity certificate
. E é este certificado de segurança que assegura maior protecção que qualquer outro método. Segurança é muito importante sempre que decidirmos abrir o acesso à nossa LAN a partir do exterior. Não é raro os hackers aproveitarem-se de falhas de segurança para penetrarem na nossa LAN, causarem danos, ou mesmo pedir resgates para que a normalidade seja reposta. A primeira regra de segurança énunca usar passwords triviais
, e a segunda é usar certificados de segurança sempre que possível (os quais não só validam o acesso, mas também podem encriptar os dados durante a transmissão, ou seja, além de protecção de acesso também permitem protecção de privacidade).
Como é muito mais comum usar-se o plex.tv do que OpenVPN, vou passar a descrever alguns conceitos base, bem como se faz a parametrização.
Em primeiro lugar gostaria de explicar o conceito de porta
. Aqueles de nós que moramos em apartamentos sabemos que temos um endereço (Nome de rua, nº da porta, localidade, código postal, etc) que define geograficamente o edifício onde nos encontramos. Tal permite que, quando nos enviam cartas, a mesma seja entregue (pelos correios) ao carteiro cujo percurso incluí o edifício onde moramos. Aí chegado o carteiro verifica qual é a caixa postal e coloca lá a carta. Há assim duas “decisões de distribuição”, uma feita pela empresa de correios (que entrega a carta a um carteiro sem se preocupar com o andar), e outra pelo carteiro, que é quem decide colocar a carta na nossa caixa do correio.
O router que é fornecido pelo nosso ISP (fornecedor de serviços de Internet) tem um dado endereço IP (por exemplo 123.123.123.123). Ligado a esse router temos a nossa rede local, que pode ser mais ou menos complexa, e pode até ter vários servidores de Plex. Vamos supor que temos dois servidores de Plex, um com IP 10.10.10.101 e outro com IP 10.10.10.102. O encaminhamento de pacotes de dados através da Internet é algo similar à entrega de cartas pelo correio. O endereço IP do nosso router (neste exemplo 123.123.123.123) é como se fosse o endereço do prédio onde vivemos. A primeira decisão de distribuição é efectuada na Internet, que determina qual o melhor caminho, de entre os muitos possíveis, para entregar os dados a esse IP. A segunda decisão é do router fornecido pelo ISP, que tal como o carteiro teria de decidir qual caixa de correio, esse router terá de decidir para qual dos PC’s ligados à nossa rede local é que os dados serão encaminhados. Isso faz-se usando ports
(ou portas).
Quando logamos o nosso servidor de Plex com o nosso userid
de Plex (neste exemplo temos dois servidores, podemos usar o mesmo userid
, mas os servidores têm de ter nomes diferentes), inicia-se um processo que é chamado claim
do servidor. O que se passa é o seguinte:
- O nosso servidor de Plex contacta plex.tv, o qual valida se as credenciais (
userid
epassword
) estão correctas - O plex.tv gera um
security certificate
, o qual fica a ser conhecido apenas pelo nosso servidor e plex.tv. Ninguém mais o conhece. Se temos razões para suspeitar que alguém o conhece, é só fazerlogoff
elogon
do servidor de Plex e assim será gerado um novosecurity certificate
Faço aqui um parêntesis para referir que há Países que censuram o tráfego da Internet (China, Irão, Coreia do Norte, etc) e podem ter bloqueado o acesso a plex.tv. Nesses casos será impossível fazer login
ao plex.tv, quer no servidor de Plex, quer em qualquer cliente de Plex, o que inviabiliza qualquer tipo de acesso pelo exterior, e “obriga” a que se tenha de usar OpenVPN. Mas suponho que tal não acontece em nenhum dos Países que usam língua portuguesa.
Seria muito estranho não conseguirmos logar o nosso servidor de Plex. Em regra, quando tal acontece, é um problema na nossa rede (firewals, VLAN’s, etc), e não seria possível logar nem o servidor de Plex, nem o Plex Media Player
(caso o tenhamos instalado). Ou então estarmos a usar uma versão de Plex anterior à 1.5.1 dado que, nesses casos, o plex.tv rejeitará a ligação.
Logar o nosso servidor em plex.tv não é a mesma coisa que autorizar o acesso remoto, é uma condição necessária para que tal aconteça, mas não é uma condição suficiente. Que se passa então no momento em que activamos o acesso remoto ?
- O nosso servidor de Plex contacta plex.tv e indica-lhe o seu endereço local, ou seja, indica dois IP’s, no nosso exemplo 123.123.123.123 e 10.10.10.101
- O plex.tv confere o
security certificate
(não vá haver algum hacker metido no meio) e responde ao nosso servidor de Plex algo parecido comquero comunicar-me contigo através da porta 12345
- O servidor local de Plex pede então ao nosso router, através do serviço UPnP, algo parecido com
se receberes tráfego para a porta 12345 encaminha-a por favor para a porta 32400 do IP 10.10.10.101
. O servidor local de Plex informa então plex.tv que pode testar se o acesso remoto está activo - plex.tv tenta então aceder do exterior ao nosso servidor local, e informa se conseguiu ou não. É com base nessa resposta que o nosso servidor local vai acender o sinal verde ou vermelho
Se tudo correu bem teremos o sinal verde aceso, quando assim não é ocorreu algum problema, por exemplo:
- Se o nosso ISP implementou CG-NAT o nosso endereço IP deixou de ser fixo. Isso não vai permitir acessos remotos à nossa rede, nem ao Plex nem a nenhum outro serviço. Para saber se o IP que nos atribuiram é CG-NAT basta ir ao router do ISP, ver qual é o IP atribuído do
lado WAN
, e se estiver na gama 100.64.0.0/10 (ou seja, IP entre 100.64.0.0 e 100.127.255.255) estamos numa situação de CG-NAT. A única solução é contratar um IP fixo com esse ISP, o que pode ter custos, ou mudar de ISP - Estamos a usar uma versão antiga do Plex Media Server. O plex.tv recusa-se a criar e enviar o
security certificate
para versões demasiado antigas, como por exemplo as 0.9.x que alguns utilizadores ainda têm instaladas em processadores ARMv5, PowerPC, etc. Nesses casos a melhor solução é instalar o PMS numa máquina que suporte versões recentes. Mas também se pode optar por usar OpenVPN, que embora seja seguro, não é aconselhável para quem queira partilhar conteúdos com “amigos”, dado que lhes teríamos de facultar osecurity certificate
que gerámos para o OpenVPN - O PC (ou NAS) onde foi instalado o Plex tem mais do que uma interface ethernet activa. Isso pode ver-se por exemplo no
Plex Media Server.log
pesquisando porNetwork Interface
. Se aparecer só o IP 10.10.10.101 (ou aparecerem dois IP’s, em que um é 127.0.0.1 e outro 10.10.10.101), então veja os pontos seguintes. Caso contrário temos vários IP’s, e o Plex não se dá bem com isso. Diria mesmo que é umbug
que, no momento em que escrevo, ainda não está solucionado. A forma de sair desse problema não é trivial, cada caso é um caso, se for essa a sua situação terá de iniciar um novopost
para pedir ajuda - O router fornecido pelo nosso ISP não tem o UPnP activo, ou então tem uma versão de UPnP que não é compatível com o Plex. Nesse caso o servidor local de Plex não consegue parametrizar o router para
se receberes tráfego para a porta 12345 encaminha-a por favor para a porta 32400 do IP 10.10.10.101
. Uma forma de se poder saber isso é ir à página de gestão do Router e verificar se tem a porta 12345 encaminhada ou não para o IP 10.10.10.101. Caso não tenha, veja soluções possíveis nos pontos5
e6
seguintes - Se o PC com o IP 10.10.10.101 estiver ligado directamente ao router do nosso ISP (ou ligado a um
switch
que por sua vez está ligado directamente ao router do nosso ISP), há que abrir manualmente uma porta no router do nosso ISP (pode ser a 32401 para o primeiro servidor local de Plex, mas terá de ser outra porta para o segundo servidor) veja o tópicoManually Specify Port
aqui - Porém, se entre o router do ISP e o PC (ou NAS) com o IP 10.10.10.101 existir um outro router, PC ou NAS, podemos estar numa situação de
double NAT
Nesse caso tem de ir ao router do ISP, abrir a porta 32401, mas em vez de a encaminhar para a porta 32400 do IP 10.10.10.101, deve-se apontar para o IP dorouter intermédio
. E a seguir, nesserouter intermédio
, deve abrir-se manualmente a porta 32401 e encaminhá-la para a porta 32400 do IP 10.10.10.101 (para o segundo servidor de Plex deve abrir-se a porta 32402 no router do ISP, apontá-la para a mesma porta dorouter intermédio
, e nesserouter intermédio
encaminhar a porta 32402 para a porta 32400 do IP 10.10.10.102). NoManually Specify Port
(ver ponto anterior) especificar 32401 no primeiro servidor, e 32402 no segundo. Assim o plex.tv ficará informado de que, se algum utilizador quiser aceder remotamente ao primeiro servidor, o plex.tv irá contactar o IP 123.123.123.123 através da porta 32401, e para contactar o segundo servidor o plex.tv usará a porta 32402 do IP 123.123.123.123. Competirá aos dois routers (o do ISP e o intermédio) fazer o encaminhamento das portas - Se estiverem activas
jumbo frames
há que as desactivar. As MTU do PC onde está instalado o PMS, bem como a do router do ISP (e dorouter intermédio
caso exista) têm de ter o valor 1500 - Neste exemplo mencionei portas 32401, 32402 e 12345. Porém há ISP’s que bloqueiam o tráfego nessas portas. Há que perguntar ao operador se implementaram ou não tal bloqueio. Nesse caso a solução poderá ser simples -> escolhe-se uma porta não bloqueada pelo operador, e faz-se a parametrização do Plex tal como no ponto
5
acima (o tráfego na porta 32400 apenas tem de estar activo no percurso entre o servidor local de Plex e o router ao qual está ligado) - Ou será que temos uma
firewall
activa ? Nesse caso será necessário parametrizá-la de modo a permitir a passagem de tráfego nas portas do Plex (basicamente uma firewall bloqueia certos tipos de tráfego, e há que definir quais são os tráfegos fidedignos) - Um caso, mais raro, é o do indicador verde estar activo durante alguns minutos (ou horas) e depois passar a vermelho. Tal problema tem sido reportado por utilizadores que deixam o Plex escolher a porta de comunicação. A solução recomendada para tais casos é escolher manualmente a porta (vidé ponto
5
acima)
Um caso diferente é o nosso servidor de Plex ter o indicador verde activo, conseguimos aceder do exterior nalgumas redes, porém não conseguimos aceder via outras. A razão mais comum para tal acontecer é estarmos ligados a uma rede (por exemplo a de um escritório ou centro comercial) que filtra o tráfego Plex. Mas também podemos estar a viajar num País que censura o tráfego Internet. Aí nada a fazer, é pouco provável que o administrador da rede queira mudar a sua parametrização para permitir a passagem do tráfego Plex.