[in arbeit] Neues Paket: Halt On Lan (HOL)

Ok, das wäre eine mögliche Lösung. Ich sagte ja, unter Linux wird es nicht das Problem sein. Aber wofür willst du denn OpenSSH auf freetz haben? Reicht dir dropbear nicht? Hier geht es doch darum, dass man den Server auf dem Rechner hat und nicht auf der Box.

Ich sehe es nicht kritisch, wenn der Angreifer den Rechner runterfahren kann. Normalerweise wird der Rechner auch ordnungsgemäß runtergefahren, also als Schädugung kann man es nur bedingt ansehen. Viel gefährlicher wäre, wenn der Angreifer root wird und an die Daten kommt. Deswegen ist meiner Meinung nach die Beschränkung der Rechte auf ein simples Runterfahren völlig ausreichen. Ich würde sogar eine zweite Instanz von OpenSSH-Server dafür extra auf einem anderen Port starten, damit es eindeutig ist. Ich würde sogar weiter behaupten, dass man für ein reines Herunterfahren entweder überhaupt keine Schlüssel/Passworter braucht oder nur ganz simple (z.B. telnet ohne Verschlüsselung). Denn immer hin befinden wir uns im Normalfall im heimlichen Netz hinter der Firewall.

MfG
 
also für windows gibt es freessh, da kann man eigene uder einrichten, ob man dann denen nur die rechte aufs runterfahren geben kann, weiß ich nicht .... schaut euch mal http://sourceforge.net/projects/ncid an, denke wenn wir es als client auf die rechner bekämen, könnten wir mit rawmsg was machen ...
 
Das ist zwar gut und schön, ich sehe bei diesem ncid aber wiederum die gleichen Probleme:
a) Es läuft höchstwahrscheinlich im User-Modus (also kein Dienst)
b) Man muss da eine Schnittstelle schaffen, um überhaupt an die Windows-Kommandos (shutdown) ranzukommen

Deswegen SSH- oder Telnet-Server sind schon eher eine bessere Richtung. Gibt es eigentlich OpenSource TELNET Server Projekte?

Edit: Ich hab was gefunden:

PWTS-Telnet-Server. Es ist zwar für normalen Gebrauch nicht unbedingt zu empfehlen, weil telnet und sogar angeblich ohne passwort. Im dazugehörigen Forum auf SouceForge hatte ich aber eine interessante Frage und Antwort gefunden. Einer hat gefragt, ob man default-Shell von command.com (cmd.exe) auf was eigenes umstellen kann. Der Autor hat ausführlich erklärt wie das geht. D.h. man kann wahrscheinlich als shell dann shutdown.exe nehmen und muss nur finden, wo man den telnet Port von 23 auf was anderes umbiegen kann. So ähnlich kann man vermutlich auch auf Linux vorgehen: shutdown als shell nehmen. Dann reicht es wahrscheinlich aus einfach eine Verbindung aufzubauen und schon ist der Rechner "weg". Anstatt shutdown.exe kann man dann irgendeinen Parser nehmen, die evtl. Parameter einstellen und abspeichern kann. Dieser Parser muss dann nicht "dienstfähig" sein.


MfG
 
Zuletzt bearbeitet:
Wäre zumindest unter Linux mein Weg. Ohne großartiges Zeugs. Als Shell einfach init 0 und gut ist.
 
@Silent-Tears: Kannst du bitte paar Tipps geben, wie man es unter Linux einrichten kann? Ich würde es mir so vorstellen: ein rc.script erstellen, welches telnet-Server zusätzlich (oder nur alleine) auf einem anderen Port (z.B. 2222) startet und "init 0" als shell einrichtet. Wäre es per commando-Aufruf in diesem rc.script dann möglich, oder musste man dann irgendwas noch in Benutzerprofilen ändern (sprich einen speziellen Benutzer anlegen)?

MfG
 
unter windows könnte man KpyM Telnet/SSH Server (http://www.kpym.com) umschreiben, ist ein telnet/ssh server, der als dienst läuft ...
 
Hatte ich doch oben bereits gepostet. Ich kenne aber diesen KpyM nicht. Deswegen hatte ich gefragt, ob jemand es benutzt hat. Scheint aber relativ neu zu sein.

MfG
 
sorry, hatt ich übersehen, werd mir das morgen mal anschauen, denke aber es es was für hol ist...wär enoch linux...
 
Mit Visual Studio für .NET ist es möglich, selber einen Service zu programmieren. Ich denke, das wäre für das Projekt einfacher, als irgend ein fertiges Programm zu nehmen und dort die hälfte wieder raus zu löschen. Ich selber habe eigentlich genügend Programmiererfahrung und sollte so einen Dienst gebacken bekommen, auch wenn ich es noch nie gemacht habe.

Wenn wir uns auf ein Protokoll einigen, müsste es ja ein "leichtes" sein, für Windows, Linux und dann auch noch Mac jeweils ein Programm zu schreiben, welches HOL via Freetz unterstützt.

Was denkt ihr?
 
denke ich auch, würde es bevorzugen, wenn wir dem dient parameter übergeben könnten, und der dienst dann "entscheidet" was er tut ...
 
Windows hat ein remote shutdown, ich vermute das geht über RPCs, auf jedenfall verschlüsselt und der User der es ausführt muss ein Shutdownprivileg haben. Einen Dienst zu bauen der einfach auf ein UDP Paket reagiert ist nicht schwierig, aber das Ganze ist unverschlüsselt dann wieder ein Sicherheitsrisiko. Ein .NET Programm würde ich daraus nicht machen, ist Overkill weill dann ja die Runtime dazu installiert sein muss. Für Dienste gibt es C-Rümpfe und das Teil braucht dann nur ein paar kB.
Beim Runterfahren gibt es noch die weiche und harte Option: wenn ein Programm beendet wird und nochmal nachfragt ob gespeichert werden soll dann hängt die 'weiche' Variante, mit 'ForceShutdown' können dagegen Daten verloren gehen. Das sollte also auch parametrierbar sein. Und wenn am Rechner doch noch jemand gearbeitet hat sollte der eine Wartezeit bekommen damit er den Shutdown evtl. mit 'shutdown -a' abbrechen kann.

Nachtrag:
Microsoft verrät sogar selber wie der RemoteShutdown funktioniert: http://download.microsoft.com/download/a/e/6/ae6e4142-aa58-45c6-8dcf-a657e5900cd3/[MS-RSP].pdf
Das ist ganz frisch, danach hatte ich selber schon länger gesucht. Aber ein kleiner (wenn auch unsicherer Dienst) ist bestimmt einfacher zu bauen...
 
Zuletzt bearbeitet:
Wie wäre es mit net use und shutdown in einem Skript?
Code:
net use \\<rechner>\ipc$ <kennwort> /user:<benutzer>
shutdown -s -m \\<rechner>
Es gibt auch die Möglichkeit, den angemeldeten Nutzer vor einem Shutdown zu warnen - siehe hier.
Man kann das auch per Skript so machen, dass der an Windows Angemeldete (z.B. aus der Familie zu Hause) noch die Chance bekommt, zuzustimmen oder abzulehnen:
Code:
@ECHO OFF
SET IP=111.222.123.234
SET /P frage="Wollen Sie die IP %IP% herunterfahren (N/J) ? "
IF "%frage%" == "J" (
  ECHO OK
  ECHO SHUTDOWN fuer %IP%
  REM net use und shutdown
)
 
Zuletzt bearbeitet:
Ich denke, jeder hat jetzt schon mind. .NET 2.0 auf seinem Rechner, daher finde ich das jetzt nicht mehr als den "Overkill". Und wie ich schon sagte, müssten wir eine Art Protokoll vereinbaren, damit nicht jeder ganz einfach jeden Rechner runterfahren kann. Mit shutdown -t x -c "xx" kann man den shutdown ja auch verzögern und ein Kommentar auf dem Bildschirm anzeigen lassen (wie der eine Wurm das ja auch geschafft hast), das könnte man aber auch sicher durch den Service dann selber regeln lassen. Aber der Administrator sollte aber auch für einen force shutdown das Recht haben
 
ich habe noch folgenden Zauberspruch gefunden:
"net rpc SHUTDOWN -C "some comment here" -f -I x.x.x.x -U user_name%password"
Von einem StinkyLinux aus klappt das sogar, jetzt muss man nur noch der FB die net-Kommandos beibringen. Ist das evtl. in einem package mit drin?
 
die "net" befehle sind von samba ... also nicht wirklich geeignet, da samba nicht auf alle boxen passt
 
nur was ist mit linuxclients, muss auf denen samba drauf sein?
 
Wenn man es mit "net shutdown" machen will, dann auf jeden Fall. Auf auf einem PC-Linux ist es kein Problem, Samba unterzubringen.
Auf einem PC-Linux ist es aber einfacher mit SSH, und SSH ist auf fast jedem Linux-System schon aktiv.
 
Zu Windows-eigener Remote-Shutdown Geschichte: Ja, es ist theoretisch möglich und es funktioniert auch bei mir in der Windows Welt. Das läuft wahrscheinlich über die gleichen Ports, wo Samba lauscht und kann deswegen auch von Linux-Rechner über SAMBA aus ausgeführt werden. Diesen Weg könnte man gehen, aber die Nachteile waren oben erwähnt. Ich bezweifele auch, dass man über SAMBA einen Linux-Rechner runterfahren kann. Also wird man hier dann zweigleisig fahren müssen. Und was ist mit MAC? Also, wie gesagt, ich sehe SAMBA nur als äußerste Notlösung, wenn alles andere nicht geht, oder als Feature zusätzlich zur anderen Lösung (im Script sind es nachher nur 2-3 Zeilen).

Zu Sicherheit. Sie ist nicht erforderlich, da man sich im Heimnetz befindet. Wir wollen ja da bewusst keine Passwörter übertragen. Es setzt aber voraus, dass mit dem offenen Port/Dienst nur einziges, das Herunterfahren möglich wäre.

Möglichkeiten zum abspeicher der Dateien usw. "force"-Modus. Das alles kann man auf dem Client selbst vorkonfigurieren. Dafür muss man nicht die volle Pallette inklusive verblieben Zeit zum Nachdenken usw. per Netz senden. Was ich daraus aber rauslese: Man sollte nach Möglichkeit das Senden von zwei Arten Befehlen für Shutdowns vorsehen: einmal "soft" und einmal "force". Und auf dem Client kann man dann einstellen, was "soft" genau heißt (Wartezeit, etc.)

Und zum Angebot Programme für Dienste zu schreiben: Herzlich willkommen!
Vorgaben/Protokoll kannst du selbst definieren. Es würde reichen wenn Dienst auf einem freikonfigurierbaren Port nach einem bestimmten Message-Muster hört (besser sogar nach 2-3) und als Reaktion ein (2-3) freikonfigurierbares Programm (shutdown.exe oder noch besser eine .bat Datei) ausführt. Das würde als erstes völlig ausreichen. Alles andere ist kein Problem für Windows. So was ähnliches wäre auch für Linux und Mac gut.

MfG
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.