Questão Existe um script para adicionar regra de encaminhamento de porta no roteador doméstico?


TL; DR: Eu estou procurando um script ou um cron job, que periodicamente é executado em um host linux (fedora em framboesa pi), que irá verificar se uma regra de encaminhamento de porta ainda existe no roteador e adicioná-lo se não for. O objetivo é sempre ter acesso ao host do raspberry pi linux via SSH, VNC e a interface web de transmissão, de qualquer máquina na internet fora da minha rede doméstica. A configuração é dada abaixo:

Roteador:

Beetel 440Tx1 router ADSL2 + modem + wifi.

Configuração:

O roteador está conectado à internet (ISP Broadband) e possui um IP externo dinâmico. Ele fornece uma rede doméstica privada para meus computadores com IPs internos 192.168.x.y agindo como um DHCP também.

Hospedeiro:

Um host ARM raspberry pi com o Fedora Linux, rodando o tempo todo com servidores ssh, vnc, transmission-daemon iniciados no momento da inicialização. Ele também tem o dip livre no-ip.com dyndns (cliente de atualização dinâmica) que verifica rotineiramente o IP externo e o vincula à sequência do host. Assim, eu sempre posso encontrar o IP externo do meu roteador resolvendo minha string dyndns como myrouter.no-ip.org. O pi tem um IP interno estático como 192.168.1.z.

Port Forwarding:

Tem que acessar o roteador usando GUI / browser com credenciais de fábrica somente se conectado a essa rede através de cabo ethernet ou protegido por senha wi-fi

http://192.168.1.1/html/index1.html

Eu configurei a regra fazendo login para encaminhar qualquer tráfego nas portas 22, 5900, 9091 no IP externo para os respectivos programas ouvinte (sshd, vncserver, transmission-daemon) no pi em 192.168.1.z.

Problema:

Esse roteador perde a regra de encaminhamento de porta acima quando ele (o roteador) é reiniciado, ou mesmo se houver um pico de energia elétrica e o no-break precisar entrar momentaneamente e normalmente receber um IP externo diferente do meu ISP dinamicamente.

Requerimento:

Um script ou trabalho cron que pode ser executado no meu fedora linux pi que pode acessar o meu roteador e periodicamente pesquisar a existência dessa regra de encaminhamento de porta e criá-la se estiver faltando. Ajuda apreciada.


12


origem


O roteador suporta o encaminhamento de porta via UPnP? (os programas em execução no windows / mac / linux configuram automaticamente as regras de encaminhamento de porta atualmente?) - Scott Chamberlain
Eu acho que sim porque pcwintech.com/showimage?file=files/screenshots/beetel-440txi/…  Eu realmente não sei muito sobre o UPnP além da página da Wikipedia. Pesquisando por esse tipo de roteador (em questão) levou-me a essa página. - PKM


Respostas:


MiniUPnP é um cliente UPnP de linha de comando que permite ativar o encaminhamento de porta. A fonte está disponível para que você possa compilá-la no Pi.

Acho que essa é a sintaxe de que você precisa, mas não tenho uma máquina para testá-la. Você colocaria o seguinte em um script que configuraria as portas uPnP para você

upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 22 22 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 5900 5900 TCP
upnpc -a `ifconfig wlan0 | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1` 9091 9091 TCP

15



que funciona, no entanto, qual é o lugar certo para adicioná-lo para que o comando seja executado na inicialização? - Ciasto piekarz
Você pode usar @reboot <cmd>no seu crontab - Martin
miniupnpc deve estar disponível com raspbian com apt - Scott
e upnpc, se executado a partir da máquina que executa o serviço, usará o endereço local para que o ifconfig / grep seja desnecessário - Scott
a ifconfig ... parte não funcionou para mim, então eu usei ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' conforme esta resposta. - hsribei