Prove of Concept: IPS Konsole als CLI

Hi…

Jetzt kommt was für die Linux und Kommandozeilen Liebhaber. :stuck_out_tongue:

Hab grad auf Arbeit mit Telnet zu tun gehabt und meine Erfahrungen grad mal schnell in ein IPS-Projekt umgesetzt. Herausgekommen ist dabei ein Telnet Server der nicht, wie sonst üblich, die Festplatte durcheinander bringt sondern den IPS Objektbaum. Der klare Vorteil einer Telnetverbindung ist die maximale Flexibilität (die Linux konsole ist beispielsweise genauso mächtig wie das grafische Frontend) und die geringe Bandbreite. Auch bei langsamer Verbindung, zum Beispiel über GPRS, hat man keinerlei Einschränkungen auf der Konsole. Ausserdem erhoffe ich mir natürlich einen vereinfachten Zugriff von fremden Betriebsystemen aus.

Die Installation ist ober-banal: IPS-Dienst runterfahren, Dll in den Modules-Ordner kopieren, Dienst starten, fertig. Das kleine IPS 1x1 halt. Als Client sollte jeder Telnet-Client taugen. Mein persönlicher Favorit ist PuTTY. Hab auch nen Telnet-Client auf meinem Handy. Klappt hervorragend über WLAN.

Hab den Server nur mit rudimentären Funktionen ausgestattet. Es ist also noch viel Raum für Erweiterungen. :smiley: Was ich aber gemacht hab ist ne umfangreiche Onlinehilfe einzubauen. Nutzt sie! Dann kann mir hier die Tipperei sparen. :stuck_out_tongue:

Bas bisher geht:

[ul]
[li]Objektbaum kategorieweise filtern und anzeigen.[/li][li]Navigieren im Objektbaum[/li][li]Objektinfos anzeigen lassen (nur für Scripte und Variablen)[/li][li]Variablen auslesen[/li][li]Variablen setzen[/li][li]Scripte ausführen[/li][/ul]

Ich hab das Projekt „Telnet Quick User Interface“ genannt. Weil „TQUI“ aber doof ist… heisst er jetzt TQuila. So! :stuck_out_tongue:

Was mich jetzt interessiert ist ob er gut funktioniert und ob ihr ihn nützlich findet. Gerade unter Linux sollte es so ein Leichtes sein so auf IPS zuzugreifen. Ich denke da an die VDR Jünger oder Linux-Progger.

Im Chat ist die Idee für nen Telnet-Client fürs IPS-Script entstanden. Damit könnte man dann recht einfach den umgekehrten Weg gehen und Dateioperationen auf nem entfernten Rechner (Win und Linux, sicherlich auch Mac) durchführen. Wär das was? Dann könnt ich da mit geringem Aufwand was stricken und als Erweiterung in TQuila einbauen.

Gruß,

Toni

Edit:

Bugfix hochgeladen - Datei Datum vom 17.06.09, 16:00 Uhr

TQuila.PNG

TQuila.zip (371 KB)

Auch, wenn mein Download hier nicht zählt (Counter wurde nicht auf 1 hochgesetzt), habe ich jetzt mal das ganze installiert. Funktioniert wunderbar.
Allerdings mag der paranoide Informatiker in mir ungesicherte Verbindungen nicht. Als normale .exe, die ich dann über SSH aufrufen kann, wäre mir das ganze lieber ;).
Wenn Du Deinen Geek-Faktor noch mehr in die Höhe schreiben willst könntest Du ja auch eine Dateisystemerweiterung für Linux ala /proc machen. Dann könnte man IPS mit sh-Kommandos zu Leibe rücken :).

PS: ln -s dir ls

Jaja, immer wieder das Ding mit der security…

SSH ist so ein Ding dass ich mir auch noch ansehen muss. Wenn ich das Thema durch hab überleg ichs mir.

Ausserdem hab ich ein Usermanagement angefangen zu implementieren, so dass man zumindest ein Passwort braucht um da was zu beschicken. Für ein IP-Binding hab ich auch schon Code bereit. Mach mir die Mühe aber erst wenn es auch wirklich jemand braucht und nutzen will.

Nicht umsonst steht „prove of concept“ im Titel :wink:

Edit:

Dateisystemerweiterung hatte ich auch schon im Sinn, aber ich glaub das ist aufwändig… schwitz

Toni

Für privat ist WinSSHD (Bitvise) kostenlos und einfach einzurichten. Dann nur noch das Tool als .exe und fertig.

Edit:

Ich kenne nur das „proof of concept“… :wink:

Kommt halt drauf an was man damit aussagen will, oder? :stuck_out_tongue:

Das Tool als Exe sehe ich nicht als „Lösungsmittel“. Denn dann müsste ich über SOAP mit IPS kommunizieren, und wo läge dann der Sinn darin? Ein SSH/Telnet-SOAP Gateway? Ich weiss ja nicht…

Edit:

DAS wär Geek-Faktor pur… :smiley:

[Edit2]Mann könnte TQuila aber per Script aktivieren/deaktivieren, wenn das gewünscht würde[/Edit2]

da „cd“ nur auf Kategorien funktioniert, konnte ich leider nich die Variable meines Z-Wave Aktors einsehen. Es wäre besser, wenn cd überall „rein“ könnte.

„show“ funktioniert leider nicht auf Instanzen. Laut help :slight_smile: soll es auf allen Objekten funktionieren.

Es wäre cool, wenn du das Modul als Kern Instanz deklariert und automatisch erstellen lässt.
Ich würde außerden alle I/O, Splitter, Kern Instanzen ausblenden und nur bei Anfrage anzeigen. Wie unter Linux wenn etwas versteckt ist. Quasi ls -al

Code Schnipsel hab ich dir per PM geschickt.

paresy

Clipboard01.jpg

Hallo,

ich habe es noch nicht probiert, denke aber, dass das Teil der Hammer ist. Endlich kann ich auf einfachste Art und Weise Variablen von meinem VDR aus beeinflussen.

Ich würde vor Freude überschäumen, wenn noch etwas in Richtung SSH oder IP-Bindung oder Nutzerverifizierung vorgesehen wäre :smiley:

Vielen Dank für die viele Arbeit.

Stefan

Bugfix:

[ol]
[li]Den Befehl „cd“ hab ich überarbeitet. Er funktioniert nun dynamisch mit allen Objekten un prüft ob überhaupt Unterobjekte existieren.[/li][li]„show“ hatte Bauchweh mit IDs. Das sollte nun auch funktionieren.[/li][li]„list“ kennzeichnet nun Objekte, die Unterobjekte haben, in die ich also mit „cd“ hinein wechseln kann.[/li][li]TQuila ist nun eine Kern-Instanz. Man braucht sie nicht mehr extra zu erzeugen.[/li][/ol]

Toni

SSH sollte es heutzutage schon sein. Man könnte Telnet vielleicht über Open-SSH tunneln, aber das wäre schon wieder um ein paar Ecken herum.

Ansonsten super Idee!!! Damit hätte mein Linuxserver auf die auf ihm laufende virtuelle IPS-Maschine Zugriff. Da lässt sich bestimmt einiges mit verunstalten :cool:

Hab mir mal WinSSHD auf den Rechner drauf gemacht. Erm… Ich hab keinen blassen Schimmer was ich damit anstellen soll… :smiley:

Kann man dem ding sagen, dass man die gesicherte Verbindung lokal auf einen anderen Port umgeleitet haben möchte? Wie kann ich sagen was der Server auf meiner Maschiene machen soll? Oder kann ich nur meine Verzeichnisstruktur anzeigen lassen?

Toni

Du hast einfach ne abgesicherte Windows-Eingabeaufforderung. Rechte werden von Deinen Windows-Accounts übernommen. http://www.ip-symcon.de/forum/f53/ip-symcon-command-line-interface-cli-7340/ lässt sich damit dann z.B. bedienen, falls Du das schon kennst ;). Den Port kannst Du natürlich umstellen (Control Panel -> Edit Settings -> Server -> Bindings) oder Dir einen Windows-Benutzer anlegen, der nicht viel ausführen darf.
Ich brauche das ganze hauptsächlich um mich per Socks auf Ports zu tunneln, die in der Uni sonst nicht erlaubt sind.

Hm… Ja aber ich will ja eben nicht auf die DOS-Konsole. Einen SSH- oder Telnetserver der auf diese Konsole kommt bräuchte ich nicht neu zu schreiben. Davon gibts sicher tausende. Und ein anderes Tool, dass von der DOS-Box IPS bedient hast du schon erwähnt. :cool:

Bin kein Netzwerker. Wie funktioniert son Tunnel? Kann ich mit diesem WinSSHD irgendwie den Port 23 erreichen wo dann TQuila antwortet? Oder mit ner anderen Software? Weil sonst sehe ich da keine chance. Die Komponenten die wir auf Arbeit verwenden (werden) sind teuer und privat sehe ich keine Chance die zu lizensieren.

Toni

Wenn Du mit putty zur SSH-Konsole verbunden bist kannst Du mal auf Change Settings -> Connection -> SSH -> Tunnels gehen und dann Source Port 1234, Destination localhost:23, Local hinzufügen und auf apply klicken. Dann kannst Du noch ne putty-Session starten zu localhost:1234 mit telnet als Modus und deine telnet-Verbindung ist über SSH getunnelt.

Super!

Funktioniert genau wie du gesagt hast. :slight_smile: Bin mir nur jetzt noch nicht sicher was mir dieses Wissen jetzt nutzt. :smiley:

Toni

Du brauchst nur noch einen Port freigeben und kannst von extern alle Sachen gesichert tunneln und hast damit Dein Paranoiditätsbewusstsein gestärkt ;).

Ahja… nun macht das auch Sinn.

Ich hab grad mit der kostenlosen Plink.exe (PuTTY Website) über die kommandozeile nen Tunnel aufgebaut. So lässt sich das einfach automatisieren. Natürlich muss ein auf der IPS-Maschiene ein SSL-Server laufen. Diesen in TQuila zu integrieren macht absolut keinen Sinn und wäre teuer. Wer also Sicherheit will müsste sich in der kostenlosen Software-Auswahl bedienen. Stichworte sind hierzu ja schon genug gefallen. Putty, Plink, WinSSHd und FreeSSHd sind einige davon.

Ich werde mich dann lieber um IP-Binding und ein simples User- und Rechtesystem kümmern. Übrigens hab ichs tatsächlich hinbekommen über TQuila DOS-Befehle komfortabel ans Betriebsystem umzuleiten. :smiley: