vServer zeigt unbekannten user/prozess mit hoher Auslastung

  • Moin,

    ich habe gerade auf meinem vServer die Nextcloud Instanz von SQLite auf Maria DB umgezogen.

    Ich wunder mich gerade über eine hohe Serverauslastung in "top"

    Dort gibt es einen user 991 und einen Prozess "pg_recvlogicals", der 390% - also nahezu alle 4 Kerne auslaster und schon über 100 Stunden läuft.

    Der Server wurde allerdings nach einem Snapshot gesern neu gestartet.

    Es gibt auf meinem vServer keinen user 991

    Ich habe keinen Container/Programm, die postgres nutzt (pg_recvlogicals) hat offenbar was mit postgres zu tun

    Kann mir irgendkemand erklären, wo der Prozess herkommt und ob ich hier was vom "physichen Server" sehe, was ich nicht beeinflussen kann?

    An der Performance bemerke ich nichts - wobei ich auf meiner NC Instanz auch alleine bin...

    Danke für Hinweise

    :)

  • Zitat

    pg_recvlogical is a command-line tool included with PostgreSQL used for managing and consuming logical replication slots. It facilitates the streaming of changes from a logical replication slot, enabling real-time data capture and consumption. pg_recvlogical acts as a consumer of data, receiving changes from the replication slot and outputting them to a specified file or standard output.

    Dass dieser Prozess 100% CPU nutzen soll, ist etwas seltsam. Zumindest dann, wenn es sich tatsächlich um den genannten Postgres Prozess handeln sollte. Welche Container laufen denn alle bei dir? Es könnte sich natürlich auch gut um Malware handeln, die sich hinter diesem Prozess versteckt (und sich nur so genannt hat um nicht aufzufallen). Versuche hier wirklich mal den Container und den Prozess zu lokalisieren und genauer zu untersuchen. Falls dein System wirklich kompromittiert wurde, solltest du das auf keinen Fall einfach so weiter betreiben. Versuche also wirklich so schnell es geht da Klarheit zu schaffen. Vielleicht bringt ja auch irgendein Container oder ein Nextcloud Plugin eine integrierte Postgres Installation mit. Du kannst dir ja auf dem Host alle Prozesse mal anschauen und überprüfen, ob da noch andere Postgres Prozesse laufen. Müsste ja eigentlich, wenn alles mit rechten Dingen zugehen sollte.

  • der prozess hat sich nun abgeregt, nachdem ich 3 alte docker prozesse entfernt habe (watchtower, 2x hello-world)

    allerdings blitzt immer noch vom user 991 gelegentlich das pg_recvlogicals und noch ein tail prozess auf

    docker images, die bei mir laufen sind

    linuxserver.io (nextcloud) inkl mariadb

    collabora

    nginx proxy manager

    wallabag

    snappymail


    das mit der malware bringt mic ans schwitzen. ist mein erster vserver udn ich hatte eignetlich alle möglichen sicherheitstipps befolgt. ssh abdichten, cron-apt, docker aktuell halten mit watchtower, wobei der irgendwie abgek*t ist...

  • ich habe jetzt mal snappymail und wallabag gestoppt und prozesse aufgeräumt - der user scheint weg zu sein. ich werde beide container erstmal nicht mehr aktivieren. war eh nur zum ausporbieren. ich hoffe mal, dass es KEINE malware war...

  • ssh abdichten, cron-apt, docker aktuell

    Auch Container sollte man absichern, sowohl im Container selbst, als auch mit einer Firewall.

    Dazu lohnt es sich auch die Baupläne der Container anzugucken, damit man weiß, was man da eigentlich ausführt und wie ernst es der Entwickler mit der Containersicherheit meint.

    Es bringt dir natürlich nichts SSH Abzusichern, wenn der Container dann eine Applikation installiert, die einem Zugriff mit Standardpasswörtern gibt (wie z.B. wallabag:wallabag)

    Zusätzlich lohnt es sich in dem Fall auch die Prozesshierarchie / den Prozessbaum anzugucken, welchem containerd-Prozess am Ende pg_recvlogicals gehört.

    Einmal editiert, zuletzt von H6G (24. Juli 2025 um 11:18)

  • 991 236069 0.0 0.0 0 0 ? Z 08:52 0:00 \_ [pg_recvlogicals] <defunct>

    stand in der prozessliste und in /prod habe ich keinen prozess dazu gefunden. sehr merkwürdig... Danke für deine Hinweise. Ich reduziere meine container vorerst auf das absolute minimum...

  • Auf Nummer sicher zu gehen ist immer besser. Es muss keine Malware sein. Aber dass so ein Prozess läuft - ohne dass man es will und dann auch noch 100% CPU Load verursacht - ist immer ein Warnsignal. Genaueres wird man erst wissen, wenn man sich den Container (am besten in einer isolierten Umgebung) genauer anschaut. Es ist prinzipiell immer riskant, wenn man fremde Container lädt und laufen lässt. Da helfen einem dann auch die gut gemeinten Sicherheitsvorkehrungen nichts, wenn man als Admin die Malware selbst installiert. Früher hatte man in Linux signierte Repositories/Pakete um genau solche Szenarien so gut wie möglich zu verhindern. Durch die neue Container Welt untergräbt man das diese Konzept halt wieder. Hat alles seine Vor- und Nachteile.