permalink

19

How To: Anleitung eigener SiriProxy Server unter Mac OS / Windows

von  Olli  |  

Mit dem Erscheinen des Jailbreaks für die Firmware 5.0.1 für iPhone 4 / 3GS / iPad 1, fand auch ein Siri Port namens Spire (Blogeintrag von chpwn den Weg auf unsere Geräte. Ohne hier jetzt näher auf die Vorgehensweise zum Jailbreak oder der eigentlichen Installation von Spire einzugehen, erläutern wir, wie man sich zu Hause einen eigenen SiriProxy Server mit Hilfe eines iPhone 4S aufsetzt, um Siri auch auf einem iPhone 4 oder 3GS nutzen kann.

Der SiriProxy wurde weder von uns entwickelt, noch können wir sagen, wie lange diese Vorgehensweise funktioniert. Soviel sei gesagt: Derzeit geht es!

Diese Anleitung ist frei übersetzt und mit eigenen Anmerkungen aus meinem Selbstversuch versehen. Diese hier benutze SiriProxy GUI ist entwickelt von Nick Whyte, einem 16-jährigen Australier, eigentlich unglaublich, aber er versteht sein “Handwerk”.

Quelle: Nick Whytes Blog Nicks Twitter @nickw444


 

Grundvoraussetzungen

  • iPhone 4S (Eigenes oder eines Freundes für die Zertifikate)
  • iPhone 4/3GS/iPod touch 4. Gen (Jailbreak + Spire Installation)
  • Einen Linux-Rechner oder eine virtuelle Linux-Maschine
  • MAC: Wenn ihr einen Mac nutzt, empfehlen wir Parallels Desktop (Testversion auf der Herstellerseite verfügbar), Ubuntu könnt Ihr nach erfolgreicher Installation direkt in Parallels herunterladen und installieren. Im Anschluss via Software Center alle Aktualisierungen laden und die VM neustarten.
  • WINDOWS: Solltet ihr Windows nutzen, empfehlen wir die VirtualBox von Oracle + Ubuntu 11.10 Download (beides kostenfrei), auch hier nach erfolgreicher Installation die Updates laden & die VM neustarten.
  • Als Netzwerktyp auf beiden Systemen muss Netzwerkbrücke / Bridged Mode in den VM-Einstellungen verwendet werden, zudem empfiehlt es sich der VM eine feste IP-Adresse im Netzwerk zuzuordnen.
  • Download des SiriProxy Installers von Nick Whyte => Link (bitte aus der VM heraus herunterladen)

Folgende Schritte wurden jeweils in der Ubuntu-Oberfläche ausgeführt!

Installation

Öffnet das Terminal aus Applications-> Zubehör-> Terminal

Sobald das Terminal geöffnet ist, werden wir mit dem Installationsvorgang beginnen. Dieses Tutorial geht davon aus, dass wir die SiriProxy Installer-Dateien in einem Ordner namens SiriProxy auf der Arbeitsfläche entpackt haben.

ANMERKUNG: Ich habe eine deutsche Version von Ubuntu und habe im Persönlichen Ordner einfach einen Ordner namens „Desktop“ erstellt und die heruntergeladene zip-Datei dorthin entpackt – damit musste ich die Befehle nicht auf „Arbeitsfläche“anpassen.

Im Terminal eingeben, Zeile für Zeile (also 2 Befehle):

cd ~/Desktop/SiriProxy

sudo ./setup.sh

Die automatische Installation startet und installiert alle erforderlichen Dateien.

Eventuelle Fragen bitte mit „j“ bzw. „y“ beantworten (je nach Systemsprache)

Anschließend installieren wir die UPnP Funktionalität (muss vom Router unterstützt werden – sonst müssen die Ports 443 TCP & UDP an die IP-Adresse der Ubuntu Maschine weitergeleitet werden im Router!)

cd upnp/

sudo ./setup.sh

Lokale IP-Adresse rausfinden / festlegen (am besten eine feste IP)
Einfach in der Nähe der oberen rechten Ecke des Bildschirms auf das Netzwerk-Symbol klicken, das wie zwei Pfeile aussieht. Sobald sich das Menü öffnet, auf den Menüpunkt “Connection Information” klicken. Unter dem IPv4-Abschnitt sieht man seine derzeitige lokale IP-Adresseund.

Für dieses Tutorial ist meine IP-Adresse 192.168.0.25. Eure ist höchstwahrscheinlich anders.

Der Einstieg in die WebUI
Jetzt  brauchen wir den Firefox Browser aus Ubuntu um das Web-Interface der SiriProxyGui aufzurufen.

http://YOUR-IP-ADDRESS/

in meinem Fall:  http://192.168.0.25/

Zertifikate erzeugen
Scrolle nach unten in der WebUI, bis zum “Certificate Generator”. SiriProxyGUI erstellt die Zertifikate fast vollautomatisch.

Hier geben wir je nach Bedarf unsere jeweilige Information ein:


WICHTIG: An dieser Stelle entscheidet Ihr, ob der Server nur im Heimnetzwerk verfügbar ist oder auch von Außen via UMTS/Internet angesprochen werden kann! Der Keys-Inject via VPN eines entfernten iPhone 4S kann auch bei der lokalen Variante genutzt werden!

Offen zugängliche Server bieten ein hohes Gefahrenpotenzial und wir raten definitiv zur lokalen Variante als Test!


Wenn wir von außen zugreifen wollen auf den Proxy: Feste IP (nur wenn vorhanden) ODER DynDNS-Name

Wenn wir nur zu Hause auf den Proxy zugreifen wollen: Interne IP-Adresse der Ubuntu-VM

Klickt einfach auf die “Generate Config File”-Taste.

Ins Terminal wechseln &  diese beiden Befehle eingeben:

cd /var/www/SiriProxy/

sudo ./create.sh

Jetzt ganz wichtig (anders als Ihr es bei den anderen Anleitungen gewohnt seid!) außer an den Stellen wo Ihr ein Passwort vergeben sollt, nur mit Enter durch den gesamten Prozess gehen – hier wird nichts mehr eingetragen – kein guzzoni – keine IP oder Sonstiges!

“You will be then asked for the exact same details again as above, except this time asked for a challenge passphrase. Once again, don’t enter anything, and make sure you leave the challenge passphrase blank as well.”

Heißt soviel: Lasst das Challenge Passwort bitte ebenso frei!

Schließlich werdet Ihr zur Eingabe des Passworts für  die ca.key gefragt. Dies ist das Passwort, das Ihr am Anfang des Create.sh Scripts eingetragen habt.

Abschließende Schritte wenn die Zertifikatserstellung abgeschlossen ist
Gehen wir zurück in den Web-Browser, wo die GUI geöffnet wird/ist. Start drücken. Der Server läuft :D

Zertifikat ans iPhone 4S übertragen / Einrichten von DNS

DNS Server: Scrollt bis zum Ende in der WebGUI  in das Feld “DNS-Generator”, dort gebt Ihr die lokale IP-Adresse des SiriProxy ein. In meinem Fall wäre es “192.168.0.25″  - danach auf die DNS Config-Taste klicken.

Im Terminal folgende Befehle eingeben:

cd /var/www/SiriProxy/

sudo ./dns.sh


Nun trennt sich die Anleitung einmal in lokal (meint 4S & 4er im gleichen heimischen Netzwerk) und extern (4er im Heimnetzwerk, 4S eines Bekannten, der aber nicht im gleichen Netzwerk ist)


Nur lokal erreichbarer Proxy im heimischen WLAN / iPhone 4S & iPhone 4 im selben Netzwerk

(4S extern verbinden via VPN weiter unten):

Zertifikate am iPhone 4S installieren (mit iPhone im heimischen WLAN):

Öffne MobileSafari:

http://SERVER_IP_ADDRESS/SiriProxy/ca.crt

Ersetze Server_IP_Adresse mit der IP des SiriProxy – in meinem Fall 192.168.0.25

anschließend das Profil installieren.

Verbindung zum SiriProxy mit einem 4S im heimischen WLAN:

Einstellungen => WLAN => Eigenes WLAN mit blauen Pfeil am Ende auswählen – Feste IP passend zum heimischen Netz vergeben – Beachtet hierbei eure eigene Netzstruktur und vermeidet Doppelzuweisungen. Desweiteren habe ich dem DNS-Eintrag noch die DNS meines Routers anghängt, damit sich das iPhone nach wie vor mit dem Internet verbinden kann.

z.B.:

IP 192.168.0.3

Subnetz: 255.255.255.0

Router: 192.168.0.1

DNS: Hier jetzt die lokale IP der Ubuntu VM  (in meinem Fall 192.168.0.25,192.168.0.1)

Speichern. iPhone Neustarten.

Anschließend WLAN Verbindung herstellen, mit Siri kurz sprechen. In der WebGUI sollte nun der Status auf “4S Certificates: Present” springen. Alles ist gut. Nun könnt Ihr das 4er einrichten und verbinden.

Einstellungen iPhone 4/3GS/iPod Touch 4G

Zertifikat installieren.

Öffne MobileSafari:

http://SERVER_IP_ADDRESS/SiriProxy/ca.crt

Ersetze Server_IP_Adresse mit der IP des SiriProxy – in meinem Fall 192.168.0.25

anschließend das Profil installieren.

In Einstellungen => Spire den Proxy eintragen: Lokale IP von Ubuntu (Form: https://192.168.0.25)

Siri in Einstellungen => Allgemein => Siri aktivieren.

Respring oder Neustart.

Siri sollte nun auf Eure Eingaben reagieren. Glückwunsch  :-D


Für den externen Betrieb

Konfiguration iPhone 4

Zertifikate am iPhone 4 installieren (mit iPhone im heimischen WLAN):

Öffne MobileSafari:

http://SERVER_IP_ADDRESS/SiriProxy/ca.crt

Ersetze Server_IP_Adresse mit der IP des SiriProxy – in meinem Fall 192.168.0.25

anschließend das Profil installieren.

In Einstellungen => Spire den Proxy eintragen: Eure feste IP oder DynDNS (Form: https://xxx.xx.xxx.xx ohne Portangabe!)

Siri in Einstellungen => Allgemein => Siri aktivieren.

Respring oder Neustart.


Solltet Ihr kein 4S haben, aber einen Freund der eins hat, dann ein Zertifikat an ein entferntes 4S senden:

Ubuntu => Persönlicher Ordner => Oben in der Leiste „Gehe zu“

/var/www/SiriProxy

ca.crt kopieren – einfachkeitshalber evtl. zur Dropbox o.ä. / oder per Mail ans iPhone 4S senden

dann stellt eine VPN-Verbindung ins heimische Netzwerk her:

VPN Verbindung zur VM

Meine Konfiguration:  (entsprechende IPs müssen natürlich euren angepasst werden)

Virtual Box Ubuntu 11.10 mit fester IP 192.168.0.25 – Verbindungsmodus: Netzwerkbrücke (saubere Installation mit allen Updates um Fehler auszuschließen)

Router: FritzBox 7390 Ports: 1723 und GRE an 192.168.0.25 weitergeleitet (wichtig, informiert euch entsprechend eurer Hardware!)

Folgende Schritte werden alle in Ubuntu ausgeführt!

1. Als erstes müssen wir uns den pptpd Server (PPTP VPN) in Ubuntu installieren:

Terminal öffnen und folgenden Befehl ausführen (mit Enter)

sudo apt-get install pptpd

2. Nun müssen wir die /etc/pptpd.conf Datei bearbeiten:

sudo gedit /etc/pptpd.conf

3. Weiter unten finden wir die benötigten Einstellungen die wir auskommentieren (#-Zeichen entfernen) und an unser System anpassen:

localip ist die lokale IP unserer Ubuntu Maschine
remoteip beinhaltet die IP die das verbundene Gerät erhalten soll – entweder ein IP-Bereich oder eben eine feste IP
Im Anschluss einfach Speichern & schließen

(! Evtl. Fehlermeldungen von gedit im Terminal können ignoriert werden.)

4. Nun müssen wir noch festlegen, wer sich per VPN verbinden darf, dazu müssen wir die  /etc/ppp/chap-secrets Datei via Terminal bearbeiten:

sudo gedit /etc/ppp/chap-secrets

Nun legen wir Benutzer an (Name dann TAB-Taste usw. )

# Secrets for authentication using CHAP
# client                             server          secret                  IP addresses
Benutzername                pptpd          password            *

Hinweis: “Benutzername & password” sind frei wählbar und sollten wohlüberlegt gewählt werden.

Im Anschluss einfach Speichern & schließen.

5. Jetzt müssen wir noch einen Eintrag vornehmen (wieder via Terminal)

sudo gedit /etc/ppp/pptpd-options

und die Zeile weiter unten ms-dns auskommentieren (#-Zeichen entfernen)

ms-dns IP.der.Ubuntu.Maschine (in meinem Fall 192.168.0.25)

6. Schlussendlich müssen wir den pptpd Server neustarten mit Hilfe dieses Terminal Befehls:

sudo /etc/init.d/pptpd restart

That’s it!

7. iPhone 4S verbinden

Einstellungen => Allgemein => Netzwerk => VPN => VPN hinzufügen

Oben „PPTP“ auswählen

Beschreibung: Nach Wunsch

Server: Feste IP oder DynDNS-Adresse (ohne irgendwas, also sprich ohne http, Port oder sonstiges)

Account: Benutzername von weiter oben

RSA-SecurID: unberührt lassen

Kennwort: selbsterklärend

Verschlüsselung (wichtig): Automatisch

Für alle Daten (ebenso wichtig): ja für alle Daten – Schieber auf ein

Oben rechts sichern. Das wars – Verbinden (über UMTS) – sollte alles richtig eingerichtet sein, erscheint oben in der Leiste am iPhone das VPN Symbol.

In Ubuntu bekommt Ihr keine Benachrichtigung, ob man erfolgreich verbunden ist. Man kann mit folgendem Befehl

Ifconfig –a

aber überprüfen ob die pptpd Schnittstelle genutzt wird – schaut auf den Eintrag: ppp0 und dann sieht man wer/oder was verbunden ist.


Am iPhone 4S muss dann nur VPN gestartet werden und einmal mit Siri gesprochen werden, Ihr solltet nun ein positives Feedback im Proxy-Server bekommen :-D  danach kann die Verbindung getrennt werden und das 4er kann Siri nutzen.

Siri sollte nun auf Eure Eingaben reagieren. Glückwunsch  :-D


Ich hoffe das hilft dem Ein oder Anderen von Freunden (!) leichter an die Keys zu kommen, da der Aufwand für den Spender minimal ist.

Noch ein letzter Tipp:

Um eure Spender nicht zu nerven, wenn irgendwas nicht so wirklich geht, probiert es am Besten mit Eurem 4er aus und testet die VPN-Verbindung:

Proxy in der VM starten.

1.) Evtl. “vermurkste” apple.assistent.plist in iFile (/var/mobile/Library/Preferences) löschen – evtl. Bearbeitungen der Host-Datei auch rückgängig machen (werden eh nicht benötigt)

2.) In den Einstellungen des 4er => Allgemein => Siri => Ausschalten

3.) Einstellungen => Spire => https://guzzoni.apple.com eintragen
(wir simulieren ein 4S damit, da dort der Proxy ja auch vorgegeben ist)

4.) WICHTIG: Respring oder Reboot

5.) In den Einstellungen des 4er => Allgemein => Siri => Einschalten

6.) VPN Verbindung via UMTS/Edge herstellen

7.) mit Siri sprechen (die natürlich ohne Keys wieder Fehler ausspuckt)

aber dann habt Ihr alles richtig gemacht und ein 4S, welches sich verbindet, könnte die Keys loswerden ;-)


Zu guter letzt will ich mich bei den großartigen Mitgliedern vom iSzene-Forum bedanken, ohne deren Hilfe ich das Aufsetzen des Proxys wahrscheinlich nicht geschafft hätte!!

Für Jeden der sich weitergehend damit beschäftigen möchte, empfehle ich die beiden Ursprungsanleitungen und die dazugehörigen Diskussionsthreads im Forum

[ANLEITUNG] Siri Proxy + Spire – MAC & Windows über W-LAN von sylver

und

[ANLEITUNG] Siri Proxy + Spire – MAC & Windows über UMTS von evilfler

 

Autor: Olli

iPhone 4, iOS 5.0.1 JB & UL / Macbook 13", Mac OS Lion 10.7 Interessen: iOS - Jailbreak - Unlock - Customization - Mac OS - Tweaks - UI - Daily User - No Pro

  • Lionolli

    Hey,

    Superanleitung. Funktioniert bestens. Erstmal herzlichen Dank dafür!!!

    Nach etwas rumgespiele in der testproxy.rb hätte ich da mal eine kleine Frage. Mit welcher Befehlsfolge könnte ich (evtl. sogar einfach im Hintergrund) eine Webseite bzw. einen Link aufrufen?
    Hintergrund ist, dass ich meine Lampen über FHEM auf der Fritzbox schalten kann.
    Dazu müsste ich dann nur einen Link aufrufen, z.B.: so http://fritz.box:8083/fhem?cmd.Deckenlicht=set%20Deckenlicht%20off&room=all

    Evtl. jemand eine Idee?

    Gruß
    Olli

    • http://twitter.com/xulunix xulunix

      du könntest dir ein Plugin bauen das auf Wörter reakiert und z.B. einfach per curl den link aufruft

      • Lionolli

        ja bauen ist so ne Sache :)
        Hab mir mal das Thermostat-Plugin angesehen….ganz steig ich da net durch.

    • http://www.macbug.de Olli

      Hallo Olli :D

      also probier mal die aktuellen Siri Erweiterungen aus Cydia aus => OpenSiri / SiriUtils – z.B. Befehl “Open Link xyz”

      • Lionolli

        hab ein 4s ohne jailbreak…das soll auch so bleiben. aber danke für den tip

  • http://twitter.com/xulunix xulunix

    Funktioniert das auch auf debian?

    • http://www.macbug.de Olli

      Sollte, schau dir mal die Abhängigkeiten im setup.sh Script an, evtl. die Befehle auf debian abändern

  • Pingback: Spire Proxy Server Siri [Liste] - Seite 9

  • Andi

    Sehr schöne Anleitung! Hat beim Ersten mal geklappt. Um die Sache für den externen Zugriff sicherer zu machen könnte man eine Whitelist einbauen. Wäre schön wenn diese Anleitung erweitert wird.

    Danke

    • http://www.macbug.de Olli

      Hallo Andi, danke für den Hinweis, ich belese mich dahingehend auch gerade, vielleicht hast du da mehr Erfahrung und kannst uns einen Hinweis geben? Die Sicherheit sollte in jedem Fall vorgehen!

  • http://twitter.com/xulunix xulunix

    wenn ich das auf debian probier, kann ich alles starten nur kann ich mit siri nichts machen. (es reagiert nicht wenn ich auf das micro drücke)
    certs sind richtig

  • Raphael Leuthner

    Anleitung ist top! Habs mit endlos vielen anderen versucht und nichts hat funktioniert, außer dieser! :)

    Würde jetzt noch gerne wissen, wie ich, nachdem alles so gut läuft, jetzt noch zusätzliche Plugins installieren kann?
    Könntest du eventuell auch ein Tutorial dafür schreiben?
    Danke!

  • Ferhat

    Hallo
    Wie kann ich die Ports weiterleiten wenn ich im Terminal
    cd upnp/

    sudo ./setup.sh
    kommt immer ein fehler und wenn ich dann die ip adresse aufrufen möchte geht das nicht bitte hilft mirr!!!

  • Thatgirlwas

    Was für eine feste IP muss man denn eingeben um von außen zuzugreifen? Irgendeine beliebige?

  • Joseflimo

    josef@josef-VirtualBox:/var/www/SiriProxy$ sudo ./create.sh
    cp: Aufruf von stat für „openssl.cnf“ nicht möglich: Datei oder Verzeichnis nicht gefunden

    Kann mir da jemand Helfen.
    Bekomme beim Installieren immer diese meldung.
    Er legt mir kein Certificat an (ca.crt)

  • Lukas Glaser

    Muss das Iphone 4S gejailbreaked sein ?

  • Pingback: Siri @home - Seite 9 - IP-Symcon Community Forum

  • @lex

    super anleitung. funktioniert alles super toll. habt ihr aber auch das problem dass die vom 4s signierten certs nur einen tag gültig sind. ich muss täglich einmal mit einem 4s eine suchanfrage machen damit ich mit dem 4 die siri weiter nutzen kann. ist es bei euch auch so oder mache ich was verkehrt?

  • Stefan

    Hey Leute,
    Also bin schon fast fertig mit dem TUT, aber bei dem Punkt wo ich das Profil runterladen muss über Mobile Safari komm ich nicht mehr weiter. Er ladet die Seite ewigst lang und meint dann das Safari die Seite nicht öffnen kann.

    BITTE UM SCHNELLE HILFE!!
    MFG Stefan