Sicherheit
« Vorherige BeiträgeDatenschutz: Einspruch gegen Google StreetView einlegen
Samstag, 14.08.2010Ein Widerspruch gegen die Veröffentlichung von Aufnahmen der eigenen Person, eigenen Kraftfahrzeugen und selbst bewohnten oder genutzten Gebäuden und von Grundstückseigentum kann und sollte bei Google eingelegt werden.
Der Datenschutzbeauftragte aus Hamburg stellt Ihnen sehr gute Informationen bereit. Das PDF Dokument finden Sie unter: http://www.hamburg.de/contentblob/2453512/data/vorab-widerspruch-google-street-view.pdf
Es werden die unterschiedlichen Möglichkeiten und Wege erklärt. Die unterschiedlichen Fristen und das richtige Verhalten.
Ca. ab dem 17.08.2010 will Google online ein Tool für den Einspruch anbieten. Es ist zu finden unter www.google.de/streetview. Bereits heute können Sie dort Informationen über Google Street-View finden – natürlich nur die positiven Aspekte und Vorteile des Dienstes. Mit Trickfilmchen à la Sesamstraße führt man die “Sicherheit” von Google Streetview vor … trotzdem möchten wir Ihnen aus Datenschutzgründen dringend zum Einlegen Ihres Widerspruches anraten.
Sie können auch schriftlich Widerspruch einlegen. Schreiben Sie dafür an:
Google Germany GmbH
Betr.: Street View
ABC-Straße 19
20354 Hamburg
WordPress: Revisionen eines Artikels löschen (Historie löschen)
Freitag, 06.08.2010Das CMS “WordPress” stellt Ihnen Ihre alten Versionen der Artikel zur Verfügung. Unter jedem Artikel können Sie im Abschnitt “Revisions” jede (gespeicherte) Änderung des Artikels nachvollziehen und auf Wunsch mit einer anderen Version des Artikels vergleichen lassen.
Diese manchmal recht praktische Funktion kann jedoch auch unerwünscht sein und ggf. Datenbank-Ressourcen belegen. Zugegeben, es sind keine sehr großen Datenmengen – jedoch kann mit der Zeit und entsprechend vielen Artikeln auch hier eine stattliche Anzahl an Datenbankeinträgen zusammen kommen.
Um hier aufzuräumen und diese alten Datensätze endgültig zu löschen, nutzen Sie folgendes SQL Script:
DELETE FROM wp_posts WHERE post_type = 'revision'
Führen Sie den vorherigen SQL Befehl auf Ihrer entsprechenden WordPress Datenbank aus. Dafür können Sie z.Bsp. die kostenlose und Open Source Datenbankverwaltung “phpMyAdmin” nutzen. Achten Sie dabei darauf, dass Sie ggf. den Prefix der Tabelle (hier: “wp_”) anpassen müssen. Das ist jedoch nur dann erforderlich, wenn Sie bei der Installation einen eigenen Prefix gewählt haben. Sollten Sie sich nicht sicher sein, können Sie den SQL Befehl trotzdem ausführen – ist die Tabelle nicht vorhanden, erhalten Sie eine entsprechende Fehlermeldung und keine Daten wurden gelöscht.
Wenn Sie sich zuvor die zu löschenden Daten ansehen möchten, dann hilft Ihnen dieser SQL Befehl weiter:
SELECT * FROM wp_posts WHERE post_type = 'revision'
Linux: Dateien per SCP ohne Passworteingabe kopieren (SSH)
Samstag, 24.07.2010Wenn Sie automatisch per SCP Dateien kopieren möchten und dabei nicht das Passwort eingeben können oder möchten, dann hilft Ihnen diese Anleitung. Für dieses Beispiel sollen Dateien von Server 1 auf Server 2 kopiert werden:

Für dieses Beispiel gelten folgende Bedingungen:
- Das Script liegt auf Server 2 – die Daten werden von Server 1 “abgeholt”
- Der Benutzer für den Datentransfer heißt “backup”
Vorbereitungen auf Server 1 (Quelle):
- Unter dem Benutzernamen “backup” anmelden oder zum Benutzer wechseln:
su backup - Schlüssel für den automatischen Zugriff von Server 2 erstellen.
Dieser gilt nur für den aktuell angemeldeten Benutzernamen.
ssh-keygen -t dsa
Jede Frage mit “Enter” beantworten und kein Passwort eingeben:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/backup/.ssh/id_dsa):
Created directory '/home/backup/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/backup/.ssh/id_dsa.
Your public key has been saved in /home/backup/.ssh/id_dsa.pub.
The key fingerprint is:
d2:5a:6c:9f:15:5c:2c:d1:d1:d5:3b:7f:3c:88:bf:d3 backup@servername.com
The key's randomart image is:
+--[ DSA 1024]----+
[Ihr virtueller Fingerabdruck]
+-----------------+
Die Datei liegt im .ssh Unterverzeichnis des Benutzers
Vorbereitungen auf Server 2 (Ziel):
- Ggf. müssen wir zuerst das .ssh Verzeichnis auf Server2 für den Benutzer “backup” anlegen:
mkdir /home/backup/.ssh
chmod 700 /home/backup/.ssh
chown backup:backup /home/backup/.ssh - Wir benötigen den öffentlichen Schlüssel des Benutzers “backup” vom “Server 1″ auf diesem Server. Durch diesen Schlüssel kann sich später Server 2 automatisch bei Server 1 anmelden (identifizieren).
scp backup@server1:~/.ssh/id_dsa.pub /home/backup/.ssh/public-key.tmp
PHP: Apache2 Version in Variable auslesen
Mittwoch, 21.07.2010Damit Sie auf einem Unix (Linux) System einfach die aktuelle Version des Apache WebServers herausfinden können, zeigen wir Ihnen ein PHP-Beispiel.
In dem PHP Script wird die Apache-Funktion “apache2ctl” genutzt, die die aktuelle Apache-Version auszulesen. Dieser Befehl wird mithilfe des PHP Befehles “passthru()” direkt an das Linuxsystem weitergegeben.
Hinweis:
Häufig ist auf “öffentlichen” Webservern aus Sicherheitsgründen die Nutzung einiger Befehle gesperrt. Dazu zählt häufig auch der Befehl “passthru()”. Wenn das Script bei Ihnen lokal auf dem Computer also einwadnfrei läuft und auf Ihrem Internetserver keine Daten zurück gibt, liegt diese Befehlssperre vor. Eine Möglichkeit, diese Sperre aufzuheben hat nur Ihr Web-Administrator (oder Provider).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // PHP Version auslesen ob_start(); passthru("apache2ctl -v"); $ver = ob_get_contents(); if empty($ver) echo "passthru() disabled ?"; ob_end_clean(); $a = explode("\n", $ver); preg_match('/(server version: ){1}(.*)/i', $a[0], $v); $data[0] = $v[2]; preg_match('/(server built: ){1}(.*)/i', $a[1], $v); $data[1] = date("d.m.Y H:i:s", strtotime($v[2])); print_r($data); ?> |
Apache: Verzeichnisse mit Passwort schützen (htpasswd)
Dienstag, 20.07.2010Mit dem Apache Webserver wird ein Hilfsprogramm ausgeliefert: htpasswd
Es ermöglicht Ihnen die einfache Erstellung von Passwortdateien. Am einfachsten ist es über die Kommandozeile zu bedienen. Mit dem Aufruf “htpasswd -h” erhalten Sie eine kurze Hilfe und Syntax.
Beispiel:
htpasswd -c .htusers peter
Durch diesen Befehl wird eine neue Passwortdatei angelegt. Dabei müssen Sie für den neuen Benutzer “peter” ein Passwort angeben und (durch eine wiederholte Eingabe) bestätigen.
Kopieren Sie die neu erstellte Datei in das vorgesehene, zu schützende Verzeichnis auf Ihrem Internetserver (WebServer).
PHP: Zugriff von Browsern außerhalb eines IP-Subnetzes unterbinden
Montag, 19.07.2010Mithilfe des folgenden PHP Scripts können Sie Besucher außerhalb des festgelegten IP Bereiches blockieren:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (strncmp("192.168.0", $_SERVER["REMOTE_ADDR"], 9) != 0) { // Block access header("HTTP/1.0 403 Forbidden"); // header('Location: http://www.google.com'); exit; } else { // Allow access echo "Zugriff erlaubt ..."; } ?> |
In diesem Beispiel werden alle Besucher, deren IP Adresse nicht mit “192.168.0″ anfängt, blockiert.
Dieser IP Bereich wird nur LAN intern verwendet. Für die Filterung von Besuchern aus dem WAN (Internet) filtern Sie bitte auf die öffentliche IP Adresse Ihrer Webseitenbesucher. Passen Sie dabei auch die Länge der zu vergleichenden Zeichen an (im o.a. Beispiel werden die ersten 9 Zeichen verglichen). Diese können Sie sich mithilfe des folgenden PHP Scripts anzeigen:
1 2 3 | <?php echo $_SERVER["REMOTE_ADDR"]; ?> |
WordPress: “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen”
Dienstag, 13.07.2010Nach dem Kopieren oder Update Ihrer WordPress (WP) Installation erhalten Sie eine der beiden folgenden Meldungen nach der Anmeldung im Backend (wp-admin):
Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen. Sie haben nicht ausreichend Rechte, um auf diese Seite zuzugreifen.
Diese Fehlermeldung zeigt an, dass das WP Backend (Adminbereich) Ihre Anmeldung nicht richtig zuordnen kann. Die Gründe für diese Sperre können vielfältig sein. In der folgenden Übersicht möchten wir Ihnen die Lösung für die häufigsten Sperren zeigen:
- Sie haben ein Upgrade / Update von WordPress gemacht
Versuchen Sie, Ihre Datenbank durch das “force-upgrade.php” Script zu aktualisieren. Dafür wird die Datei einfach in das Hauptverzeichnis Ihres Webservers kopiert und dann per Browser aufgerufen. Anschließend sollte die Datei dringend wieder gelöscht werden – nur dann kann niemand anderes ebenfalls diese Aktion ausführen. Dieser Schritt sollte fast alle vorhandenen Datenbankprobleme beseitigen. Zudem ist diese Methode wesentlich effizienter und sicherer als das manuelle Zurücksetzen der Versionsnummer / Versionsinformationen in der Datenbank.
- Sie haben die Datei “wp-config.php” verändert
Überprüfen Sie, ob die Zeile
require_once(ABSPATH . 'wp-settings.php');
ganz unten steht. Wichtig ist auch, dass die Information
define('SECRET_KEY', 'xyz...abc');
(logischerweise) oberhalb der Zeile stehen.
- Sie haben den Tabellen-Prefix geändert
Es ist nicht ausreichend, die Datei “wp-config.php” anzupassen und in der Datenbank den Tabellenprefix zu ändern. In der WordPress-Datenbank sind Datensätze gespeichert, welche den alten (originalen) Tabellenpräfix darstellen. Diese Einträge müssen also ebenfalls abgepasst werden. Bei normalen Installationen von WordPress sind die folgenden Befehle für die Tabellen “wp_options” und “wp_usermeta” ausreichend:
1 2 | UPDATE neuesPrefix_options SET option_name = REPLACE(option_name, 'altesPrefix_', 'neuesPrefix_'); UPDATE neuesPrefix_usermeta SET meta_key = REPLACE(meta_key, 'altesPrefix_', 'neuesPrefix_'); |
Bei Standardinstallationen sollten keine weiteren Einträge zum Prefix vorhanden sein. Sollten Sie jedoch weitere Datensätze finden, ändern Sie diese entsprechend ab und schreiben Sie uns gerne einen Kommentar zu diesem Artikel. Wir werden Ihre Hilfe dann für die nächsten Besucher einarbeiten.
- Die Option “User Roles” wurde verändert (“prefix_user_roles”)
Sollte die Einstellung / Option “prefix_user_roles” verändert ist. Die Details dieser Option werden in einem sog. “serialisiertes Array” abgelegt. Dabei kann es scheinbar passieren, dass sich die einzelnen Informationen (Daten) so verändern, dass PHP das richtige Array mit den Einzeldaten nicht mehr richtig entschlüsseln kann. Dadurch hat Ihr WordPress dann natürlich keine Möglichkeit mehr, auf diese Einstellungen zuzugreifen. Die Folge ist, dass (sicherheitshalber) alle Benutzer ausgesperrt sind.
Sie können durch einen einfache PHP-Datei schnell prüfen, ob dieses Problem bei Ihnen zutrifft:
- Erstellen Sie in Ihrem Hauptverzeichniss (root) Ihres WebServers eine PHP Datei mit folgendem Inhalt (z.Bsp. “chk.php”):
1 2 3 4 5 6 7
<?php include("wp-config.php"); global $wpdb; $wp_user_roles = get_option($wpdb->prefix."user_roles") or die ("Die Option '".$wpdb->prefix."user_roles' ist defekt."); echo("Die Option '".$wpdb->prefix."user_roles' ist scheinbar in Ordnung."); ?>
- Rufen Sie die Datei in Ihrem Browser auf:
http://ihre.domain/chk.php
Das kurze PHP-Script prüft, ob die Option “user_roles” bei Ihrer WordPress richtig gelesen werden kann. Sollte dabei irgendein Problem auftreten (Sie erhalten die Anzeige “Die Option ‘xyz_user_roles’ ist defekt.”), sollten Sie sicherheitshalber die gesamte Option neu setzen. Zwar gehen Ihnen dadurch alte Einstellungen verloren und müssen dann neu gesetzt werden, aber solange Sie Ihre Benutzerberechtigungen nicht verändert haben, sollte es keine Probleme geben.
Sie können die einzelnen Werte entweder direkt durch phpMyAdmin setzen oder Sie nutzen das folgende Script:
1 2 3 4 5 6 | <?php $val = 'a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}'; include("wp-config.php"); global $wpdb; set_option($wpdb->prefix."user_roles", $val); ?> |
Den Wert noch einmal als reinen String (Zeichenkette) für die direkte phpMyAdmin Eingabe. Der folgende Text ist eine Zeile:
a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}
Datenschutz: Keine Kartografierung privater Funknetze (Politik)
Montag, 12.07.2010Die CDU/FDP Koalition hat in Schleswig-Holstein einen Antrag “Keine Kartografierung privater Funknetze” beim Landtag eingereicht. Es fordert ein weitgehendes Verbot für die gewerbliche Nutzung von WLAN- und Handy(netz)daten
Dieser basiert auf einen dem Bundesrat von der Freien und Hansestadt Hamburg vorgelegten Entwurf eines Gesetzes zur Änderung des Bundesdatenschutzgesetzes (Drucksache 259/10). Konkret soll dieser Antrag datenschutzrechtliche Ergänzungen erhalten:
- Es soll eine klare Regelung geschaffen werden, die jedes gewerbsmäßige kartografische/planmäßige Erfassen privater Funk(netz)daten ohne die ausdrückliche vorherige Zustimmung der Betroffenen verbietet.
Gleiches soll für die gewerbsmäßige Aufzeichnung von Daten aus Mobiltelefonen oder vergleichbarer Sendeanlagen für den Privatgebrauch, unabhängig von deren Verschlüsselung, gelten. - Ausnahmen für ausschließlich wissenschaftliche Zwecke können zulässig sein. Dabei soll eine Weitergabe an Dritte untersagt werden.
- Die in Deutschland bereits gesammelten (privaten) Funknetzdaten dürfen ohne Zustimmung der Betroffenen nicht gewerbsmäßig verwendet oder weitergegeben werden.
- Sanktionen bei Verstößen sollen geschaffen werden.
Den genauen Wortlaut können Sie der nachfolgenden Quelle und den angeführten Drucksachen entnehmen.
Quelle:
Drucksache 17/601 vom 03.06.2010
mySQL: Vergessenes (root) Passwort zurücksetzen
Sonntag, 11.07.2010Wenn Sie Ihr mySQL Masterpasswort (das “root-Passwort”) vergessen haben, können Sie es neu setzen (resetten). Dafür stellen wir Ihnen drei Alternativen zur Verfügung.
Diese Technik können Sie auch nutzen, um Ihr root-Passwort zu ändern. Wir möchten Ihnen für die Änderung des mySQL root Passwortes jedoch einer unserer anderen Anleitungen anbieten. Dafür müssen Sie jedoch das aktuelle root-Passwort noch kennen: mySQL: Root Passwort ändern.
Möglichkeit 1 (unsicherer als Methode 2 & 3)
Sie können das root Passwort auf jeder Plattform (Windows, Linux, …) auch mit der offiziellen Client-Software “mysql” einstellen:
- Stoppen Sie “mysqld” (mySQL Service / Dienst) und starten Sie ihn erneut. Dabei geben Sie als Option “–skip-grant-tables –user=root” mit. Als Windowsbenutzer lassen Sie bitte “–user=root” weg
mysqld --skip-grant-tables --user=root
- Nun verbinden Sie sich mit dem mySQL-Server (dem mysqld Service):
mysql -u root
- Geben Sie im mySQL-Client die folgende SQL Anweisungen ein:
1 2
UPDATE mysql.user SET Password=PASSWORD('NeuesPasswort') WHERE User='root'; FLUSH PRIVILEGES;
Ersetzen Sie im vorherigen Befehl bitte den Text “NeuesPasswort” durch Ihr neues root-Passwort. Achten Sie dabei vorerst darauf, dass Sie keine Sonderzeichen, Umlaute und andere besondere Zeichen eingeben. Diese führen später häufig zu Problemen. Testen Sie zuerst das Zurücksetzen des root-Passwortes mit einem einfachen Passwort.
- Ihr neues root-Passwort sollte nun funktionieren
Möglichkeit 2 (unter Windows)
- Melden Sie sich bitte als Administrator an Ihrem Computer an. Bei neu Windows-Versionen können Sie sich als Benutzer mit Administratorrechten anmelden.
- Sollte der mySQL Server laufen, stoppen Sie ihn bitte.
Wenn er als Windows-Dienst gestartet ist, benutzen Sie bitte den Microsoft Dienstmanager:Start > Systemsteuerung (ggf. auf Symbolansicht umstellen) > Verwaltung > Dienste
In der Liste der Dienste suchen Sie den “MySQL-Dienst”. Klicken Sie den Eintrag einmal an und anschließend auf das Stop-Symbol oberhalb der Liste.
Sollte der mySQL-Server nicht als Dienst läufen, benötigen Sie ggf. die Hilfe des Task-Managers (Strg+Alt+Entf) um das Programm unsanft zu beenden. - Erstellen Sie nun eine neue Textdatei und tragen Sie folgende Zeile (nur eine !) ein:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NeuesPasswort');
Speichern Sie diese Datei jetzt unter einem beliebigen Namen. Für dieses Beispiel benutzen wir den Namen “C:\mysql-reset.txt”.
- Starten/Öffnen Sie die Kommandozeile:
Start > Ausführen (oder Windowstaste + R) > cmd
- Starten Sie Ihren mySQL-Server neu und geben Sie ihm dabei Ihre gerade erstellte Datei mit an:
C:\mysql\bin\mysqld-nt --init-file=C:\mysql-reset.txt
Bei diesem Befehl wird davon aufgegangen, dass der mySQL Server auf Ihrem Computer unter “C:\mysql” installiert ist. Gerade auf neueren Windows-Versionen ist das nicht mehr allzu üblich und daher finden Sie den mySQL Server dort meistens unter “C:\Program Files (x86)\mysql\”. Dann lautet der Befehl:
"C:\Program Files (x86)\bin\mysqld-nt" --init-file=C:\mysql-reset.txt
Aufgrund der Leerzeichen im Pfad des Programmes muss der erste Befehlsteil in Anführungszeichen gesetzt werden!
Nutzen Sie den mySQL Server als Dienst, starten Sie bitte jetzt den Dienst wieder.
- Ihr neues root-Passwort sollte nun funktionieren. Vergessen Sie bitte nicht, die Datei “C:\mysql-reset.txt” zu löschen.
Möglichkeit 3 (unter Linux)
- Sie melden sich als root-Benutzer bzw. als derjenige Benutzer, unter dem der mysqld-Server läuft, auf Ihrem Linux (Unix) Computer an.
- Suchen Sie nun die .pid-Datei, welche die aktuelle Prozess-ID des mySQL-Servers enthält.
Der genaue Pfad und der Name sint sehr stark von Ihrer Linux-Distribution, Ihrem Hostnamen und der Konfiguration Ihres System ab. Häufig liegen diese .pid-Dateien unter
/var/lib/mysql/
/var/run/mysqld/
/usr/local/mysql/data/
Meist hat die Datei den Suffix (die Erweiterung) “.pid” und fängt mit “mysqld” oder Ihrem Hostnamen des Computers an.
Alternativ können Sie auch folgenden Befehl eingeben und in der dann ausgegebenen Liste die Datei suchen:find / -name *mysql*.pid
- Beenden Sie den mySQL Server durch einen normalen “kill”-Befehl (nicht “kill -9″).
Übergeben Sie dabei den vollständigen Dateinamen der .pid-Datei:kill `cat /pfad/zur/datei.pid`
Achten Sie bei der Eingabe bitte auf die sog. “Backticks” (Shift + `) anstelle der gewohnten Anführungszeichen um den “cat”-Befehl. Diese Zeichen sorgen dafür, dass die Ausgabe des Unterbefehles “cat /pfad/zur/datei.pid” automatisch in den “kill”-Befehl eingesetzt wird.
- Nun legen Sie eine neue Textdatei an. Schreiben Sie folgenden Befehl in einer einzigen Zeile hinein:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NeuesPasswort');
Speichern Sie diese neue Datei ab und merken Sie sich den Dateinamen. Für dieses Beispiel haben wir die Datei “~/mysql-reset” genannt. Durch die Tilde (~) wird diese Datei in Ihrem Home-Verzeichnis abgelegt.
- Jetzt starten Sie Ihren mySQL Server mit der Option “–init-file=~/mysql-reset” neu:
mysqld_safe --init-file=~/mysql-reset
Durch diesen Befehl wird der Inhalt der gerade erstellten Datei beim Start des mySQL Servers ausgeführt und ändert automatisch das Root-Passwort.
Nachdem der Server hochgefahren ist, sollten Sie die Datei “~/mysql-reset” löschen. - Ihr neues root-Passwort sollte nun funktionieren
Virtualmin: The user has been blocked because of too many authentication failures.
Sonntag, 11.07.2010Wenn Sie beim Anmelden an Ihrer VirtualMin Installation folgende Fehlermeldung lesen, haben wir Ihnen hier eine Lösung vorbereitet:
Error - Access denied. The user has been blocked because of too many authentication failures.
Dieser Fehler kann auch gut durch Hacker-Kids ausgelöst werden. Durch z.Bsp. einen Portscan Ihrer Server-IP haben sie den Virtualmin Port Ihrer Installation gefunden und sich versucht unter Ihrem Benutzernamen einzuloggen. Zur Sicherheit greift dann dieser Schutz von Virtualmin – er vermeidet das evtl. Herausfinden Ihres Passwortes durch “Brute force” Methoden.
Lösung
- Melden Sie sich direkt auf der Console oder z.Bsp. via SSH (PuTTy) auf Ihrem Server an
- Öffnen Sie in einem Texteditor (hier: “nano”) die Datei “/etc/webmin/miniserv.users”
nano /etc/webmin/miniserv.users
- Finden Sie die Zeile mit dem gesperrten Benutzernamen
mustername:!x::
- Korrigieren Sie die Zeile:
mustername:x::::::::0:0
- Beenden Sie den Editor und speichern Sie dabei die Dateiänderungen
Strg + X -> Y/J -> Enter
- Starten Sie Virtualmin neu
/etc/init.d/webmin restart