Como utilizar UPNP para liberar acesso externo a um computador Linux

image_pdfimage_print

Em resumo, no caso de um router com UPNP já habilitado e por exemplo com a porta 22 sem qualquer regra previamente configurado, pode-se facilmente utilizando o pacote miniupnpc para configurar o modem para disponibilizar, no caso em exemplo, o acesso externo via redirecionamento de porta do ip externo porta 22 para o ip interno na porta 22.

Nos sistemas Debian, Ubuntu, Raspbian entre outros, para instalar o pacote miniupnpc, basta:

aptitude install miniupnpc

Com o programa instalado, para se ver a lista atual das regras, basta:

upnpc -l

Será enumerado todos os dispositivos locais com suporte a upnp, seus ips e as regras atuais de redirecionamento de porta, assim como a descrição informada ao se configurar.

Um exemplo de como configurar o SSH para ser acessado por um dado computador:

upnpc -e 'SSH do computador <nome_do_computador>' -r 22 TCP
[/code

Utilizando o upnpc -l em seguida, a nova regra deverá ser apresentada

TCP 22 -> Ip do computador emissor do comando:22 'Descrição aqui' '' 0

Há a possibilidade de utilizar outras portas não utilizadas e delas redirecionarem para a porta 22.

Isto é importante em casos onde existem vários computadores ouvindo a porta 22 SSH numa dada rede local, mas externamente o modem desta rede só tem como ter uma porta 22 por ip externo, logo, outras portas seriam necessárias para enviar delas externamente para a porta 22 SSH de cada computador. Com isto, um computador teria por exemplo o redirecionamento externo->interno da 22 para a 22, os demais deveria usar qualquer outra porta sem uso para enviar a 22.

Cuidado com este comando dentro de roteadores com configuração já efetuadas. O modo como cada um dos diversos roteadores pode se comportar para configurar novas regras sobre antigas não dá para ser previsto para todos os casos e isto simplesmente poderia fazer computadores e serviços ficarem inacessíveis, caso previamente configurados e uma nova configuração puder afetá-los.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!