Server Steuerung via SMS

feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Server Steuerung via SMS

Beitrag von feissmaik »

Wer seinen Server über SMS steuern möchte kann sich ja mal folgende Anleitung antun... Damit ist es auch möglich seinen Router neu zu starten o.ä. fals er die Internet Verbindung verliert o.ä.
Vorraussetzung ist allerdings ein UMTS SurfStick - der muss sich aber nicht einwählen, es wird nur die darin befindliche SIM Karte genutzt um SMS's zu empfangen

Der surfstick brauch nur ne gültige SIM um SMS empfangen zu können - online brauch er nicht sein
Also keinen UMTS router - der Stick muss direkt in den Server gesteckt werden sonst können die SMS's nicht ausgelesen werden (GSM Modem)

-------------------------------------------------------------------------------------
Den Server per SMS Nachrichten zu steuern ist eine gute Notlösung. Diese kann vor allem sehr hilfreich sein, wenn die Internetverbindung einmal abbricht und man z.B. den Router über den Server neu starten möchte oder der ddclient die IP wieder einmal nicht updatet. In dieser Anleitung zeige ich euch, wie ihr den Dienst installiert/einrichtet und einige Anwendungsbeispiele gibts auch.

Für dieses Projekt braucht man zusätzlich natürlich irgendeinen Internetstick, welcher am Server angesteckt ist. Ich benutze einen Huawei E220, es sollten jedoch auch andere funktionieren. Softwareseitig baue ich auf “SMS Server Tools“, welche es ermöglichen bei Empfang einer SMS Nachricht ein Skript zu starten.

Installation

Als Vorbereitung installieren wir zusätzlich benötigte Pakete:

apt-get install build-essential manpages-dev

Jetzt laden wir die “SMS Server Tools” in das “home” Verzeichnis herunter. Vorher könntet ihr noch auf der Herstellerseite nachsehen, ob es sich um die neueste Version handelt, da diese Software aktiv weiterentwickelt wird und es immer wieder Updates gibt. Den folgenden Befehl müsst ihr dann anpassen.

wget -P ~/ http://smstools3.kekekasvi.com/packages/smstools3-3.1.14.tar.gz

Wir entpacken das Installationsarchiv:

tar -xzf ~/smstools*.tar.gz

Nun wechseln wir in dieses Verzeichnis und kompilieren/installieren die Software:

Code: Alles auswählen

cd ~/smstools*
make -s install
Im Zuge der Installation werden auch die Order für eingehende usw. Nachrichten in “/var/spool/sms” angelegt.

Konfiguration des Modems

Um das Modem in der Konfigurationsdatei richtig anzugeben, müssen wir wissen mit welcher USB-Schnittstelle dieses verbunden ist (Modem muss natürlich angesteckt sein).

dmesg | grep ttyUSB

Sieht die Ausgabe folgendermaßen aus, sieht man in diesem Fall, dass das Modem an “ttyUSB0″ hängt. Manche Modems erscheinen als wären sie zwei mal angeschlossen. Dann muss man einfach durchprobieren, mit welchem es funktioniert.

Code: Alles auswählen

[ 5374.832889] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
Jetzt öffnen wir die Konfigurationsdatei der Server Tools und geben dort die Daten des Modems ein.

nano /etc/smsd.conf

Hier ändert man “device” auf das vorhin Herausgefundene und übergeben auch die PIN, sofern man sie nicht deaktiviert hat (ansonsten einfach löschen).

Code: Alles auswählen

[GSM1]
device =  /dev/ttyUSB0
incoming = yes
pin = xxxx
Danach starten wir den Service neu und schicken eine SMS an den Server.

/etc/init.d/sms3 restart

Ist die SMS angekommen wird sie unter “/var/spool/sms/incoming” gespeichert und wir können mit dem nächsten Schritt fortfahren.

Scripts ausführen

Um bei eingehender Nachricht ein Script auszuführen, müssen wir folgende Zeile in die “/etc/smsd.conf” einfügen:

Code: Alles auswählen

eventhandler = /usr/local/bin/smsscript.sh
Speichert ihr das Script an einer anderen Stelle, dann passt die Zeile an. Meine komplette Konfig-Datei sieht jetzt so aus:

Code: Alles auswählen

devices = GSM1
logfile = /var/log/smsd.log
loglevel = 7

eventhandler = /usr/local/bin/smsscript.sh

[GSM1]
device =  /dev/ttyUSB0
incoming = yes
pin = xxxx
Dieses Skript erstellen wir und machen es ausführbar.

touch /usr/local/bin/smsscript.sh && sudo chmod +x /usr/local/bin/smsscript.sh

Und wieder den Service neu starten:

/etc/init.d/sms3 restart

Script und Anwendungsbeispiele

Das nachfolgende Sampleskript vergleicht das Passwort welches am am Anfang der Datei definiert wird mit dem der Nachricht und führt erst dann den Befehl aus.

Die Befehle und das Passwort werden in Großbuchstaben umgewandelt, da auf Telefonen meistens die Autokorrektur aktiviert ist, welche teilweise Anfangsbuchstaben korrigiert. Aus diesem Grund müsst ihr auch das Passwort in Großbuchstaben in das Skript schreiben. Die SMS selbst ist nicht case sensitive, also Groß- und Kleinschreibung werden nicht beachtet.

Das Passwort sorgt hier für etwas Sicherheit. Man könnte auch eine Whitelist erstellen, wodurch “SMS Server Tools” dann nur enthaltene Telefonnummern akzeptiert.

Um dieses Script zu verwenden muss die Nachricht so aussehen:

Code: Alles auswählen

passwort befehl
Wird das Passwort erkannt, führt das Skript je nach übermittelten Befehl den richtigen Case aus. Für zusätzliche Anwendungen könnt ihr einfach weitere Cases hinzufügen. Kopiert den folgenden Code (nach Anpassungen) in die “/usr/local/bin/smsscript.sh” Datei.

Code: Alles auswählen

#!/bin/bash
PASSWORD="XYZ"

if [ "$1" = "RECEIVED" ]; then

  TEXT=`sed -e '1,/^$/ d' < $2`

  # Make text uppercase:
  TEXT=`echo "$TEXT" | tr "a-z" "A-Z"`

  RCVPASS=`echo "$TEXT" | cut -d" " -f1`
  ACTION=`echo "$TEXT" | cut -d" " -f2`

  if [ "$PASSWORD" = "$RCVPASS" ]; then

      case $ACTION in
      
        #Reboot Server
        REBOOT)
          reboot
        ;;
        
        #Shutdown Server
        SHUTDOWN)
          shutdown -h now
        ;;
        
        #Reboot DDWRT Router
        REBOOTROUTER)
          plink root@routerip -pw passwort "reboot"
        ;;
        
        #Reconnect DDWRT Router
        RECONNECTROUTER)
          plink root@routerip -pw passwort "stopservice wan && startservice wan"
        ;;   
        
      esac

   fi

fi
#Reboot Server / PASSWORT REBOOT
Standardmäßiger Neustart des Servers.

#Shutdown Server / PASSWORT SHUTDOWN
Dieser Befehl fährt den Server herunter.

#Reboot DDWRT Router / PASSWORT REBOOTROUTER
Um “plink”-Anweisungen zu verwenden müssen die Putty-Tools installiert sein.

apt-get install putty-tools

Danach aktiviert man SSHd am Router um die Steuerung per SSH zu ermöglichen. Dieser Plink Befehl sendet ein einfaches “reboot” an den Router.

plink root@routerip -pw passwort "reboot"

#Reconnect DDWRT Router / PASSWORT RECONNECTROUTER
Dieser Befehl beendet die Internetverbindung am DDWRT Router und verbindet danach wieder.

plink root@routerip -pw passwort "stopservice wan && startservice wan"

Dienst automatisch Starten

Manuell startet man die “SMS Server Tools” mit:

/etc/init.d/sms3 start

Automatisch beim Boot starten:

update-rc.d sms3 defaults

-------------------------------------------------------------------------------------
quelle: http://blog.is-a-geek.org/ubuntu-server ... ernsteuern

(danke @jabba76 für diesen Tip)
Du musst nicht kämpfen um zu siegen
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: Server Steuerung via SMS

Beitrag von feissmaik »

Angepasstes /usr/local/bin/smsscript.sh Script von pyrotechniker um über SMS auch OScam Reader neu zu starten:

Code: Alles auswählen

#!/bin/bash
PASSWORD="PASSWORT"
OSCAMwiURL="http://user:pass@127.0.0.1:8080"

if [ "$1" = "RECEIVED" ]; then

	TEXT=`sed -e '1,/^$/ d' < $2`

	# Make text uppercase:
	TEXT=`echo "$TEXT" | tr "a-z" "A-Z"`

	RCVPASS=`echo "$TEXT" | cut -d" " -f1`
	ACTION=`echo "$TEXT" | cut -d" " -f2`

	if [ "$PASSWORD" = "$RCVPASS" ]; then

		case $ACTION in
      
			#Reboot Server
			REBOOT)
				reboot
			;;
        
			#Shutdown Server
			POWEROFF)
				poweroff
			;;
        
			#OScam neu starten
			RESTARTOSCAM)
				o restart
			;;
        
			#HD+ Reader neu starten
			HDPLUS)
				curl -s --digest "$OSCAMwiURL/readers.html?label=hdplus&action=disable" >/dev/null
				sleep 0.5
				curl -s --digest "$OSCAMwiURL/readers.html?label=hdplus&action=enable" >/dev/null
			;;

			#Sky Reader neu starten
			SKY)
				curl -s --digest "$OSCAMwiURL/readers.html?label=sky&action=disable" >/dev/null
				sleep 0.5
				curl -s --digest "$OSCAMwiURL/readers.html?label=sky&action=enable" >/dev/null
			;;

			#ORF Reader neu starten
			ORF)
				curl -s --digest "$OSCAMwiURL/readers.html?label=orf&action=disable" >/dev/null
				sleep 0.5
				curl -s --digest "$OSCAMwiURL/readers.html?label=orf&action=enable" >/dev/null
			;;
        
			#Reconnect DDWRT Router
			RECONNECTROUTER)
				plink root@routerip -pw passwort "stopservice wan && startservice wan"
			;;   
        
		esac

	fi		

fi
Du musst nicht kämpfen um zu siegen
TommyH99
P E B K A C
Beiträge: 428
Registriert: So 17. Apr 2011, 13:35
Kontaktdaten:

Re: Server Steuerung via SMS

Beitrag von TommyH99 »

Nach mehreren Test Tagen - sind wir drauf gekommen, das folgendes Paket installiert gehört...

Stick: E169 auch bekannt unter k3765 (thx Alx83 ;)

"firmware-linux-nonfree"

apt-get install firmware-linux-nonfree
Binary firmware for various drivers in the Linux kernel
This package contains the binary firmware for various drivers in the Linux kernel. This is a collection of firmware blobs which are not individually large enough to warrant a standalone package.
[96586.753583] USB Serial support registered for GSM modem (1-port)
[96586.754811] option: v0.7.2:USB Driver for GSM modems

[97408.644264] option 1-5.4.4:1.0: GSM modem (1-port) converter detected
[97408.644795] usb 1-5.4.4: GSM modem (1-port) converter now attached to ttyUSB1
[97408.648926] option 1-5.4.4:1.3: GSM modem (1-port) converter detected
[97408.649387] usb 1-5.4.4: GSM modem (1-port) converter now attached to ttyUSB3
[97408.650536] option 1-5.4.4:1.4: GSM modem (1-port) converter detected
[97408.650947] usb 1-5.4.4: GSM modem (1-port) converter now attached to ttyUSB6
[97410.387550] option 1-5.4.4:1.1: GSM modem (1-port) converter detected
[97410.387999] usb 1-5.4.4: GSM modem (1-port) converter now attached to ttyUSB7
[97410.388199] option 1-5.4.4:1.2: GSM modem (1-port) converter detected
[97410.388573] usb 1-5.4.4: GSM modem (1-port) converter now attached to ttyUSB8
2013-02-14 18:06:51,5, GSM1: SMS received, From: 12314151251
2013-02-14 18:06:57,3, GSM1: Exec: eventhandler said something:
2013-02-14 18:06:57,3, GSM1: ! OScam : restart
2013-02-14 18:06:57,3, GSM1: ! OScam : beendet
2013-02-14 18:06:57,3, GSM1: ! OScam : gestartet
if ($ahnung == false or $problem == true) { read FAQ; use SEARCH; use GOOGLE; } else { use brain; make post; }
Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste