Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : NAS online - die Sicherheitsfrage


dey
03.11.2018, 16:26
Aufhänger ist der Beitrag von
Ja, ich greife von Remote auf Ressourcen zu Hause und im Büro zu, mache das aber immer über eine gesicherte VPN-Verbindung.

Für nicht Netzwerker: Alle über eine VPN-Verbindung angeschlossenen Geräte sind direkt mit dem Heimnetzwerk verbunden und haben eine Adresse aus dem Heimnetzwerk. Die NAS sieht also keinen Unterschied, ob ich zu Hause über's WiFi oder von unterwegs über einen verschlüsselten VPN-Tunnel darauf zugreife.

Für eine VPN-Verbindung braucht es einen VPN fähigen Internet-Router, z.B. die weit verbreitete FritzBox.

Aber auch hier, die Diskussion wird schnell mal sehr technisch und off Topic.

Ich möchte das Thema mal aufnehmen, weil ich mich nich traue, meine NAS oder Teile online zu stellen.

Ich habe starke Zweifel, dass ein Laie ein sinnvolles Sicherheitskonzept entwickeln kann. Und was ich für noch gravierender halte, es nicht selbst überprüfen kann.

Z.B. VPN. Klingt ja erst mal gut, aber wenn man drin ist, ist man eben auch komplett drin.
Wie oft sollte man den Schlüssel erneuern?

Ist es da nicht sinnvoller nur kleine Bereiche freizugeben. Z.B. über FTP oder macht das dann schon wieder keinen Spaß, weil man es erst mal füttern muß.

meshua
03.11.2018, 23:04
(...)
Z.B. VPN. Klingt ja erst mal gut, aber wenn man drin ist, ist man eben auch komplett drin.
Wie oft sollte man den Schlüssel erneuern?

Ist es da nicht sinnvoller nur kleine Bereiche freizugeben. Z.B. über FTP oder macht das dann schon wieder keinen Spaß, weil man es erst mal füttern muß.

Kommt auf die eigenen Bedürfnisse an, doch grundsätzlich sollte man nur die Dienste anbieten, welche man benötigt.

Den Public Key für den (Open)VPN-Zugang erneuert man normalerweise nicht, sondern hinterlegt diesen einmalig (~/.ssh/authorized_keys).

Grüße, meshua

dey
04.11.2018, 13:02
Wenn ich VPN zur Verfügung stelle bin doch drinnen und kann die Dienste auch nicht mehr weiter begrenzen oder.

meshua
04.11.2018, 13:26
Wenn ich VPN zur Verfügung stelle bin doch drinnen und kann die Dienste auch nicht mehr weiter begrenzen oder.

Doch, das funktioniert so: wenn man beispielsweise OpenWRT als Router-Betriebssystem und OpenVPN als VPN-Lösung verwendet, so hat man systemseitig einen sog. "VPN-Adapter" (häufig als "tun"-Adapter eingerichtet) - das ist eine virtuelle Netzwerkschnittstelle (Interface) und ausgehend von dieser kann man über Firewall-Regeln (iptables) eingehend/ausgehend die Ports bei Bedarf einschränken und einzeln freigeben.

Beste Grüße, meshua

HaPeKa
04.11.2018, 14:50
Die Frage ist doch, was willst du genau?

Ich nutze VPN, damit ich keine einzelnen Systeme (NAS, Home PC) gegen das Internet öffnen muss. Klar kann man den Zugriff weiter einschränken, aber das gilt nicht nur für über VPN verbundene Clients. Ich kann natürlich auch intern Regeln erstellen, wer was mit wem darf. Aber das brauche ich nicht.

Von drinnen soll bei mir alles erlaubt sein, von aussen nichts, ausser wenn ich über eine VPN Verbindung reinkomme. Die ist aus meiner Sicht so sicher, dass ich keine weiteren Einschränkungen benötige.

Aber: Es gibt Daten, die ich auch intern besonders schütze und beispielsweise in verschlüsselten Containern (VeraCrypt) versorge. Nicht, weil ich befürchte, dass jemand den VPN Zugang hacken könnte, da gibt es grössere Gefahren. Eine der grössten ist das WiFi, das fast alle bedenkenlos einsetzen. Oder das Gastnetzwerk, das man für Besucher zur Verfügung stellt. Es werden immer wieder Schwachstellen bei WiFi Routern bekannt, die es Angreifern ermöglichen, in ein Netzwerk einzudringen. VPN ist da wesentlich robuster und sicherer.

Und noch was: Gelegenheitshacker und Kiddies, die Portscanner laufen lassen, werden bei einem System, das nur die VPN Ports offen hat, nicht weiterkommen.

Wenn es aber jemand explizit auf meine Daten abgesehen hat, warum auch immer, dann wird's schwierig, diese zu schützen. Insbesondere, wenn derjenige ein Profi sein sollte. Aber ich hoffe mal, niemand hier muss seine Daten zwingend vor Geheimdiensten und Strafverfolgern schützen :D

dey
04.11.2018, 15:13
Ist der VPN Server auf der NAS oder dem Router installiert?

HaPeKa
04.11.2018, 15:27
Ich hab ihn auf dem Router installiert. Ich will ja nicht nur auf die NAS zugreifen, sondern auch per RDP auf den heimischen PC und sonst noch so einige Ressourcen nutzen ...

Früher nutzte ich den VPN Server auf der FritzBox, jetzt denjenigen auf dem Zyxel Router. Die VPN Verbindung funktioniert mit den Clients auf Windows 10 (MS Surface) und Android (Samsung Note8) problemlos.

meshua
05.11.2018, 11:27
Ist der VPN Server auf der NAS oder dem Router installiert?

Bei mir ist OpenVPN auch auf dem Router eingerichtet (TPLink mit OpenWRT). Für den NAS "RDP" Zugriff via Browser nutze ich den Synology Web Access Dienst (zusammen mit einer DynDNS Adresse).

Grüße, meshua

HaPeKa
05.11.2018, 11:37
Für den NAS "RDP" Zugriff via Browser nutze ich den Synology Web Access Dienst (zusammen mit einer DynDNS Adresse).
So ist deine Synology aber von aussen mit einem direkten Login über den Webbroser erreichbar. Das ist zwar praktisch aber da musst du auf die Sicherheit von Synology vertrauen, diese zwingend überwachen und à jour halten. Und selbstverständlich ein starkes Passwort verwenden.

Mit dem VPN Ansatz gibt es keine Logins auf lokale Ressourcen direkt aus dem Internet. Du verbindest dich verschlüsselt mit deinem Heimnetzwerk. Dazu braucht es kein Login Passwort sondern entsprechende Zertifikate. Sobald die Verbindung steht, arbeitest du wie wenn du zu Hause sitzen würdest :D

dey
05.11.2018, 11:40
Ich bin mächtig am Grübeln, ob ich das doch mal machen möchte.

Wenn ich VPN auf der NAS machen möchte, wie bringe ich meiner Unity Connectbox das bei?

Nächstes Problem wäre eine Staic IP bei Unity. Habe ich noch nie drüber nachgedacht. Kompliziert?

Dat Ei
05.11.2018, 11:59
Moin, moin,

wenn das NAS ein Ende des Tunnels stellt, muss auf dem Router ein Port für den vpn-Tunnel zum NAS freigegeben werden.

Nachdem die IPv4-Adressen ein sehr, sehr knappes Gut sind, habe ich Zweifel, ob Dein Provider Dir eine statische IP geben kann und wird.


Dat Ei

HaPeKa
05.11.2018, 12:06
Erste Frage: Wie betreibst du die Connectbox? Im Modem- oder im Router-Modus?

Wenn du sie im Modem-Modus betreibst, werden die Pakete weitergeleitet.
Wenn du sie im Router-Modus betreibst, musst du im Menu "Security" die Port Weiterleitung nutzen, die auf Seite 40 des Handbuchs beschrieben wird.

ConnectBox Manual (PDF) (https://www.upc.ch/content/dam/www-upc-cablecom-ch/Support/manuals/en/int/Manual%20Wlan%20Connect%20Box%20Modem_1115_EN.PDF)

Wie du den VPN Server auf der Synology aktivieren kannst, findest du hier:

VPN Server einrichten (https://www.synology.com/de-de/knowledgebase/DSM/help/VPNCenter/vpn_setup)

In den Hinweisen findest du auch, welche Ports du für PPTP oder IPSec weiterleiten musst.

Static IP geht natürlich nicht, aber mit einer dynDNS Adresse kannst du deiner aktuellen IP einen Namen zuordnen, oder du nutzt den Synology Quick Connect Service, das geht auch.

dey
05.11.2018, 12:13
Moin, moin,

wenn das NAS ein Ende des Tunnels stellt, muss auf dem Router ein Port für den vpn-Tunnel zum NAS freigegeben werden.

Nachdem die IPv4-Adressen ein sehr, sehr knappes Gut sind, habe ich Zweifel, ob Dein Provider Dir eine statische IP geben kann und wird.


Dat Ei

DynDNS wäre wohl der einfachste Weg.
Dafür müßte der NAS aber vermutlich doch wieder einen sichtbaren Port öffnen.
Den müßte ich aber wohl wiederum für OpenVPN via NAS freigeben.

HaPeKa
05.11.2018, 13:01
Wenn du den DDNS Service auf der Synology nutzt, brauchst du keine offenen Ports. Um deiner dynamischen IP einen Netzwerknamen zu vergeben, braucht es nur ausgehenden Verkehr von der Synology zu dynDNS.org. Die Synology meldet sich mit deinen dynDNS Logindaten beim dynDNS Server, der die externe Adresse sieht und diese deinem Netzwerknamen zuordnet.

Erst wenn du dann mit diesem Netzwerknamen eine VPN Verbindung zur Synology aufbauen willst, musst du die entsprechenden Ports für PPTP oder IPsec Verkehr öffnen.

Betreibst du deine Connectbox als Router oder hast du einen Router hinter der Connectbox?

dey
05.11.2018, 13:08
Betreibst du deine Connectbox als Router oder hast du einen Router hinter der Connectbox?

Weiß ich noch nicht. Kann ich nur zuhause feststellen, denn ich habe ja noch keinen externen Zugriff. :D

meshua
05.11.2018, 18:57
(...) auf die Sicherheit von Synology vertrauen(...)

Öhhm...wenn ich Synology nicht trauen würde, hätte ich keine DiskStation :P

Aber natürlich weiß ich, worauf du anspielst: Die Synology ist nur über eine hohe Portnummer (kein Standard-Port) erreichbar und ich nutze 2FA. Selbstverständlich wäre alles nur über den VPN-Tunnel am sichersten - aber in bestimmten Umgebungen (Proxies) erweist sich der Verbindungsaufbau doch als äußerst schwierig...oder ich habe kein VPN-fähiges Terminal im Zugriff. ;)

Grüße, meshua

Butsu
05.11.2018, 21:45
Ich hätte schon alles gerne über eine statische IP gelegt. Bei Telekom muss ich dafür einen Businessanschluss buchen, das geht richtig ins Geld. Kennt jemand einen vertrauenswürdigen Anbieter wo ich als privater (!) Nutzer eine statische (dedizierte) IP buchen kann? Habe schon viel gesucht ohne fündig zu werden.

dey
05.11.2018, 22:10
Da ich kein Online-Angebot pflegen möchte, würde es mir reichen, wenn ich die neue IP herausfinden könnte.
A. Cronjob der die neue IP bemerkt und per Email an mich verschickt
B. Eine Abfrage von außen an x

Ist das denkbar?

meshua
05.11.2018, 22:46
Ich hätte schon alles gerne über eine statische IP gelegt. Bei Telekom muss ich dafür einen Businessanschluss buchen, das geht richtig ins Geld. Kennt jemand einen vertrauenswürdigen Anbieter wo ich als privater (!) Nutzer eine statische (dedizierte) IP buchen kann? Habe schon viel gesucht ohne fündig zu werden.

Das Zauberwort lautet: Dynamisches DNS (aka "DDNS"), wie zum Beispiel: dyn.com, noip.com,...viele Router und auch Synology unterstützen diesen Standard-Dienst.

Grüße, meshua

Butsu
06.11.2018, 06:38
DynDNS verwende ich bereits. Ich hätte halt gerne eine feste IP. (Bitte jetzt nicht fragen warum ...)

Dat Ei
06.11.2018, 10:23
Moin, moin,

wie ich bereits weiter oben geschrieben habe, sind IPv4-Adressen ein knappes Gut. Die letzten, freien Blöcje wurden bereits vor Jahren vergeben. Daher lassen sich Provider die statischen IPv4-Adressen auch gut bezahlen bzw. vergeben sie nur im Rahmen gewerblicher Tarife.

Die Situation wird sich erst bessern, wenn durchgängig und weltweit IPv6 genutzt wird bzw. nutzbar ist. Leider setzt sich dieser Standard, der den nutzbaren Adressraum um den Faktor 64k vergrößert, seit Jahren nur sehr schleppend durch. Vielleicht wird das Internet of shitty things die Entwicklung beschleunigen...


Dat Ei

dey
07.11.2018, 23:12
Weiß ich noch nicht. Kann ich nur zuhause feststellen, denn ich habe ja noch keinen externen Zugriff. :D

Ok, wenn ich richtig gelesen hätte, hätte ich es gleich beantworten können.
Es gibt keinen zweiten Router, die Connectbox macht alles.
Routing kenne und verstehe ich.


Da ich kein Online-Angebot pflegen möchte, würde es mir reichen, wenn ich die neue IP herausfinden könnte.
A. Cronjob der die neue IP bemerkt und per Email an mich verschickt
B. Eine Abfrage von außen an x

Ist das denkbar?

?

Joshi_H
08.11.2018, 10:09
Da bin ich froh als Kölner bei NetCologne zu sein. Die nehmen für die statische IP-Adresse 5 Euro im Monat.

An VPN habe ich mich noch nicht gesetzt, werde das aber dieses Jahr über die Weihnachtsferien mal angehen.

Ich möchte mir von außen nur den Zugriff auf die NAS tunneln. Wie ich das hier im Thread bisher verstanden habe, kann ich also VPN direkt auf der NAS konfigurieren und brauche auf der Fritzbox nur den Port freigeben, richtig?

Muss ich auf dem entfernten Client, also iPhone, iPad und MacBook irgendwas beachten?

HaPeKa
08.11.2018, 11:18
Kenne mich in der Apfelwelt nicht aus, aber wenn du den VPN Server auf der Synology am Laufen hast und die richtigen Ports an der FritzBox offen, steht dem nichts im Weg.
Du musst dich für ein Verfahren entscheiden (PPTP, IPsec) und dann beide Seiten entsprechend konfigurieren.

Vielleicht kann ein Apfeljünger hier mal sagen, welche von beiden Methoden im Apple Umfeld einfacher zu implementieren ist :D

usch
08.11.2018, 12:42
Cronjob der die neue IP bemerkt und per Email an mich verschickt

#!/bin/bash

curl -s "http://ipecho.net/plain" -o /tmp/new-ip

if ! cmp -s /tmp/old-ip /tmp/new-ip ; then
mail </tmp/new-ip -s "Neue IP-Adresse" dey@example.com
cp /tmp/new-ip /tmp/old-ip
fi

dey
08.11.2018, 13:01
#!/bin/bash

curl -s "http://ipecho.net/plain" -o /tmp/new-ip

if ! cmp -s /tmp/old-ip /tmp/new-ip ; then
mail </tmp/new-ip -s "Neue IP-Adresse" dey@example.com
cp /tmp/new-ip /tmp/old-ip
fi


Extrem cool. Das werde ich mal implementieren. Vielleicht hat Synology dafür sogar noch eine GUI.
Ansonsten muss ich mal ein bisschen Linux Googln, wie man das macht.

Fuexline
09.11.2018, 15:56
Mein NAS ist ein Eigenbau auf dem Linux rennt, alle nicht relevanten Ports sind zu mein SSH Port habe ich verlegt und geöffnet, Zugriff geht nur per SFTP also quasi SSH, damit SFTP und SSH laufen, benötigt man ein Zertifikat um überhaupt auf das NAS verbinden zu dürfen, hat man dieses nicht wird man direkt wieder raus geworfen, flooden(bruteforce geht nicht weil ein script massive Anfragen auf die lan karte erkennt und die Person bzw IP dann eben 24H aussperrt. das Cert habe ich auf meinen Bitlocker gesicherten Geräten bzw in meiner Smartwatch ableget - so habe ich es immer dabei.

geplant ist ein Webinterface zu bauen das mir die Daten anzeigt sobald ich auf Port 80 zugreife und ein gewisses Passwort in meiner Browserkennung habe - mal sehen was ich da so basteln kann.

Zum Thema findet ja eh keiner usw - diesen Monat habe ich schon 50 IPs auf meiner Blacklist gefunden (vornehmlich andere Webserver Versatel IPs etc) die versucht haben auf Port 80 zu gehen oder anderen Blödsinn versucht haben.

Mein Nas ist eigentlich ganz simpel

Mini Tower mit icy Box 3 Fach SATA BAY Einschub für die Front, in denen liegen 2 4 TB Platten und eine 2 TB HDD, im inneren eine 120 GB SSD. Board ist ein mini ATX H77 Board mit einem Pentium Prozessor der irgendwas um die 10 - 15W braucht komplett, dazu ein passives 450W Seasonic Netzteil GOLD 87+ die 2 4 TB hdds laufen in nem Raid, auf der 2 TB HDD liegen eher so temporäre unwichtigere Sachen. per SSH kann ich mir Daten auf mein onedrive schicken bzw Mail, falls ein Kunde unterwegs was braucht

Joshi_H
14.11.2018, 13:50
Kenne mich in der Apfelwelt nicht aus, aber wenn du den VPN Server auf der Synology am Laufen hast und die richtigen Ports an der FritzBox offen, steht dem nichts im Weg.
Du musst dich für ein Verfahren entscheiden (PPTP, IPsec) und dann beide Seiten entsprechend konfigurieren.


Danke, werde ich ausprobieren.

HaPeKa
14.11.2018, 14:25
@Fuexline
Handarbeit ist ja nicht jedermanns Sache, deine Nas macht nichts, was man an der Synology nicht auch einstellen könnte. Dort tut man das eben über ein benutzerfreundliches GUI.

Selbst die Konfiguration der Firewall geht über das Webinterface sehr einfach, man muss aber wissen, was man tut. Laien sollten dort nicht zu viel rumspielen :D

Aber als Hobby eine NAS selber bauen, die dann auch läuft, macht sicher Spass :top:

cbv
14.11.2018, 15:05
Aber als Hobby eine NAS selber bauen, die dann auch läuft, macht sicher Spass
Ja, macht es.
Und man ist (wenn auch nur gefühlt) flexibler.

dey
15.11.2018, 09:35
#!/bin/bash

curl -s "http://ipecho.net/plain" -o /tmp/new-ip

if ! cmp -s /tmp/old-ip /tmp/new-ip ; then
mail </tmp/new-ip -s "Neue IP-Adresse" dey@example.com
cp /tmp/new-ip /tmp/old-ip
fi

Extrem cool. Das werde ich mal implementieren. Vielleicht hat Synology dafür sogar noch eine GUI.
Ansonsten muss ich mal ein bisschen Linux Googln, wie man das macht.

Zuerst mal danke für den Code. Funktioniert ein bisschen.
Der Aufgabenplaner hat ein Eingabefeld, in den man den Code direkt ablegen kann. Es braucht keine sh-Datei.

#!/bin/bash

curl -s "http://ipecho.net/plain" -o /tmp/new-ip

Bis hierhin funktioniert es gut. tmp habe ich mal durch einen Ort ersetzt, den ich auch sehen kann und es steht eine IP drin.

if ! cmp -s /tmp/old-ip /tmp/new-ip ; then
Dieser Teil funktioniert nicht, da das Kopieren auch in der Abfrage hängt und somit der Vergleich auf eine nie existente old-ip geht
mail </tmp/new-ip -s "Neue IP-Adresse" dey@example.com
Die Funktion mail ist gänzlich unbekannt! Da weiss ich jetzt auch nicht weiter. Ich habe es testweise aus der if-clause kopiert

cp /tmp/new-ip /tmp/old-ip
Wird innerhalb der if-cluse nie angesprochen, ansonsten funktioniert es

Ergo, es hängt an mail. Es wundert mich aber auch nicht. Die Funktion mail ohne weitere Informationen zum Mail-Server kann irgendwie nicht funktionieren.
Fehlermeldung verweist aber auf unbekannte Funktion.
sh: line 3: mail: command not found

Ich werde als nächstes versuchen, eine Standardaufgabe zu finden mit der ich eine Datei verschicken kann und ohne if-clause zyklisch die new-IP-DAtei erzeugen lassen.

Oder es weiss jemand, was mit mail falsch läuft.

cbv
15.11.2018, 16:11
#!/bin/bash

curl -s "http://ipecho.net/plain" -o /tmp/new-ip

if [ ! cmp -s /tmp/old-ip /tmp/new-ip ]
then
/bin/mail -s "Neue IP-Adresse" dey_AT_example.com < /tmp/new-ip
fi
cp /tmp/new-ip /tmp/old-ip
exit 0

Schmiddi
15.11.2018, 16:22
Hallo,

mail ist ein Kommandozeilen Mailprogramm, dass eigentlich in jedem Unix vorhanden ist. Da es bei Dir fehlt, hat der Erbauer des NAS das Programm entfernt. Möglicherweise kannst das über die Paketverwaltung wieder hinzufügen.
Oder das sitzt nicht in /bin, sondern in /sbin, /usr/bin, /usr/sbin und diese Verzeichnisse sind nicht im Suchpfad (also versuche mal: /bin/mail - /sbin/mail - /usr/bin/mail - /usr/sbin/mail ).
Sonst kann es helfen, einen Mailserver zu installieren - dann kannst mail durch sendmail oder was auch immer da installiert wird ersetzen (aber sicher mit anderer Syntax).

Viele Grüße,
Andreas

dey
15.11.2018, 17:01
Danke

werde ich alles mal durchprobieren.
Aktuell bin ich jetzt mal bei einer DDNS-Lösung. Ich habe eine Domain bei Strato, die DDNS beinhaltet.
Mal schauen, ob das der einfachere Weg ist.

usch
15.11.2018, 18:09
if ! cmp -s /tmp/old-ip /tmp/new-ip ; then
Dieser Teil funktioniert nicht, da das Kopieren auch in der Abfrage hängt und somit der Vergleich auf eine nie existente old-ip geht
Das muss so. cmp liefert einen Status ungleich Null, wenn die Dateien verschieden sind oder wenn eine Datei nicht gefunden wurde. Beim ersten Ausführen des Skripts wird also der if/then-Teil auf jeden Fall durchlaufen und damit die fehlende Datei angelegt.

Man kann den Kopierbefehl zwar auch aus dem if/then herausnehmen, aber dann sind die beiden Dateien natürlich immer identisch bis auf den Sekundenbruchteil während der Abfrage. Ich hatte es extra so vorgesehen, daß nur bei geänderter IP-Adresse kopiert wird, denn dann kann man anhand des Timestamps von old-ip immer noch feststellen, wann sich die Adresse das letzte Mal geändert hat, selbst wenn man die Mail schon gelöscht haben sollte.

Die Funktion mail ist gänzlich unbekannt!
Da kann ich jetzt allerdings auch nicht weiterhelfen :(

Es gibt ja von Synology verschiedene Mailserver-Pakete im Paketzentrum, vielleicht haben sie die Standard-Mailfunktionen deshalb aus dem vorinstallierten Linux herausgenommen. Aber gibt es bei der DS keine Einstellung, daß bei bestimmten Systemereignissen ein Alarm per Mail an einen Administrator geschickt wird?

Ergo, es hängt an mail. Es wundert mich aber auch nicht. Die Funktion mail ohne weitere Informationen zum Mail-Server kann irgendwie nicht funktionieren.
Der Server müsste natürlich in der Linux-Konfiguration oder über die Admin-Oberfläche der DS angegeben werden. Theoretisch könnte der Client allerdings auch den MX des Empfängers beim DNS erfragen und die Mail direkt dort abliefern. Der Smarthost deines Internet-Providers ist eher eine Komfortfunktion als eine Notwendigkeit.

dey
15.11.2018, 18:49
Cmp ist nicht korrekt ausgeführt worden, da bin ich mir sicher.
Ich habe den Pfad für cp innerhalb auf mein sichtbares Verzeichnis gelegt und old-ip ist nicht erzeugt worden.
Erst als ich cp nach außen verlegt habe war new-ip und old-ip für mich sichtbar.
Ist es denkbar, dass tmp fehlt und nicht erzeugt wird?

Dennoch muss ich mail doch erstmal irgendwo konfigurieren?!

Ist

HaPeKa
15.11.2018, 18:56
musst die php Mail Funktion nutzen:

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

Alle Details im Synology Forum (https://forum.synology.com/enu/viewtopic.php?t=79334)

usch
15.11.2018, 20:08
Cmp ist nicht korrekt ausgeführt worden, da bin ich mir sicher.
Genau dann müsste der then-Zweig durchlaufen werden. Sogar wenn dein System cmp gar nicht als Befehl erkennen würde. Es gibt keine Möglichkeit, den Teil zu überspringen, außer daß 1. cmp korrekt ausgeführt wurde und außerdem 2. die Dateien gleich waren.

Hast du die if-Zeile wirklich exakt so eingegeben, wie ich es geschrieben hatte? Auch die Leerzeichen auf beiden Seiten von ! und ; sind wichtig.

Ist es denkbar, dass tmp fehlt und nicht erzeugt wird?
Unwahrscheinlich. Aber selbst das wäre irrelevant, wenn du stattdessen dein öffentliches Verzeichnis benutzt.

Dennoch muss ich mail doch erstmal irgendwo konfigurieren?!
Normalerweise läuft auf einem Linux-System ein Mailer-Demon (sendmail, postfix, qmail, exim usw.). Dessen Konfiguration sollte eigentlich schon im Zuge der Linux-Installation passiert sein. mail macht dann nichts anderes, als dem die Nachricht vor die Füße zu werfen. Aber wie gesagt, auf einem NAS kann das natürlich anders sein, um Speicher und CPU nicht unnötig zu belasten, solange man nicht explizit ein Mailpaket installiert hat.

usch
15.11.2018, 20:23
Alle Details im Synology Forum (https://forum.synology.com/enu/viewtopic.php?t=79334)
Dem Thread nach landet die PHP-Mail letztlich bei /usr/bin/ssmtp (https://www.linux.com/news/ssmtp-simple-alternative-sendmail). Dann müsste man das auch direkt anstelle von mail benutzen können, ohne PHP drumherum. Kann ich jetzt nur nicht selber ausprobieren, weil es ssmtp auf meiner Linux-Kiste nicht gibt.

dey
15.11.2018, 21:27
musst die php Mail Funktion nutzen:

Email kommt jetzt an.
Wie bekomme ich jetzt das curl usw in die email?


$body = curl ....?
/usr/bin/php -r "mail('$to', '$subject', '$body', '$headers');";

usch
15.11.2018, 22:04
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
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:

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:

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.

Da komme ich von der GUI nicht hin (oder weiss nicht, wie).
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:
<?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.


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 ...

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
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
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.

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:

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

dey
16.11.2018, 12:19
Na gut, wenn es nur zum Testen war. Du brauchst aber kein printf:

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.

meshua
17.11.2018, 21:55
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.

Nachteile von L2PT/IPSec:

Wegen 2facher Kapselung weniger performant als OpenVPN
Möglicherweise durch die NSA kompromittiert (=> John Gilmore)
Kann problematisch bei sehr restriktiven Firewalls sein.

Ich nutze daher seit ein paar Jahren OpenVPN mit PPK Authentifizierung.:top:

Viele Grüße, meshua

dey
17.11.2018, 23:08
Tatsächlich will sich mein Win10 nicht über L2TP verbinden. Somit bleibt openvpn, welches auch vom Samsung unterstützt wird: also nur ein Eingang notwendig.

Was ist PPK?

Kann man das CA im ovpn oder ca.crt neu erstellen lassen?

Jetzt muss nur noch das Sicherheitsgerassel der Firma auch alles durchlassen.

Und mein SSL-Zertifikatsproblem müßte ich ggf auch noch mal anschauen. Oder ist das bei rein persönlicher Nutzung ein reines Kosmetikproblem?
Das ist ja auch noch ein Thema bezüglich https bei Konsole und Photo station. Bis dato war ja alles LAN-intern und ich habe das Problem ignoriert. Aber wenn ich jetzt über vpn etwas öffentlicher bin, frage ich mich, ob https jetzt dann doch wieder Pflicht ist.

Ich bin jetzt auch gerade nicht mehr sicher, an welcher Stelle ich das Problem hatte, dass das Ignorieren des fehlenden Zertifikats nicht mehr ausgereicht hatte. Ich glaube es sind die DS apps auf dem Samsung, die ohne Zertifikat nicht funktionieren. Muss ich noch einmal durchtesten.