Seite 1 von 1

MySQL-Dump Passwortabfrage

BeitragVerfasst: 11.12.2015 07:07
von Freki
Hallöchen liebe Gemeinschaft,

Kaum die Erste Frage seid langem hinter mir, hier die zweite....
Ich möchte einen Cronjob anlegen zur Erstellung eines MySQL-Dumps.
Das Ganze sieht so aus:

Code: Alles auswählen
[b]mysqldump –p[root-passwort] testlink |gzip > /var/www/html/databasedump.sql.gz[/b]


Wenn ich ein Passwort eingebe hinter -p, meldet er

Code: Alles auswählen
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) when trying to connect


Gebe ich keins ein, kommt keine Passwort-abfrage.

Das Passwort ist auf jeden Fall richtig, da ich mich einfach per "mysql -p" einloggen kann.
Ich habe auch schon versucht, statt "-p" "--password=[root-passwort]" einzugeben. Wirft aber "mysqldump: unknown option '-▒'" aus.
Google spuckt da auch nicht wirklich was aus.

Danke schonmal für eure Hilfe :/

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 11.12.2015 07:16
von Freki
ok.... Habe gerade die Ursache gefunden...
lokal eingegeben läufts, aber per Putty gehts nicht.

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 11.12.2015 09:20
von Rayne
Du solltest das Passwort nicht als Argument angeben, da dann jeder Benutzer dieses in der Prozessliste auslesen kann. Stattdessen solltest Du --defaults-file verwenden.

Der Inhalt der Datei könnte so aussehen:

Code: Alles auswählen
[client]
user="…"
password="…"

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 11.12.2015 11:06
von marce
in der Prozessliste wird das Passwort anonymisiert und ist somit nicht auslesbar.

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 11.12.2015 15:16
von Rayne
marce hat geschrieben:in der Prozessliste wird das Passwort anonymisiert und ist somit nicht auslesbar.
Dazu würde ich gerne mehr Informationen haben. mysqldump gibt auf Ubuntu 14.04 sogar eine Warnung aus:

Code: Alles auswählen
 Warning: Using a password on the command line interface can be insecure.


An die Passwörter der soeben ausgeführten Tests bin ich auch ohne Probleme gekommen:

Code: Alles auswählen
while true; do
 ps auxf | grep password >> ~/test-dump
done


Code: Alles auswählen
grep test test-dump
root 30511 0.0 0.0 22912 2044 pts/5 D+ 16:13 0:00 | \_ mysqldump --password=test


Mein Testnutzer war übrigens nicht root, aber root hat mysqldump ausgeführt.

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 16.12.2015 09:30
von Freki
ok... interessant zu wissen.

Werde ich beherzigen ;)

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 16.12.2015 09:39
von marce
Bei CentOS:
Code: Alles auswählen
[root@vm-031 ~]# ps -fe |grep mysqldump
root      4285  6215  2 10:36 pts/0    00:00:00 mysqldump -u root -px xxx --all-databases
root      4302  6601  0 10:36 pts/1    00:00:00 grep mysqldump

bzw.
Code: Alles auswählen
[root@vm-031 ~]# ps auxf |grep mysqldump
root      6137  8.6  0.0  50944  2536 pts/0    R+   10:40   0:00      |   \_ mysqldump -u root -px xxx --all-databases
root      6227  0.0  0.0 103308   832 pts/1    S+   10:40   0:00          \_ grep mysqldump

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 16.12.2015 17:12
von Rayne
Das Passwort sollte auch unter CentOS mit meiner Schleife extrahierbar sein, da die "Anonymisierung" natürlich nicht vor dem Ausführen des Shellbefehls durchgeführt werden kann, da mysqldump die Logindaten benötigt. Siehe auch: http://dev.mysql.com/doc/refman/5.6/en/ ... -user.html

This is convenient but insecure. […] MySQL clients typically overwrite the command-line password argument with zeros during their initialization sequence. However, there is still a brief interval during which the value is visible.

Re: MySQL-Dump Passwortabfrage

BeitragVerfasst: 16.12.2015 19:34
von TomcatMJ
Es gibt da noch einen weiteren Aspekt: Das Passwort dürfte dann auch in der Shell-History zu finden sein wenns über die Shell in der Aufrufzeile direkt als Parameter mit eingegeben wurde....da müsste ein potentieller Angreifer zwar auch erstmal rankommen, aber es wäre im Grunde ebenso eine systemische Sicherheitslücke dieses Vorgehens.