27/10/2008
Inviare comandi via telnet ad un apparato remoto
L'ubiquità del protocollo telnet all'interno del firmware di molti degli apparati
presenti in una rete, rende tale protocollo lo strumento preferenziale per lanciare
comandi ed effettuare configurazioni avanzate all'interno di questi ultimi, operazioni
spesso difficili da portare a termine tramite l'interfaccia web che quasi sempre
accompagna quella telnet. Una volta stabilita la connessione telnet con un apparato, si
ha la possibilità di interagire con un una shell testuale (basata quasi sempre su una
*nix), in altri casi con un menu di sistema, tramite cui scegliere un'attività tra quelle
presenti; in qualsiasi caso, comunque, client e server si scambiano semplicemente
messaggi basati su stringhe.
In questo snippet vediamo come sfruttare la potenza di Windows PowerShell e del framework
.NET di Microsoft per comunicare con un apparato remoto (un modem/router Fritz!Box Fon di
AVM), inviando comandi e recuperando informazioni utili.
Premessa
Ho scelto il modem/router Fritz!Box Fon semplicemente perchè è l'apparato che mi sta più
vicino (nel senso che è fisicamente a 60 cm da me mentre scrivo) ed è anche quello che ho
studiato più a fondo: questo dispositivo, infatti, mi ha permesso di creare, già quattro
anni fa, l'infrastruttura di comunicazione VOIP su cui si basa l'intera rete telefonica
del mio ufficio.
Per abilitare il supporto telnet all'interno di questo apparato, che nasce con un'ottima
interfaccia di gestione web, è necessario seguire alcuni step non ufficiali che
invalidano la garanzia del prodotto; vi esorto pertanto a non ripetere ciò che leggerete
qui sotto ma di concentrarvi sulla tecnologia e sulle potenzialità offerte da questo
snippet. Con qualche semplice modifica, infatti, questo snippet può essere riadattato per
inviare comandi ad un ruoter Cisco, ad un server *nix esterno o, perchè no, ad un
software di broadcasting televisivo.
Avvertenza: Efran Cobisi, l'autore di questo articolo, ed il portale powershell.it declinano qualsiasi responsabilità derivante da danni diretti o indiretti causati dalle informazioni contenute in questo articolo.