Contacte

Instalarea Mariadb în Windows. Du-te la MySQL la Mariadb în Windows. Cum se configurează MariaDB SSL și instalați conexiuni securizate de la diverși clienți care instalează Mariadb în Windows

Am decis să renunț la utilizarea MySQL și, mai precis, să traduc complet toate serverele mele pe furculiță - Mariadb. Luând această ocazie, vreau să spun despre procesul de instalare Mariadb 10.1 din Debian 8. Trebuie remarcat faptul că scurta descriere Setările Mariadb se află pe pagina oficială a proiectului. Am decis să alocăm această problemă un post separat în care vreau să descriu acțiunile necesare după instalarea MariaDB pe server.

Înainte de a începe instalarea MariadB, adăugați depozitul său. Site-ul MariadB recomandă instalarea pachetului de proprietăți de software-comune. Nu văd niciun punct în acest punct și prefer să fac totul manual.

Înregistram un depozit cheie GPG în sistem:

APT-Key ADV-Keys-Keys - Keyserver.ubuntu.com 0xcbcb082A1bbb943db

Adăugați o descriere a depozitului în fișierul surses.list. Deschideți fișierul în Editorul NANO:

Nano /etc/apt/sources.list.

Copiați următoarele linii la sfârșit:

Deb http://lon1.mirrrors.digitalcean.com/marriadb/repo/10.1/debian Jessie Main Deb-SRC http://lon1.mirrrrs.digitalcean.com/marrrrs.repo/10.1/debian Jessie Main

Actualizăm lista pachetelor disponibile:

APT-Update

Rularea procesului de instalare MariadB 10.1:

Apt-get instalare mariadb-server

În timpul instalării, vi se va cere să introduceți o parolă pentru utilizatorul rădăcină. În acest proces de instalare a MariadB în Debian 8 este completă. Acum mergeți la configurația serverului.

Pentru a crește fiabilitatea serverului nostru, trebuie să efectuați cerințe minime Securitate. Interzice autorizația sub numele de rădăcină de la gazdele de la distanță. Dacă există o bază de testare și un utilizator anonim, trebuie să le eliminați de pe server. Pentru a facilita sarcina, utilizați scriptul:

Mysql_secure_installation.

Tipul de stocare implicit

Dacă trebuie să modificați tipul de stocare implicit, adăugați următoarele linii în fișierul My.cnf:

Implicit-stocare-motor \u003d Innodb

Asigurați-vă că MariadB utilizează tabelele implicite InnoDB. Pentru a face acest lucru, executați comanda:

Afișați motoarele;

Creați un utilizator și o bază de date MariaDB

Pentru a crea un utilizator în Mariadb, utilizați comanda de mai jos:

Creați utilizatorul "user_name" @ "localhost" identificat prin "parola";

Creați o nouă bază de date:

Creați baza de date baze de date_name;

Permiteți-ne să îndeplinim utilizatorul Utilizator_Name la baza de date Database nume:

Acordați toate privilegiile pe baza de date_name. * Pentru a "user_name" @ "localhost";

Acum trebuie să actualizați toate privilegiile:

Flush privilegiile.

Pentru a vizualiza privilegiile, executați comanda:

Arată granturi pentru "user_name" @ "localhost";

Busteni binare

MariadB înregistrează toate modificările din BD în revista binară, este necesar pentru funcționarea mecanismului de replicare. Dacă nu ați făcut backup-uri sau sunt învechite, jurnalele binare pot fi utilizate pentru a recupera datele. Cu toate acestea, nu există nicio garanție că datele vor fi restabilite integral sau parțial. Succesul va depinde de dimensiunea, timpul de depozitare al jurnalelor binare, frecvențele sacului.

Pentru a dezactiva jurnalele binare, comentează șirurile din fișierul My.cnf:

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

Am de gând să instalez și Mariadb SSL (Secure Sockets Layer), de asemenea conexiuni sigure De la clientul MySQL și aplicațiile PHP. Cum să activați SSL pentru clientul Server și Mariadb care lucrează într-un sistem Linux sau Unix?

Mariadb - server de bază de date care oferă funcționalitate Înclinare pentru serverul MySQL.

Mariadb a fost creat de unii dintre autori originali ai MySQL, folosind starea mai largă a dezvoltatorilor liberi și cealaltă software. sursa deschisa. În plus față de funcțiile de bază ale MySQL, MariadB oferă un set bogat de îmbunătățiri de funcții, inclusiv mecanisme alternative de stocare, optimizarea serverelor și alte corecții. În acest ghid voi vorbi despre modul de configurare a serverului MariadB utilizând SSL și modul de instalare a conexiunilor securizate Utilizarea scripturilor Console și PHP.

La crearea certificatelor SSL, este important să se utilizeze 192.168.1.100 ca nume standard.

Pasul 1 - Instalarea Mariadb

Introduceți comanda în conformitate cu opțiunea Linux sau UNIX.

Instalarea serverului / clientului MariadB pe Ubuntu / Debian Linux

Introduceți una dintre următoarele comenzi: APT-GET COMANDE sau COMANDA APT:

$ sudo apt-get instalare mariadb-server mariadb-client

Instalarea serverului / clientului Mariadb pe CentOS / RHELL / FEDORA LINUX

Introduceți următoarea comandă YUM:

$ sudo yum instalați mariadb-server mariadb

Pentru utilizatorii Fedora Linux, trebuie să introduceți comanda DNF:

$ sudo dnf instalați mariadb-server mariadb

Instalarea serverului Mariadb / Client pe Arch Linux

Introduceți următoarea comandă Pacman:

$ sudo pacman -s mariadb

Instalarea serverului / clientului Mariadb pe FreeBSD UNIX

Pentru a instala portul, executați:

# CD / usr / porturi / baze de date / mariadb100-server / && face instalare curat # CD / usr / porturi / baze de date / mariadb100-client / && face instalare curat

Pentru a adăuga un pachet binar, introduceți:

# PKG instalați mariadb100-server mariadb100-client

Pasul 2 - Instalarea securizată a lui Mariadb Secure

Introduceți următoarea comandă:

$ mysql_secuure_installation.

Figura .01: Instalarea MariadB

Pasul 3 - Creați certificatul CA

Creați un director numit SSL IN / etc / MySQL / director:

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

Valoare: Valoarea standard a numelui (denumirea comună) utilizată pentru certificatele de server și client trebuie să difere de numele standard (denumirea comună) utilizată pentru certificatul CA. Pentru a evita orice probleme, le instalez după cum urmează:

Numele standard ca: Mariadb admin.
Numele serverului standard: Mariadb server.
Numele standard al clientului: Clientul Mariadb.

Introduceți următoarea comandă pentru a crea o nouă cheie CA:

$ sudo openssl Genrsa 2048\u003e Ca-cheie.Pem

Exemple de posibile concluzii de date:


Figura 10: Crearea unei chei CA

Introduceți următoarea comandă pentru a crea un certificat utilizând această tastă:

$ sudo openssl req -new -x509 -NODES -Days 365000 -Key ca-cheie.Pem -out ca-cert.Pem
Figura 03: Utilizarea cheii CA, generați certificatul CA pentru Mariadb

Exemple de posibile concluzii de date:

Acum trebuie să aveți două fișiere următoarele ::

  1. /etc/mysql/ssl/ca-cert.pem - dosar de certificat pentru autoritatea de certificare (Autoritatea de Certificat (CA)).
  2. /etc/mysql/ssl/ca-key.Pem - fișier cheie pentru Centrul de Certificare (Autoritatea de Certificare (CA)).

Voi folosi ambele fișiere pentru a crea certificate de server și client.

Pasul 4 - Crearea unui certificat de server

Pentru a crea o cheie de server, executați:

$ sudo openssl req -newKey RSA: 2048 -Days 365000 -NODES -Keyout server-cheie.Pem -out server-req.pem

Exemple de posibile concluzii de date:


Figura 04: Crearea unei taste de server pentru serverul Mariadb

Apoi manipulați cheia serverului RSA, introduceți:

$ sudo openssl rsa -in server-cheie.Pem -out server-cheie.Pem

Exemple de posibile concluzii de date:

Scrierea cheii RSA.

În cele din urmă, semnați certificatul de server, pentru acest lucru, executați:

$ Sudo openssl x509 -Req-in server-req.Pem -days 365000 -ca ca-cert.pem -cakey ca-cheie.Pem -set_serial 01 -out server-cert.Pem

Exemple de posibile concluzii de date:

Semnătura OK subiect \u003d / C \u003d Au / ST \u003d Unele-State / O \u003d Widgitele Internet Pty Ltd / CN \u003d Mariadb Server Obținerea CA Private Cheie

Acum trebuie să arătați fișiere suplimentare:

  1. /etc/mysql/ssl/server-cert.Pem. - fișier de certificat de server Mariadb.
  2. /etc/mysql/ssL/SERVER-KEY.PEM - MARIADB Server Fișier cheie.

Trebuie să utilizați cel puțin două fișiere de pe serverul Mariadb și orice alte noduri pe care le veți utiliza pentru traficul de cluster / replicare. Aceste două fișiere vor proteja conexiunea de pe partea serverului.

Pasul 5 - Crearea unui certificat de client

MySQL Client și App PHP / Python / Perl / Ruby va utiliza certificatul de clienți pentru a proteja conectivitatea clientului. Trebuie să setați următoarele fișiere pe toți clienții dvs., inclusiv un server web. Pentru a crea o cheie de client, executați:

$ sudo openssl req -newKey RSA: 2048 -Days 365000 -nodes -Keyout client-cheie.Pem -out client-req.Pem

Exemple de posibile concluzii de date:


Figura 05: Crearea unei chei client pentru serverul Mariadb

Apoi manipulați cheia clientului RSA, pentru ca acest lucru să intre

$ sudo openssl rsa -in client-key.Pem -out client-cheie.Pem scris RSA cheie

În cele din urmă, semnați certificatul de client, pentru aceasta, începeți:

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

Exemple de posibile concluzii de date:

Semnătura OK subiect \u003d / c \u003d Au / ST \u003d unele Pty Ltd / Cn \u003d Clientul Mariadb Obținerea CA cheie privată

Pasul 6 - Cum să verificați certificatele?

Introduceți următoarea comandă pentru a verifica certificatele pentru a vă asigura că totul a fost creat corect:

$ Openssl verifica -cafile CA-CERT.PEM SERVER-CERT.PEM CLIENT-CERT.PEM

Exemple de posibile concluzii de date:

SERVER-CERT.PEM: OK Client-CERT.PEM: OK

Nu ar trebui să existe erori și trebuie să obțineți un răspuns OK pentru certificatele de server și client.

Pasul 7 - Configurați serverul MariadB pentru a utiliza SSL

Editați fișierul. vi /etc/mysql/mariadb.conf.d/50-server.cnf sau /etc/mysql/mariadb.cnf În felul următor:

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

Adăugați după cum urmează:

### Serverul MySQL ### ## Asigurarea bazei de date cu opțiunea SSL și certificatele ## ## Nu există nici un control asupra nivelului protocolului utilizat. ## ## mariadb va folosi tlsv1.0 sau mai bine. ## SSL SSL-CA \u003d / etc / MySQL / SSL / CA-CERT.PEM SSL-CERT \u003d / etc / MySQL / SSL / Server-CERT.PEM SSL-cheie \u003d / etc / mysql / ssl / server-cheie. PEM.

Salvați și închideți fișierul. Puteți reporni MariadB după cum urmează:

$ sudo /etc/init.d/mysql repornire

$ Sudo sistemctl repornește mysql

Pasul 8 - Configurați clientul Mariadb pentru a utiliza SSL

Configurați clientul Mariadb ca 192.168.1.200 pentru a utiliza SSL (adăugați la /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf.):

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

Adăugați la Secțiune:

## Configurația clientului MySQL ## SSL-CA \u003d / etc / MySQL / SSL / CART.PEM SSL-CERT \u003d / etc / MySQL / SSL / Client-CERT.PEM SSL-cheie \u003d / etc / mysql / SSL / client- Tasta.Pem ### Această opțiune este dezactivată în mod implicit ### ### SSL-Verifica-Server-Cert ###

Salvați și închideți fișierul. Trebuie să copiați fișierele /etc/mysql/ssl/ca-cert.pem, /etc/mysql/ssl/client-cet.Pem. și /etc/mysql/ssl/client-key.Pem pentru toți clienții dvs. De exemplu:

{[E-mail protejat]): RSYNC /ETC/MYSQL/SSL/CA-CERT.PEM /ETC/MYSQL/SSL/CLIENT-CERT.PEM /ETC/MYSQL/SSL/CLIENT-KEY.PEM \\ [E-mail protejat]: / etc / mysql / ssl

Pasul 9 - Verificați

Introduceți următoarea comandă:

$ Mysql -u (nume de utilizator-aici) -P (server-ip-aici) -p (db-name-aici) $ mysql -u root -h 192.168.1.100 -p mysql $ mysql -u root -h 127.0 .0.1 -P MySQL.

Introduceți următoarele variabile de afișare precum "% SSL%"; Comandă în Mariadb [(Nici unul)]\u003e ROW:

Mariadb [(Nici unul)]\u003e Afișează variabile precum "% SSL%";

Sau executați comanda de stare:

Mariadb [(nici unul)]\u003e statut;

Exemple de posibile concluzii de date:

Figura 06: Stabilirea unei conexiuni securizate cu consola și verificarea acestuia

Verificați conexiunile SSL și TLS. Următoarea comandă trebuie să completeze eșecul, deoarece SSL 3 nu este acceptată și, în consecință, nu este configurată să se utilizeze:

$ Openssl s_client -Connect 192.168.1.100: 3306 -SSL3 140510572795544: Eroare: 140A90C4: Rutine SSL: SSL_CTX_NEW: Metoda SSL NULL a trecut: SSL_LIB.C: 1878:

Verificați 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

Exemple de posibile concluzii de date:

Conectat (00000003) --- Niciun certificat de colegi disponibili --- Nici un certificat de client CA Nume Sent --- SSL Handshake a citit 5 octeți și scrise 7 octeți --- nou, (nici unul), cifrul este (nici unul) renegocierea securizată este Nu este acceptată compresie: Niciuna Extindere: Niciuna nu a negociat ALPN Negiat SSL-sesiune: Protocol: TLSV1 Cipher: 0000 Session-Id: sesiune-Id-CTX: Master-Key: Key-ARG: Niciuna PSK Identitate: Niciuna Sugestie de identitate PSK: Nici unul SRP Nume utilizator: Niciunul de pornire: 1485335036 Timeout: 7200 (sec) Verificați codul de returnare: 0 (OK) ---

Cum să citiți un fișier de captare a pachetului TCPDump pentru a verifica o conexiune securizată

În cele din urmă, puteți utiliza analizorul pachetului de comandă TCPDump, care rulează sub linia de comandă pentru a vizualiza portul 3306:

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

Acum conectați-vă la aplicația dvs. PHP / Python / Perl / Ruby Mysql sau. aplicație de consolă MySQL:

$ Mysql-bu bar -h 192.168.1.100 -p foo

Utilizați TCPDump pentru a verifica dacă nu informații text., inclusiv parolele, nu schimbă între server și client. Acest lucru se face după cum urmează:

$ Tcpdump -r /tmp/mysql.pcap | Mai puțin

Pasul 10 - Adăugați utilizatorul către serverul Mariadb

Introduceți următoarea comandă:

$ mysql -u rădăcină -p

Creați o bază de date numită foo:

Creați baza de date foo;

Creați un utilizator cu bara pentru ESTRING pentru o bază de date numită foo:

Grant toate pe foo. * La [E-mail protejat] Identificată de "MyPassword" necesită SSL;

Furnizarea de acces de la un server web postat la 192.168.1.200:

Grant toate pe foo. * La [E-mail protejat] Identificată de "MyPassword" necesită SSL;

Creați o conexiune shell Bash

Vă puteți conecta cu consola după cum urmează:

$ mysql-bu bar -p -h 192.168.1.100 foo

Creați o conexiune securizată de la Python

Instalați mai întâi interfața Piton Pentru MySQL:

$ sudo apt-get instalare python-mysql.connector

Sau pentru Python v3.x.

$ sudo apt-get instalare python3-mysql.connector

Aici este un exemplu de cod Python pentru o conexiune securizată utilizând:

#! / usr / bin / python import mysqldb ssl \u003d ("cert": "/etc/mysql/ssl/client-cet.pem", "cheie": "/etc/mysql/ssl/client-key.Pem" ) Conn \u003d Mysqldb.connect (gazdă \u003d "192.168.1.100", utilizator \u003d "bar", passwd \u003d "mypassword", ssl \u003d ssl) cursor \u003d conn.cur.execute ("arată starea" ssl_cipher " ) Tipăriți cursor.fetchone ()

#! / Usr / bin / python # Notă (exemplu este valabil pentru __future__ import imprimare_function import sys import mysql.connector de la mysql.connector.constracts import clientflag config \u003d ("utilizator": "bar", " Parola ":" MyPassword "," gazdă ":" 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 (tamponat \u003d Adevărat) cur.execute ("Afișați starea" SSL_CIPERHER ") Print (cur.fetchone ()) cur.close () cnx.close ()

Exemple de posibile concluzii de date:

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

Astăzi vom prelua una dintre cele mai căutate roluri ale oricăror servere Linux, care ocupă un rol de lider în acest segment funcțional. Setare servere web CentOS 7 pe sacul de bază Popular HTTP Server apache.Interpret pHP. și serverul bazei de date. mysql., sau lampă de instalare pe scurt. Acest pachet este cea mai populară configurație astăzi printre găzduirea web. Deși aceeași companie, ea vine recent la călcâi, dar pe baza Nginx, poate avea deja în față, nu am date exacte despre acest lucru.

Acest articol face parte din ciclul unificat al articolului despre server.

Server Web pe CentOS 7

Deci, web-ul nostru server CentOS. va consta din trei componente principale - Server HTTP apache., Interpret de programare de programare pHP.și serverul bazei de date. mysql.. Vom fi familiarizați puțin cu fiecare dintre ele:

  1. Apache. - server http sau pur și simplu server web apache. Este un software încrucișat care acceptă aproape toate populare os., inclusiv ferestrele. Se apreciază în primul rând fiabilitatea și flexibilitatea configurației, care poate fi extinsă semnificativ prin modulele de conectare, care există un set excelent. Din dezavantaje, există cerințe mai mari pentru resurse, comparativ cu alte servere. Pentru a păstra aceeași sarcină ca, de exemplu, Nginx, Apache nu va putea avea parametri de fier similari.
  2. PHP. - Limba de programare cu scop general, care este cel mai adesea aplicată în dezvoltarea web. Până în prezent, aceasta este cea mai populară limbă din acest domeniu de aplicare. Susținute de aproape toți furnizorii de găzduire.
  3. Mysql. - Sistemul de gestionare a bazelor de date. A câștigat popularitatea în mediul aplicațiilor mici și mijlocii, care sunt foarte multe pe web. Deci, ca PHP, astăzi este cea mai populară bază de date utilizată pe site-uri web. Susținută de majoritatea găzduirii. În centos în loc de seturi mysql mariadb. - Mysql. Ele sunt pe deplin compatibile, este posibil în orice moment tranziția de la un dbm la altul și înapoi. În ultima vreme Am întâlnit informațiile pe care Mariadb Wars MySQL și oamenii se mișcă încet pe ea. În practică, nu m-am întâmplat să observ acest lucru, deoarece nu am lucrat niciodată cu baze de date încărcate. Și în condiții normale, diferența nu este vizibilă.

Serverul experimental va acționa, următoarele caracteristici:

CPU2 nuclee
Memorie8 GB.
Disc150 GB SSD.

Acesta este parametrii de setare personalizată. Ele nu sunt optime pentru preț, dar am nevoie de exact asta.

Vreau să clarific imediat că mă ocup de setarea de bază implicită. Pentru a îmbunătăți viteza, sporiți fiabilitatea și ușurința utilizării, trebuie să instalați mai multe instrumente, pe care le voi spune separat. În general, va fi suficient pentru organizarea unui server web ce este în acest articol.

Dacă încă nu aveți un server, atunci trebuie să executați. Și dacă serverul este deja instalat, nu îl uitați. Vă recomandăm să acordați atenție la setare, deoarece există multe informatii utileCare, ca parte a acestui articol, nu dau - o actualizare a sistemului, un set de firewall, instalând editorul și multe altele.

Configurați Apache în CentOS 7

În CentOS, serviciul Apache este numit httpd.. Când m-am familiarizat cu această distribuție, am fost neobișnuit. În FreeBSD și Debian, cu care am lucrat, serviciul de server web a fost numit Apache, deși undeva am observat, se pare că fișierul de configurare are numele httpd.conf. Până acum, nu știu de ce ambele nume s-au răspândit. M-aș bucura dacă cineva mi-a împărtășit informații despre acest proiect de lege în comentarii.

Acum continuați cu instalare Apache.. În CentOS 7 acest lucru se face foarte simplu:

# yum install -y httpd

Adăugați Apache la Autoload:

# SystemCTL Activează httpd

Lansați Apache în CentOS 7:

# Systemctl Start httpd

Verificați dacă serverul a început:

# Netstat -tulnp | Grep httpd tcp6 0 0 ::::80 ::: * ascultați 21586 / httpd

Totul este în ordine, hoging în portul 80, așa cum ar trebui să fie. Deja, puteți merge la adresa http: // IP și puteți vedea imaginea:

Acum vom configura Apache. Prefer următoarea structură de găzduire web:

Creați o structură similară:

# Mkdir / Web && Mkdir /web/Site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # Chown -r Apache. / Web.

Includooptional conf.D / *. Conf

Dacă nu, nu avem un inconsum și mergem la directorul /etc/httpd/conf.d. Cu mine trag acolo un fișier site1.ru.conf:

Servername Site1.ru Serveraias www.Site1.ru Documentroot /web/Site1.ru/www Opțiuni Fundowsymlinks Allowoverride toate necesită ca toți să fie acordați Errorlog /web/site1.ru/logs/eror.log particularlog /web/site1.ru/logs/access.log comun

Reporniți Apache în CentOS

Acum facem repornirea Apache:

# Systemctl reporniți httpd

Dacă există erori - vezi Apache / var / log / httpd / error_log jurnal. Dacă totul este în ordine, verificați dacă gazda noastră virtuală este normală. Pentru a face acest lucru, creați în dosar /Web/Site1.ru/www File Index.html. Următorul conținut:

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

Apache este configurat!

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

192.168.1.25 SITE1.RU.

unde 192.168.1.25 adresa IP a serverului nostru web.

Acum, în browser, recrutăm adresa http://site1.ru. Dacă vedeți o fotografie:

deci toată lumea a fost configurată corect. Dacă există erori, du-te pentru a viziona jurnale. Și în acest caz, nu un jgheab comun httpd, dar jurnalul de eroare de jurnal gazdă virtuală la /web/site1.ru/logs/error.log.

Imediat vă voi acorda atenția la rotirea jurnalelor gazdelor virtuale. Se întâmplă adesea că, dacă nu confundați imediat, atunci uitați. Dar dacă site-ul este cu o prezență bună, jurnalele vor crește rapid și poate dura mult spațiu. Este mai bine să configurați rotirea jurnalelor serverului Web imediat după creație. Face să nu fie dificilă.

Pentru a configura rotația jurnalelor gazdă virtuale, trebuie să editați fișierul /etc/logrotate.d/httpd. Se creează în timpul instalării Apache și include setarea de rotație. locație standard Busteni. Și din moment ce am transferat jurnalele fiecărei gazdă virtuală unui dosar individual, trebuie să adăugați aceste foldere în acest fișier:

# mcendit /etc/logrotate.d/httpd. /Web/*/logs/*.log. / VAR / LOG / HTTPD / * Jurnal (Missingok Notifempty Sharedsrcripts DelayCompress Postrotate / Bin / Systemctl Reîncărcați httpd.service\u003e / dev / null 2\u003e / dev / null || True Endscript)

În principiu, cel mai simplu server web este gata și pot fi utilizate. Dar este puțin probabil ca exista site-uri cu conținut static, care este suficient pentru a susține numai HTML. Deci, vom continua stabilirea noastră.

Dacă trebuie să organizați activitatea site-ului de către protocol https., Profitați de ghidul software.

Instalați PHP în CentOS 7

Pentru a sprijini conținutul dinamic al conținutului urmatorul pas. Instalare pHP. În CentOS 7:

# Yum instalați -y php

Și următoarele câteva componente mai utile. Instalăm popularul module pentru PHP.:

# Yum install -y php-mysql php-mbrypt php-develp-xml php-gd

Să reporniți apache:

# Systemctl reporniți httpd

Creați un fișier într-un director gazdă virtuală și verificați pHP lucrare:

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

Mergem la adresa http://site1.ru/index.php

Trebuie să vedeți ieșirea de informații despre PHP. Dacă ceva este greșit, există unele erori, consultați jurnalul de eroare gazdă virtuală, erorile PHP vor fi, de asemenea, acolo.

Unde se află php.ini.

După instalare, apare adesea întrebarea și unde sunt stocate setările PHP? În mod tradițional, ele se află într-un singur fișier de setări. În centrul orașului. php.ini se află în / etc, chiar în rădăcină. Acolo puteți edita setările globale pentru toate gazdele virtuale. Setările personale ale fiecărui site pot fi efectuate separat în fișierul de configurare a gazdei virtuale pe care le-am făcut înainte. Să adăugăm mai multe setări utile acolo:

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

Adăugați la cea mai ușoară, înainte

PHP_ADMIN_VALUE Data.Timezone "Europa / Moscova" PHP_ADMIN_VALUE MAX_EXECUTION_TIME 60 PHP_ADMIN_VALUE Upload_max_filesize 30m

Pentru a aplica setările de care aveți nevoie pentru a reporni Apache. Acum, în ieșirea phpinfo puteți vedea modificarea setărilor.

Actualizați la PHP 5.6 în CentOS 7

În exemplul nostru, am instalat pe CentOS 7 pHP 5.4. Din depozitul standard. Și dacă avem nevoie de o versiune mai nouă, de exemplu pHP 5.6.? În acest caz, trebuie să efectuați actualizați PHP..

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

Acum refresh PHP 5.4 la PHP 5.6:

# Yum --EnableRepo \u003d Remi, Remi-Php56 Install PHP PHP-MySQL PHP-MBSTRING PHP-Del Php-Del PHP-XML PHP-GD

Reporniți Apache:

# Systemctl reporniți httpd

Și ne uităm la ieșire phpinfo - http://site1.ru/index.php

Excelent, am actualizat PHP la versiunea 5.6.

Instalarea MySQL în CentOS 7

Așa cum am scris deja mai devreme, furculița MySQL devine din ce în ce mai distribuită - mariadb.. Are compatibilitate completă cu MySQL, astfel încât să puteți utiliza în siguranță. Prefer să-l folosesc.

Instalați Mariadb. Pe CentOS 7:

# Yum install -y mariadb mariadb-server

Adăugam Mariadb la Autorun:

# Systemctl Activează Mariadb.service

Rulați Mariadb:

# Systemctl Start Mariadb

Verificarea, a început sau nu:

# Netstat -tulnp | GREP MySQLD TCP 0 0 0.0.0.0:3306 0.0.0.0:3 Ascultați 22276 / mysqld

Rețineți că este chiar afișat în sistem ca serviciu MySQLD. Acum lansați scriptul de configurare a securității standard:

# / usr / bin / mysql_secure_installation

Nu voi da întreaga ieșire din acest scenariu, totul este destul de simplu și de înțeles. În primul rând, specificați o parolă pentru root (parola curentă după instalarea goală), apoi ștergeți utilizatorii anonimi, opriți capacitatea de a conecta rădăcina de la distanță, ștergeți utilizatorul de testare și baza de date.

Fişier setări. MySQL / Mariadb se află în /etc/my.cnf.. Pentru funcționarea normală, există suficiente setări implicite. Dar dacă decideți să le schimbați, nu uitați să reporniți serviciul de baze de date.

Repornirea Mariadb./ MySQL în CentOS 7:

# Systemctl Repornește Mariadb

Asta e tot. Funcția de bază a serverului web pe CentOS 7 este configurată.

Voi fi bucuroasă de comentariile și comentariile pe tema articolului. Reamintesc că acest articol face parte dintr-un singur ciclu al unui articol despre server.

Workshop pe Kali Linux

Cursul pentru cei care sunt interesați de efectuarea de teste pentru a pătrunde și de a dori să se înceapă practic în situațiile apropiate. Cursul este conceput pentru cei care nu au experiență în securitatea informațiilor. Formarea durează 3 luni la 4 ore pe săptămână. Ce vă va oferi acest curs:
  • Căutați și operează vulnerabilități sau configurații defecte în rețelele corporative, site-uri web, servere. Concentrați-vă pe Windows Penstress și pe securitatea segmentului corporativ.
  • Studiul instrumentelor cum ar fi metasploit, sqlmap, wireshark, suita burp și multe altele.
  • Dezvoltarea Kali Linux Toolkit în practică - cu ea ar trebui să existe un specialist în IB.
Verificați-vă pe testul introductiv și vedeți mai mult din programul software.

Pornind de la versiunea Debian a celui de-al 9-lea, sistemul popular de gestionare a bazei de date MySQL a fost înlocuit de Mariadb. Acest DBMS este o sucursală de la MySQL creată de dezvoltatorii săi inițiali care au fost nefericiți politici licențiate Oracle și teama că MySQL ar putea deveni un produs mai închis. Mariadb este pe deplin compatibil cu MySQL, ceea ce înseamnă că înlocuirea va fi cât mai transparentă și toate aplicațiile care au lucrat cu MySQL vor lucra și cu Mariadb. Și vom lua în considerare câteva caracteristici ale acestei tranziții.

Mai întâi de toate, să spunem că toate echipele, instrucțiunile, scripturile etc. etc. Ceea ce lucrat anterior cu MySQL va lucra și cu Mariadb, nu trebuie să se facă schimbări, iar mulți utilizatori pot să nu observe că lucrează cu un alt DBMS.

Dar există, de asemenea, diferențe, în primul rând, se referă la securitate și au fost făcute de echipa Debian. Una dintre principalele diferențe este că Mariadb face parte din Debian 9 nu solicită o parolă de rădăcină la instalare. După aceea, utilizatorul rămâne într-o anumită confuzie și ce să faceți în continuare? Uleiurile din foc au turnat faptul că majoritatea instrucțiunilor de pe Internet au în vedere managementul MySQL pur prin intermediul panoului de control PhpMyAdmin și care nu trebuie să lucreze abilitățile în comenzi Utilizatorii sunt în stare deosebit de neajutorată.

"Cum se instalează parola de root în Mariadb"În diferite variante este una dintre cele mai populare căutați interogărilegate de acest DBMS. Dar nu vom tăia umărul și mai întâi vom face față dezvoltatorilor Debian și pentru ce.

Cea mai mare problemă de securitate a MySQL este că acreditările de acces la baza de date sunt stocate în fișierele de configurare ale aplicațiilor web din textul deschis. Având în vedere faptul că mulți utilizatori nu se deranjează și fac proprietarul tuturor bazelor de date ale rădăcinii Superuser - problema devine destul de gravă. Și dacă considerați că accesul la fișierele de aplicații web poate avea o gamă destul de largă de persoane, inclusiv nu numai angajați, ci și independenți - devine foarte rău.

Prin urmare, în Debian pentru rădăcina SuperUser, MariaDB oferă autentificarea prin intermediul socket-ului Unix și este implementat astfel încât accesul nelimitat la Mariadb să poată primi doar un sistem de superfolder și numai în modul linia de comandă. Din punctul de vedere al securității, este foarte corect, deoarece utilizatorii de la terți și aplicațiile web nu vor putea accesa drepturile de rădăcini, chiar dacă au învățat cumva parola.

Toate acestea sunt bune, dar ce să facă utilizatorul obișnuit care la pus pe Mariadb la serverul său și vrea să topească halda de bază pe ea? Mai întâi de toate, aveți un utilizator, chiar și nu unul. Pentru a face acest lucru, ridicați-vă drepturile în sistem la rădăcină prin su sau sudo și executați comanda:

Mysql -u rădăcină.

După aceea, veți găsi pe linia de comandă Mariadb. Pentru a crea un utilizator nou pentru a executa comanda:

Creați utilizatorul "Andrey" @ "localhost" identificat prin "parola";

În exemplul nostru, am creat un utilizator andrey. cu parola parola..

Acum îl vom numi bine. În primul rând, luăm în mod clar drepturile la bazele altor persoane:

grant Utilizare pe *. * La "Andrey" @ "localhost";

Și voi emite drepturi depline la baza de date cu șablonul Andrey_basename, această abordare va da automat drepturile tuturor noilor baze pe care utilizatorul le va crea.

acordați toate privilegiile pe "Andrey \\ _%" * la "Andrey" @ "localhost";

Rețineți că șablonul este înfășurat cu simboluri gravis (`)care este pe cheie cu scrisoarea rusă E.

Rămâne doar pentru a reporni privilegiile și pentru a ieși din consola Mariadb.

Flush privilegiile;
părăsi;

După aceea, puteți reveni la instrumentele familiare pentru a lucra cu MySQL / Mariadb, de exemplu, PhpMyAdmin:


Rețineți că aceasta metodaSpre deosebire de recomandările pe scară largă pentru a include rădăcina din Mariadb, vă permite să mențineți o securitate sporită a sistemului, ceea ce este important dacă accesul la acesta va avea terțe părți. De asemenea, nu vă sfătuim să păstrați toate bazele de date sub un singur utilizator, în mod ideal un site (sau altă aplicație) - un utilizator, acesta va permite fără cost suplimentar Timpul și efortul de a schimba parola în caz de compromis sau de potențialul său oportunitate (să spunem că ați fost atrași să lucrați cu site-ul Freelancer).

MARIADB Instalarea de la depozitul dezvoltatorului

Sistemul de operare Debian are multe avantaje, unul dintre ele, pentru care este cel mai probabil ca stabilitatea. Înființat și uitat - acest lucru este doar despre el, dar partea revolving a acestei abordări este conservatorism, multe pachete nu sunt așa versiuni proaspeteCât de câteodată aș vrea. În prezent, Mariadb 10.1 vine cu Debian 9, în timp ce versiunile curente sunt de 10,2 și 10.3.

Deci, dacă aveți nevoie de noi funcții Mariadb sau doriți doar să utilizați cele mai recente versiuni stabile Software, puteți instala Mariadb direct de la depozitul dezvoltatorului. Acest lucru este ușor, dar înainte de orice acțiune potențial periculoasă, ar trebui să faceți o copie de siguranță completă a serverului dvs.

Pentru a face acest lucru, rulați următoarea comandă în consola serverului cu superuser:

Mysqldump -u Root - Baze de date\u003e ~ / my_backup.sql

Această comandă va salva toate bazele de date MariadB, inclusiv serviciul, fișierul my_backup.sql. în directoare / rădăcină. Și dacă ceva nu merge bine, puteți restabili întotdeauna starea serverului dvs. în momentul creării unei copii.

Puteți obține instrucțiuni de instalare pe pagina specială a site-ului oficial.

Este foarte convenabil: alegeți distribuția, eliberarea, versiunea DBMS și oglinda - după care primiți instrucțiunile finite pentru instalare. Pentru a vă economisi timp, îi dăm aici (vom instala Mariadb 10.3 pe Debian 9):

APT-GET INSTALL SOFTWARE PROPRIETĂȚI - DIMENGR COMUN
aPT-KEY ADV - Keys-Keys - Keyserver.ubuntu.com 0xF1656F24C74CD1D8
add-apt-Repository "Deb http://mirror.mefi.ru/mariadb/repo/10.3/debian stretch principal"

Așa că înțelegeți că faceți comentarii pe scurt pe aceste comenzi. Primul dintre aceștia adaugă dependențele necesare sistemului, al doilea stabilește cheia la care sunt semnate pachetele și al treilea, adaugă în cele din urmă depozitului însuși.

Actualizați acum lista pachetelor:

APT-Update

Și instalați o nouă versiune a lui Mariadb:

Apt-get instalare mariadb-server

Rețineți că managerul de loturi va elimina corect versiunea anterioara și să stabilească una nouă, toate bazele de date vor continua și vor continua să lucreze cu versiune noua Mariadb.

Cel de-al doilea punct, la instalarea MariaDB de la dezvoltatori, instalatorul vă va cere să setați parola de root, ca în această versiune, nu este utilizată autentificarea prin priza Unix.

Cineva poate încânta acest lucru, dar dacă ați reușit să înțelegeți și să evaluați toate avantajele metodei dezvoltatorilor de Debain, va exista o întrebare rezonabilă: este posibil să ne întoarcem așa cum a fost? Poate sa. Pentru această descoperire fișier de configurare. /etc/mysql/mariadb.conf.d/50-server.cnf. și adăugați la secțiune Linia:

Plugin-load-add \u003d auth_socket.so

Reporniți DBMS:

Service MySQLD Repornește.

Să încercăm să intrăm cont Utilizator normal:

În ciuda faptului că sistemul ne va cere parola și o vom corecta corect - vom fi încă refuzați accesul la noi. Vom repeta încercarea prin PhpMyAdmin:

Și aici nu vom avea succes. Excelent! Acum, accesul la drepturile superuser ale DBMS are doar un sistem superuser și nu trebuie să ne facem griji că parola Root Mariadb va fi cunoscută pentru oricine.



Ți-a plăcut articolul? Împărtășește-l