Wie arbeitet Ihr mit euren Daten - direkt auf unRaid Server oder lokal?


Pixelpaule

Recommended Posts

Was man auch noch umsetzen könnte wäre ein "Knock Knock" Prinzip. Und zwar habe ich bei einer meiner Websites eine Firewall realisiert die zb die Datei /firewall/11.22.33.44.txt erstellt, wenn ein Besucher mit der IP 11.22.33.44 eine Datei aufruft, die er nicht aufrufen darf. In der .htaccess prüfe ich dann einfach ob die Datei existiert und ein User mit der gesperrten IP bekommt dann ein Captcha präsentiert. Das Prinzip könnte man auch leicht umdrehen. Also alle IPs bis auf den Aufruf von nextcloud.example.com/secretfilename.php sind verboten und wenn diese aufgerufen wird, landet die aufrufende IP in einer Whitelist. Nach x Tagen lässt man diese automatisch wieder löschen. Außerdem kann man durch die secretfilename.php auch eine E-Mail senden lassen. Dann weiß man direkt, wenn die Datei jemand aufgerufen hat.

 

Wenn daran Interesse besteht, kann ich das gerne mal in einer Anleitung verfassen.

  • Like 2
Link to comment

Also ich habe jetzt mal folgendes gemacht: 

 

1. Bei NPM die Advanced Settings angepasst und folgendes hinzugefügt; 

proxy_set_header Host  $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

Wie kann ich prüfen, ob er auch wirklich die IP Adresse sauber durchschleust? 

 

2. Die firewall.php erstellt, mit deinem Inhalt gefüllt und unter "/mnt/user/appdata/nextcloud/nextcloud" abgelegt. 

 

3. Aufruf meiner Nextcloud Website mittels: "https://meinedomain.goip.de/firewall.php"

 

Daraufhin hat er eine firewall.php.bak Datei angelegt. 

Ein Verzeichnis für den key geht mir jedoch ab. 

Zugriff auf die Nextcloud Website ist nach wie vor möglich. 

Link to comment
19 hours ago, Anym001 said:

Daraufhin hat er eine firewall.php.bak Datei angelegt. 

 

Eine solche Funktion hat mein Script gar nicht. Hast du die Datei evtl mit dem Config Editor bearbeitet? Der macht das.

 

19 hours ago, Anym001 said:

Zugriff auf die Nextcloud Website ist nach wie vor möglich. 

Was hast du denn gesehen als du firewall.php aufgerufen hast? Schau mal bitte in die .htaccess Datei. Wurde da der Firewall-Code hinzugefügt?

 

EDIT: Version 0.2 enthält nun auch die deutsche Übersetzung:

https://gutt.it/website-firewall-oder-wie-schuetze-ich-meine-private-cloud/

Link to comment
9 hours ago, mgutt said:

Hast du die Datei evtl mit dem Config Editor bearbeitet? Der macht das.

 

Habe nun deine Datei, die du bereitgestellt hast, mittels Krusader in das besagte Verzeichnis kopiert. 

 

9 hours ago, mgutt said:

Was hast du denn gesehen als du firewall.php aufgerufen hast? Schau mal bitte in die .htaccess Datei. Wurde da der Firewall-Code hinzugefügt?

 

Aufruf meiner Nextcloud Website mittels: "https://meinedomain.goip.de/firewall.php"

Werde direkt auf den Login Screen weitergeleitet. 

Die .htaccess Datei wurde nicht bearbeitet und auch kein Verzeichnis /firewall angelegt.

 

Link to comment
2 hours ago, Anym001 said:

Aufruf meiner Nextcloud Website mittels: "https://meinedomain.goip.de/firewall.php"

Werde direkt auf den Login Screen weitergeleitet. 

Auch so eine Weiterleitung gibt es nicht in meinem Script. Für mich klingt das so, als sei die Datei nicht da. Oder könnte sie vielleicht die falschen Rechte besitzen... Check mal bitte:

ls -la /mnt/user/appdata/nextcloud/nextcloud

 

 

Link to comment

Öffne mit F12 den Netzwerkmonitor des Browsers und öffne die firewall.php erneut, aber diesmal hängst du ein Fragezeichen dran:

"https://meinedomain.goip.de/firewall.php?"

 

Damit will ich sicherstellen, dass der die Weiterleitung nicht zwischengespeichert hat. Außerdem kannst du nun im Monitor sehen warum weitergeleitet wurde. Also 404 oder 403 oder 301 usw. 

Link to comment

Kann es sein, dass in der .htaccess von Nextcloud eine Weiterleitung auf die login-Seite erzwungen wird? EDIT: Ja, da ist eine Weiterleitung drin. Sorry, ich hatte nie einen Login angelegt beim Testen ^^

 

Nach Anlegen des Logins fügt Nextcloud das in der .htaccess hinzu:

ErrorDocument 403 //
ErrorDocument 404 //
<IfModule mod_rewrite.c>
  Options -MultiViews
  RewriteRule ^core/js/oc.js$ index.php [PT,E=PATH_INFO:$1]
  RewriteRule ^core/preview.png$ index.php [PT,E=PATH_INFO:$1]
  RewriteCond %{REQUEST_FILENAME} !\.(css|js|svg|gif|png|html|ttf|woff2?|ico|jpg|jpeg|map|webm|mp4|mp3|ogg|wav)$
  RewriteCond %{REQUEST_FILENAME} !core/img/favicon.ico$
  RewriteCond %{REQUEST_FILENAME} !core/img/manifest.json$
  RewriteCond %{REQUEST_FILENAME} !/remote.php
  RewriteCond %{REQUEST_FILENAME} !/public.php
  RewriteCond %{REQUEST_FILENAME} !/cron.php
  RewriteCond %{REQUEST_FILENAME} !/core/ajax/update.php
  RewriteCond %{REQUEST_FILENAME} !/status.php
  RewriteCond %{REQUEST_FILENAME} !/ocs/v1.php
  RewriteCond %{REQUEST_FILENAME} !/ocs/v2.php
  RewriteCond %{REQUEST_FILENAME} !/robots.txt
  RewriteCond %{REQUEST_FILENAME} !/updater/
  RewriteCond %{REQUEST_FILENAME} !/ocs-provider/
  RewriteCond %{REQUEST_FILENAME} !/ocm-provider/
  RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
  RewriteCond %{REQUEST_FILENAME} !/richdocumentscode(_arm64)?/proxy.php$
  RewriteRule . index.php [PT,E=PATH_INFO:$1]
  RewriteBase /
  <IfModule mod_env.c>
    SetEnv front_controller_active true
    <IfModule mod_dir.c>
      DirectorySlash off
    </IfModule>
  </IfModule>
</IfModule>

 

Man muss also nach "cron.php" noch diese Zeile ergänzen:

 RewriteCond %{REQUEST_FILENAME} !/firewall.php

 

Erst dann kann man die firewall.php aufrufen. Das ist natürlich doof, da es die Installation der Firewall etwas verkompliziert. Ich hätte jetzt allerdings keine andere Idee wie man das lösen kann.

 

Allerdings muss ich jetzt trotzdem etwas ändern, denn die Firewall muss zuerst ausgeführt werden, was aktuell nicht der Fall ist, da ich den Code am Ende der .htaccess hinzufügen lasse. Ich werde das in Version 0.3 korrigieren.

Link to comment
16 minutes ago, mgutt said:

Kann es sein, dass in der .htaccess von Nextcloud eine Weiterleitung auf die login-Seite erzwungen wird?

 

Folgender Eintrag in der .htaccess hat gefehlt:

RewriteCond %{REQUEST_FILENAME} !/firewall.php

 

Nun funktioniert es. 

 

Wie schaut das eigentlich mit bestehenden Verbindungen aus? zB mittels MobilerApp

Werden die auch beeinflusst?

Oder geht es hier nur um die Nextcloud Website direkt über den Browser?

Link to comment
Just now, Anym001 said:

Wie schaut das eigentlich mit bestehenden Verbindungen aus? zB mittels MobilerApp

Werden die auch beeinflusst?

Wird alles blockiert. Die Apps greifen ja auf "deinedomain.de/remote.php" zu und werden daher von der Firewall abgewiesen. Also erst IP freischalten und dann ist Nextcloud erreichbar.

Link to comment
4 minutes ago, mgutt said:

Wird alles blockiert. Die Apps greifen ja auf "deinedomain.de/remote.php" zu und werden daher von der Firewall abgewiesen. Also erst IP freischalten und dann ist Nextcloud erreichbar.

 

Ah okay alles klar.

Das heißt ich muss jedes Mal wenn sich meine IP Adresse ändert (somit jede Nacht), eine neue Freischaltung machen?

Link to comment
16 minutes ago, Anym001 said:

Das heißt ich muss jedes Mal wenn sich meine IP Adresse ändert (somit jede Nacht), eine neue Freischaltung machen?

 

Es wird die IP des Besuchers freigeschaltet, nicht die des Servers. Sollte sich die jeden Tag ändern, dann ja.

 

Wäre es besser, wenn man eine komplette Range freischalten könnte? Ich weiß leider nicht ob sich die mobilen Clients über ein klassisches Cookie authentifizieren, sonst könnte man evtl ein Cookie prüfen.

 

Was denke ich gehen sollte, dass wenn man die IP 1.2.3.4 hat, dass man im Firewall-Verzeichnis die Datei 1.2.3 erstellt und den .htaccess Code so anpasst, dass er nur die ersten drei Oktetts der IP prüft. Natürlich auch denkbar bei 1.2, also nur die ersten beiden. Laut dieser Website hat die Telekom zB die 2.160 bis 2.175:

https://www.nirsoft.net/countryip/de.html

 

Man müsste also 2.160, 2.161 usw als Datei im Firewall-Verzeichnis anlegen. Vorteil ist, dass man dann kaum noch was freischalten muss, Nachteil ist, dass man dann keinen Schutz vor Angreifern aus Deutschland hat.

 

Wenn das interessant ist, probiere ich das mal aus.

 

Link to comment
16 minutes ago, mgutt said:

Wenn das interessant ist, probiere ich das mal aus.

 

Für mich würde reichen, wenn die ersten beiden Stellen abgeprüft werden. 

Da es bei uns in Österreich nicht wirklich viele Anbieter gibt und ich mit den ersten beiden Stellen auf meinen persönlichen Anbieter einschränken könnte, wäre die Angriffsfläche schon mal um einiges reduziert. 

Edited by Anym001
Link to comment

Ersetz mal den Firewall Code in der .htaccess dagegen:

# ############ Firewall ###############
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_ADDR} (\d+)\.(\d+)\.(\d+)\.(\d+)
RewriteCond firewall/%1.%2.%3.%4 !-f
RewriteCond firewall/%1.%2.%3 !-f
RewriteCond firewall/%1.%2 !-f
RewriteCond %{REQUEST_URI} !^/firewall\.php$
RewriteRule .* /firewall\.php [QSD,L,R=307]
</IfModule>
# ############ Firewall ###############

 

Wenn du jetzt die Datei 12.34 in firewall/ erstellst, sollte der komplette Adressbereich "12.34.x.x" freigeschaltet sein. Muss ich mir jetzt nur mal überlegen wie man das umsetzt, dass das auch über die firewall.php angelegt werden kann.

Link to comment

Wenn ich also zB die Zeile "RewriteCond firewall/%1.%2 !-f" weglasse, werden nur die ersten 3 Stellen geprüft oder? 

 

23 minutes ago, mgutt said:

# ############ Firewall ###############

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REMOTE_ADDR} (\d+)\.(\d+)\.(\d+)\.(\d+)

RewriteCond firewall/%1.%2.%3.%4 !-f

RewriteCond firewall/%1.%2.%3 !-f

RewriteCond firewall/%1.%2 !-f

RewriteCond %{REQUEST_URI} !^/firewall\.php$

RewriteRule .* /firewall\.php [QSD,L,R=307]

</IfModule>

# ############ Firewall ###############

 

Mir ist noch aufgefallen, dass die Dateien in /firewall zwar mit allen 4 Stellen erstellt wird, aber die letzte Stelle als Dateityp erkannt und umgeschrieben wird. 

Somit besteht die Dateibezeichnung selbst nur noch aus den ersten 3 Stellen.

Edited by Anym001
Link to comment
5 minutes ago, Anym001 said:

Wenn ich also zB die Zeile "RewriteCond firewall/%1.%2 !-f" weglasse, werden nur die ersten 3 Stellen geprüft oder? 

Das kannst du alles so lassen. Solange keine entsprechende Datei da ist, macht die Regel auch nichts.

 

6 minutes ago, Anym001 said:

Somit besteht die Dateibezeichnung selbst nur noch aus den ersten 3 Stellen.

In Windows? Das ist egal. Liegt denke ich daran, dass du keine Dateiendungen anzeigen lässt.  Aber wenn das einfacher ist, kann ich das ändern, so dass die Dateien mit der Endung .ip oder so angelegt werden.

Link to comment
Just now, mgutt said:
9 minutes ago, Anym001 said:

Wenn ich also zB die Zeile "RewriteCond firewall/%1.%2 !-f" weglasse, werden nur die ersten 3 Stellen geprüft oder? 

Das kannst du alles so lassen. Solange keine entsprechende Datei da ist, macht die Regel auch nichts.

 

Okay alles klar. 

 

1 minute ago, mgutt said:
9 minutes ago, Anym001 said:

Somit besteht die Dateibezeichnung selbst nur noch aus den ersten 3 Stellen.

In Windows? Das ist egal. Liegt denke ich daran, dass du keine Dateiendungen anzeigen lässt.  Aber wenn das einfacher ist, kann ich das ändern, so dass die Dateien mit der Endung .ip oder so angelegt werden.

 

Scheint tatsächlich nur ein Darstellungsproblem zu sein. Verwende Krusader. 

.ip wäre vermutlich sprechender. 

Link to comment

Werde ich die Tage mal testen.

Vielen Dank für deine Bemühungen! :)

 

Was haltest du davon, wenn man bestimmte Länder mittels einer solchen Datei freigibt? Macht das überhaupt Sinn? Oder hebt das den eigentlichen Zweck der Firewall wieder auf?
https://www.ip2location.com/free/visitor-blocker

 

Meine IP’s passen nämlich leider nicht mehr zu deiner Liste von oben. Die scheint schon ziemlich alt zu sein. 
Wie kann man den aktuellen IP Bereich herausfinden?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.