Update/fix Blog/Webseite

Fortsetzung der Diskussion von Offline von stable zu rawhide/tng (Vorbereitung fastd -> L2TP):

Ich mach’ dafür mal 'n neuen Thread auf …

Bzgl. des "parse_blocks Errors:

Das spuckt Google aus. Scheint ein eingebauter Filter von Wordpress zu sein, den es anscheinend seit Wordpress 5.0.0 gibt. Welche Wordpress-Version läuft bei dir? Die aktuelle Version ist 5.6. Laut HTML würde ich tippen, dass du noch 4.9.16 hast? Da gab es die Funktion noch nicht, „Call to undefined function“ wäre dann korrekt. Das Addon scheint Wordpress >= 5.0.0 zu benötigen.

Empfehlung: Wordpress aktuell halten, Wordpress-Security-Bugs werden Stunden nach dem Bekanntwerden automatisch im ganzen Internet gescannt und exploited. Je älter die Wordpress-Version und die Addons sind, umso wahrscheinlicher, dass man gehackt wird. Wordpress hat einen Auto-Updater, der bei mir seit Jahren wunderbar funktioniert, wenn man keine „Gammel-Addons“ nutzt :slight_smile: So wenige Addons wie möglich ist immer ein guter Tipp, um die Angriffsfläche klein zu halten, und umso weniger geht bei Updates kaputt.

Bzgl. Apache-Logfile:

Mach ein

grep -r combine /etc/apache2

und guck, ob es eine „LogFormat“ Definition mit dem Namen „vcombined“ gibt. Ich habe folgende 5 LogFormat in meinem Apache:

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

vcombined müsste also ein selbst definiertes „LogFormat“ sein in deiner Config. Falls es keins mit diesem Namen gibt, dann ändere es auf „combined“ oder „vhost_combined“, je nachdem was es bei dir gibt. Dann sollte das Logging wieder funktionieren denke ich.

Sag kurz Bescheid per WhatsApp, dann können wir uns Dinge kurz zusammen angucken wenn du magst. Oder wenn wir ein Backup der VM (Wordpress + Datenbank) ziehen wollen, und dann ein Update auf Wordpress 5.6 zusammen machen wollen.

1 „Gefällt mir“

Umgezogen auf neue VM, das ist schon mal ein Problem:

[Mon Jan 04 15:26:28.442338 2021] [php7:error] [pid 581408] [client 91.63.93.159:43330] PHP Fatal error:  Uncaught Error: Call to undefined function WPDiscourse\\DiscoursePublish\\parse_blocks() in /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php:188\nStack trace:\n#0 /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php(163): WPDiscourse\\DiscoursePublish\\DiscoursePublish->sync_to_discourse_work()\n#1 /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php(112): WPDiscourse\\DiscoursePublish\\DiscoursePublish->sync_to_discourse()\n#2 /var/www/ffgt-beta/wordpress/wp-includes/class-wp-hook.php(288): WPDiscourse\\DiscoursePublish\\DiscoursePublish->publish_post_after_save()\n#3 /var/www/ffgt-beta/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters()\n#4 /var/www/ffgt-beta/wordpress/wp-includes/plugin.php(453): WP_Hook->do_action()\n#5 /var/www/ffgt-beta/wordpress/wp-includes/post.php(3682): do_action()\n#6 /var/www/ffgt-beta/wordpress/wp-includes/post.php(3755): wp_insert_post()\n#7 /var/www/ffgt-beta/wordpress/wp in /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php on line 188, referer: https://freifunk-kreisgt.de/wp-admin/post.php?post=10781&action=edit

Mit Chance ist es nur das … yepp. Discourse plugin deaktiviert und tut. (Gut, Fratzenbuch AFAICS nicht, aber das ist mir auch realativ egal.)

Grr, aber warum logt der Indianer nun nur noch vcombined?

root@verein:~# tail -10 /var/log/apache2/freifunk-kreisgt.de_access.log 
vcombined
vcombined
vcombined
vcombined
vcombined
vcombined
vcombined
vcombined
vcombined
vcombined
root@verein:~# apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-08-12T19:46:17
root@web01:~# apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built:   2019-09-16T13:13:53

Das sind die Dinge, die 5-Minuten-Sachen immer zu epischen Debugorgien ausarten lassen, weshalb ich weniger und weniger Lust habe, irgendwas anzufassen. Grrrrrrrr…

root@verein:~# grep combin /etc/apache2/sites-enabled/*
    CustomLog ${APACHE_LOG_DIR}/freifunk-kreisgt.de_80_access.log vcombined
    CustomLog ${APACHE_LOG_DIR}/freifunk-kreisgt.de_access.log vcombined
root@web01:~# grep combin /etc/apache2/sites-enabled/freifunk-kreisgt.de.conf 
    CustomLog ${APACHE_LOG_DIR}/freifunk-kreisgt.de_access.log vcombined
    CustomLog ${APACHE_LOG_DIR}/freifunk-kreisgt.de_access.log vcombined

Das ist kein Problem :wink:

Das hingegen ist ein valider Punkt. Da die alte Installation noch mit @FreifunkGT statt @FreifunkKreisGT verbunden ist, wäre das auch nicht so schlimm. Aber, siehe oben, das Problem war wohl das Discourse-Plugin, zumindest unter Ubuntu 20.04. (Die Installation auf web01 ist noch 16.04-basiert.)

Angeblich nicht:

Aber ja, Update auf $current (5.6 as of this writing) steht auf der Liste …

Zu grep -r combine /etc/apache2, hmm. Glaube eigentlich nicht, daß ich das da reingehackt habe?

root@web01:~# grep -r combine /etc/apache2
…
/etc/apache2/apache2.conf:LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"-\" %{SSL_PROTOCOL}x %{SSL_CIPHER}x %T %{compression}n" vcombined
…

Findet man auch woanders. Aber so sei es:

# -wusel, 2021-01-04, from our legacy systems
LogFormat "%{Host}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"-\" %{SSL_PROTOCOL}x %{SSL_CIPHER}x %T %{compression}n" vcombined
# -wusel end

=>

freifunk-kreisgt.de 13.73.5.245 - - [04/Jan/2021:16:40:17 +0100] "POST //xmlrpc.php HTTP/1.1" 200 404 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4240.193 Safari/537.36" "-" TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 0 -

*seufz* Wieder ein Logfile mehr für Fail2Ban :frowning:

Die Angabe scheint falsch, würde ich sagen. Vor 8 Monaten hat er den Aufruf der Funktion »parse_blocks« eingebaut:

Da hätte er auch die Minimum-Wordpress-Version auf »>=5.0.0« anheben müssen. Issue ist erstellt:
https://github.com/discourse/wp-discourse/issues/387

Das ist wohl leider richtig:

==> /var/log/apache2/error.log <==
[Mon Jan 04 17:27:50.558262 2021] [php7:error] [pid 583712] [client 91.63.93.159:45930] PHP Fatal error:  Uncaught Error: Call to undefined function WPDiscourse\\DiscoursePublish\\parse_blocks() in /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php:188\nStack trace:\n#0 /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php(163): WPDiscourse\\DiscoursePublish\\DiscoursePublish->sync_to_discourse_work()\n#1 /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php(112): WPDiscourse\\DiscoursePublish\\DiscoursePublish->sync_to_discourse()\n#2 /var/www/ffgt-beta/wordpress/wp-includes/class-wp-hook.php(288): WPDiscourse\\DiscoursePublish\\DiscoursePublish->publish_post_after_save()\n#3 /var/www/ffgt-beta/wordpress/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters()\n#4 /var/www/ffgt-beta/wordpress/wp-includes/plugin.php(453): WP_Hook->do_action()\n#5 /var/www/ffgt-beta/wordpress/wp-includes/post.php(3682): do_action()\n#6 /var/www/ffgt-beta/wordpress/wp-includes/post.php(3755): wp_insert_post()\n#7 /var/www/ffgt-beta/wordpress/wp in /var/www/ffgt-beta/wordpress/wp-content/plugins/wp-discourse/lib/discourse-publish.php on line 188, referer: https://freifunk-kreisgt.de/wp-admin/post.php?post=10783&action=edit

Neuinstallation => örks.

Und nach FB posten scheint auch nicht mehr so einfach zu gehen, ich schmeiße die entsprechenden Plugins nun raus. Hat da noch keiner was mit bash & curl gebaut?

freifunk-kreisgt.de ist nun auf WP 5.6 — das Discourse-Plugin tut wieder, dafür gibt es etliche andere Plugins nur noch in »ungetestet mit deiner WordPress-Version«-Versionen: irgendwas … :wink:

Das ist relativ normal, und in vielen Fällen funktionieren sie einwandfrei, wenn sie nicht gerade 10 Jahre alt sind :slight_smile: Wordpress ist relativ berühmt dafür, SEEHR lange rückwärtskompatibel zu sein, manchmal länger als einem lieb ist:

PHP 7.4 ist zwar »recommended«, aber Wordpress funktioniert auch noch mit PHP 5.6:

Letztes Jahr hieß es »WordPress will now require a minimum of PHP 5.6.20.«
Ich weiß nicht, ob sie den Schritt auf >=7 schon gewagt haben, ich denke nein…

Nebenbei eingestreut: Laut PHP.net erhalten nur noch PHP >= 7.3 Security-Updates:
PHP: Supported Versions

Oder anders gesagt: 52% aller Wordpress-Installationen laufen mit PHP-Versionen, für die es keine Security-Patches mehr gibt (außer sie werden backported, was man nur hoffen kann…)

Kann man als Wordpress-Nutzer gut finden, aber leider nimmt es den Druck von den Betreibern, sich wenigstens alle paar Jahre mal um aktuelle Systemupdates zu kümmern…

Egal, du hast ja schon irgendeine PHP7-Version am Start :slight_smile: Und nun ein shiny-fresh Wordpress 5.6 mit weniger Plugins, was ein großer Schritt in die richtige Richtung ist :smiley:

7.4 IIRC ist bei Ubuntu 20.04 dabei. Aktuell sind’s eher mehr Plugins als zuvor, u. a. liebäugele ich mit 'nem F2B-Plugin, nachdem ich das Log getailt habe …

Was ich ja nicht wirklich verstehe; warum ändern sich C/C++ marginal in Jahrzehnten, PHP und Co. in Jahren? Aber andere Geschichte …

Letztlich aber alles nur dafurch ausgelöst, weil ich im alten WP Updates gemacht habe …