Wiederherstellen nach Virenbefall
Zu unternehmen sind die folgenden Schritte:
Datenbank sichern
Plugins notieren, um sie später erneut installieren zu können
Theme notieren, um es später erneut installieren zu können
Medien sichern, um sie später wieder hochladen zu können
alle Inhalte im
FTP-Verzeichnis löschen
WordPress neu installieren
gesicherte Datenbank importieren
wp-config.php anpassen
Theme installieren
Plugins installieren
Medien hochladen
evtl. Widgets neu anpassen
zu 1. Datenbank sichern
Beim Webhoster in den zur Website gehörenden account einloggen.
Zu „Datenbanken“ gehen und hier die Schaltfläche „phpMyAdmin“ wählen. Es geht eine Tabellenübersicht auf, die den gesamten Inhalt der Datenbank zeigt. Über der Tabelle stehen verschiedene Funktionen. Hier „Exportieren“ wählen. An den angebotenen Optionen nichts ändern. Es werden sowohl die Datenbankstruktur als auch die Inhalte der Website exportiert und zwar als sql-Datei.
Nur zur Information: Die wesentlichen Inhalte (Blogbeiträge und Seiten) stecken in der Zeile „xyz_posts“. Hier steht xyz für den sog. Präfix der Tabelle, der üblicherweise aus 6 Zeichen (Buchstaben und Zahlen) besteht und der sich von Tabelle zu Tabelle unterscheidet. Es kann sogar innerhalb einer Tabelle Bereiche mit unterschiedlichen Präfixen geben. Ruft man die Zeile xyz_posts auf, werden rechts sämtliche Beiträge und Seiten tabellarisch aufgelistet. Klickt man hier auf die kleine Bearbeiten-Schaltfläche eines der Beiträge oder der Seiten, kommen die eigentlichen Inhalte (also die eingepflegten Texte inkl. der Formatierungen und evtl. eingebauter Bilder oder Links) zum Vorschein. Das macht deutlich, wie wichtig die Datenbank ist! An den Inhalten der Zeile xyz_post sollte aber nichts geändert werden!
Viele Plugins haben in der Datenbank eigene Datensätze, so z. B. BuddyPress. Die Zeilen beginnen dann mit „xyz_bp…“
Sind große Plugins wie BuddyPress installiert, kann die Datenbank in phpMyAdmin über mehrere Seiten gehen (weswegen Standarddatensätze wie „xyz_posts“ erst auf der 2. oder 3. Seite zu finden sind).
zu 2. Plugins notieren, um sie später erneut installieren zu können
Dazu am besten ins FTP-Verzeichnis der Website gehen und den kompletten Ordner „plugins“ herunterladen. „plugins“ ist ein Unterordner von „wp-content“. Die Namen der Plugins sind dann auf der Festplatte in diesem Ordner zu finden. Der Ordner dient nur zur Information, er sollte keinesfalls später in das frische WordPress eingeladen werden. Vielmehr sollten alle Plugins neu installiert werden (evtl. kann man dabei gleich einige weglassen, die sowieso nicht benötigt werden).
Hinweis: Um ins FTP-Verzeichnis zu gelangen, wird ein FTP-Programm
wie Filezilla oder ein Commander-Programm wie SpeedCommander benötigt.
Die FTP-Zugangsdaten müssen natürlich bekannt sein.
Zur Not beim Provider nachfragen.
zu 3. Theme notieren, um es später erneut installieren zu können
Genauso vorgehen wie vorstehend bei den Plugins beschrieben. Die Themes stecken im Unterordner „themes“ von „wp-content“. Eigentlich geht es immer nur um ein Theme, denn eine Website kann nicht gleichzeitig unter mehreren Themes laufen. Falls im Unterordner themes mehrere Themes enthalten sein sollten und man nicht weiß, welches das richtige ist, müssen natürlich später alle diese Themes hochgeladen werden.
zu 4. Medien sichern, um sie später wieder hochladen zu können
Die Medien stecken im Verzeichnis „upload“, das sich wiederum im Verzeichnis „wp-content“ befindet. Zum Sichern wird einfach des Verzeichnis „upload“ komplett heruntergeladen.
zu 5. FTP-Verzeichnis leeren
Der einfachste Weg besteht darin, alle Daten einfach per FTP-Programm zu löschen (alles markieren, dann ENTF).
Problematisch wird es, wenn der Virus hunderte oder tausende von Dateien in Unterverzeichnissen angelegt hat oder sogar noch beim Löschen-Versuch aktiv wird und das Löschen erschwert.
Der einzige sichere Weg zum Löschen, den ich kenne, besteht dann darin, einen sog. SSH-Zugang zum FTP-Verzeichnis einzurichten. Dazu im KAS-Bereich des Providers einwählen, dann bei „Tools“ den Punkt „SSH-Zugänge“ auswählen.
Nun zur Eingabeaufforderung (also zum Terminal) oder zur WindowsPowershell gehen und den Befehl
ssh ssh-<KAS-Kontoname>@<Website-Adresse, also URL>
eingeben. Falls der Rechner (bzw.- das Betriebssystem) ssh-fähig ist, landet man im FTP-Verzeichnis, aber im Root-Bereich. Um zu sehen, was hier alles liegt, einfach den list-Befehl (ls) eingeben. Evtl. muss noch zum eigentlichen FTP-Verzeichnis gewechselt werden. Das geht mit cd <Verzeichnisname>. Jetzt kann der Löschen-Befehl („remove“) eingetastet werden:
rm -rf <Verzeichnisname> 1)
oder
rm -rf *
Das Löschen geschieht in Windeseile.
Falls das installierte Windows nicht ssh-fähig ist, kann evtl. mit dem Programm „putty“ gearbeitet werden. Falls ein Mac zur Verfügung steht, kann die ssh-Aktion dort ausgeführt werden, denn der Mac ist von Hause aus ssh-fähig.
zu 6. WordPress neu installieren
Die WordPress-Installation sollte mit der von wahrscheinlich allen Providern (Webhostern) angebotenen Funktion der Software-Installion vorgenommen werden. Dabei wird als erstes gefragt, ob eine bestehende Datenbank genommen oder eine neue angelegt werden soll. WordPress braucht immer eine Datenbank. Im Grunde ist es egal, was man wählt. Denn die bestehende DB wird sehr wahrscheinlich nicht vom Virus verändert worden sein. Man muss ja auf jeden Fall auf genau diese DB zurückgreifen, evtl. auf die Sicherung, die in eine neue DB importiert wird. Falls man Bedenken hat, könnte eine ältere Sicherung der DB aus der Vor-Viruszeit genommen werden. Das setzt allerdings voraus, dass man regelmäßig eine Sicherung vorgenommen hat. Ansonsten bleibt nur der mühsame Weg, die gesamte Seite manuell aufzubauen.
zu 7. gesicherte Datenbank importieren
Nach der WordPress-Installation in den phpMyAdmin-Bereich gehen (vgl. oben: Datenbank sichern).
Falls die bestehende DB als Grundlage für WordPress gewählt wurde, enthält die DB nun die Datensätze sowohl der alten DB als auch einige neue Datensätze. Zu erkennen ist das an den Präfixen der Tabelle: Es gibt Zeilen mit dem alten Präfix und Zeilen mit einem neuen Präfix. Es muss nichts importiert werden.
Falls eine neue DB erstellt wurde, enthält diese nur Datensätze mit einem neuen Präfix. Nun wird die gesicherte sql-Datenbankdatei importiert (mit dem Befehl „Importieren“ über der Tabelle). Danach liegt die gleiche Situation vor wie im vorstehenden Punkt beschrieben: es gibt Datensätze mit beiden Präfixen, den alten und den neuen.
Kontrollieren, welcher Präfix der richtige ist: auf die Zeilen „…_posts“ gehen und schauen, ob hier alle Beiträge und Seiten enthalten sind. Falls ja, den Präfix merken, denn er wird bei der Einrichtung der wp-config.php benötigt.
zu 8. wp-config.php anpassen
Die Anpassung der wp-config.php ist der entscheidende Schritt. Zunächst wird die Datei per FTP-Programm auf die Festplatte geladen. Hier wird sie mit einem ASCII-Editor geöffnet (z. B. mit notepad).
Wichtig innerhalb der Datei sind:
und
Erläuterungen:
Wichtig ist, dass der Username mit dem Datenbanknamen identisch ist. Der Username hat nichts mit irgendeinem in WordPress selbst vergebenen Usernamen zu tun!
Die Einstellung „localhost“ sollte auch im Fenster der DB-Bearbeitung gewählt sein.
Entscheidend dafür, dass die alte Struktur und die alten Inhalte wieder da sind, ist der richtige Table-Präfix. Eingetragen ist zunächst immer der neue Präfix. Das heißt, hier muss von Hand der alte Präfix (vgl. Schritt 7.) eingetragen werden. Dabei ist peinlich genau auf Groß-/Kleinschreibung zu achten. Außerdem muss der Underscore immer vorhanden sein und bleiben.
Nach der Anpassung wird die Datei wieder hochgeladen und überschreibt dabei die dort vorhandene Datei.
Schaut man sich jetzt die Seite im Browser an, sollten bereits alle Punkte der alten Seite zu sehen sein, allerdings dargestellt in einem anderen Theme.
zu 9. Theme installieren
Um das richtige Theme zu installieren, wird zum ersten Mal direkt in WordPress gearbeitet. Dazu muss man sich einloggen. Das geschieht mit den alten Daten für Username und Passwort, denn auch diese Daten sind in der Datenbank abgespeichert!
Da Username und Passwort in der Datenbank gespeichert sind, können sie hier auch geändert werden! Das heißt, bei einer neuen Installation von WP könnte man bei Bedarf über phPMyAdmin diese Werte (oder z. B. nur das Passwort) neu vergeben.
Man muss sich natürlich als Admin anmelden.
Nun über das Dashboard das Theme auswählen und installieren.
Weitere Themes, die evtl. ebenfalls zur Auswahl stehen, werden nicht benötigt und sollten gelöscht werden, weil sie nur stören.
zu 10. Plugins installieren
zu 11. Medien hochladen
Das Hochladen der Medien geschieht wieder mit dem
FTP-Programm.
Dazu wird das gesamte Verzeichnis „uploads“ in das Verzeichnis „wp-content“ geladen.
Nun sollte der Webauftritt im Browser wieder genauso aussehen wie zuvor und alles sollte auch wie früher funktionieren.
Wieder direkt in WordPress können Menüs und Widgets bei Bedarf angepasst wwerden.