Jump to content
View in the app

A better way to browse. Learn more.

Froxlor Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[gelöst] "Primary script unknown" und php-fpm

Featured Replies

Hallo an alle,

es kommt ja tausende Male am Tag vor dass irgendein Robot oder Hacker versucht, z.B. wp-login.php zu öffnen - was es aber gar nicht auf der betreffenden Domain gibt. Die Möglichkeiten solcher "Hackversuche" sind unerschöpflich. Abstellen kann man sie nicht - aber man kann verhindern, dass Aufrufe von nicht existierenden php-Scripten überhaupt bis zum php-fpm durchkommen. Das geht indem man in der jeweiligen Apache-Domain-conf die Zeile

 

SetHandler "proxy:unix:/var/lib....fpm.socket|fcgi://localhost"

ersetzt durch

<If "-f %{SCRIPT_FILENAME}">
	SetHandler "proxy:unix:/var/lib/...fpm.socket|fcgi://localhost"
</If>

Dann ist wenigstens ein Dienst weniger mit diesem Müll beschäftigt :) Kann man Froxlor irgendwie sagen dass es den php-fpm-Aufruf in so ein if-Statement einbettet?

Edited by df8oe
gelöst

  • Author

Danke - ich teste mal aus ob das irgendeinen positiven Einfluss auf die Systemlast hat ;)

  • df8oe changed the title to [gelöst] "Primary script unknown" und php-fpm

Wenn es nur um spezifische Dateien geht, geht auch das Apache Modul mod_maxminddb und die GeoLite2 Datenbank um die Zugriffe nur von Deutschland (oder beliebig anderen Ländern) aus zuzulassen. Das reduziert die Versuche ebenfalls innerhalb kurzer Zeit erheblich. Allerdings sollte man natürlich wissen von wo aus die eigenen Kunden zugreifen.

.htaccess Beispiel für Wordpress:

<IfModule mod_maxminddb.c>
MaxMindDBEnable On
MaxMindDBFile DB /usr/share/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(AT|CH|DE) AllowCountry
</IfModule>

<IfModule mod_authz_core.c>
<Files wp-login.php>
Require env AllowCountry
</Files>
<Files xmlrpc.php>
Require all denied
</Files>
</IfModule>

# BEGIN WordPress
# Die Anweisungen ...

Zugriffe auf wp-login.php aus deutschsprachigen Länder (DE, AT, CH) werden zugelassen.

Zugriffe auf xmlrpc.php komplett abgelehnt.

  • 2 weeks later...
  • Author

Danke, der Tipp ist auch sehr gut. Ich habe den Cron-Script seit meinem Post hier gepatched und dadurch pro Tag etliche Megabyte weniger Errorlogs. Klar dass die Last auch entsprechend gesunken ist.

 

LG

  • 5 months later...

Sorry, wenn ich den Threat wieder zum Leben erwecke. Gibt es eingen Grund, wieso die Anpassung nicht im GitHub Repository durchgeführt wird?

<If "-f %{SCRIPT_FILENAME}">
	SetHandler "proxy:unix:/var/lib/...fpm.socket|fcgi://localhost"
</If>

 

Am 10.8.2021 um 14:12 schrieb d00p:

ja du kannst den cron patchen wenn du das so gerne machen möchtest, https://github.com/Froxlor/Froxlor/blob/master/lib/Froxlor/Cron/Http/ApacheFcgi.php#L59

Müsste erst analysieren, ob damit irgendwelche szenarien nicht mehr funktionieren und es müsste auch für nginx und lighttp umgesetzt werden, PRs sind gern willkommen

Die Änderung wurde nun in das Main Repository für Apache übernommen, somit ist in Zukunft keine eigenständige Anpassung: https://github.com/Froxlor/Froxlor/pull/1006

Mit nginx und lighttp habe ich leider keine Erfahrungen.

  • 2 months later...

Kann es sein das diese Anpassung dafür jetzt andere Fehler wirft? Falls jemand jetzt nicht vorhandene Datein aufruft wirft der Server einen 503 zurück weil er auf nen sock will der garnicht eingerichtet ist.

No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php8.1-fpm.sock (*) failedb

denn er nutzt ja jetzt durch das IF nicht mehr den passenden Pfad zum konfigurieren Socket. Also wenn die Datei nicht da ist generiert er mir nen Primary script unknown

Aber durch das hier jetzt einmal das nicht vorhandene Socket und dann noch 

AH01079: failed to make connection to backend: httpd-UDS

hinterher. Also eigentlich sogar eine Errorlog zeile mehr. Welche verwirrend sein kann für Leute die sich fragen wieso in der Domain nach nem fpm Socket gefragt wird, der garnicht zugeteilt wurde.

5 hours ago, BigWhoop said:

Kann es sein das diese Anpassung dafür jetzt andere Fehler wirft?

Nein, die hat damit nix zu tun, wenn dein Webserver loggt: ich kann das so let nicht finden/lesen dann hat er offenbar schon versucht das PHP Script dahin weiterzugeben über den handler.

Create an account or sign in to comment

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.