É possível executar scripts em dispositivos Linux incorporados (por exemplo, roteadores DSL)?

2

Gente, Eu quero encontrar uma maneira genérica de executar um script (simples bash) na seqüência de inicialização de um roteador com Linux embarcado. Eu li sobre maneiras de fazer isso em dispositivos como:

  • DD-WRT
  • OpenWRT
  • qualquer NAS como o DNS-323 da D-Link

Mas eu queria saber se isso poderia ser feito também em dispositivos incorporados genéricos, como um roteador DSL (na maioria simples). Possíveis razões para fazer isso:

  • Método genérico de atualização do IP público do dispositivo para servidores DNS que permitem isso (encontrei alguns que permitem isso por meio de comandos HTTP simples).
  • Envie dados para o servidor FTP, como o IP público do dispositivo.
  • Uma maneira simples de dizer «O dispositivo está ATIVADO» para um host remoto, como executar o "telnet MySSHServer 22" em um servidor doméstico SSH.
  • Adicione regras de rede, lista ARP, desative qualquer interface de rede (ethx) ... etc.
  • Aprendizado & Investigação; -)

Eu ouvi falar de algumas pessoas fazendo isso com algum roteador DSL mantendo estas etapas:

  1. Salve todos os dados do roteador (incluindo a configuração) em um arquivo semelhante ao firmware.
  2. Edite esse arquivo de firmware (isto é, modificando o arquivo "/etc/rc.local").
  3. Restaurando o arquivo de firmware modificado no roteador.

Existe uma maneira melhor que alguém saiba?

    
por Sopalajo de Arrierez 22.01.2014 / 00:14

2 respostas

2

A resposta dependerá do dispositivo, pois não existe um roteador "genérico". Existem algumas abordagens:

  • Substitua o firmware de estoque por um pacote aberto (DD-WRT, OpenWRT, Tomato, etc)
  • Hackeie o firmware de estoque (o processo de três etapas que você descreve)
  • Use recursos no firmware de estoque (pode ser não documentado ou não óbvio)

Tenho notado no firmware de estoque de vários roteadores que há uma página enterrada na área de Administração da interface que tem apenas uma caixa de texto que usa TFTP ou Telnet para executar um shell no roteador. Pode ser rotulado "conexão de teste" ou algo assim. Se você puder criar ou modificar um arquivo a partir dessa interface, poderá alterar a configuração. Você pode ter que dobrar as regras, por exemplo, se a caixa de texto aceitar apenas o endereço IP e executar um 'ping' em cada uma delas, você poderá fornecer uma string como

127.0.0.1&&/sbin/sshd& 

Em seguida, teste o dispositivo com nc / nmap para ver se o serviço ssh está disponível (porta 22).

    
por 22.01.2014 / 00:42
1

Encontrei uma ferramenta que pode ser útil: Kit de modificação de firmware .
É um pacote de ferramentas que abre (expande) o conteúdo completo de um arquivo de firmware .bin para um diretório chamado "fmk" e permite editá-lo, para que você possa empacotá-lo novamente no arquivo .bin com outra ferramenta incluída.
Então, até agora, o processo para algo como um roteador é:

  1. Faça o download do arquivo de firmware .bin.
  2. Descompacte, edite e reembale-o em seu .bin personalizado usando o Kit de modificação de firmware.
  3. Flash para o seu roteador.

Eu preferiria fazer isso:

  1. Extraia a configuração e os dados reais do roteador (incluindo o encaminhamento de portas, a configuração sem fio, as senhas e assim por diante) para o arquivo de firmware .bin.
  2. Descompacte, edite e reembale-o em seu .bin personalizado usando o Kit de modificação de firmware.
  3. Flash para o seu roteador.

mas eu não encontrei um jeito, até agora. Eu nem sei se é possível.

    
por 26.01.2014 / 13:24