tmp/mysql.sock in Debian schützen

OneKey

New Member
Hallo Community,

ich habe kein bescheidenes Problem. Ich brauch den mysqld.sock sowohl in /var/run/mysqld/mysqld.sock (dort wird er erzeugt) als auch in /tmp/mysql.sock

Ich versuche mittels folgendem Befehl eine symbolische Verknüpfung zu erstellen:

ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock

Soweit so gut. Jedoch wird /tmp/mysql.sock bei einem reboot ja entfernt. Ich versuchte bereits http://dev.mysql.com/doc/refman/5.1/de/problems-with-mysql-sock.html um die Datei zu schützen - ohne Erfolgt.

Wie kann ich tmp/mysql.sock schützen?

Ciao

OneKey

Edit: OS Debian 6.0
 
Was sagt ein `mount`?

/dev/simfs on / type simfs (rw,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,relatime,mode=755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,relatime)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600,ptmxmode=000)
 
Es wäre um einiges schicker, wenn du die Situation auflösen würdest den Socket an verschiedenen Stellen zu benötigen. Sowas kann man doch im allgemeinen einstellen?
 
Dann legt man halt den Socket nach /tmp statt sich mit einem (Soft)Link das Leben unnötig schwer und das System potentiell unsicherer zu machen.
 
Unnötig schwer, verstehe ich.

Unnötig unsicher kapiere ich nicht. Was ist anders, wenn ich einen Symlink auf eine Datei setze oder den Socket direkt in /tmp anlege. Wenn, dann wäre beides unsicher. Ich würde eher versuchen der Anwendung mitzuteilen, dass diese gefälligst den Pfad zum Socket nimmt, den ich bestimme bzw. Standard bei der Distribution ist.
 
Da er den Symlink beim Beenden von MySQL liegen lässt, braucht ein pöser Pube nur das Symlink-Ziel mit einem Exploit füttern und PENG.

Seit Jahrzehnten bekanntes Security-Nightmare, sollte man als verantwortungsvoller Admin, welcher Du ja vorgibst zu sein, aber wissen...
 
Ich bin evtl noch etwas dekoffeiniert, aber sollte ein Hardlink nicht das Problem dass man die Zieldatei bei Nichtexistieren übernehmen kann beheben?

Afaik sollte ein entsprechender chroot auf dem Original-Ordner aber das Problem dass ein User die Datei anlegen kann ebenfalls beheben.
Solange inode-creation Erlaubnis nicht besteht kann man nichts tun.
 
Da er den Symlink beim Beenden von MySQL liegen lässt, braucht ein pöser Pube nur das Symlink-Ziel mit einem Exploit füttern und PENG.

Code:
sh-4.1$ ls -l /var/lib/
...
drwxr-xr-x 3 mysql   mysql   4096 18. Jul 12:38 mysql

Ein bisschen kenne ich mich mit Berechtigungen aus.
Wie machst du das als normaler User? Wie machst du über den User mysql, wenn der Daemon nicht läuft? Selbst wenn er es schafft, würde das beim Starten des mysql Daemons auffallen. Mindestens eine Fehlermeldung wird einem um die Ohren fliegen.


Seit Jahrzehnten bekanntes Security-Nightmare, sollte man als verantwortungsvoller Admin, welcher Du ja vorgibst zu sein, aber wissen...


  1. Bin beruflich kein Admin
  2. Habe ich sowas nie von mir behauptet
  3. Alles was ich weiß, habe ich mir selbst aus reinem Privatvergnügen angeeignet.

Ich brauch gar nicht alles zu wissen. Teilweise bin ich auch ganz froh darüber. Bei gravierenden Security-Sachen verweise ich die Leute immer direkt an Dienstleister, damit sich diese auch mal an die Preise gewöhnen. Jeden, der mir jetzt irgendeine Frage bzgl. Sicherheit stellt, verweise ich direkt an dich.


@d4f: Wenn der mysqld gestoppt wird, löscht er doch den Socket. Beim nächsten Start erstellt er einen neuen. Ich denke nicht, dass dann noch der alte Socket in /tmp funktioniert. Ich kann es aber auch nicht probieren. Hab keinen mysqld laufen :-P
 
Last edited by a moderator:
Wie kommst Du auf /var/lib/mysql? Es geht hier um /tmp und /var/run/mysqld.

Ja, beim Beenden von MySQL wird der Socket entsorgt, aber der Symlink bleibt erhalten. Somit braucht pöser Pube nur noch am ursprünglichen Ort des Socket seinen Exploit parken und fertig...
 
/var/lib/mysql/mysql.sock ist Debian spezifisch. Jede andere Distribution wird wahrscheinlich auch an anderen Orten standardmäßig den Socket erstellen.

Dann erklär mir mal, wie du ohne Schreibzugriff dort (/var/run/mysqld | /var/lib/mysql/) deine Datei parken willst. Ich gehe jetzt nicht von root oder dem user mysql (bei debian) aus.
 
Back
Top