Inhaltsverzeichnis
MariaDB CentOS 7
Die MariaDB-Datenbank ist der freien Nachfolger von MySQL als Datenbank und bei den allermeisten Linux-Distributoren als Installationspaket enthalten. Viele OpenSource-Projekte setzen bereits die MariaDB-Datenbank ein, auch deswegen, da diese 100% kompatibel zu MySQL ist.
Hinweis - Die nachfolgenden Ausführungen erheben keinen Anspruch auf Vollständigkeit, sondern stellen eine „Basiskonfiguration“ eines MariaDB-Datenbank-Servers für ein kleines privates Netzwerk dar!!!
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Installation
Zur Installation eines MariaDB-Datenbank-Servers wird nachfolgendes Paket benötigt:
Zur Installation des MariaDB-Datenbank-Servers ist nachfolgender Befehl auszuführen:
# yum install mariadb-server Loaded plugins: changelog Resolving Dependencies --> Running transaction check ---> Package mariadb-server.x86_64 1:5.5.37-1.el7_0 will be installed --> Processing Dependency: mariadb(x86-64) = 1:5.5.37-1.el7_0 for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: perl(Data::Dumper) for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Processing Dependency: libaio.so.1()(64bit) for package: 1:mariadb-server-5.5.37-1.el7_0.x86_64 --> Running transaction check ---> Package libaio.x86_64 0:0.3.109-12.el7 will be installed ---> Package mariadb.x86_64 1:5.5.37-1.el7_0 will be installed ---> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be installed ---> Package perl-DBI.x86_64 0:1.627-4.el7 will be installed --> Processing Dependency: perl(RPC::PlServer) >= 0.2001 for package: perl-DBI-1.627-4.el7.x86_64 --> Processing Dependency: perl(RPC::PlClient) >= 0.2000 for package: perl-DBI-1.627-4.el7.x86_64 ---> Package perl-Data-Dumper.x86_64 0:2.145-3.el7 will be installed --> Running transaction check ---> Package perl-PlRPC.noarch 0:0.2020-14.el7 will be installed --> Processing Dependency: perl(Net::Daemon) >= 0.13 for package: perl-PlRPC-0.2020-14.el7.noarch --> Processing Dependency: perl(Net::Daemon::Test) for package: perl-PlRPC-0.2020-14.el7.noarch --> Processing Dependency: perl(Net::Daemon::Log) for package: perl-PlRPC-0.2020-14.el7.noarch --> Processing Dependency: perl(Compress::Zlib) for package: perl-PlRPC-0.2020-14.el7.noarch --> Running transaction check ---> Package perl-IO-Compress.noarch 0:2.061-2.el7 will be installed --> Processing Dependency: perl(Compress::Raw::Zlib) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch --> Processing Dependency: perl(Compress::Raw::Bzip2) >= 2.061 for package: perl-IO-Compress-2.061-2.el7.noarch ---> Package perl-Net-Daemon.noarch 0:0.48-5.el7 will be installed --> Running transaction check ---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 will be installed ---> Package perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: mariadb-server x86_64 1:5.5.37-1.el7_0 updates 11 M Installing for dependencies: libaio x86_64 0.3.109-12.el7 base 24 k mariadb x86_64 1:5.5.37-1.el7_0 updates 8.9 M perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k perl-DBD-MySQL x86_64 4.023-5.el7 base 140 k perl-DBI x86_64 1.627-4.el7 base 802 k perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-IO-Compress noarch 2.061-2.el7 base 260 k perl-Net-Daemon noarch 0.48-5.el7 base 51 k perl-PlRPC noarch 0.2020-14.el7 base 36 k Transaction Summary ================================================================================ Install 1 Package (+10 Dependent packages) Total download size: 21 M Installed size: 107 M Is this ok [y/d/N]: y Downloading packages: warning: /var/cache/yum/x86_64/7/base/packages/libaio-0.3.109-12.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Public key for libaio-0.3.109-12.el7.x86_64.rpm is not installed (1/11): libaio-0.3.109-12.el7.x86_64.rpm | 24 kB 00:00 (2/11): perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm | 32 kB 00:00 (3/11): perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm | 57 kB 00:00 (4/11): perl-DBD-MySQL-4.023-5.el7.x86_64.rpm | 140 kB 00:00 Public key for mariadb-server-5.5.37-1.el7_0.x86_64.rpm is not installed (5/11): mariadb-server-5.5.37-1.el7_0.x86_64.rpm | 11 MB 00:00 (6/11): perl-DBI-1.627-4.el7.x86_64.rpm | 802 kB 00:00 (7/11): perl-Data-Dumper-2.145-3.el7.x86_64.rpm | 47 kB 00:00 (8/11): perl-IO-Compress-2.061-2.el7.noarch.rpm | 260 kB 00:00 (9/11): perl-PlRPC-0.2020-14.el7.noarch.rpm | 36 kB 00:00 (10/11): mariadb-5.5.37-1.el7_0.x86_64.rpm | 8.9 MB 00:00 (11/11): perl-Net-Daemon-0.48-5.el7.noarch.rpm | 51 kB 00:00 -------------------------------------------------------------------------------- Total 21 MB/s | 21 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : perl-Data-Dumper-2.145-3.el7.x86_64 1/11 Installing : libaio-0.3.109-12.el7.x86_64 2/11 Installing : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 3/11 Installing : 1:mariadb-5.5.37-1.el7_0.x86_64 4/11 Installing : perl-Net-Daemon-0.48-5.el7.noarch 5/11 Installing : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 6/11 Installing : perl-IO-Compress-2.061-2.el7.noarch 7/11 Installing : perl-PlRPC-0.2020-14.el7.noarch 8/11 Installing : perl-DBI-1.627-4.el7.x86_64 9/11 Installing : perl-DBD-MySQL-4.023-5.el7.x86_64 10/11 Installing : 1:mariadb-server-5.5.37-1.el7_0.x86_64 11/11 Verifying : perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64 1/11 Verifying : perl-Net-Daemon-0.48-5.el7.noarch 2/11 Verifying : perl-Data-Dumper-2.145-3.el7.x86_64 3/11 Verifying : 1:mariadb-5.5.37-1.el7_0.x86_64 4/11 Verifying : perl-PlRPC-0.2020-14.el7.noarch 5/11 Verifying : 1:mariadb-server-5.5.37-1.el7_0.x86_64 6/11 Verifying : 1:perl-Compress-Raw-Zlib-2.061-4.el7.x86_64 7/11 Verifying : libaio-0.3.109-12.el7.x86_64 8/11 Verifying : perl-DBI-1.627-4.el7.x86_64 9/11 Verifying : perl-IO-Compress-2.061-2.el7.noarch 10/11 Verifying : perl-DBD-MySQL-4.023-5.el7.x86_64 11/11 Installed: mariadb-server.x86_64 1:5.5.37-1.el7_0 Dependency Installed: libaio.x86_64 0:0.3.109-12.el7 mariadb.x86_64 1:5.5.37-1.el7_0 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-5.el7 perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7 perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PlRPC.noarch 0:0.2020-14.el7 Complete!
Mit nachfolgendem Befehl, kann der Inhalt des Hauptpaketes - mariadb-server
aufgelistet werden:
# rpm -qil mariadb-server Name : mariadb-server Epoch : 1 Version : 5.5.37 Release : 1.el7_0 Architecture: x86_64 Install Date: Mon 10 Nov 2014 04:25:59 AM CET Group : Applications/Databases Size : 58171821 License : GPLv2 with exceptions and LGPLv2 and BSD Signature : RSA/SHA256, Sat 05 Jul 2014 05:28:36 PM CEST, Key ID 24c6a8a7f4a80eb5 Source RPM : mariadb-5.5.37-1.el7_0.src.rpm Build Date : Tue 24 Jun 2014 05:53:24 PM CEST Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://mariadb.org Summary : The MariaDB server and related files Description : MariaDB is a multi-user, multi-threaded SQL database server. It is a client/server implementation consisting of a server daemon (mysqld) and many different client programs and libraries. This package contains the MariaDB server and some accompanying files and directories. MariaDB is a community developed branch of MySQL. /etc/logrotate.d/mariadb /etc/my.cnf.d/server.cnf /usr/bin/innochecksum /usr/bin/myisam_ftdump /usr/bin/myisamchk /usr/bin/myisamlog /usr/bin/myisampack /usr/bin/mysql_convert_table_format /usr/bin/mysql_fix_extensions /usr/bin/mysql_install_db /usr/bin/mysql_plugin /usr/bin/mysql_secure_installation /usr/bin/mysql_setpermission /usr/bin/mysql_tzinfo_to_sql /usr/bin/mysql_upgrade /usr/bin/mysql_zap /usr/bin/mysqlbug /usr/bin/mysqld_multi /usr/bin/mysqld_safe /usr/bin/mysqldumpslow /usr/bin/mysqlhotcopy /usr/bin/mysqltest /usr/bin/perror /usr/bin/replace /usr/bin/resolve_stack_dump /usr/bin/resolveip /usr/lib/systemd/system/mariadb.service /usr/lib/tmpfiles.d/mariadb.conf /usr/lib64/mysql/INFO_BIN /usr/lib64/mysql/INFO_SRC /usr/lib64/mysql/mysqlbug /usr/lib64/mysql/plugin /usr/lib64/mysql/plugin/adt_null.so /usr/lib64/mysql/plugin/auth_0x0100.so /usr/lib64/mysql/plugin/auth_pam.so /usr/lib64/mysql/plugin/auth_socket.so /usr/lib64/mysql/plugin/auth_test_plugin.so /usr/lib64/mysql/plugin/daemon_example.ini /usr/lib64/mysql/plugin/dialog.so /usr/lib64/mysql/plugin/dialog_examples.so /usr/lib64/mysql/plugin/ha_innodb.so /usr/lib64/mysql/plugin/ha_sphinx.so /usr/lib64/mysql/plugin/handlersocket.so /usr/lib64/mysql/plugin/libdaemon_example.so /usr/lib64/mysql/plugin/mypluglib.so /usr/lib64/mysql/plugin/mysql_clear_password.so /usr/lib64/mysql/plugin/qa_auth_client.so /usr/lib64/mysql/plugin/qa_auth_interface.so /usr/lib64/mysql/plugin/qa_auth_server.so /usr/lib64/mysql/plugin/query_cache_info.so /usr/lib64/mysql/plugin/semisync_master.so /usr/lib64/mysql/plugin/semisync_slave.so /usr/lib64/mysql/plugin/server_audit.so /usr/lib64/mysql/plugin/sphinx.so /usr/lib64/mysql/plugin/sql_errlog.so /usr/libexec/mariadb-prepare-db-dir /usr/libexec/mariadb-wait-ready /usr/libexec/mysqld /usr/share/man/man1/innochecksum.1.gz /usr/share/man/man1/msql2mysql.1.gz /usr/share/man/man1/myisam_ftdump.1.gz /usr/share/man/man1/myisamchk.1.gz /usr/share/man/man1/myisamlog.1.gz /usr/share/man/man1/myisampack.1.gz /usr/share/man/man1/mysql.server.1.gz /usr/share/man/man1/mysql_convert_table_format.1.gz /usr/share/man/man1/mysql_fix_extensions.1.gz /usr/share/man/man1/mysql_install_db.1.gz /usr/share/man/man1/mysql_plugin.1.gz /usr/share/man/man1/mysql_secure_installation.1.gz /usr/share/man/man1/mysql_setpermission.1.gz /usr/share/man/man1/mysql_tzinfo_to_sql.1.gz /usr/share/man/man1/mysql_upgrade.1.gz /usr/share/man/man1/mysql_zap.1.gz /usr/share/man/man1/mysqlbinlog.1.gz /usr/share/man/man1/mysqlbug.1.gz /usr/share/man/man1/mysqlcheck.1.gz /usr/share/man/man1/mysqld_multi.1.gz /usr/share/man/man1/mysqld_safe.1.gz /usr/share/man/man1/mysqldumpslow.1.gz /usr/share/man/man1/mysqlhotcopy.1.gz /usr/share/man/man1/mysqlimport.1.gz /usr/share/man/man1/mysqlman.1.gz /usr/share/man/man1/mysqltest.1.gz /usr/share/man/man1/perror.1.gz /usr/share/man/man1/replace.1.gz /usr/share/man/man1/resolve_stack_dump.1.gz /usr/share/man/man1/resolveip.1.gz /usr/share/man/man8/mysqld.8.gz /usr/share/mysql/README.mysql-cnf /usr/share/mysql/config.huge.ini /usr/share/mysql/config.medium.ini /usr/share/mysql/config.small.ini /usr/share/mysql/errmsg-utf8.txt /usr/share/mysql/fill_help_tables.sql /usr/share/mysql/my-huge.cnf /usr/share/mysql/my-innodb-heavy-4G.cnf /usr/share/mysql/my-large.cnf /usr/share/mysql/my-medium.cnf /usr/share/mysql/my-small.cnf /usr/share/mysql/mysql_performance_tables.sql /usr/share/mysql/mysql_system_tables.sql /usr/share/mysql/mysql_system_tables_data.sql /usr/share/mysql/mysql_test_data_timezone.sql /var/lib/mysql /var/log/mariadb /var/log/mariadb/mariadb.log /var/run/mariadb
Dienst/Deamon-Start einrichten
Um einen MariaDB-Datenbank-Server, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:
# systemctl enable mariadb.service ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
Eine Überprüfung, ob beim Neustart des Server der mariadb
-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:
# systemctl list-unit-files --type=service | grep mariadb.service mariadb.service enabled
bzw.
# systemctl is-enabled mariadb.service enabled
iptables Regel
Damit der MariaDB-Datenbank-Server auch erreichbar ist und nicht die Ergebnisse der Datenbank-Abfragen vom Paketfilter iptables
blockiert werden, muss nachfolgende Regel zum iptables
-Regelwerk hinzugefügt werden.
Um die aktuellen iptables
-Regeln erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 141 15811 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 2 64 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Nachfolgender Befehl, fügt folgende iptables
-Regeln dem iptables
-Regelwerk nach der Position 4 hinzu, ohne das der Paketfilter angehalten werden muss:
-A INPUT -p tcp --dport 3306 -j ACCEPT
und hier die Befehle:
# iptables -I INPUT 5 -p tcp --dport 3306 -j ACCEPT
Ein erneute Abfrage des iptables
-Regelwerts, sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
# iptables -L -nv --line-numbers Chain INPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 192 19567 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 6 3 96 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination
Die neue Zeile ist an Position 5 (INPUT) zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (nur relevanter Ausschnitt):
... 5 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ...
Um diese iptables
-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im iptables
-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
# /usr/sbin/iptables-save > /etc/sysconfig/iptables
Basis-Konfiguration
Bevor der erste Start des MariaDB-Server durchgeführt wird, können noch Anpassungen in der Konfigurationsdatei
/etc/my.cnf
durchgeführt werden.
Nach der Installation des MariaDB-Server, sieht der Inhalt der Konfigurationsdatei /etc/my.cnf
wie nachfolgend dargestellt aus (Standardeinstellungen - komplette Konfigurationsdatei):
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
HINWEIS - Ein Liste der Möglichen Optionen ist unter nachfolgendem externen Link zu finden:
lost+found Konfiguration
Eins Beispiel für eine Anpassung wäre, dass das Dateisystem in dem der MariaDB-Server die Verzeichnisse und Dateien beim ersten Start anlegt, auf einer eigenen Festplatte oder einem eignen Volume in einer VolumeGroup liegen und hier ein Verzeichnis des Dateisystem vom Dateisystem angelegt wird, dass den Namen
lost+found
trägt.
Dies kann zu unerwünschten Eintragungen im LOG des MySQL-Server führen, wie nachfolgen dargestellt:
... 141110 04:52:21 [ERROR] Invalid (old?) table or database name 'lost+found' ...
Um dies zu vermeiden, kann der Speicherort im Dateisystem, in dem der MariaDB-Server die Verzeichnisse und Dateien für die Datenbanken ablegt wie nachfolgend gezeigt verändert werden.
Die Anpassungen sind in der Konfigurationsdatei /etc/my.cnf
vorzunehmen und in diesem Beispiel, durch voranstellen eines Kommentars im Format:
# Tachtler
gekennzeichnet.
Hier eine mögliche Anpassung (komplette Konfigurationsdatei):
[mysqld] # Tachtler # default: datadir=/var/lib/mysql datadir=/var/lib/mysql/data socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
Erweiterte Konfiguration
Binary-Log
Um eine bessere Datenkonsistenz bei einem Backup und vor allem bei dem darauf folgenden Recovery zu ermöglichen, sind nachfolgende Anpassungen von Vorteil:
- Einführung der zusätzlichen Log-Schreibung des Binary-Logs
- Einführung der Log-Schreibung des Binary-Logs mittels des
row
-Formats - Festlegung der LOG-Schreibung des Binary-Logs auf eine Größe von 100 MegyByte pro Log-Datei
- Daten der LOG-Schreibung sollen maximal 7 Tage beinhalten.
Die Anpassungen sind in der Konfigurationsdatei /etc/my.cnf
vorzunehmen und in diesem Beispiel, durch voranstellen eines Kommentars im Format:
# Tachtler
gekennzeichnet.
Hier eine mögliche Anpassung (komplette Konfigurationsdatei):
[mysqld] # Tachtler # default: datadir=/var/lib/mysql datadir=/var/lib/mysql/data socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd # Tachtler - binary-log - log_bin=bin-log binlog_format=row max_binlog_size=100M expire_logs_days=7 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
Slow-Query-Log
Zusätzlich zur Performance Überwachung, soll das Slow-Log eingeschaltet werden, welche alle Zugriffe protokolliert, welche sehr lange laufen.
Der Standardwert von 10 Sekunden oder länger der minimalen Laufzeit eines Abfrage kann mit dem Parameter
long_query_time=5
z.B. auf 5 Sekunden eingestellt werden.
Die Anpassungen sind in der Konfigurationsdatei /etc/my.cnf
vorzunehmen und in diesem Beispiel, durch voranstellen eines Kommentars im Format:
# Tachtler
gekennzeichnet.
Hier eine mögliche Anpassung (komplette Konfigurationsdatei):
[mysqld] # Tachtler # default: datadir=/var/lib/mysql datadir=/var/lib/mysql/data socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd # Tachtler - binary-log - log_bin=bin-log binlog_format=row max_binlog_size=100M expire_logs_days=7 # Tachtler - slow-query-log - slow_query_log=1 slow_query_log_file=/var/log/mariadb/slow_query.log long_query_time=5 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
Erster Start
Bevor weitere Konfigurationsschritte erfolgen, sollte dem ersten Start nichts im Wege stehen, da bereits hier Konfigurationseinstellungen durchgeführt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# systemctl start mariadb.service
HINWEIS - Es erfolgen keine weiteren Ausgaben, wenn der Start erfolgreich war !
MariaDB-Server Überprüfung
Ob der MariaDB-Server, sprich der mariadb
-Dienst/Deamon auch tatsächlich als Hintergrundprozess läuft, kann mit nachfolgendem Befehl überprüft werden (Es sollte eine Ausgabe wie nachfolgend dargestellt erfolgen - es kommt auf die zweite Zeile an!):
# ps auxwf | grep mariadb root 11195 0.0 0.0 112640 932 pts/0 S+ 05:08 0:00 \_ grep --color=auto mariadb mysql 11151 0.3 4.6 910692 88092 ? Sl 05:05 0:00 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql/data --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb mariadb.pid --socket=/var/lib/mysql/mysql.sock
und nachfolgender Befehl:
# netstat -tulpen | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 33600 11151/mysqld
bzw. nachfolgender Befehl:
# systemctl status mariadb.service mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled) Active: active (running) since Mon 2014-11-10 05:05:45 CET; 3min 40s ago Process: 10995 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 10911 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 10994 (mysqld_safe) CGroup: /system.slice/mariadb.service --10994 /bin/sh /usr/bin/mysqld_safe --basedir=/usr --11151 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysq... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: The... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: You... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: htt... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: Sup... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: Sky... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: Alt... Nov 10 05:05:42 vml70030.idmz.tachtler.net mariadb-prepare-db-dir[10911]: htt... Nov 10 05:05:42 vml70030.idmz.tachtler.net mysqld_safe[10994]: 141110 05:05:4... Nov 10 05:05:42 vml70030.idmz.tachtler.net mysqld_safe[10994]: 141110 05:05:4... Nov 10 05:05:45 vml70030.idmz.tachtler.net systemd[1]: Started MariaDB databa... Hint: Some lines were ellipsized, use -l to show in full.
Eine weitere Überprüfung, ob der erste Start erfolgreich war, kann durch Einsicht der LOG-Dateien
/var/log/mariadb/mariadb.log
durchgeführt werden.
Ausgabe der LOG-Datei /var/log/mariadb/mariadb.log
mit nachfolgendem Befehl, die Ausgabe sollte wie nachfolgend dargestellt aussehen:
# cat /var/log/mariadb/mariadb.log 141110 05:05:42 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/data 141110 5:05:42 InnoDB: The InnoDB memory heap is disabled 141110 5:05:42 InnoDB: Mutexes and rw_locks use GCC atomic builtins 141110 5:05:42 InnoDB: Compressed tables use zlib 1.2.7 141110 5:05:42 InnoDB: Using Linux native AIO 141110 5:05:42 InnoDB: Initializing buffer pool, size = 128.0M 141110 5:05:42 InnoDB: Completed initialization of buffer pool InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 141110 5:05:42 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 141110 5:05:42 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 141110 5:05:43 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: 127 rollback segment(s) active. InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 141110 5:05:44 InnoDB: Waiting for the background threads to start 141110 5:05:45 Percona XtraDB (http://www.percona.com) 5.5.37-MariaDB-34.0 started; log sequence number 0 141110 5:05:45 [Note] Plugin 'FEEDBACK' is disabled. 141110 5:05:45 [Note] Server socket created on IP: '0.0.0.0'. 141110 5:05:45 [Note] Event Scheduler: Loaded 0 events 141110 5:05:45 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.37-MariaDB' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server
Durch nachfolgenden Befehl, kann das Verzeichnis in dem die MariaDB-Datenbank standardmäßig die Dateien der einzelnen Datenbanken ablegt, angezeigt werden. Die Ausgabe sollte in etwa wie nachfolgend gezeigt aussehen:
# ls -la /var/lib/mysql/data/ total 28700 drwxr-xr-x 5 mysql mysql 151 Nov 10 05:05 . drwxr-xr-x. 3 mysql mysql 34 Nov 10 05:05 .. -rw-rw---- 1 mysql mysql 16384 Nov 10 05:05 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Nov 10 05:05 aria_log_control -rw-rw---- 1 mysql mysql 2666998 Nov 10 05:05 bin-log.000001 -rw-rw---- 1 mysql mysql 51 Nov 10 05:05 bin-log.index -rw-rw---- 1 mysql mysql 18874368 Nov 10 05:05 ibdata1 -rw-rw---- 1 mysql mysql 5242880 Nov 10 05:05 ib_logfile0 -rw-rw---- 1 mysql mysql 5242880 Nov 10 05:05 ib_logfile1 drwx------ 2 mysql mysql 4096 Nov 10 05:05 mysql drwx------ 2 mysql mysql 4096 Nov 10 05:05 performance_schema drwx------ 2 mysql mysql 6 Nov 10 05:05 test
MariaDB-Server Zugriff
Direkt nach der Installation und dem ersten Start des MariaDB-Datenbank-Servers, kann durch nachfolgenden Befehl, die korrekt Funktionsweise überprüft werden:
# mysqladmin version mysqladmin Ver 9.0 Distrib 5.5.37-MariaDB, for Linux on x86_64 Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Server version 5.5.37-MariaDB Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 9 min 14 sec Threads: 1 Questions: 2 Slow queries: 0 Opens: 0 Flush tables: 2 Open tables: 26 Queries per second avg: 0.003
Ein erstes Zugriff kann mit nachfolgendem Befehl durchgeführt werden, welche eine Ausgabe in etwa wie nachfolgend dargestellt, erzeugen sollte:
# mysql -u root Welcome TO the MariaDB monitor. Commands END WITH ; OR \g. Your MariaDB connection id IS 4 Server version: 5.5.37-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab AND others. TYPE 'help;' OR '\h' FOR help. TYPE '\c' TO clear the CURRENT INPUT statement. MariaDB [(NONE)]> SHOW DATABASES; +--------------------+ | DATABASE | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ 4 ROWS IN SET (0.00 sec) MariaDB [(NONE)]> quit Bye
Nachfolgende Eingaben sind dabei nach dem Start der MariaDB-Monitor - mysql
durchzuführen:
(Auflistung aller Datenbanken):
MariaDB [(none)]> show databases;
und
(Beenden der MariaDB-Monitor):
MariaDB [(none)]> quit
MariaDB-Monitor
Der MariaDB-Monitor ist eine Art shell
, welche Befehle gegen den MariaDB-Datenbank-Server ausführen kann.
Der MariaDB-Monitor erfordert eine Anmeldung, welche als z.B. Benutzer root
und noch ohne Passwort-Abfrage wie folgt aussehen kann:
# mysql -h localhost -u root Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 5.5.37-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Beendet wird diese Art von shell
durch nachfolgenden Befehl:
MariaDB [(none)]> quit Bye
Sicherheits-Konfiguration
Nach der erfolgreicher Installation gibt es empfohlen, sicherheitsrelevante Einstellungen, welche gerade in produktiven MariaDB-Datenbank-Server Installationen durchgeführt werden sollten.
Um nachfolgende sicherheitsrelevanten Einstellungen zu realisieren,
- Benutzer
root
durch setzen eines Passwortes schützen - Anonyme Benutzerkonten entfernen
- Deaktivieren des Zugriffs des Benutzers
root
via Remote/Entfernten-Zugriff - Nicht benötigte Datenbanken, wie z.B. die Datenbank
test
entfernen
kann das Script,
/usr/bin/mysql_secure_installation
genutzt, bzw. ausgeführt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
HINWEIS - Es gibt aktuell einen Bug bei der Ausführung des nachfolgenden Skriptes!
# /usr/bin/mysql_secure_installation /usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found ...
welcher aktuell ignoriert werden kann, da dieser keine negativen Auswirkungen auf die Funktionalität des Skriptes hat!
# /usr/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] Y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] Y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] Y ... Success! By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] Y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] Y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Überprüfung: root Passwort
Eine Überprüfung, ob für den Benutzer root
tatsächlich eine Passwort vergeben wurde, kann durch Ausführen des nachfolgenden Befehls durchgeführt werden und sollte eine Ergebnis wie das nachfolgende zeigen:
# mysql -h localhost -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Eine erfolgreiche Anmeldung, sollte nur noch mit Passwort möglich sein, wie nachfolgender Befehl und nachfolgendes Ergebnis zeigen sollte:
# mysql -h localhost -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 22 Server version: 5.5.37-MariaDB MariaDB Server Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> quit Bye
Überprüfung: Anonyme Benutzerkonten
Eine Überprüfung, ob weitere anonyme Benutzerkonten vorhanden sind, kann mit nachfolgendem Befehl überprüft werden und sollte keine weiteren Benutzer außer dem Benutzer root
zur Anzeige bringen:
# mysql -h localhost -u root -e "SELECT Host,User FROM mysql.user" -p Enter password: +-----------+------+ | Host | User | +-----------+------+ | 127.0.0.1 | root | | ::1 | root | | localhost | root | +-----------+------+
HINWEIS - Falls kein IPv6 zum Einsatz kommt, kann mit nachfolgendem Befehl der Zugriff des Benutzers root
über den Host ::1
ebenfalls gelöscht werden:
# mysql -h localhost -u root -e "DELETE FROM mysql.user WHERE Host='::1' AND User='root'" -p Enter password:
Eine erneute Überprüfung der Benutzerkonten, kann nochmals mit nachfolgendem Befehl durchgeführt werden und sollte dann nachfolgendes Ergebnis zur Anzeige bringen:
# mysql -h localhost -u root -e "SELECT Host,User FROM mysql.user" -p Enter password: +-----------+------+ | Host | User | +-----------+------+ | 127.0.0.1 | root | | localhost | root | +-----------+------+
Überprüfung: Remote Zugriff
Eine Überprüfung, ob der Benutzers root
via Remote/Entfernten-Zugriff eine Verbindung zum MariaDB-Datenbank-Server in der Lage ist, aufzubauen, kann mit nachfolgendem Befehl überprüft werden und sollte keine weiteren Hosts außer den Host
127.0.0.1
::1
localhost
zur Anzeige bringen:
# mysql -h localhost -u root -e "SELECT Host,User FROM mysql.user" -p Enter password: +-----------+------+ | Host | User | +-----------+------+ | 127.0.0.1 | root | | ::1 | root | | localhost | root | +-----------+------+
HINWEIS - Falls kein IPv6 zum Einsatz kommt, kann mit nachfolgendem Befehl der Zugriff des Benutzers root
über den Host ::1
ebenfalls gelöscht werden:
# mysql -h localhost -u root -e "DELETE FROM mysql.user WHERE Host='::1' AND User='root'" -p Enter password:
Eine erneute Überprüfung, ob der Benutzers root
via Remote/Entfernten-Zugriff eine Verbindung zum MariaDB-Datenbank-Server in der Lage ist, aufzubauen, kann nochmals mit nachfolgendem Befehl durchgeführt werden und sollte keine weiteren Hosts außer den Host
127.0.0.1
localhost
zur Anzeige bringen:
# mysql -h localhost -u root -e "SELECT Host,User FROM mysql.user" -p Enter password: +-----------+------+ | Host | User | +-----------+------+ | 127.0.0.1 | root | | localhost | root | +-----------+------+
Überprüfung: Test-Datenbanken
Eine Überprüfung, ob Test-Datenbanken auf dem MariaDB-Datenbank-Server vorhanden sind, kann mit nachfolgendem Befehl überprüft werden und sollte nachfolgende Ausgabe zur Anzeige bringen:
# mysql -h localhost -u root -e "show databases" -p Enter password: +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+
LOG-Rotate Konfiguration
Um das Volumen von LOG-Dateien unter Linux nicht ins unermessliche ansteigen zu lassen, kann die LOG-Datei des MariaDB-Datenbank-Server durch die Konfigurationsdatei im Verzeichnis
/etc/logrotate.d/mariadb
wie nachfolgend dargestellt, konfiguriert werden.
Nachfolgende Schritte sind durchzuführen, da kein Neustart des MariaDB-Datenbank-Server, zur Rotation der LOG-Dateien mehr durchgeführt werden soll, sondern dies über Mechanismen des Programms
/usr/bin/mysqladmin
erreicht werden soll.
Da das Rotieren der LOG-Dateien effektiv durch den Benutzer root
, unter Zuhilfenahme des LOG-Rotate-Mechanismus von Linux durchgeführt wird, sind entsprechende Konfigurationen durchzuführen.
/root/.my.cnf
Zuerst ist es erforderlich eine Datei in nachfolgendem Verzeichnis mit nachfolgender Bezeichnung mit nachfolgendem Befehl anzulegen:
# touch /root/.my.cnf
Anschließend sollten die Dateirechte mit nachfolgendem Befehl gesetzt werden, dass nur der Benutzer root
Zugriff auf den Inhalt der Datei hat:
# chmod 400 /root/.my.cnf
Falls die Besitzrechte nicht schon bei dem Benutzer root
und der Gruppe root
liegen sollten, kann dies mit nachfolgendem Befehl, ebenfalls noch gesetzte werden:
# chown root:root /root/.my.cnf
Anschließend sollte mit nachfolgendem Befehl überprüft werden, ob die Konfigurationsdatei
/root/.my.cnf
korrekt angelegt wurde, was mit nachfolgendem Befehl durchgeführt werden kann und eine Ausgabe wie die nachfolgende zum Vorschein bringen sollte:
# ls -la /root/.my.cnf -r-------- 1 root root 0 Nov 10 06:43 /root/.my.cnf
Der Inhalt der Konfigurationsdatei
/root/.my.cnf
sollte dann wie nachfolgend dargestellt aussehen:
[mysqladmin] password=geheim user=root
/etc/logrotate.d/mariadb
Die eigentliche Steuerungsdatei für das Rotieren der LOG-Dateien des MariaDB-Datenbank-Server lautet:
/etc/logrotate.d/mariadb
Der Inhalt der Konfigurationsdatei sieht wie folgt aus und sollte entsprechend Angepasst werden. Die Anpassungen sind durch voranstellen eines Kommentars im Format:
# Tachtler
gekennzeichnet.
Hier eine mögliche Anpassung (komplette Konfigurationsdatei):
# This logname can be set in /etc/my.cnf # by setting the variable "log-error" # in the [mysqld_safe] section as follows: # # [mysqld_safe] # log-error=/var/log/mariadb/mariadb.log # # If the root user has a password you have to create a # /root/.my.cnf configuration file with the following # content: # # [mysqladmin] # password = <secret> # user= root # # where "<secret>" is the password. # # ATTENTION: This /root/.my.cnf should be readable ONLY # for root ! # Then, un-comment the following lines to enable rotation of mysql's log file: # Tachtler - uncommented following lines - /var/log/mariadb/mariadb.log { create 640 mysql mysql notifempty daily rotate 3 missingok compress postrotate # just if mysqld is really running if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript }
SSL-Konfiguration
Nachfolgende Konfiguration ermöglicht eine SSL-Verschlüsselte Verbindung zu einem MariaDB-Datenbank-Server aufbauen zu können.
HINWEIS - Es sollen self-signed-certifiacte
aus einer eigenen CA
erstellt werden!
Die Konfiguration beinhaltet
- Erstellen einer eignen CA -
MariaDB CA
- Erstellen eines
self-signed
-Zertifikats für den Server -db.idmz.tachtler.net
- Erstellen eines
self-signed
-Zertifikats für den Client -MariaDB Client
SSL: Eigene CA erstellen
Nachfolgende Konfiguration erstellt eine eigene CA, aus der das ROOT-Zertifikat der CA erstellt wird, welche wiederum das MariaDB Server
-Zertifikate und das MariaDB Client
-Zertifikat hervorbringt.
Dazu sollen mit nachfolgenden Befehl in nachfolgendem Verzeichnis
/etc/pki/
die folgenden Verzeichnisse erstellt werden
/etc/pki/mariadb
/etc/pki/mariadb/certs
- Verzeichnis für alle Zertifikate/etc/pki/mariadb/private
- Verzeichnis für alle Schlüssel
# mkdir -p /etc/pki/mariadb/{certs,private}
Ob die Verzeichnisse korrekt erstellt wurden, kann mit nachfolgendem Befehl überprüft werden:
# ll /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 0 /etc/pki/mariadb/private: total 0
Jetzt müssen jeweils ein
/etc/pki/mariadb/private/mariadb-ca-key.pem
- Zertifikats-Schlüssel (Certificate-Key)/etc/pki/mariadb/certs/mariadb-ca-crt.pem
- ROOT-Zertifikat (Certificate)
mit nachfolgenden Befehlen erstellt werden:
1. Schritt: Erstellung eines Schlüssel für die eigene CA, mit nachfolgendem Befehl:
openssl genrsa 2048 > /etc/pki/mariadb/private/mariadb-ca-key.pem Generating RSA private key, 2048 bit long modulus ...........+++ ................................+++ e is 65537 (0x10001)
2. Schritt: Erstellung eines ROOT-Zertifikats für die eigene CA, mit nachfolgendem Befehl:
# openssl req -new -x509 -nodes -days 3650 -key /etc/pki/mariadb/private/mariadb-ca-key.pem -out /etc/pki/mariadb/certs/mariadb-ca-crt.pem You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:DE State or Province Name (full name) []:Bayern (Bavaria) Locality Name (eg, city) [Default City]:Muenchen (Munich) Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server's hostname) []:MariaDB CA Email Address []:hostmaster@tachtler.net
Mit nachfolgendem Befehl kann nun überprüft werden, ob der Schlüssel und das ROOT-Zertifikat für die eigene CA erstellt wurden:
# ll /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 4 -rw-r--r-- 1 root root 1460 Apr 27 04:54 mariadb-ca-crt.pem /etc/pki/mariadb/private: total 4 -rw-r--r-- 1 root root 1675 Apr 27 04:52 mariadb-ca-key.pem
Mit nachfolgendem Befehl kann das soeben erstellt ROOT-Zertifikat ausgegeben und damit auch überprüft werden:
# openssl x509 -noout -text -in /etc/pki/mariadb/certs/mariadb-ca-crt.pem Certificate: Data: Version: 3 (0x2) Serial Number: 8d:d5:4b:dd:b3:b7:7c:1b Signature Algorithm: sha256WithRSAEncryption Issuer: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=MariaDB CA/emailAddress=hostmaster@tachtler.net Validity Not Before: Apr 27 02:54:11 2018 GMT Not After : Apr 24 02:54:11 2028 GMT Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=MariaDB CA/emailAddress=hostmaster@tachtler.net Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:b9:ae:eb:99:15:f8:3a:d1:cd:b2:36:44:ae:a7: f4:fd:a7:37:a8:ac:ab:90:e1:c9:18:25:cb:e7:35: e8:0d:b9:15:cb:e9:41:fe:c5:06:07:2b:ce:fe:2c: fd:93:70:90:5e:f9:fc:59:2c:e7:b1:6b:51:74:3a: 91:3e:07:8a:7d:9f:09:4b:35:a0:09:51:bb:da:fb: b9:82:df:96:1e:45:a4:e5:61:c4:a0:e4:96:7c:c5: ee:fa:87:e7:74:31:24:1c:48:ac:fa:98:83:a4:87: 45:18:c8:48:38:40:1f:2e:32:f0:dd:d9:35:5e:6e: bf:a3:2c:8d:f3:73:d7:22:01:7c:8a:05:2c:3e:f9: 7b:0f:a1:8d:05:8e:2e:c6:a3:14:de:91:ee:7e:f8: ab:92:9a:b9:67:52:4c:ba:cd:21:4f:cf:8b:e6:83: 5d:57:7f:64:db:1f:21:4a:d3:d2:18:39:76:1e:42: 7d:76:b8:13:30:0b:3a:06:dd:61:2d:2a:97:0b:22: cf:31:25:48:d8:6f:a3:b1:b2:bd:c5:b2:90:03:41: ef:c1:55:52:85:c5:e6:84:21:98:2c:79:25:ea:ae: 17:d4:92:28:2e:33:37:0f:11:f0:0c:24:48:ba:ed: 73:9c:c9:fd:4f:d6:50:30:55:5c:00:7d:7c:c0:20: 59:35 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 8D:E2:83:E1:8E:90:37:11:5A:1C:C1:B8:FE:5B:ED:7B:76:0C:DD:D6 X509v3 Authority Key Identifier: keyid:8D:E2:83:E1:8E:90:37:11:5A:1C:C1:B8:FE:5B:ED:7B:76:0C:DD:D6 X509v3 Basic Constraints: CA:TRUE Signature Algorithm: sha256WithRSAEncryption 26:2c:20:9f:69:fe:42:67:00:1d:63:6d:ef:19:5a:b9:ac:db: a4:92:63:ac:0b:16:56:f4:d0:ab:d0:99:99:41:48:40:99:a1: f9:99:09:4c:10:15:b0:6a:fa:fd:f3:8d:e0:8b:25:48:10:c8: 16:84:b2:67:e1:25:86:3e:bc:81:fa:fb:f7:45:61:b3:fb:23: 51:65:e6:c3:98:f7:36:c9:79:cc:3f:72:33:96:ce:cc:d5:bc: 64:ac:ba:9a:a3:f0:99:59:bc:b4:7b:2e:31:36:d4:a1:5b:66: c1:12:29:8c:10:94:dd:f0:d6:7e:e8:f1:15:23:0f:fe:f4:a0: 51:bd:b8:1b:c8:6f:61:58:2d:a5:ee:03:44:b5:94:bd:0a:88: cb:fc:a8:51:2c:9b:06:84:88:fd:c2:86:0b:5d:ae:7f:91:05: 1f:12:ab:d5:65:8f:4c:6f:9e:4d:e3:f6:96:fd:42:84:5c:37: ef:9a:47:62:21:d8:30:12:26:16:e1:65:13:55:60:e1:7e:dd: 01:47:7f:2a:c2:76:dc:e7:80:79:6c:bd:84:0f:9e:13:cc:1b: e2:4c:79:1d:c2:70:61:11:d7:fa:6f:1c:fe:e8:ae:67:3a:ea: 9b:e6:fb:c9:f8:24:a9:17:3e:c3:34:c9:59:f1:df:61:18:d0: ce:07:cc:04
SSL: Server-Zertifikat erstellen
Nachfolgende Befehle erstellen ein MariaDB Server
-Zertifikate aus der eigenen CA.
1. Schritt: Zuerst müssen jeweils ein
/etc/pki/mariadb/private/mariadb-server-key.pem
- Zertifikats-Schlüssel (Certificate-Key)/etc/pki/mariadb/certs/mariadb-server-csr.pem
- Zertifikats-Antrag (Certificate-Request/CSR)
mit nachfolgendem Befehl erstellt werden:
# openssl req -newkey rsa:2048 -days 3649 -nodes -keyout /etc/pki/mariadb/private/mariadb-server-key.pem -out /etc/pki/mariadb/certs/mariadb-server-csr.pem Generating a 2048 bit RSA private key ......................+++ ...........+++ writing new private key to '/etc/pki/mariadb/private/mariadb-server-key.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:DE State or Province Name (full name) []:Bayern (Bavaria) Locality Name (eg, city) [Default City]:Muenchen (Munich) Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server's hostname) []:db.idmz.tachtler.net Email Address []:hostmaster@tachtler.net Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:.
Mit nachfolgendem Befehl kann nun überprüft werden, ob der MariaDB Server Schlüssel und der MariaDB Server Zertifikatsantrag erstellt wurden:
# ls -la /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 8 drwxr-xr-x 2 root root 61 Apr 27 05:07 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1460 Apr 27 04:54 mariadb-ca-cert.pem -rw-r--r-- 1 root root 1078 Apr 27 05:07 mariadb-server-csr.pem /etc/pki/mariadb/private: total 8 drwxr-xr-x 2 root root 60 Apr 27 05:06 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1675 Apr 27 04:52 mariadb-ca-key.pem -rw-r--r-- 1 root root 1708 Apr 27 05:07 mariadb-server-key.pem
2. Schritt: Anschließend muss der soeben erstellte MariaDB Server Schlüssel noch in einen RSA kompatiblen Schlüssel umgewandelt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# openssl rsa -in /etc/pki/mariadb/private/mariadb-server-key.pem -out /etc/pki/mariadb/private/mariadb-server-key.pem writing RSA key
3. Schritt: Abschließend wird nun der MariaDB Server Zertifikatsantrag durch signieren durch das ROOT-Zertifikat, ein MariaDB Server Zertifikat erstellt, was mit nachfolgendem Befehl durchgführt werden kann:
# openssl x509 -req -in /etc/pki/mariadb/certs/mariadb-server-csr.pem -days 3649 -CA /etc/pki/mariadb/certs/mariadb-ca-crt.pem -CAkey /etc/pki/mariadb/private/mariadb-ca-key.pem -set_serial 01 -out /etc/pki/mariadb/certs/mariadb-server-crt.pem Signature ok subject=/C=DE/ST=Bayern (Bavaria)/L=Muenchen (Munich)/O=Klaus Tachtler/CN=MariaDB Server/emailAddress=hostmaster@tachtler.net Getting CA Private Key
Mit nachfolgendem Befehl kann überprüft werden, ob das MariaDB Server Zertifikat erstellt wurde:
# ls -la /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 12 drwxr-xr-x 2 root root 90 Apr 27 05:35 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1460 Apr 27 04:54 mariadb-ca-cert.pem -rw-r--r-- 1 root root 1338 Apr 27 05:35 mariadb-server-crt.pem -rw-r--r-- 1 root root 1078 Apr 27 05:07 mariadb-server-csr.pem /etc/pki/mariadb/private: total 8 drwxr-xr-x 2 root root 60 Apr 27 05:06 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1675 Apr 27 04:52 mariadb-ca-key.pem -rw-r--r-- 1 root root 1679 Apr 27 05:19 mariadb-server-key.pem
Mit nachfolgendem Befehl kann das soeben erstellt MariaDB Server
-Zertifikate ausgegeben und damit auch überprüft werden:
# openssl x509 -noout -text -in /etc/pki/mariadb/certs/mariadb-server-crt.pem Certificate: Data: Version: 1 (0x0) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=MariaDB CA/emailAddress=hostmaster@tachtler.net Validity Not Before: Apr 27 04:26:53 2018 GMT Not After : Apr 23 04:26:53 2028 GMT Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=db.idmz.tachtler.net/emailAddress=hostmaster@tachtler.net Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:c5:81:5c:95:da:2b:19:33:cc:61:ba:b3:ea:bb: 48:a2:40:69:bf:7f:5a:71:1f:af:a0:94:bb:17:11: 59:b6:85:3b:06:a6:61:b1:88:50:a9:c0:a9:37:0c: c9:30:5e:87:26:0e:32:35:02:14:b5:93:02:fb:5c: 65:57:f1:e0:d0:a7:5c:79:f0:74:39:3f:6e:5b:a7: 19:bc:18:46:55:9f:78:43:4f:f2:69:17:b1:cb:da: 7d:6a:f5:90:03:1b:b2:f1:8c:19:0a:bc:47:d0:da: 20:30:0f:63:6f:45:0b:30:8a:34:7f:70:50:90:9a: f6:93:82:e4:ec:a5:74:4b:a9:80:30:d4:4a:11:41: 13:64:76:03:cf:be:a4:cc:46:da:e0:95:20:8f:6c: 39:5c:95:ab:21:e6:3d:39:69:df:69:36:a6:d8:73: 8c:d3:41:9e:51:72:0e:bf:c2:e7:7b:4b:da:e6:f9: 8f:66:8e:ba:be:a4:59:a7:dc:13:d4:00:41:83:e4: d2:3f:c8:73:e7:00:ee:63:fd:f5:e8:79:41:0e:45: 66:d5:50:c7:14:0f:2a:1a:97:eb:e1:a0:18:d6:40: 8c:07:0b:05:a9:72:c8:cd:a5:96:f1:c6:e1:39:04: ed:63:06:dc:8d:cd:30:90:e5:b4:2c:bd:de:b4:a6: 88:2a Exponent: 65537 (0x10001) Signature Algorithm: sha256WithRSAEncryption 73:c3:cb:a8:4e:4d:fe:82:78:18:72:6f:6d:76:7a:6b:64:25: b6:f3:08:51:bd:19:f4:75:9e:bd:cc:05:50:d8:6b:2b:93:b5: 35:02:44:ff:ee:4a:b8:a9:db:57:9e:66:9c:25:28:a1:a5:48: 2e:4f:83:d4:1d:cd:c5:7e:4e:70:10:3a:9f:dd:dc:2d:82:c9: e5:55:84:27:50:51:93:07:06:5e:1f:ae:b2:2c:59:23:ff:4f: 24:c5:3f:65:07:fc:42:cd:5c:47:2f:2f:54:ca:8a:70:34:9e: 2d:1d:bc:ec:35:9d:d0:7d:64:a5:65:16:9d:f2:77:e5:ee:a3: f1:94:ec:f4:89:fe:a7:95:c6:27:38:6d:ef:44:90:90:03:70: aa:cf:1d:57:0e:f1:2b:e5:09:ed:7d:c9:9e:c6:84:9a:77:5c: 0d:9f:4a:d4:e5:43:00:a8:04:51:00:26:4a:23:3b:09:ed:b1: 8a:1f:e8:62:09:5a:83:f6:43:4a:c9:53:4b:06:96:36:55:d1: 0c:f7:1e:59:1a:c2:cb:82:6f:3e:c7:cb:53:9a:62:04:0d:38: f7:98:95:0c:5e:9f:e3:69:39:a3:c7:e5:b1:e6:b6:5e:52:87: 63:05:a2:ba:b0:12:c9:01:9b:0c:38:97:2c:0d:55:3e:06:ef: 52:ed:8a:35
SSL: Client-Zertifikat erstellen
Nachfolgende Befehle erstellen ein MariaDB Client
-Zertifikate aus der eigenen CA.
HINWEIS - Dies kann in Client wie z.B.
eingebunden werden.
1. Schritt: Zuerst müssen jeweils ein
/etc/pki/mariadb/private/mariadb-client-key.pem
- Zertifikats-Schlüssel (Certificate-Key)/etc/pki/mariadb/certs/mariadb-client-csr.pem
- Zertifikats-Antrag (Certificate-Request/CSR)
mit nachfolgendem Befehl erstellt werden:
# openssl req -newkey rsa:2048 -days 3649 -nodes -keyout /etc/pki/mariadb/private/mariadb-client-key.pem -out /etc/pki/mariadb/certs/mariadb-client-csr.pem Generating a 2048 bit RSA private key ............................................................................................................. ...........................................+++ ......+++ writing new private key to '/etc/pki/mariadb/private/mariadb-client-key.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:DE State or Province Name (full name) []:Bayern (Bavaria) Locality Name (eg, city) [Default City]:Muenchen (Munich) Organization Name (eg, company) [Default Company Ltd]:Klaus Tachtler Organizational Unit Name (eg, section) []:. Common Name (eg, your name or your server's hostname) []:MariaDB Client Email Address []:hostmaster@tachtler.net Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:.
Mit nachfolgendem Befehl kann nun überprüft werden, ob der MariaDB Client Schlüssel und der MariaDB Client Zertifikatsantrag erstellt wurden:
# ls -la /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 16 drwxr-xr-x 2 root root 118 Apr 27 05:48 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1460 Apr 27 04:54 mariadb-ca-crt.pem -rw-r--r-- 1 root root 1078 Apr 27 05:48 mariadb-client-csr.pem -rw-r--r-- 1 root root 1338 Apr 27 05:43 mariadb-server-crt.pem -rw-r--r-- 1 root root 1078 Apr 27 05:42 mariadb-server-csr.pem /etc/pki/mariadb/private: total 12 drwxr-xr-x 2 root root 89 Apr 27 05:48 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1675 Apr 27 04:52 mariadb-ca-key.pem -rw-r--r-- 1 root root 1704 Apr 27 05:48 mariadb-client-key.pem -rw-r--r-- 1 root root 1679 Apr 27 05:42 mariadb-server-key.pem
2. Schritt: Anschließend muss der soeben erstellte MariaDB Client Schlüssel noch in einen RSA kompatiblen Schlüssel umgewandelt werden, was mit nachfolgendem Befehl durchgeführt werden kann:
# openssl rsa -in /etc/pki/mariadb/private/mariadb-client-key.pem -out /etc/pki/mariadb/private/mariadb-client-key.pem writing RSA key
3. Schritt: Abschließend wird nun der MariaDB Client Zertifikatsantrag durch signieren durch das ROOT-Zertifikat, ein MariaDB Client Zertifikat erstellt, was mit nachfolgendem Befehl durchführt werden kann:
# # openssl x509 -req -in /etc/pki/mariadb/certs/mariadb-client-csr.pem -days 3649 -CA /etc/pki/mariadb/certs/mariadb-ca-crt.pem -CAkey /etc/pki/mariadb/private/mariadb-ca-key.pem -set_serial 01 -out /etc/pki/mariadb/certs/mariadb-client-crt.pem Signature ok subject=/C=DE/ST=Bayern (Bavaria)/L=Muenchen (Munich)/O=Klaus Tachtler/CN=MariaDB Client/emailAddress=hostmaster@tachtler.net Getting CA Private Key
Mit nachfolgendem Befehl kann überprüft werden, ob das MariaDB Server Zertifikat erstellt wurde:
# ls -la /etc/pki/mariadb/* /etc/pki/mariadb/certs: total 20 drwxr-xr-x 2 root root 147 Apr 27 05:50 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1460 Apr 27 04:54 mariadb-ca-crt.pem -rw-r--r-- 1 root root 1338 Apr 27 05:50 mariadb-client-crt.pem -rw-r--r-- 1 root root 1078 Apr 27 05:48 mariadb-client-csr.pem -rw-r--r-- 1 root root 1338 Apr 27 05:43 mariadb-server-crt.pem -rw-r--r-- 1 root root 1078 Apr 27 05:42 mariadb-server-csr.pem /etc/pki/mariadb/private: total 12 drwxr-xr-x 2 root root 89 Apr 27 05:48 . drwxr-xr-x 4 root root 32 Apr 27 04:44 .. -rw-r--r-- 1 root root 1675 Apr 27 04:52 mariadb-ca-key.pem -rw-r--r-- 1 root root 1675 Apr 27 05:49 mariadb-client-key.pem -rw-r--r-- 1 root root 1679 Apr 27 05:42 mariadb-server-key.pem
Mit nachfolgendem Befehl kann das soeben erstellt MariaDB Client
-Zertifikate ausgegeben und damit auch überprüft werden:
# openssl x509 -noout -text -in /etc/pki/mariadb/certs/mariadb-client-crt.pem Certificate: Data: Version: 1 (0x0) Serial Number: 1 (0x1) Signature Algorithm: sha256WithRSAEncryption Issuer: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=MariaDB CA/emailAddress=hostmaster@tachtler.net Validity Not Before: Apr 27 03:50:10 2018 GMT Not After : Apr 23 03:50:10 2028 GMT Subject: C=DE, ST=Bayern (Bavaria), L=Muenchen (Munich), O=Klaus Tachtler, CN=MariaDB Client/emailAddress=hostmaster@tachtler.net Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 01:d1:41:07:b9:d5:e5:83:33:f0:ef:6f:46:97:3d: 9e:0b:0d:d4:03:db:bb:f4:2d:46:75:4e:ba:99:7e: 08:dc:cd:b4:b6:59:18:41:4f:29:83:ef:b2:54:4b: f7:92:50:f7:cc:8d:66:6a:ea:f4:fc:7e:f0:1b:c2: 93:8e:34:e5:bd:40:76:db:25:23:d1:58:46:e6:67: 55:48:66:c7:bb:43:0a:7b:f3:c4:26:0d:1a:b3:01: d7:40:3a:d4:9a:2b:74:8d:1e:9f:ec:77:0c:74:34: cb:6a:4d:43:13:b7:63:1a:5a:6b:84:17:6e:c1:2f: 99:f2:58:2d:89:be:7d:ad:e8:26:3b:fa:bb:7d:5d: b7:d9:a3:87:7b:3a:aa:5b:4d:5a:95:75:42:1a:e1: bc:5f:4b:13:2a:70:3f:99:d2:ea:7f:7d:31:ef:aa: a4:d5:33:77:e3:56:81:2e:b3:8d:41:78:51:d4:11: fd:2a:e3:41:6b:85:bc:bf:05:fe:03:f5:1b:20:5d: a6:2b:2f:a9:a6:1b:41:df:e1:59:db:cd:d0:f0:9f: 3f:21:25:00:1f:f1:e5:b6:bc:a0:93:57:1e:36:3f: a8:96:00:8c:f2:59:97:b2:fa:60:30:15:57:57:b6: ad:db:ec:70:9a:13:cb:79:0a:8b:99:84:cf:74:e6: 7d:41 Exponent: 65537 (0x10001) Signature Algorithm: sha256WithRSAEncryption 59:d8:29:47:9f:3f:ff:99:73:1d:b2:fe:20:49:53:68:52:f0: 82:54:70:f7:f2:33:c5:16:4a:63:15:ea:9f:23:6e:1c:a5:3f: e2:5c:03:76:32:73:d3:ae:63:3d:88:56:71:8e:a7:60:37:a0: b1:9e:7e:41:88:d4:48:16:7c:8a:eb:b2:99:58:d5:b5:39:f2: 60:f7:71:9b:4b:3f:0e:a8:d6:a8:98:c7:03:ef:18:ec:50:2d: 2b:5e:86:44:60:79:eb:a7:44:71:53:ea:19:48:28:e7:bc:50: 06:a9:04:11:8c:93:10:ca:ff:d7:bf:c4:90:2e:af:66:bc:19: 14:a1:6c:b2:61:ef:d3:c6:2a:2a:19:21:b5:df:c1:ed:4d:21: 76:e4:3c:26:b3:c1:36:93:7d:21:20:9b:c3:fc:94:d3:29:b9: cd:7b:79:18:43:d0:14:b0:57:83:b0:39:c0:00:61:5e:94:57: b7:bb:2d:9f:64:26:f4:9b:5a:ff:9b:7a:a3:10:50:99:d5:08: 4c:c9:d1:95:33:84:02:fb:95:d4:0f:f9:e8:7c:bf:37:c2:26: 4f:ab:c4:03:41:71:ce:bf:62:5a:c4:77:89:5a:20:15:56:81: 6f:dd:f7:f2:89:4e:fd:98:6e:89:79:58:6a:b9:5d:38:02:e6: 3c:f1:31:c9
/etc/my.cnf
Um den MariaDB-Datenbank-Server mit SSL-Verschlüsselung nutzen zu können, ist es erforderlich das
- ROOT-Zertifikat aus der eigenen CA und das
MariaDB Server
-ZertifikateMariaDB Server
-Schlüssel
in den mit einzubinden.
Die Anpassungen sind in der Konfigurationsdatei /etc/my.cnf
vorzunehmen und in diesem Beispiel, durch voranstellen eines Kommentars im Format:
# Tachtler
gekennzeichnet.
Hier eine mögliche Anpassung (komplette Konfigurationsdatei/nur SSL-Verschlüsselung):
[mysqld] # Tachtler # default: datadir=/var/lib/mysql datadir=/var/lib/mysql/data socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd # Tachtler - ssl - ssl-ca=/etc/pki/mariadb/certs/mariadb-ca-crt.pem ssl-cert=/etc/pki/mariadb/certs/mariadb-server-crt.pem ssl-key=/etc/pki/mariadb/private/mariadb-server-key.pem [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d
Um überprüfen zu können, ob eine SSL-Verschlüsselung nun im MariaDB-Datenbank-Server aktiv ist, ist eine Anmeldung am MariaDB-Datenbank-Server erforderlich und nachfolgende Befehle, welche den Status in Bezug auf die SSL-Verschlüsselung zeigen:
# mysql -h 127.0.0.1 -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 7 Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Anschließend zeigt nachfolgender SQL-Befehl die SSL-Verschlüsselungseinstellungen an:
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%'; +---------------+-------------------------------------------------+ | Variable_name | Value | +---------------+-------------------------------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/pki/mariadb/certs/mariadb-ca-crt.pem | | ssl_capath | | | ssl_cert | /etc/pki/mariadb/certs/mariadb-server-crt.pem | | ssl_cipher | | | ssl_key | /etc/pki/mariadb/private/mariadb-server-key.pem | +---------------+-------------------------------------------------+ 7 rows in set (0.01 sec)
Um die Verbindung zum MariaDB-Datenbank-Server zu beenden, kann nachfolgender Befehl verwendet werden:
MariaDB [(none)]> quit Bye
Nachfolgender Befehl baut eine SSL-Verschlüsselte Verbindung zum MariaDB-Datenbank-Server auf und zeigt so, ob SSL-Verschlüsselte Verbindungen möglich sind:
# openssl s_client -connect 127.0.0.1:3306 CONNECTED(00000003) 140490808899488:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:794: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 289 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1524802147 Timeout : 300 (sec) Verify return code: 0 (ok) ---