stephan-l
Goto Top

MySQL-Server Vorschläge?

Hey,

ich habe eine Frage zu meinem MySQL-Server den ich gerade auf Linux Debian aufsetze: Ich habe bisher nur joe und mysql-server, mysql-client installiert. Ich möchte mit Absicht kein phpMyAdmin haben. Dann habe ich für den User Root local und auf der Domain ein Passwort eingerichtet und versucht alle leeren Benutzer aus der mysql-user Datenbank zu löschen (es gab keine).

Jetzt meine Fragen:
1) Macht es Sinn, die Datenbanken nur von Root lesbar zu machen oder sogar MySQL auf einem anderen Benutzer laufen zu lassen und ihm die Datenbanken zuzuordnen? Nicht wirklich oder? Und wenn wie? Eine Info im Netz habe ich leider noch nicht gefunden...
2) Welche zusätzlichen Sicherungsmaßnahmen findet ihr würdig, getan zu werden? Würdet ihr Shoreline installieren um die IPTables-Config nicht unnötig lang sich hinziehen zu lassen?
3) Es macht doch sicherlich Sinn nur Anfragen aus Deutschland zuzulassen, wenn ich mich maximal im RZ von meinem PC per PuTTY einlogge oder ein anderer Server (im selben RZ per Swich) darauf zugreift, oder? Wie würdet ihr das machen?

Vielen Dank face-smile

Stephan

Content-Key: 102140

Url: https://administrator.de/contentid/102140

Printed on: April 19, 2024 at 14:04 o'clock

Member: dog
dog Nov 19, 2008 at 08:23:35 (UTC)
Goto Top
1. Da mysql auf Port 3306 läuft sind root-Rechte nicht erforderlich.
Es sollte immer mit einem dedizierten Mysql-Benutzerkonto laufen.

2. + 3. für jede Anwendung die auf die Datenbank zugreift sollte in MySQL ein eigener Benutzer angelegt werden, der auch nur genau die Rechte hat, die die Anwendung brauchst.
Außerdem solltest du die Zugriffs-Hosts möglichst strikt konfigurieren.
(Root-Zugriff z.B. nur von localhost aus).

Grüße

Max
Member: keksdieb
keksdieb Nov 19, 2008 at 08:31:32 (UTC)
Goto Top
moin moin...

Also meiner Meinung nach solltest du einen dedizierten User für die Datenbankadministration einrichten.
Der Root Account ist für die Systemverwaltung und nicht für den täglichen Wahnsinn da. Prozesse, die aus dem Netzwerk genutzt werden sollten defakto nicht im root laufen, um die Sicherheit zu maximieren.

zur Sicherung kann ich nichts sagen, ich kenne Shoreline nicht. Meine MySQL Datenbank sichere ich mit tar auf ein Band.

Zu 3. Wenn du die Datenbank nur auf diesem Server nutzt, könntest du den Zugriff auf MySQL auf lokal beschränken. Wenn nur Zugriff aus bestimmten Netzwerken kommen kann, dann kannst du den Zugriff auf diese Netzwerke beschränken.

Vielleicht solltest du doch mit PHPmyAdmin erstmal anfangen, wenn du noch keine Erfahrungen hast. Dort lassen sich die Berechtigungen relativ speziell verteilen.

Und zu dem Thema Berechtigungen auf einzelnen Datenbanken: Sicherlich solltest du, wenn du verschiedene Datenbanken mit verschiedenen Anwendungen ansprichst, unterschiedliche User anlegen und die Berechtigungen für die Datenbanken explizit den Usern zuteilen. Sonst verliert man bei großen Umgebungen schnell den Überblick. Sollten dann auch noch unterschiedliche Personen, Kunden, Mitarbeiter auf verschiedene Datenbanken zugreifen, dann würden sie bei einem Verwaltungsaccount ja auch alle Datenbnaken mit denselben Berechtigungen sehen. Das macht für mich keinen Sinn...

Hoffe, ich habe mich klar ausgedrückt, sonst melde dich nochmal face-smile

Gruß
Keks
Member: stephan-l
stephan-l Nov 19, 2008 at 14:22:13 (UTC)
Goto Top
Hey,

okay, dann also für jede Anwendung einen MySQL-Benutzer, der nur die nötigen Rechte hat, um die Tabellen aufzurufen, die er braucht.

Es ist nicht möglich, den Zugriff auf MySQL selbst für nur zwei IPs frei zu geben, oder? Es geht soweit ich weiß immer nur einer...

Unter welchem Stichwort muss ich denn gucken, damit mein Server sowieso nur auf Anfragen von diesen beiden Adressen hört? Das macht doch IP-Tables oder? Nur wie definiere ich denn bei den IPs in der Range 84.136.0.0 - 84.191.255.255 (Das sind alle IPs, die die Telekom vergibt)?

Dann habe ich noch ein kleines Problem mit dem Anlegen des dedizierten Linux-Benuters für die MySQL-Datenbank:

Ich mache:

% groupadd mysqlgrp
% useradd -g mysqlgrp sqlusr

gehe in das Verzeichnis mit cd, in dem MySQL liegt und mache dann

% chown -R sqlusr.mysqlgrp var
% chmod -R 700 var

Jetzt weiß ich nur noch nicht, in welche .my.cnf ich folgendes schreiben muss (Debian):

[mysql]
user=mysql

Kann mir da jemand helfen? Dann startet er doch auch immer unter diesem User oder?

Vielen Dank face-smile

Stephan