redhat:database-redhat:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
redhat:database-redhat:start [2018/01/26 13:08] – [Härten der Mariadb Datenban (Security relevant!)] michaelredhat:database-redhat:start [2019/03/08 13:22] (current) – [mysqladmin] michael
Line 4: Line 4:
 MariaDB löste mit RHEL7 / CentOS7 die bis dahin verwendete MySQL-Datenbank ab. Nachfolgend wird aufgezeit, wie man die Mariadb korrekt auf seinem System implementiert / härtet. MariaDB löste mit RHEL7 / CentOS7 die bis dahin verwendete MySQL-Datenbank ab. Nachfolgend wird aufgezeit, wie man die Mariadb korrekt auf seinem System implementiert / härtet.
  
- 
----- 
  
 ===== Installation MariaDB ===== ===== Installation MariaDB =====
Line 61: Line 59:
 </WRAP> </WRAP>
  
----- 
  
 ===== Konfiguration MariaDB ===== ===== Konfiguration MariaDB =====
Line 182: Line 179:
 </WRAP> </WRAP>
  
-Möchten wir überprüfen, ob der MariaDB-Server läuft, haben wir mehrere Möglichkeiten.+<panel type="info" title="Möchten wir überprüfen, ob der MariaDB-Server läuft, haben wir mehrere Möglichkeiten.">
   - Daemon Überprüfung mit **systemctl**: <WRAP center box 100%><code># systemctl status mariadb -l</code><sxh plain; gutter: false>mariadb.service - MariaDB database server   - Daemon Überprüfung mit **systemctl**: <WRAP center box 100%><code># systemctl status mariadb -l</code><sxh plain; gutter: false>mariadb.service - MariaDB database server
    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)    Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
Line 208: Line 205:
 </sxh> </sxh>
 </WRAP> </WRAP>
 +</panel>
  
 ---- ----
Line 292: Line 290:
 Wie bei der doch grossen Ausgabe beim erstmaligen Start des Datenbank-Daemons angeraten, werden wir nun die __sicherheitsrelevanten Konfigurationsänderungen__ vornehmen. Wie bei der doch grossen Ausgabe beim erstmaligen Start des Datenbank-Daemons angeraten, werden wir nun die __sicherheitsrelevanten Konfigurationsänderungen__ vornehmen.
  
-Hierzu benutzen wir einfach das mitgelieferte Script **/usr/bin/mysql_secure_installation**, welches folgende Änderungen vornimmt:+Zuvor, generieren wir jedoch noch einen sicheren DB-Schlüssel für den MariaDB-Root User und speichern ihn unter /root/ mit folgenden Befehl ab: 
 + 
 +<code> 
 +# openssl rand -base64 30 > /root/.mariadb-root-pw && cat /root/.mariadb-root-pw 
 +</code> 
 + 
 +Anschliessend, benutzen wir einfach das mitgelieferte Script **/usr/bin/mysql_secure_installation**, welches folgende Änderungen vornimmt:
  
-  - Generieren, eines sicherne DB-Schlüssels für den MariaDB-Root und speichern unter /root/ 
   - Datenbankpasswort des MySQL-Datenbankuser **root** setzen   - Datenbankpasswort des MySQL-Datenbankuser **root** setzen
   - Anonyme Benutzerkonten löschen   - Anonyme Benutzerkonten löschen
Line 300: Line 303:
   - Löschen der nicht benötigten Testdatenbank **test**   - Löschen der nicht benötigten Testdatenbank **test**
  
-<code> 
-# openssl rand -base64 30 > /root/.mariadb-root-pw && cat /root/.mariadb-root-pw 
-</code> 
  
 <WRAP center round important 100%> <WRAP center round important 100%>
Line 385: Line 385:
   - At this point, you have a database and user account that are each specifically made for our new environment. However, the user has no access to the database. We need to link the two components together by granting our user access to the database.<sxh bash: gutter: false>GRANT ALL PRIVILEGES ON mydatabase.* TO dbuser@localhost IDENTIFIED BY 'dbuserpasswort';</sxh>   - At this point, you have a database and user account that are each specifically made for our new environment. However, the user has no access to the database. We need to link the two components together by granting our user access to the database.<sxh bash: gutter: false>GRANT ALL PRIVILEGES ON mydatabase.* TO dbuser@localhost IDENTIFIED BY 'dbuserpasswort';</sxh>
   - Now that the user has access to the database, we need to flush the privileges so that MySQL knows about the recent privilege changes that we've made: <sxh bash: gutter: false>FLUSH PRIVILEGES;</sxh>   - Now that the user has access to the database, we need to flush the privileges so that MySQL knows about the recent privilege changes that we've made: <sxh bash: gutter: false>FLUSH PRIVILEGES;</sxh>
-  - Once these commands have all been executed, we can exit out of the MySQL command prompt by typing: <sxh bash: gutter: false>exit</sxh>+  - Once these commands have all been executed, we can exit out of the MySQL command prompt by typing: <sxh plain: gutter: false>exit</sxh>
  
 <wrap em>ACHTUNG: UM Zugriff mit php auf die mariadb zu erhalten, muss hierfür noch das php-mysql Packet installiert werden!</wrap> <wrap em>ACHTUNG: UM Zugriff mit php auf die mariadb zu erhalten, muss hierfür noch das php-mysql Packet installiert werden!</wrap>
Line 394: Line 394:
 ''**Vorhandenen Datenbank-Dump in neu erstellte Datenbank schreiben:**'' ''**Vorhandenen Datenbank-Dump in neu erstellte Datenbank schreiben:**''
  
-<code># mysql -u dbuser --h localhost mydatabase < mysqldump.sql</code>+<code># mysql -u root --password=$(cat /root/.mariadb-root-pw) -h localhost mydatabase < mysqldump.sql</code>
 </WRAP> </WRAP>
  
  
 ---- ----
 +
 ==== Logrotate ==== ==== Logrotate ====
 Bei einem unter Last stehendem MariaDB-Sserver kann unter Umständen das zugehörige Logfile **/var/log/mariadb/mariadb.log** recht schnell anwachsen. In der Datei **mariadb** aus dem Verzeichnis **/etc** finden wir dazu alle nötigen Informationen. Bei einem unter Last stehendem MariaDB-Sserver kann unter Umständen das zugehörige Logfile **/var/log/mariadb/mariadb.log** recht schnell anwachsen. In der Datei **mariadb** aus dem Verzeichnis **/etc** finden wir dazu alle nötigen Informationen.
Line 539: Line 540:
 </sxh> </sxh>
  
-----+
 ===== Datenbankhandling ===== ===== Datenbankhandling =====
  
Line 545: Line 546:
 Mit Hilfe des Hilfsprogrammes **mysqladmin** aus dem Clientpaket **mysql** können umfangreiche Abfrage gegen unsere Datenbank durchgeführt werden. Startet man das Programm ohne weitere Angaben von Optionen, werden die möglichen Optionen am Bildschirm ausgegeben. Mit Hilfe des Hilfsprogrammes **mysqladmin** aus dem Clientpaket **mysql** können umfangreiche Abfrage gegen unsere Datenbank durchgeführt werden. Startet man das Programm ohne weitere Angaben von Optionen, werden die möglichen Optionen am Bildschirm ausgegeben.
  
 +<WRAP center box 100%>
 <code> <code>
  # mysqladmin  # mysqladmin
 </code> </code>
  
-<WRAP center round box 100%> +<sxh plain; gutter: false;>
-<code>+
 mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64 mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64
 Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
Line 678: Line 679:
   variables             Prints variables available   variables             Prints variables available
   version               Get version info from server   version               Get version info from server
-</code>+</sxh>
 </WRAP> </WRAP>
  
 So können wir z.B. auch die verwendete Version von **MariaDB** abfragen. So können wir z.B. auch die verwendete Version von **MariaDB** abfragen.
  
 +<WRAP center box 100%>
 <code> <code>
 # mysqladmin version # mysqladmin version
 </code> </code>
  
-<WRAP center round box 100%> +<sxh plain; gutter: false;>
-<code>+
 mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64 mysqladmin  Ver 9.0 Distrib 5.5.41-MariaDB, for Linux on x86_64
 Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others. Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.
Line 699: Line 700:
  
 Threads: 1  Questions: 27  Slow queries: 0  Opens: 1  Flush tables: 2  Open tables: 27  Queries per second avg: 0.002 Threads: 1  Questions: 27  Slow queries: 0  Opens: 1  Flush tables: 2  Open tables: 27  Queries per second avg: 0.002
-</code>+</sxh>
 </WRAP> </WRAP>
  
 ---- ----
 +
 ==== mysql ==== ==== mysql ====
 Der Zugriff auf unseren MariaDB-Server wird in der Regel mit dem Werkzeug **mysql** vorgenommen. So kann man auch z.B. sehr leicht und einfach den Status unseres Datenbankservers abfragen. Der Zugriff auf unseren MariaDB-Server wird in der Regel mit dem Werkzeug **mysql** vorgenommen. So kann man auch z.B. sehr leicht und einfach den Status unseres Datenbankservers abfragen.
Line 775: Line 777:
  
 ---- ----
 +
 ==== Datenbank-Dump ==== ==== Datenbank-Dump ====
 Zur Sicherung unserer MariaDB-Tabellen legen wir uns ein kleines Script an, mit dessen Hilfe wir täglich eine Sicherung der kompletten Datenbank vornehmen können. Zur Sicherung unserer MariaDB-Tabellen legen wir uns ein kleines Script an, mit dessen Hilfe wir täglich eine Sicherung der kompletten Datenbank vornehmen können.
Line 1094: Line 1097:
  
 ---- ----
 +
 ==== phpMyAdmin ==== ==== phpMyAdmin ====
  
 <WRAP center round tip 90%> <WRAP center round tip 90%>
-Zur komfortablen Administration unserer **MariaDB unter RHEL 7 und CentOS 7** kann man auf das PHP-Projekt [[http://phpmyadmin.sourceforge.net/|phpMyAdmin]] zurück greifen.  +''Zur komfortablen Administration unserer **MariaDB unter RHEL 7 und CentOS 7** kann man auf das PHP-Projekt [[http://phpmyadmin.sourceforge.net/|phpMyAdmin]] zurück greifen.'' 
-Im Kapitel **''[[redhat:database-redhat:phpmyadmin-redhat|phpMyAdmin für Redhat]]''** ist die Installation und Konfiguration des PHP Projektes für RHEL7 beschrieben.+ 
 +''Im Kapitel **[[redhat:database-redhat:phpmyadmin-redhat|phpMyAdmin für Redhat]]** ist die Installation und Konfiguration des PHP Projektes für RHEL7 beschrieben.''
 </WRAP> </WRAP>
  
  
  • redhat/database-redhat/start.1516968506.txt.gz
  • Last modified: 2018/01/26 13:08
  • by michael