Contacts

Installation de Mariadb dans Windows. Allez à MySQL à Mariadb dans Windows. Comment configurer Mariadb SSL et installer des connexions sécurisées de divers clients Installation de Mariadb dans Windows

J'ai décidé d'abandonner l'utilisation de MySQL et de traduire plus précisément tous mes serveurs sur sa fourchette - Mariadb. Prenant cette occasion, je voudrais parler du processus d'installation de Mariadb 10.1 à Debian 8. Il convient de noter que brève description Les paramètres de Mariadb sont sur la page du projet officiel. J'ai décidé d'allouer ce problème un poste distinct dans lequel je souhaite décrire les actions nécessaires après avoir installé le Mariadb sur le serveur.

Avant de commencer à installer Mariadb, ajoutez son référentiel. Le site Web de Mariadb recommande d'installer le package de propriétés du logiciel-Propriétés. Je ne vois aucun point dans cela et préférez tout faire manuellement.

Nous enregistrons un référentiel de clés GPG dans le système:

APT-Key Adv --Recv-Keys --KeYserver KeyServer.ubuntu.com 0xcbcb082A1BB943DB

Ajoutez une description du référentiel au fichier Sources.List. Ouvrez le fichier dans l'éditeur Nano:

Nano /etc/apt/sources.list.

Copiez les lignes suivantes à la fin:

Deb http://lon1.mirrors.digitalcean.com/mariadb/repo/10.1/debian Jessie deb-src http://lon1.mirors.digitalcean.com/mariadb/repo/10.1/debian Jessie Main

Nous mettons à jour la liste des packages disponibles:

Apt-get Update

Exécution du processus d'installation de MARIADB 10.1:

Apt-get installer mariadb-serveur

Lors de l'installation, nous serons invités à entrer un mot de passe pour l'utilisateur root. Sur ce processus d'installation de la Mariadb à Debian 8 est terminé. Maintenant, allez à la configuration du serveur.

Pour augmenter la fiabilité de notre serveur, vous devez effectuer exigences minimales Sécurité. Interdire l'autorisation sous l'utilisateur racine des hôtes distants. S'il y a une base de test et un utilisateur anonyme, vous devez les supprimer du serveur. Pour faciliter la tâche, utilisez le script:

Mysql_secure_installation

Type de stockage par défaut

Si vous devez modifier le type de stockage par défaut, ajoutez les lignes suivantes au fichier My.cnf:

Moteur de stockage par défaut \u003d InnoDB

Assurez-vous que la Mariadb utilise les tables InnoDB par défaut. Pour ce faire, exécutez la commande:

Montrer des moteurs;

Créer un utilisateur et une base de données MARIADB

Pour créer un utilisateur à Mariadb, utilisez la commande ci-dessous:

Créer un utilisateur "nom_ utilisateur" @ "localhost" identifié par "mot de passe";

Créez une nouvelle base de données:

Créer la base de données de base de données;

Laissez-nous remplir l'utilisateur Nom de l'utilisateur à la base de données DatabasEname:

Accorder tous les privilèges sur base de données. * À "nom_utilisateur" @ "localhost";

Maintenant, vous devez mettre à jour tous les privilèges:

Rincer les privilèges.

Pour afficher les privilèges, exécutez la commande:

Afficher des subventions pour "nom_utilisateur" @ "localhost";

Journaux binaires

Mariadb enregistre toutes les modifications apportées à la BD dans le magazine binaire, il est nécessaire pour le fonctionnement du mécanisme de réplication. Si vous n'avez pas fabriqué des sauvegardes ou qu'ils sont obsolètes, des journaux binaires peuvent être utilisés pour récupérer des données. Cependant, rien ne garantit que les données seront entièrement ou partiellement restaurées. Le succès dépendra de la taille, du temps de stockage des bûches binaires, des fréquences du sac.

Pour désactiver les journaux binaires, commenter les chaînes dans le fichier my.cnf:

#Log_bin \u003d / var / journal / mysql / mariadb-bin #log_bin_index \u003d /var/log/mysql/mariadb-bin.index

Je vais également installer Mariadb SSL (couche de sockets sécurisée) aussi connexions sécuritaires À partir des applications client et PHP MySQL. Comment activer SSL pour le client SERVER et MARIADB travaillant dans un système Linux ou Unix?

Mariadb - serveur de base de données offrant fonctionnalité Inclinaison pour le serveur MySQL.

Mariadb a été créé par certains des auteurs originaux de MySQL, en utilisant l'état plus large des développeurs libres et de l'autre logiciel Open source. Outre les fonctions de base de MySQL, Mariadb propose un ensemble riche d'améliorations de fonctions, notamment des mécanismes de stockage alternatifs, une optimisation des serveurs et d'autres corrections. Dans ce manuel je vais parler de la manière de configurer le serveur Mariadb à l'aide de SSL et comment installer des connexions sécurisées Utilisation de la console et des scripts PHP.

Lors de la création de certificats SSL, il est important d'utiliser 192.168.1.100 comme nom standard.

Étape 1 - Installation Mariahb

Entrez la commande conformément à votre option Linux ou UNIX.

Installation du serveur Mariadb / Client sur Ubuntu / Debian Linux

Entrez l'une des commandes suivantes: Commande APT-GET ou commande APT:

$ sudo apt-get Installer Mariadb-Server Mariadb-Client

Installation du serveur / client Mariadb sur Centos / Rhel / Fedora Linux

Entrez la commande Yum suivante:

$ sudo yum installer mariadb-serveur mariadb

Pour les utilisateurs de Fedora Linux, vous devez entrer la commande DNF:

$ sudo DNF Installez Mariadb-Server Mariahb

Installation du serveur Mariadb / Client sur Arch Linux

Entrez la commande suivante Pacman:

$ sudo pacman -s mariadb

Installation du serveur / client Mariadb sur FreeBSD Unix

Pour installer le port, exécutez:

# CD / USR / Ports / Bases de données / MariaDB100-Server / && Faire installer Nettoyer # CD / USR / Ports / Bases de données / MariaDB100-Client / && Faire installation propre

Pour ajouter un package binaire, entrez:

# PKG Installez MariaDB100-Server MariaDB100-Client-Client

Étape 2 - Secure Mariadb Secure Installation

Entrez la commande suivante:

$ mysql_secure_installation

Figure .01: Confiner l'installation de Mariadb

Étape 3 - Créer un certificat de CA

Créez un répertoire appelé SSL dans / etc / mysql / répertoire:

$ Cd / etc / mysql $ sudo mkdir ssl $ cd ssl

Valeur: La valeur de nom standard (nom commun) utilisé pour les certificats de serveur et de clients doit différer du nom standard (nom commun) utilisé pour le certificat CA. Pour éviter tout problème, je les installe comme suit:

Nom standard CA: Admin admin.
Nom du serveur standard: Serveur mariadb
Nom du client standard: CLIENT MARIADB.

Entrez la commande suivante pour créer une nouvelle clé Ca:

$ sudo openssl genrsa 2048\u003e CA-Key.pem

Exemples de données possibles Conclusions:


Figure 10: Création d'une clé de ca

Entrez la commande suivante pour créer un certificat à l'aide de cette touche:

$ sudo openssl req -new -x509 -Nodes -days 365000 -key ca-key.pem -out -out ca-cert.pem
Figure 03: Utilisation de la clé CA, générer un certificat CA pour Mariadb

Exemples de données possibles Conclusions:

Maintenant, vous devez avoir deux fichiers suivants ::

  1. /etc/mysql/ssl/ca-cert.pem - Fichier de certificat pour autorité de certification (autorité de certification (CA)).
  2. /etc/mysql/sssl/ca-key.pem - Fichier de clé pour le centre de certification (autorité de certification (CA)).

Je vais utiliser les deux fichiers pour créer des certificats de serveur et de clients.

Étape 4 - Création d'un certificat de serveur

Pour créer une clé de serveur, exécutez:

$ sudo openssl req -NewKey RSA: 2048 -days 365000 -Nodes -keyout Server-key.pem -out -out serveur-req.pem

Exemples de données possibles Conclusions:


Figure 04: Création d'une clé de serveur pour le serveur Mariadb

Puis gérez la clé de serveur RSA, entrez:

$ sudo openssl rsa -in serveur-key.pem -out -out serveur-key.pem

Exemples de données possibles Conclusions:

Écrire une clé RSA

Enfin, signer le certificat de serveur, pour cela, exécuter:

$ Sudo openssl x509 -req -in serveur-req.pem -days 365000 -ca ca-cert.pem -cakey ca-key.pem -set_serial 01 -out serveur-cert.pem

Exemples de données possibles Conclusions:

Signature OK Sujet \u003d / C \u003d AU / ST \u003d Etat / O \u003d widgits Internet PTY LTD / CN \u003d Server Mariadb Obtenir la clé privée de CA

Maintenant, vous devez apparaître des fichiers supplémentaires:

  1. /etc/mysql/ssl/server-cert.pem. - Fichier de certificat de serveur Mariahbb.
  2. /etc/mysql/ssl/server -key.pem - Fichier de clé de serveur Mariadb.

Vous devez utiliser au moins deux fichiers sur le serveur Mariadb et tous les autres nœuds que vous allez utiliser pour le trafic de cluster / de réplication. Ces deux fichiers protégeront la connexion du côté serveur.

Étape 5 - Création d'un certificat client

Client MySQL et App PHP / Python / Perl / Ruby utilisera le certificat client pour protéger la connectivité du client. Vous devez définir les fichiers suivants sur tous vos clients, y compris un serveur Web. Pour créer une clé cliente, exécutez:

$ sudo OpenSSL req -NewKey RSA: 2048 -ADIES 365000 -NOde -Keyout Client-key.pem -out client-req.pem

Exemples de données possibles Conclusions:


Figure 05: Création d'une clé client pour le serveur Mariadb

Puis gérez la clé client RSA, pour cette entrée

$ sudo openssl rsa -in client-key.pem -out -out -out -out-key.pem écrit clé RSA

Enfin, signer le certificat client, pour cela, début:

$ Sudo openssl x509 -req -in client-req.pem -days 365000 -ca ca-cert.pem -cakey ca-key.pem -set_serial 01 -out client-cert.pem

Exemples de données possibles Conclusions:

Signature OK Sujet \u003d / C \u003d AU / ST \u003d Quelques PTY LTD / CN \u003d CLIENT MARIADB Obtenir une clé privée CA

Étape 6 - Comment vérifier les certificats?

Entrez la commande suivante pour vérifier les certificats pour vous assurer que tout a été créé correctement:

$ OpenSSL Verify -Cafile CA-Cert.Pem Server-Cert.Pem Client-Cert.pem

Exemples de données possibles Conclusions:

Server-Cert.PEM: OK client-Cert.pem: OK

Il ne devrait y avoir aucune erreur et vous devez obtenir une réponse OK pour les certificats de serveur et de clients.

Étape 7 - Configurez le serveur Mariadb pour utiliser SSL

Modifier le fichier. vi /etc/mysql/mariadb.conf.d/50-server.cnf ou /etc/mysql/mariadb.cnf de la manière suivante:

$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf

Ajouter comme suit:

### MYSQL Server ### ## Sécurisation de la base de données avec option SSL et certificats ## ## Il n'y a aucun contrôle sur le niveau de protocole utilisé. ## ## Mariadb utilisera TLSV1.0 ou mieux. ## SSL SSL-CA \u003d / etc / mysql / ssl / ca-cert.pem ssl-cert \u003d / etc / mysql / ssl / server-cert.pem SSL-Key \u003d / etc / mysql / ssl / serveur-clé. pem.

Enregistrez et fermez le fichier. Vous pouvez redémarrer Mariadb comme suit:

$ sudo /etc/init.d/mysql redémarrer

$ Sudo systemctl redémarrez mysql

Étape 8 - Configurez le client Mariadb pour utiliser SSL

Configurez le client MARIADB comme 192.168.1.200 pour utiliser SSL (Ajouter à /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf.):

$ sudo vi /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Ajouter à la section:

## Configuration du client MySQL ## SSL-CA \u003d / etc / mysql / ssl / cart.pem SSL-CERT \u003d / etc / mysql / ssl / client-cert.pem SSL-Key \u003d / etc / mysql / ssl / client- Key.Pem ### Cette option est désactivée par défaut ### ### SSL-Verify-Server-Server-Cert ###

Enregistrez et fermez le fichier. Vous devez copier les fichiers /etc/mysql/sssl/ca-cert.pem, /etc/mysql/ssl/Client-cert.pem. et /etc/mysql/ssl/Client -key.pem pour tous vos clients. Par example:

{[Email protégé]): rsync /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem /etc/mysql/ssl/client-key.pem \\ [Email protégé]: / etc / mysql / ssl

Étape 9 - Vérifiez

Entrez la commande suivante:

$ Mysql -u (nom d'utilisateur-ICI) -H (serveur-IP-ICI) -P (nom de base de données ici) $ mysql -truc root -h 192.168.1.100 -P mysql $ mySQL-ROOCH -H 127.0 .0,1 -P mysql

Entrez les variables d'affichage suivantes comme '% SSL%'; Commande à Mariadb [(None)]\u003e Rangée:

Mariahb [(aucun)]\u003e Affiche des variables telles que "% SSL%";

Ou exécuter la commande d'état:

Mariahb [(aucun)]\u003e statut;

Exemples de données possibles Conclusions:

Figure 06: Établissement d'une connexion sécurisée avec la console et la vérifie

Vérifiez les connexions SSL et TLS. La commande suivante doit remplir l'échec, puisque SSL 3 n'est pas pris en charge et, en conséquence, il n'est pas configuré d'utiliser:

$ OpenSSL S_Client -Connect 192.168.1.100:3306 -SSL3 140510572795544: Erreur: 140A90C4: SSL routines: SSL_CTX_NEW: NULL SSL Méthode passée: SSL_LIB.C: 1878:

Vérifiez TLS V 1 / 1.1 / 1.2:

$ Openssl s_client -connect 192.168.1.100:3306 -Tls1 $ openssl s_client -connect 192.168.1.100:3306 -Tls1_1 $ openssl s_client -connect 192.168.1.100:3306 -TLS1_2

Exemples de données possibles Conclusions:

Connecté (00000003) --- Aucun certificat de pairs disponible - - Aucun certificat client CA Noms envoyé --- SSL Handshake a lu 5 octets et écrit 7 octets --- nouveau, (aucun), chiffre n'est (aucune) renégociation sécurisée est Non pris en charge COMPRESSION: Aucun Extension: Aucun Non ALPN Négocié SSL-Session: Protocole: TLSV1 Cipher: 0000 Session-ID: Session-ID-CTX: Master-Key: Key-Arg: Aucun PSK Identité: Aucun PSK Identité IT: Aucun SRP Nom d'utilisateur: Aucun Durée de début: 1485335036 Délai d'expiration: 7200 (sec) Vérifiez le code de retour: 0 (OK) ---

Comment lire un fichier de capture de package TCPDummp pour vérifier une connexion sécurisée

Enfin, vous pouvez utiliser l'analyseur de package de commande TCPDump, qui fonctionne sous la ligne de commande pour afficher le port 3306:

$ sudo tcpdump -i etth0 -s 65535 port 3306 -w /tmp/mysql.pcap

Maintenant, connectez-vous à votre application PHP / Python / Perl / Ruby Mysql ou application de la console Mysql:

$ Mysql -u bar -h 192.168.1.100 -P foo

Utiliser tcpdump pour vérifier que non informations de texte, y compris les mots de passe, n'échange pas entre le serveur et le client. Cela se fait comme suit:

$ Tcpdump -r /tmp/mysql.pcap | moins

Étape 10 - Ajoutez l'utilisateur au serveur Mariadb

Entrez la commande suivante:

$ mySQL -u root -p

Créez une base de données appelée FOO:

Créer une base de données foo;

Créez un utilisateur avec la barre pour estring pour une base de données appelée FOO:

Accorder tout sur foo. * À [Email protégé] Identifié par "mypassword" exige SSL;

Fournir un accès à partir d'un serveur Web Publié au 192.168.1.200:

Accorder tout sur foo. * À [Email protégé] Identifié par "mypassword" exige SSL;

Créer une connexion coquille de Bash sécurisée

Vous pouvez vous connecter avec la console comme suit:

$ mysql -u bar -p -h 192.168.1.100 foo

Créer une connexion sécurisée de Python

D'abord installer l'interface Python Pour MySQL:

$ sudo apt-get install python-mysql.connector

Ou pour Python v3.x.

$ sudo apt-get install python3-mysql.connector

Voici un exemple de code Python pour une connexion sécurisée utilisant:

#! / usr / bin / python import mysqldb ssl \u003d ("cert": "/etc/mysql/ssl/client-cert.pem", "clé": "/etc/mysql/ssl/client-key.pem" ) Conn \u003d mysqldb.Connect (hôte \u003d "192.168.1.100", utilisateur \u003d "bar", passwd \u003d "mypassword", ssl \u003d ssl) curseur \u003d conn.Cursor () curseur.execute ("Afficher l'état comme" SSL_CIPHER "" ) Impression curseur.fetchone ()

#! / Usr / bin / python # Remarque (l'exemple est valide pour Python V2 et V3) à partir de __future__ Importer import_function Importer SYSQL.Connector import MySQL.Connector.Constacts Imports Import ClientFlag config \u003d ("Barre", " Mot de passe ":" mypassword "," hôte ":" 192.168.1.100 "," client_flags ":" SSL_CA ":" /etc/mysql/ssl/ca-cert.pem "," SSL_CERT ":" / etc / mysql /ssl/client-cert.pem "," ssl_key ":" /etc/mysql/ssl/client-key.pem ",) cnx \u003d mysql.connector.connect (** config) cur \u003d cnx.cursor (tamponnier \u003d True) Cur.Execute ("Afficher l'état comme" SSL_CIPHER ") Imprimer (cur.fetchone ()) CUR.FLOSE () CNX.FLOSE ()

Exemples de données possibles Conclusions:

("SSL_CIPHER", "DHE-RSA-AES256-SHA")

Aujourd'hui, nous allons examiner l'un des rôles les plus recherchés des serveurs Linux, qui occupent un rôle de premier plan dans ce segment fonctionnel. Réglage serveurs web Centos 7 sur le sac de base Populaire serveur HTTP apache.Interprète php. et serveur de base de données mysql, ou brièvement - installer la lampe. Ce forfait est la configuration la plus populaire aujourd'hui parmi l'hébergement Web. Bien que la même entreprise, elle vienne sur le talon récemment, mais sur la base de Nginx, cela peut avoir déjà à venir, je n'ai pas de données précises à ce sujet.

Cet article fait partie du cycle unifié de l'article sur le serveur.

Server Web sur Centos 7

Donc, notre web server Centos se composera de trois composants principaux - serveur HTTP apache., interpréteur linguistique de programmation php.et serveur de base de données mysql. Nous allons nous familiariser un peu avec chacun d'entre eux:

  1. Apache. - serveur http ou simple serveur Web Apache. Est un logiciel multiplate-forme qui supporte presque tous les populaires système d'exploitation, y compris Windows. Il est principalement apprécié pour sa fiabilité et sa flexibilité de la configuration, qui peut être considérablement étendue par des modules de connexion, ce qui existe un excellent ensemble. Parmi les inconvénients, il existe de plus grandes demandes de ressources, par rapport à d'autres serveurs. Pour conserver la même charge que, par exemple, NGinx, Apache ne pourra pas avoir de paramètres de fer similaire.
  2. Php. - Langage de programmation à usage général, qui est le plus souvent appliqué dans le développement Web. À ce jour, il s'agit de la langue la plus populaire dans ce domaine d'application. Soutenu par presque tous les fournisseurs d'hébergement.
  3. Mysql - Système de gestion de base de données. A remporté sa popularité dans l'environnement des petites et moyennes applications, qui sont très nombreuses sur le Web. Ainsi, comme PHP, aujourd'hui est la base de données la plus populaire utilisée sur des sites Web. Soutenu par la plupart des hébergements. Dans les Centos au lieu d'ensembles MySQL mariadb. - Branche MySQL. Ils sont entièrement compatibles, il est possible à tout moment la transition d'un SGBD à une autre et à l'arrière. Dernièrement J'ai rencontré les informations que Mariadb Wars MySQL et les personnes passent lentement dessus. En pratique, je n'ai pas eu d'observer cela, car je n'ai jamais travaillé avec des bases de données chargées. Et dans des conditions normales, la différence n'est pas perceptible.

Le serveur expérimental agira, les caractéristiques suivantes:

CPU2 noyaux
Mémoire8 Go.
Disque150 gb SSD.

Ceci est des paramètres de réglage personnalisé. Ils ne sont pas optimaux pour le prix, mais j'avais besoin de cela.

Je veux préciser immédiatement que je traite avec le paramètre de base par défaut. Pour améliorer la vitesse, améliorer la fiabilité et la facilité d'utilisation, vous devez installer plusieurs autres outils que je vais dire séparément. En général, il suffira d'organiser un serveur Web ce qui est dans cet article.

Si vous n'avez toujours pas de serveur, vous devez exécuter. Et si le serveur est déjà installé, ne l'oubliez pas. Je recommande de faire attention au cadre, car il y a beaucoup informations utilesCe qui, dans le cadre de cet article, je ne donne pas - une mise à jour système, un réglage de pare-feu, l'installation de l'éditeur et bien plus encore.

Configurez Apache dans Centos 7

À Centos, le service Apache est appelé httpd.. Quand je viens de me familiariser avec cette distribution, j'étais inhabituel. Dans FreeBSD et Debian, avec qui j'ai travaillé, le service de serveur Web s'appelait Apache, bien que quelque part j'ai remarqué, il semble que le fichier de configuration ait le nom httpd.conf. Jusqu'à présent, je ne sais pas pourquoi ces deux noms se sont propagés. Je serais heureux que quelqu'un partage avec moi des informations sur ce projet de loi dans les commentaires.

Maintenant, passez à installation Apache. Dans Centos 7, cela se fait très simple:

# yum install -y httpd

Ajouter Apache à AutoLoad:

# SystemCtL Activer httpd

Nous lancons Apache à Centos 7:

# SystemCTL Démarrer httpd

Vérifiez si le serveur a commencé:

# Netstat -tulnp | Grep httpd tcp6 0 0 ::::0 ::: * écoute 21586 / httpd

Tout est en ordre, hoving dans le 80ème port, comme il se doit. Déjà, vous pouvez aller à http: // adresse IP et voir l'image:

Maintenant, nous allons configurer Apache. Je préfère la structure d'hébergement Web suivante:

Créer une structure similaire:

# Mkdir / web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -r apache. / La toile.

Conf.d / *. Conf

Sinon, nous inconsponsons et allons dans le répertoire /etc/httpd/conf.d. Avec je tire là un site de fichier1.ru.conf:

ServerName Site1.ru Serveralias www.site1.ru DocumentOrot /web/site1.ru/www Options Fallowsymlinks AllowoVoVideRide Tous les requièrent tous accordés Errorlog /Web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log Common

Redémarrez Apache dans Centos

Maintenant, nous faisons redémarrer Apache:

# SystemCtl redémarrez httpd

S'il y a des erreurs - voir Apache / var / journal / httpd / error_log journal. Si tout est en ordre, vérifiez si notre hôte virtuel est normal. Pour ce faire, créez dans le dossier /Web/site1.ru/www fichier index.html Contenu suivant:

# Mcedit /web/site1.ru/www/index.html

Apache est configuré!

# Chown Apache. /Web/site1.ru/www/index.html.

192.168.1.25 Site1.ru.

où 192.168.1.25 Adresse IP de notre serveur Web.

Maintenant, dans le navigateur, nous recrutons l'adresse http://site1.ru. Si vous voyez une photo:

donc, tout le monde a été configuré correctement. Si des erreurs, allez à regarder des journaux. Et dans ce cas, pas un journal commun httpd, mais le journal des erreurs de journal hôte virtuel à /web/site1.ru/logs/error.log.

Je paierai immédiatement votre attention sur la rotation des grumes d'hôtes virtuels. Cela arrive souvent que si vous ne confondez pas immédiatement, alors vous oubliez. Mais si le site est avec une bonne participation, les journaux augmenteront rapidement et peuvent prendre beaucoup d'espace. Il est préférable de configurer la rotation des journaux du serveur Web immédiatement après la création. Faire que ce n'est pas difficile.

Pour configurer la rotation des journaux d'hôte virtuels, vous devez modifier le fichier /etc/logrotate.d/httpd. Il est créé lors de l'installation Apache et comprend le réglage de rotation. emplacement standard Journaux. Et comme nous avons transféré les journaux de chaque hôte virtuel à un dossier individuel, vous devez ajouter ces dossiers à ce fichier:

# mcedit /etc/logrotate.d/httpd. /Web/*/logs/*.log. / var / journal / httpd / * journal (PleaseOV Notifempty Sharedscripts Retardcompterpress Postrotate / Bin / SystemCtl Recharge httpd.service\u003e / dev / null 2\u003e / dev / null || véritable rallonge)

En principe, le serveur Web le plus simple est prêt et qu'ils peuvent être utilisés. Mais il est peu probable qu'il existe des sites contenant du contenu statique, qui suffit à ne supporter que HTML. Nous allons donc continuer notre cadre.

Si vous devez organiser le travail du site par le protocole https, Profitez du guide logiciel.

Installez PHP dans Centos 7

Soutenir les contenus de contenu dynamique l'étape suivante. Installation php. À Centos 7:

# Yum install -y php

Et quelques prochaines composants utiles. Nous installons populaire modules pour PHP.:

# Yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Redémarrons Apache:

# SystemCtl redémarrez httpd

Créez un fichier dans un répertoire hôte virtuel et vérifiez travail php:

# Mcedit /web/site1.ru/www/index.php. # Chown Apache. /Web/site1.ru/www/index.php.

Nous allons à l'adresse http://site1.ru/index.php

Vous devez voir la sortie d'informations sur PHP. Si quelque chose ne va pas, il y a des erreurs, voir le journal des erreurs d'hôte virtuelle, les erreurs PHP seront également là.

Où se trouve php.ini

Après l'installation, la question se pose souvent et où les paramètres PHP sont-ils stockés? Traditionnellement, ils sont dans un seul fichier de paramètres. À Centos. php.ini réside dans / etc, juste à la racine. Vous pouvez modifier les paramètres globaux pour tous les hôtes virtuels. Les paramètres personnels de chaque site peuvent être effectués séparément dans le fichier de configuration d'hôte virtuel que nous avons effectué auparavant. Ajoutons plusieurs paramètres utiles là-bas:

# mcedit /etc/httpd/conf.d/site1.ru.conf.

Ajouter au plus facile, avant

Php_admin_value date.timezone "Europe / Moscou" php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30m

Pour appliquer des paramètres, vous devez faire redémarrer Apache. Maintenant, dans la sortie PHPInfo, vous pouvez voir la modification des paramètres.

Mise à jour sur PHP 5.6 en Centos 7

Dans notre exemple, nous avons installé sur Centos 7 php 5.4. Du référentiel standard. Et si nous avons besoin d'une version plus récente, par exemple php 5.6.? Dans ce cas, vous devez effectuer mettre à jour php..

# wget http://rpms.remirepo.net/enterprise/rem-release-7.rpm # rpm -uvh remi-version-7 * .rpm

À présent actualiser PHP 5.4 à PHP 5.6:

# Miam --enablepo \u003d remi, remi-php56 Installer PHP PHP-PHP-MYSQL PHP-MBSTRING PHP-MCRYPT PHP-Devel PHP-XML PHP-GD

Redémarrez Apache:

# SystemCtl redémarrez httpd

Et nous allons regarder la sortie phpinfo - http://site1.ru/index.php

Excellent, nous avons mis à jour PHP à la version 5.6.

Installation de MySQL à Centos 7

Comme je l'ai déjà écrit plus tôt, la fourche MySQL devient de plus en plus de distribution - mariadb.. Il a une compatibilité complète avec MySQL, vous pouvez donc utiliser en toute sécurité. Je préfère l'utiliser.

Installez Mariadb. sur Centos 7:

# Yum install -y mariadb mariadb-serveur

Nous ajoutons Mariadb à Autorun:

# SystemCTL Activer Mariadb.Service

Run Mariahb:

# SystemCTL Démarrer Mariahb

Vérification, démarré ou non:

# Netstat -tulnp | Grep mysqld TCP 0 0 0.0.0.0h0h0h0h306 0.0.0.0:* Écoutez 22276 / MYSQLD

Veuillez noter que cela est même affiché dans le système comme service mysqld. Maintenant, lancez le script de configuration de la sécurité standard:

# / usr / bin / mysql_secure_installation

Je ne donnerai pas la sortie entière de ce script, tout est assez simple et compréhensible. Premièrement, vous spécifiez un mot de passe pour root (mot de passe actuel après l'installation de vide), puis supprimez les utilisateurs anonymes, éteignez la possibilité de connecter la racine à distance, supprimez l'utilisateur de test et la base de données.

Déposer les paramètres Mysql / mariadb se trouve dans /etc/my.cnf.. Pour le fonctionnement normal, il y a suffisamment de paramètres par défaut. Mais si vous décidez de les changer, n'oubliez pas de redémarrer le service de base de données.

Redémarrer Mariahb./ Mysql à Centos 7:

# SystemCl Redémarrez Mariahb

C'est tout. Le fonctionnement de base du serveur Web sur Centos 7 est configuré.

Je serai heureux de commenter et de commenter sur le sujet de l'article. Je rappelle que cet article fait partie d'un seul cycle d'un article sur le serveur.

Atelier de Kali Linux

Le cours pour ceux qui souhaitent mener des tests pour pénétrer et vouloir s'essayer pratiquement dans des situations proches de réel. Le cours est conçu pour ceux qui n'ont aucune expérience dans sécurité de l'information. La formation dure 3 mois à 4 heures par semaine. Qu'est-ce qui vous donnera ce cours:
  • Recherchez et exploiter des vulnérabilités ou des configurations de défauts dans des réseaux d'entreprise, des sites Web, des serveurs. Concentrez-vous sur la Pension de Windows et la sécurité du segment des entreprises.
  • Étude d'outils tels que métasploit, SQLMAP, Wireshark, Suite Burp et beaucoup d'autres.
  • Le développement de la boîte à outils Kali Linux dans la pratique - avec elle doit y avoir un spécialiste de l'IB.
Vérifiez-vous sur le test d'introduction et consultez le programme logiciel.

À partir de la version Debian du 9, le célèbre système de gestion de la base de données MySQL a été remplacé par Mariadb. Ce SGBD est une succursale de MySQL créée par ses développeurs initiaux qui étaient malheureux politiques autorisées Oracle et craignent que MySQL puisse devenir un produit plus fermé. Mariadb est entièrement compatible avec MySQL, ce qui signifie que le remplacement sera aussi transparent que possible et toutes les applications qui fonctionnaient avec MySQL fonctionneront également avec Mariadb. Et nous considérerons certaines caractéristiques de cette transition.

Tout d'abord, disons que toutes les équipes, instructions, scripts, etc. etc. Ce qui fonctionnait auparavant avec MySQL travaillera également avec Mariadb, aucun changement ne doit être apporté et de nombreux utilisateurs peuvent simplement ne pas remarquer qu'ils travaillent avec un autre SGBD.

Mais il y a aussi des différences, tout d'abord, ils concernent la sécurité et ont été faites par l'équipe Debian. L'une des principales différences est que Mariashb fait partie de Debian 9 ne demande pas de mot de passe root lors de l'installation. Après cela, l'utilisateur reste dans une certaine confusion et quoi faire ensuite? Les huiles de l'incendie ont versé le fait que la plupart des instructions sur Internet envisagent uniquement de la gestion MySQL via le panneau de configuration PHPMYADMIN, et de ne pas avoir à travailler les compétences dans les utilisateurs invités de commande sont particulièrement défavorables.

"Comment installer le mot de passe root dans Mariadb"Dans différentes variations, c'est l'un des populaires requêtes de rechercheliée à ce SGBD. Mais nous ne couperons pas l'épaule et nous allons d'abord traiter avec les développeurs debian et pour quoi.

Le principal problème de sécurité de MySQL est que les informations d'identification d'accès à la base de données sont stockées dans les fichiers de configuration des applications Web dans le texte ouvert. Compte tenu du fait que de nombreux utilisateurs ne se dérangent pas et rendent le propriétaire de toutes les bases de données du superutilisateur racine - le problème devient assez grave. Et si vous considérez que l'accès aux fichiers d'applications Web peut avoir un gamme de personnes assez large, y compris non seulement les employés, mais également des pigistes - devient complètement mauvais.

Par conséquent, dans Debian pour le superutilisateur racine, Mariadb fournit une authentification via une prise UNIX et il est implémenté de manière à ce que l'accès illimité à Mariadb ne puisse recevoir qu'un système de superfolier et uniquement en mode ligne de commande. Du point de vue de la sécurité, il est très correct, car maintenant les utilisateurs tiers et les applications Web ne seront pas en mesure d'accéder aux droits des racines, même s'ils apprenaient en quelque sorte le mot de passe.

Tout cela est bon, mais quoi faire l'utilisateur habituel qui a placé Mariadb à son serveur et veut verser le dépotoir de la base de site dessus? Tout d'abord, vous avez un utilisateur, même pas un. Pour ce faire, augmentez vos droits dans le système pour racine via Su ou Sudo et exécuter la commande:

Root mysql -u.

Après cela, vous vous retrouverez sur la ligne de commande de la Mariahb. Afin de créer un nouvel utilisateur pour exécuter la commande:

Créer un utilisateur "Andrey" @ "localhost" identifié par "mot de passe";

Dans notre exemple, nous avons créé un utilisateur andrey avec mot de passe mot de passe..

Maintenant, nous la nommerons bien. Tout d'abord, nous prenons clairement les droits aux bases des autres:

accorder l'utilisation sur *. * À "Andrey" @ "localhost";

Et je vais émettre des droits complets à la base de données avec le modèle Andrey_Basename, cette approche donnera automatiquement les droits à toutes les nouvelles bases que l'utilisateur créera.

accorder tous les privilèges sur `Andrey \\ _%`. * À "Andrey" @ "localhost";

Notez que le modèle est enveloppé de symboles gravis (`)qui est sur la clé avec la lettre russe E.

Il reste seulement de redémarrer les privilèges et de quitter la console Mariadb.

Rincer les privilèges;
quitter;

Après cela, vous pouvez revenir aux outils familiers pour travailler avec MySQL / MARIADB, par exemple PHPMYADMIN:


noter que cette méthodeContrairement aux recommandations généralisées pour inclure la racine de Mariadb, vous permet de maintenir la sécurité accrue du système, ce qui est important si l'accès à celui-ci aura des tiers. Nous ne conseillons pas non plus de conserver toutes les bases de données sous un utilisateur, idéalement un site (ou une autre application) - un utilisateur, il permettra sans coût supplémentaire temps et effort de modifier le mot de passe en cas de son compromis ou de son opportunité potentielle (disons que vous avez été attiré pour travailler avec le site de Freelancer).

Mariadb Installation à partir du référentiel de développeurs

Le système d'exploitation Debian présente de nombreux avantages, l'un d'entre eux, dont il est probablement la stabilité. Mis en place et oublié - c'est à peu près lui, mais le côté renouvelant de cette approche est le conservatisme, de nombreux forfaits ne sont pas si versions fraîchesComment je voudrais parfois. Pour le moment, Mariadb 10.1 est livré avec Debian 9, tandis que les versions actuelles sont de 10,2 et 10.3.

Donc, si vous avez besoin de nouvelles fonctions de Mariadb ou si vous souhaitez simplement utiliser le dernier versions stables Logiciel, vous pouvez installer Mariadb directement à partir du référentiel du développeur. C'est facile, mais avant toute action potentiellement dangereuse, vous devez faire une sauvegarde complète de votre serveur.

Pour ce faire, exécutez la commande suivante dans la console du serveur avec SuperUserer:

MySqldump -u root --Toutes-bases de données\u003e ~ / my_backup.sql

Cette commande enregistrera toutes les bases de données Mariahb, y compris le service, le fichier my_backup.sql dans les répertoires / racine. Et si quelque chose ne va pas, vous pouvez toujours restaurer le statut de votre serveur au moment de la création d'une copie.

Vous pouvez obtenir des instructions d'installation sur la page spéciale du site officiel.

Il est fabriqué très pratique: vous choisissez votre distribution, sa version, la version du SGBD et le miroir - après quoi vous obtenez les instructions terminées pour l'installation. Pour vous faire gagner du temps, nous le donnons ici (nous allons installer Mariambb 10.3 sur Debian 9):

Apt-get install logiciels-properties-common Dirmngr
aPT-Key Adv --Recv-Keys --KeYserver KeyServer.ubuntu.com 0xf1656F24C74CD1D8
add-apt-référentiel "Deb http://mirror.mephi.ru/mariadb/repo/10.3/debian Stretch Main"

Pour que vous comprenez que vous faites un commentaire brièvement sur ces commandes. Le premier d'entre eux ajoute les dépendances nécessaires au système, la seconde définit la clé à laquelle les packages et les troisièmes sont signés, ajoute enfin au référentiel lui-même.

Mettez maintenant à jour la liste des packages:

Apt-get Update

et installer une nouvelle version de Mariadb:

Apt-get installer mariadb-serveur

Veuillez noter que le gestionnaire de lots supprimera correctement la version précédente et en créer un nouveau, toutes les bases de données se poursuivront et continueront de travailler avec nouvelle version Mariadb.

Le deuxième point, lors de l'installation de Mariadb à partir de développeurs, l'installateur vous demandera de définir le mot de passe root, comme dans cette version, l'authentification via un socket Unix n'est pas utilisée.

Quelqu'un peut ravir cela, mais si vous avez réussi à comprendre et à évaluer tous les avantages de la méthode des développeurs de débouts, il y aura une question raisonnable: est-il possible de revenir tel quel? Pouvez. Pour cette découverte fichier de configuration. /etc/mysql/mariadb.conf.d/50-Server.cnf. et ajouter à la section Ligne:

Plugin-load-add \u003d auth_socket.so

Redémarrez le SGBD:

Service mysqld redémarrer.

Essayons d'entrer compte Utilisateur normal:

Malgré le fait que le système nous pose le mot de passe et que nous la corrigerons correctement - nous serons toujours refusé l'accès à nous. Nous allons répéter la tentative de phpmyadmin:

Et ici, nous n'aurons pas de succès. Excellent! Maintenant, l'accès avec les droits de superutilisateur de la SGBD n'a qu'un système superutilisateur et nous n'avons pas besoin de vous inquiéter que le mot de passe de la racine mariadb sera connu pour quiconque.



Avez-vous aimé l'article? Partagez-le