« Installer MariaDB » : différence entre les versions
(Page créée avec « {{Bases de Données}} __TOC__ == Installation de MariaDB == * Installation du paquet '''mariadb-server''' : {{ Box Console | objet=root@mariadb:~$ apt-get install mariadb-server }} * Editer le fichier de configuration '''50-server.cnf''' disponible dans le répertoire '''/etc/mysql/mariadb.conf.d''' puis rechercher la ligne : bind-address = localhost * À remplacer par : bind-address = <@IP_MARIADB_PUBLIQUE> * Redémarrer le service '''mariadb''' pou... ») |
|||
(5 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Bases de | {{Bases de données}} | ||
__TOC__ | __TOC__ | ||
Ligne 20 : | Ligne 20 : | ||
{{ Box Console | objet=root@mariadb:~$ /etc/init.d/mariadb restart }} | {{ Box Console | objet=root@mariadb:~$ /etc/init.d/mariadb restart }} | ||
== Paramétrage de la liaison SSL == | |||
=== Création de l’autorité de certification locale (AC) === | |||
Ce certificat permettra de signer les demandes de certificat pour le serveur de base de données et les différents clients pouvant s’y connecter. | |||
L’ensemble des certificats et clés générées seront stockés dans le répertoire '''/etc/ssl/private'''. | |||
==== Génération de la clé secrète ==== | |||
* Génération et stockage de la '''clé secrète''' de l’AC dans le fichier '''CA.key''' ''(ce fichier ne doit pas être divulgué)'' : | |||
{{ Box Console | objet=root@mariadb:~$ openssl genrsa 2048 > CA.key }} | |||
==== Génération du certificat ==== | |||
* Génération et stockage du '''certificat de l’AC''' dans le fichier '''CA.crt''' (ce fichier ne doit pas être divulgué) : | |||
{{ Box Console | objet=root@mariadb:~$ openssl req -new -x509 -nodes -days 365000 -key CA.key -out CA.crt }} | |||
=== Création d’un jeu de certificat pour le serveur de base de données === | |||
Le '''certificat''' ainsi que la '''clé''' générée ci-après, seront renseignés dans le fichier de configuration du serveur de base de données '''MariaDB'''. | |||
==== Génération de la clé secrète et de la demande de certificat ==== | |||
* Génération et stockage de la '''clé secrète''' du serveur dans le fichier '''MariaDB.key''' et sa '''demande de certificat''' dans le fichier '''MariaDB.csr''' : | |||
{{ Box Console | objet=root@mariadb:~$ openssl req -newkey rsa:2048 -days 365000 -nodes -keyout MariaDB.key -out MariaDB.csr | |||
root@mariadb:~$ openssl rsa -in MariaDB.key -out MariaDB.key }} | |||
==== Signature de la demande de certificat par l’AC ==== | |||
* '''Signature''' de la '''demande certificat''' pour le serveur de base de données et génération du certificat dans le fichier '''MariaDB.crt''' : | |||
{{ Box Console | objet=root@mariadb:~$ openssl x509 -req -in MariaDB.csr -days 365000 -CA CA.crt -CAkey CA.key -set_serial 01 -out MariaDB.crt }} | |||
=== Configuration de MariaDB === | |||
* Editer le fichier de configuration '''/etc/mysql/mariadb.conf.d/50-server.cnf''' puis dé-commenter et adapter les lignes suivantes : | |||
ssl-ca = /etc/ssl/private/CA.crt | |||
ssl-cert = /etc/ssl/private/MariaDB.crt | |||
ssl-key = /etc/ssl/private/MariaDB.key | |||
* Procéder au redémarrage du service '''MariaDB''' pour prendre en charge les modifications : | |||
{{ Box Console | objet=root@mariadb:~$ /etc/init.d/mariadb restart }} | |||
* Il est possible de rendre la '''liaison SSL''' obligatoire en ajoutant le paramètre suivant dans le fichier de configuration en plus des lignes déjà ajoutées : | |||
require-secure-transport = off | |||
=== Validation de la configuration === | |||
* Se connecter au serveur de base de données en root puis saisir la commande suivante : | |||
{{ Box Console | objet=root@mariadb:~$ mysql -u root<br /> | |||
MariaDB [(non)]> SHOW VARIABLES LIKE '%ssl%'; }} | |||
* Lorsque la '''liaison SSL''' est opérationnelle, la ligne '''have_ssl''' doit retourner comme valeur '''YES'''. | |||
+---------------------+-----------------------------+ | |||
| Variable_name | Value | | |||
+---------------------+-----------------------------+ | |||
| have_openssl | YES | | |||
| <span style="color:green">have_ssl</span> | <span style="color:green">YES</span> | | |||
| ssl_ca | /etc/ssl/private/CA.crt | | |||
| ssl_capath | | | |||
| ssl_cert | /etc/ssl/private/SRV040.crt | | |||
| ssl_cipher | | | |||
| ssl_crl | | | |||
| ssl_crlpath | | | |||
| ssl_key | /etc/ssl/private/SRV040.key | | |||
| version_ssl_library | OpenSSL 1.1.1n 15 Mar 2022 | | |||
+---------------------+-----------------------------+ | |||
== Paramétrage du pare-feu == | |||
=== Matrice des flux autorisés === | |||
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement. | |||
{| class="wikitable" style="margin:auto" | |||
|+ Matrice de flux | |||
|- | |||
! Source !! Protocole(s) !! Port(s) !! Description | |||
|- | |||
| * || tcp || 22 || Accès SSH, SFTP. | |||
|- | |||
| phpmyadmin.domaine.tld || tcp || 3306 || Accès MySQL ''(Dans le cas où [[PHPMyAdmin]] est installé sur le serveur web)''. | |||
|- | |||
| <@IP_SUPERVISION> || udp || 161,162 || Accès SNMP depuis serveur supervision. | |||
|- | |||
| * || icmp || — || Réponse aux requêtes ping. | |||
|} | |||
=== Configuration iptables sur la couche IPv4 === | |||
* Installation des paquets '''iptables''' (pare-feu) et '''iptables-persistent''' ''(sauvegarde persistante de la configuration)''. | |||
{{ Box Console | objet=root@apache2:~# apt-get install iptables iptables-persistent -y }} | |||
* Ajout des règles '''iptables''' pour autoriser les flux '''SSH''', '''ICMP''' et '''MySQL''' : | |||
{{ Box Console | objet=root@apache2:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -p tcp -s <@IP_PHPMYADMIN> --dport 3306 -j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -p udp –m multiport -s <@IP_SUPERVISION> --dports 161,162 -j ACCEPT<br /> | |||
root@apache2:~# iptables –A INPUT –p icmp –j ACCEPT<br /> | |||
root@apache2:~# iptables –A INPUT –i lo –j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br /> | |||
root@apache2:~# iptables -P INPUT DROP }} | |||
* Sauvegarde de la configuration et application automatique à chaque redémarrage du système. | |||
{{ Box Console | objet=root@apache2:~# dpkg-reconfigure iptables-persistent }} | |||
=== Configuration ip6tables sur la couche IPv6 === | |||
* Ajout des règles '''ip6tables''' pour autoriser les flux '''SSH''', '''ICMP''' et '''MySQL''' : | |||
{{ Box Console | objet=root@apache2:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -p tcp -s <@IP_PHPMYADMIN> --dport 3306 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -p udp –m multiport -s <@IPV6_SUPERVISION> --dports 161,162 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables –A INPUT –p icmpv6 –j ACCEPT<br /> | |||
root@apache2:~# ip6tables –A INPUT –i lo –j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -P INPUT DROP }} | |||
* Sauvegarde de la configuration et application automatique à chaque redémarrage du système. | |||
{{ Box Console | objet=root@apache2:~# dpkg-reconfigure iptables-persistent }} | |||
== Configuration supervision SNMP == | |||
* Installation du paquet snmpd. | |||
{{ Box Console | objet=root@apache2:~# apt-get install snmpd }} | |||
* Depuis le fichier de configuration '''/etc/snmp/snmpd.conf''', rechercher la ligne : | |||
sysLocation | |||
sysContact | |||
* Puis, remplacer son contenu par : | |||
sysLocation PARIS,DC5 | |||
sysContact webmaster@domaine.tld | |||
* Rechercher la ligne : | |||
agentaddress 127.0.0.1,[::1] | |||
* Puis, remplacer son contenu par : | |||
agentaddress <@IP_PUBLIC_MARIADB> | |||
* Rechercher la ligne : | |||
rocommunity public default –V systemonly | |||
* Puis, remplacer son contenu par : | |||
rocommunity public default | |||
* Redémarrer le service '''snmp''' pour appliquer les changements. | |||
{{ Box Console | objet=root@mariadb:~# service snmpd restart }} | |||
== Synchronisation du temps == | |||
* Installation du paquet '''ntpdate''' : | |||
{{ Box Console | objet=root@mariadb:~$ apt-get install ntpdate }} | |||
* Depuis le fichier de configuration '''ntpdate''' disponible dans le répertoire '''/etc/default''', rechercher la ligne : | |||
NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org" | |||
* À remplacer par ''(optionnel, si vous disposez d'un serveur NTP spécifique)'' : | |||
NTPSERVERS="<@IP_NTP_SERVEUR>" | |||
* Forcer la synchronisation du temps avec le serveur de temps : | |||
{{ Box Console | objet=root@mariadb:~$ ntpdate <@IP_NTP_SERVEUR> }} | |||
[[Category:Bases de données]] | [[Category:Bases de données]] |
Dernière version du 6 juillet 2024 à 23:31
.:[ Bases de données ]:.
Archives : MySQL
Installation de MariaDB
- Installation du paquet mariadb-server :
|
|
- Editer le fichier de configuration 50-server.cnf disponible dans le répertoire /etc/mysql/mariadb.conf.d puis rechercher la ligne :
bind-address = localhost
- À remplacer par :
bind-address = <@IP_MARIADB_PUBLIQUE>
- Redémarrer le service mariadb pour prendre en compte les modifications :
|
|
Paramétrage de la liaison SSL
Création de l’autorité de certification locale (AC)
Ce certificat permettra de signer les demandes de certificat pour le serveur de base de données et les différents clients pouvant s’y connecter. L’ensemble des certificats et clés générées seront stockés dans le répertoire /etc/ssl/private.
Génération de la clé secrète
- Génération et stockage de la clé secrète de l’AC dans le fichier CA.key (ce fichier ne doit pas être divulgué) :
|
|
Génération du certificat
- Génération et stockage du certificat de l’AC dans le fichier CA.crt (ce fichier ne doit pas être divulgué) :
|
|
Création d’un jeu de certificat pour le serveur de base de données
Le certificat ainsi que la clé générée ci-après, seront renseignés dans le fichier de configuration du serveur de base de données MariaDB.
Génération de la clé secrète et de la demande de certificat
- Génération et stockage de la clé secrète du serveur dans le fichier MariaDB.key et sa demande de certificat dans le fichier MariaDB.csr :
|
|
Signature de la demande de certificat par l’AC
- Signature de la demande certificat pour le serveur de base de données et génération du certificat dans le fichier MariaDB.crt :
|
|
Configuration de MariaDB
- Editer le fichier de configuration /etc/mysql/mariadb.conf.d/50-server.cnf puis dé-commenter et adapter les lignes suivantes :
ssl-ca = /etc/ssl/private/CA.crt ssl-cert = /etc/ssl/private/MariaDB.crt ssl-key = /etc/ssl/private/MariaDB.key
- Procéder au redémarrage du service MariaDB pour prendre en charge les modifications :
|
|
- Il est possible de rendre la liaison SSL obligatoire en ajoutant le paramètre suivant dans le fichier de configuration en plus des lignes déjà ajoutées :
require-secure-transport = off
Validation de la configuration
- Se connecter au serveur de base de données en root puis saisir la commande suivante :
|
|
- Lorsque la liaison SSL est opérationnelle, la ligne have_ssl doit retourner comme valeur YES.
+---------------------+-----------------------------+ | Variable_name | Value | +---------------------+-----------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/ssl/private/CA.crt | | ssl_capath | | | ssl_cert | /etc/ssl/private/SRV040.crt | | ssl_cipher | | | ssl_crl | | | ssl_crlpath | | | ssl_key | /etc/ssl/private/SRV040.key | | version_ssl_library | OpenSSL 1.1.1n 15 Mar 2022 | +---------------------+-----------------------------+
Paramétrage du pare-feu
Matrice des flux autorisés
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement.
Source | Protocole(s) | Port(s) | Description |
---|---|---|---|
* | tcp | 22 | Accès SSH, SFTP. |
phpmyadmin.domaine.tld | tcp | 3306 | Accès MySQL (Dans le cas où PHPMyAdmin est installé sur le serveur web). |
<@IP_SUPERVISION> | udp | 161,162 | Accès SNMP depuis serveur supervision. |
* | icmp | — | Réponse aux requêtes ping. |
Configuration iptables sur la couche IPv4
- Installation des paquets iptables (pare-feu) et iptables-persistent (sauvegarde persistante de la configuration).
|
|
- Ajout des règles iptables pour autoriser les flux SSH, ICMP et MySQL :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système.
|
|
Configuration ip6tables sur la couche IPv6
- Ajout des règles ip6tables pour autoriser les flux SSH, ICMP et MySQL :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système.
|
|
Configuration supervision SNMP
- Installation du paquet snmpd.
|
|
- Depuis le fichier de configuration /etc/snmp/snmpd.conf, rechercher la ligne :
sysLocation sysContact
- Puis, remplacer son contenu par :
sysLocation PARIS,DC5 sysContact webmaster@domaine.tld
- Rechercher la ligne :
agentaddress 127.0.0.1,[::1]
- Puis, remplacer son contenu par :
agentaddress <@IP_PUBLIC_MARIADB>
- Rechercher la ligne :
rocommunity public default –V systemonly
- Puis, remplacer son contenu par :
rocommunity public default
- Redémarrer le service snmp pour appliquer les changements.
|
|
Synchronisation du temps
- Installation du paquet ntpdate :
|
|
- Depuis le fichier de configuration ntpdate disponible dans le répertoire /etc/default, rechercher la ligne :
NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
- À remplacer par (optionnel, si vous disposez d'un serveur NTP spécifique) :
NTPSERVERS="<@IP_NTP_SERVEUR>"
- Forcer la synchronisation du temps avec le serveur de temps :
|
|