LaireTM
Anmeldungsdatum: 23. Februar 2009
Beiträge: 120
Wohnort: Kassel
|
Hallo, ich bin neu in der Ubuntu Welt und bastel gerade an einem Home Media Server. Im Moment überlege ich gerade, wie ich auf dem Server ein Script, von externer Quelle, anstossen kann, welches dann zum Beispiel ein Programm startet. Externe Quelle ist zur Zeit eine Android App die ich gerade schreibe und über die ich den Server steuern möchte. Eine Lösung auf php Basis habe ich schon gebastelt, aber bin ich nicht ganz zufrieden mit. Vielleicht kann mir wer von Euch Denkanstösse geben, wie ich die Steuerung am besten verwirklichen kann.
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
So neu nach knapp 6 Jahren und 55 Beiträgen nun auch wieder nicht. 😉 Eine Lösung auf php Basis habe ich schon gebastelt, aber bin ich nicht ganz zufrieden mit.
Wo ist das Skript oder dein Problem mit deiner Lösung? Wir können dir nicht über die Schulter sehen... In einem Shell-Skript hätte ich dir nun Shell/Befehlsübersicht empfohlen, speziell wget und ssh. Aber so richtig versteh ich das Problem noch nicht. Und was du schon gemacht hast. Und warum dir das nicht gefällt. Grüße, Benno
|
LaireTM
(Themenstarter)
Anmeldungsdatum: 23. Februar 2009
Beiträge: 120
Wohnort: Kassel
|
Also ich möchte zum Beispiel von meinem Handy aus ein Script starten, was zum Beispiel den Apache Server neu startet (nur ein Beispiel). Derzeit mache ich das mithilfe von dem exec Befehl in einer PHP Datei die ich dann aufrufe, was ich persönlich als unfein empfinde. Jetzt ist meine Frage ob es evtl. eine fertige Lösung gibt, die man als API nutzen kann. Ich stell mir da ein Programm vor, welches auf einem bestimmten Port lauscht und in dem man dann Befehle konfigurieren kann.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
LaireTM schrieb:
Jetzt ist meine Frage ob es evtl. eine fertige Lösung gibt, die man als API nutzen kann.
Ist mir jetzt so erst mal nicht bekannt. Ggf. weiß jemand drüben bei Serverdienste und Dateifreigaben im Netzwerk etwas.
Ich stell mir da ein Programm vor, welches auf einem bestimmten Port lauscht und in dem man dann Befehle konfigurieren kann.
Mit dem Lauschen auf dem Port ist es ja nicht getan: man braucht ein Protokoll um Nachrichten auszutauschen. Die Lösung mit HTTP und PHP ist schon nicht die schlechteste. Ich hoffe aber, Du hast an die Sicherheit gedacht. Besser wäre, nur mit HTTPS zu lauschen und die Authentifizierung mit einem Client Certificate zu machen. (Ich hoffe mal, diese Methode der Authentifizierung wird von Deinem Mobiltelefon unterstützt.) Wenn Du das ganze ins Internet hängst, musst Du Dir auch über die Gefahren klar sein (DOS z.B. oder Einbruch in das System).
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Was spricht gegen ssh mit Zertifikat? Braucht natürlich eine dauerhafte Verbindung, aber kann man ja auf-/ abbauen in der App. Vielleicht haben andre noch andre Ideen.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Benno-007 schrieb: Was spricht gegen ssh mit Zertifikat?
Dass man damit mehr machen kann (also: beliebige Programme aufrufen) als mit einer speziellen API, die nur bestimmte Funktionalitäten zulässt.
Braucht natürlich eine dauerhafte Verbindung, aber kann man ja auf-/ abbauen in der App.
Ob man die braucht, hängt davon ab, was man machen will. Und: es gibt auch noch screen bzw. tmux .
|
Benno-007
Anmeldungsdatum: 28. August 2007
Beiträge: 29240
Wohnort: Germany
|
Ich ging jetzt von einer App für den alleinig eigenen Privatgebrauch (nicht für Fremde) aus, aber ok, das Handy kann auch geknackt werden...
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12822
|
Benno-007 schrieb: Ich ging jetzt von einer App für den alleinig eigenen Privatgebrauch (nicht für Fremde) aus, aber ok, das Handy kann auch geknackt werden...
Das Problem ist nicht das Mobiltelefon sondern der Server. Wenn eine API nur fünf Befehle zulässt, dann kann man auch nur diese fünf ausführen. Wenn man einen SSH-Zugang hat, dann kann man alle möglichen Befehle ausführen. Man natürlich sagen, dass der Server sowieso den SSH-Port offen hat, weil man den für die Administration braucht. Ggf. kann man dessen Erreichbarkeit z.B. per Firewall aber auf wenige Netze beschränken und den anderen Port vom Internet aus erreichbar halten. Dann würde die Trennung Sinn ergeben. Dann ist natürlich auch noch die Frage, ob der Client überhaupt eine SSH-Verbindung aufmachen kann. Aber davon gehe ich jetzt mal aus.
|
lubux
Anmeldungsdatum: 21. November 2012
Beiträge: 13933
|
LaireTM schrieb: Ich stell mir da ein Programm vor, welches auf einem bestimmten Port lauscht und in dem man dann Befehle konfigurieren kann.
Ja, das gibt es. Ich mache das z. B. mit socat:
socat -u -T 1 TCP4-LISTEN:55555,reuseaddr,fork,tcpwrap,range=<192.168.178.0/24> EXEC:/home/$USER/mpg123start
Starten und stoppen kann ich das Script "mpg123start" über das Internet (... externe IP-Adresse und hier lauschender Port 55555) mit dem Browser (auch vom Smartphone) oder nc oder nmap oder gleichwertig. Absichern kann man das z. B. mit iptables, hosts.allow oder mit einer Art "lock-Datei". "range=<192.168.178.0/24>" ist nur ein Beispiel für das (W)LAN bzw. VPN. Siehe z. B. auch die manpage von socat.
:~$ sudo lsof -nPi | grep -i socat
socat 3546 <user> 3u IPv4 695322 0t0 TCP *:55555 (LISTEN)
|
LaireTM
(Themenstarter)
Anmeldungsdatum: 23. Februar 2009
Beiträge: 120
Wohnort: Kassel
|
Also die App ist für Android, ssh an sich ist möglich. Das ganze wird nur in einem privaten Netzwerk genutzt, also keine Anbindung an die Ausswelt.
|