Nextcloud Apps per http_user_agent blocken

Möchten Sie verhindern, dass 3rd-Party – Apps innerhalb ihrer Cloudumgebungen verwendet werden, so können Sie am Webserver nginx die Anfragen auswerten und bspw. anhand des zugrundeliegenden “ http_user_agent “ die Zugriffe mobiler Apps o. Ä. blockieren.

Am Beispiel der iOS-Deck-App stellen wir ihnen das Vorgehen exemplarisch vor. Öffnen Sie dafür zuerst den vHost Ihrer Nextcloud-Instanz

nano /etc/nginx/conf.d/nextcloud.conf

und fügen dort die rot markierten Zeilen ein.

[...]
  root /var/www/nextcloud;
  index index.php index.html /index.php$request_uri;
  # iOS:
  if ($http_user_agent ~* "NextcloudDeck*") {
            return 403;
        }

  location = / {
  [...]

Speichern Sie die Änderungen ab und schließen die vHost-Datei. Starten Sie anschließend den Websserver nginx neu

systemctl restart nginx.service

und analysieren das Webserver-Logfile:

tail -f /var/log/nginx/access.log | grep -i NextcloudDeck

oder

tail -f /var/log/nginx/access.log | grep -i nextcloud-android

Sie finden darin exemplarisch gesperrte Anfragen (Status 403), hervorgerufen bspw. durch eine Nextcloud Android-App:

Somit kann bspw. die Anwendung Nextcloud Deck im Browser weiterhin uneingeschränkt genutzt werden, ein Zugriff über eine „fremde“ Deck-App aber geblockt werden. Dieses Beispiel dient exemplarisch als Vorlage für Sie, beachten dabei aber bitte, dass andere Apps andere Strings verwenden könn(t)en.

Weitere Beschränkungen (z.B. „rate_limits“ um bspw. die extrem vielen PROPFIND-Requests des Nextcloud Desktop Clients zu begrenzen) sind auch mit Boardmitteln des nginx-Webservers möglich, jedoch leider deutlich komplexer. Gerne unterstützen wir Sie auch dabei – zögern Sie daher bitte nicht und kontaktieren uns direkt bei der FOSC IT GmbH.

Viel Spaß mit Ihrer Nextcloud! Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen. Vorab vielen Dank!