SonyUserforum

SonyUserforum (https://www.sonyuserforum.de/forum/index.php)
-   Zubehör (https://www.sonyuserforum.de/forum/forumdisplay.php?f=11)
-   -   NAS online - die Sicherheitsfrage (https://www.sonyuserforum.de/forum/showthread.php?t=188628)

usch 15.11.2018 22:04

Code:

body=$(</tmp/new-ip)
Aber wie gesagt, wenn PHP Mails verschicken kann, dann müsste das eigentlich auch direkt aus der Shell gehen. Was sagt "sendmail_path" in der php.ini?

dey 15.11.2018 22:15

Zitat:

Zitat von usch (Beitrag 2031736)
Code:

body=$(</tmp/new-ip)

Yeaha! :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen: :top: :shock: :mrgreen:

Zitat:

Aber wie gesagt, wenn PHP Mails verschicken kann, dann müsste das eigentlich auch direkt aus der Shell gehen. Was sagt "sendmail_path" in der php.ini?
Da komme ich von der GUI nicht hin (oder weiss nicht, wie).
Ich fummel da gerade im Blindflug.

Habe gerade ein schönes Code-Durcheinander:
Code:

curl -s "http://ipecho.net/plain" -o /volume1/family/new-ip.txt
curl -s "http://ipecho.net/plain" -o /tmp/new-ip
body=$(</tmp/new-ip)
host="h";
/usr/bin/php -r "mail('dey@mail.de', 'php mail', '$body', '$host');";

Wenn ich es komplett aufgedröselt habe, stelle ich den Code ein.

usch 15.11.2018 22:43

Huch :D

Das host="h" in deinem Skript macht allerdings keinen Sinn. Der vierte Parameter von mail() muss ein Satz von Mailheadern nach RFC 2822 sein. "h" ist keiner ;). Wenn du trotzdem keine Fehlermeldung bekommt, brauchst du den offenbar überhaupt nicht, dann kannst du ihn besser ganz weglassen und nur Empfänger, Betreff und Body angeben.

Zitat:

Da komme ich von der GUI nicht hin (oder weiss nicht, wie).
Code:

php -r "echo ini_get('sendmail_path'),PHP_EOL;"

Zweimal curl ist übrigens nicht nett gegenüber dem Betreiber von ipecho.net. Wenn das nicht nur jetzt zum Testen war und du die Datei immer an beiden Stellen haben willst, würde ich sie einfach von /tmp nach /volume1/family kopieren.

Du sagst, du hast eine eigene Domain? Kannst du da PHP ausführen? Dann könntest du die IP-Abfrage auch dort hin verlegen und wärst nicht von einem fremden Dienst abhängig.

ipecho.php:
Code:

<?php
$remote_ip = $_SERVER["REMOTE_ADDR"];

header ("Content-Type: text/plain");
header ("Content-Length: ".strlen($remote_ip));
header ("Cache-Control: no-cache");
echo $remote_ip;
?>


dey 15.11.2018 22:57

Mein Code war doch Teststadium.
Mir war schlicht nicht klar, wie ich das curl in eine Variable packe. Da musste ich halt alles mal reinhauen und den Output testen.

Code:

curl -s "http://ipecho.net/plain" -o /volume1/family/new-ip.txt
to="dey@mail.de";
subject="Neue IP by php mail";
body=$(</volume1/family/new-ip.txt)
header=$(</volume1/family/old-ip.txt)
if ! cmp -s /volume1/family/old-ip.txt /volume1/family/new-ip.txt ; then
  /usr/bin/php -r "mail('$to', '$subject', '$body', '$header');";
  cp /volume1/family/new-ip.txt /volume1/family/old-ip.txt
fi

Aktuell lasse ich das jetzt mal alle 3h laufen und schaue mal, was sich so tut.

Ich habe nur mehrere Domain aber keinen php-space mehr. Somit geht das nicht.

Synology DDNS bekomme ich nicht auf meine Sub.Domain gesynct. Authentification failed. Diese Alternative werde ich aber erst mal nicht mehr verfolgen.

usch 15.11.2018 23:10

Besser. :)

Aber das ...

Zitat:

Zitat von dey (Beitrag 2031744)
Code:

header=$(</volume1/family/old-ip.txt)

  /usr/bin/php -r "mail('$to', '$subject', '$body', '$header');";


ist immer noch Murks. Eine IP-Adresse ist kein Mailheader. Was willst du damit erreichen?

dey 16.11.2018 10:02

Zitat:

Zitat von usch (Beitrag 2031749)
Besser. :)

Aber das ...

ist immer noch Murks. Eine IP-Adresse ist kein Mailheader. Was willst du damit erreichen?

Der header erscheint ganz normal als Text in der Email. Da mir das concat mit 'printf nicht gelingen wollte, habe ich einfach die zweite Variable missbraucht.
Wenn das alles so klappt, wie ich es wünsche wird header wieder verschwinden und der Pfad auf tmp gelegt.

usch 16.11.2018 12:12

Zitat:

Zitat von dey (Beitrag 2031787)
Der header erscheint ganz normal als Text in der Email.

Das ist IMHO ein Bug in PHP, eigentlich müsste das eine Fehlermeldung erzeugen und die Mail dürfte gar nicht verschickt werden.

Zitat:

Da mir das concat mit 'printf nicht gelingen wollte, habe ich einfach die zweite Variable missbraucht.
Na gut, wenn es nur zum Testen war. Du brauchst aber kein printf:

Zitat:

body=$(</tmp/old-ip)$'\n'$(</tmp/new-ip)

dey 16.11.2018 12:19

Zitat:

Zitat von usch (Beitrag 2031810)
Na gut, wenn es nur zum Testen war. Du brauchst aber kein printf:
Code:

body=$(</tmp/old-ip)$'\n'$(</tmp/new-ip)

:top:
wird umgesetzt.

DynDNS mit Strato wird wohl jetzt auch funktionieren: Recherche sieht sehr erfolgsversprechend aus. :D

Jetzt muss ich mir nur noch überlegen, welches mein Weg sein wird.

usch 16.11.2018 16:10

Also in dem Fall würde ich DDNS bevorzugen, aber als Kontrollfreak mir trotzdem zusätzlich die E-Mails schicken lassen. :mrgreen:

DDNS hat halt den Vorteil, daß du Bookmarks setzen kannst und nicht ständig von Hand die IP-Adresse angeben musst.

dey 17.11.2018 17:09

So, Zugriff von Smartphone erfolgreich. :D
Aktuell noch über DDNS myDomain. Werde ich aber vermutlich IP-basiert machen.

Das Galaxy kann wohl nur PPTP und L2TP. Damit bin ich jetzt erst mal bei L2TP.

Win 10 unterstützt auch L2TP. Ist OpenVPN mit Zertifikat signifikant sicherer?
Am Ende ist dann noch die Frage, ob das Firmennetzwerk mich überhaupt rausläßt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:32 Uhr.