Also ich denke die folgenden zwei Dinge im Zusammenspiel funzen am Besten um den DS-Manager und die 3rd Party Applications abzusichern.
.htaccess
Je nachdem was man auf der DS mit der Datei schützen will gibt es verschiedene Orte, um die .htaccess Datei zu platzieren. Diese Datei beinhaltet dann eine White List von IP Adressen, die zugreifen dürfen. Der Rest kriegt einen 403-er (Forbidden).
Ich habe bei mir zu Hause die .htaccess Datei in
/usr/syno/synoman angelegt, weil damit die IP Kontrolle auch den Login zum DS-Manager und zur Photostation (auch Audio und File) "überwachen" kann. Wenn es nur um den Schutz der 3rd Party geht, dann kann man die Datei auch unter
/usr/syno/synoman/phpsrc erstellen.
Damit die .htaccess korrekt funzen kann sind zwei zusätzliche Module nötig:
mod_rewrite und
mod_headers. Zumindest mod_rewrite ist die Minimalvoraussetzung. Diese beiden Module wurden mit dem Apache geliefert und müssen "nur" in den Config aktiviert werden.
Code:
$ nano -w /usr/syno/apache/conf/httpd.conf-sys
ziemlich am Ende des Files wird php5_module geladen. Davor sollten die Aufrufe für die beiden Module erfolgen (am besten nach dem schliessenden </IfModule>)
Code:
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
Danach die Datei speichern und den Webserver neustarten
Code:
$ sh /usr/syno/etc.defaults/rc.d/S97apache-sys.sh restart
Achtet euch beim Restart des Servers auf allfällige Fehlermeldungen auf der Konsole.
Wenn alles geklappt hat dann kann man die Datei anlegen
Code:
$ nano /usr/syno/synoman/.htaccess
und mit folgendem Inhalt füllen
Code:
ErrorDocument 403 "Meldung die beim Forbidden angezeigt werden soll"
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^192.168.*$
RewriteCond %{REMOTE_ADDR} !^1.2.3.4$
RewriteRule ^.*$ - [forbidden]
Die erlaubten IP Adressen müsst ihr natürlich nach euren Bedürfnissen anpassen.
php Code
Der Code
Code:
[COLOR=#000000] [COLOR=#0000bb]<?php
putenv[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'HTTP_COOKIE='[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$_SERVER[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'HTTP_COOKIE'[/COLOR][COLOR=#007700]]);
[/COLOR][COLOR=#0000bb]putenv[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'REMOTE_ADDR='[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$_SERVER[/COLOR][COLOR=#007700][[/COLOR][COLOR=#dd0000]'REMOTE_ADDR'[/COLOR][COLOR=#007700]]);
[/COLOR][COLOR=#0000bb]$user[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000bb]exec[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]'/usr/syno/synoman/webman/modules/authenticate.cgi'[/COLOR][COLOR=#007700]);
if([/COLOR][COLOR=#0000bb]$user [/COLOR][COLOR=#007700]!== [/COLOR][COLOR=#dd0000]'admin'[/COLOR][COLOR=#007700]){
[/COLOR][COLOR=#0000bb]header[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"HTTP/1.0 403 Forbidden"[/COLOR][COLOR=#007700]);
exit;
}
[/COLOR][COLOR=#0000bb]?>[/COLOR] [/COLOR]
sollte nicht in die .htaccess Datei direkt unter /usr/syno/synoman
geschrieben werden, weil davon auch die Photostation betroffen wäre, die ja auch auf PHP basiert.
Dann wären keine Zugriffe mehr möglich!
Also braucht man eine zweite .htaccess Datei direkt im Verzeichnis phpsrc
Diese lädt dann den Code in jedes php File das auf dem Server ausgeführt wird und sich im phpsrc-Verzeichnis befindet. Diese Version ist dem Eintrag in das php.ini File vorzuziehen, weil php.ini alle php Files betrifft und nicht nur die 3rd Party Appl
Code:
php_value auto_prepend_file /usr/syno/synoman/phpsrc/checkuser.php
die obige Zeile ist der einzig nötige Eintrag in dieser .htaccess Datei. checkuser.php ist den Name unter dem ihr obigen PHP Code abgespeichert habt. Ihr könnt aber einen beliebigen Namen und ein beliebiges Verzeichnis für die Datei wählen, da der Server unter root läuft und somit auf alle Dateien/Verzeichnisse zugreifen darf.
Ich denke diese Kombi ist die bestmögliche Absicherung der 3rd Party Appl, zusammen mit einem starken root Passwort natürlich
Gruss
tobi