March 26, 20215 yr Community Expert 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.
March 27, 20215 yr 15 hours ago, mgutt said: Wenn daran Interesse besteht, kann ich das gerne mal in einer Anleitung verfassen. Wäre super, würde mich interessieren.
March 27, 20215 yr 18 hours ago, Anym001 said: - Regelmäßig den Nextcloud Scan machen https://scan.nextcloud.com/ Danke. Das kannte ich noch nicht. So ein grünes A+ beruhigt dann doch einigermaßen.
March 27, 20215 yr Community Expert 9 hours ago, Anym001 said: Wäre super, würde mich interessieren. Teste mal: https://gutt.it/website-firewall-oder-wie-schuetze-ich-meine-private-cloud/
March 27, 20215 yr 51 minutes ago, mgutt said: Teste mal: https://gutt.it/website-firewall-oder-wie-schuetze-ich-meine-private-cloud/ Wo genau muss die Datei platziert werden? Unter /mnt/user/appdata/nextcloud ? Wie bringe ich NPM dazu das er „HTTP_X_FORWARDED_FOR“ durchführt?
March 27, 20215 yr Community Expert 26 minutes ago, Anym001 said: Wo genau muss die Datei platziert werden? Da wo auch die index.php liegt. 30 minutes ago, Anym001 said: Wie bringe ich NPM dazu das er „HTTP_X_FORWARDED_FOR“ durchführt? Teste das mal: https://github.com/jc21/nginx-proxy-manager/issues/112#issuecomment-559219019
March 30, 20215 yr 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.
March 30, 20215 yr Community Expert 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/
March 31, 20215 yr 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.
March 31, 20215 yr Community Expert 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
March 31, 20215 yr 4 minutes ago, mgutt said: 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 Sollte eigentlich so passen:
March 31, 20215 yr Community Expert Ö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.
March 31, 20215 yr Community Expert 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.
March 31, 20215 yr 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?
March 31, 20215 yr Community Expert 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.
March 31, 20215 yr 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?
March 31, 20215 yr Community Expert 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.
March 31, 20215 yr 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 March 31, 20215 yr by Anym001
March 31, 20215 yr Community Expert 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.
March 31, 20215 yr 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 March 31, 20215 yr by Anym001
March 31, 20215 yr Community Expert 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.
March 31, 20215 yr 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.
March 31, 20215 yr Community Expert v0.3 ist fertig. Jetzt kann man IP-Bereiche freischalten, die Dateien enden auf .ip und der Firewall-Code steht nun ganz oben in der .htaccess.
March 31, 20215 yr 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?
Archived
This topic is now archived and is closed to further replies.