Contactos

Instalación de Mariadb en Windows. Ve a MySQL a Mariadb en Windows. Cómo configurar Mariadb SSL e instalar conexiones seguras de varios clientes Instalación de Mariadb en Windows

Decidí abandonar el uso de MySQL, y más precisamente para traducir completamente todos mis servidores en su tenedor: Mariadb. Aproveche esta oportunidad, quiero contar con el proceso de instalación de MariaDB 10.1 en Debian 8. Cabe señalar que breve descripción Las configuraciones de Mariadb están en la página del proyecto oficial. Decidí asignar este problema un post separado en el que quiero describir las acciones necesarias después de instalar el mariadb en el servidor.

Antes de comenzar a instalar mariadb, agregue su repositorio. El sitio web de Mariadb recomienda instalar el paquete de propiedades-propiedades del software. No veo ningún punto en esto y prefiero hacer todo manualmente.

Registramos un repositorio clave GPG en el sistema:

APT-KEY ADV --Recv-Keys --keyserver Keyserver.ubuntu.com 0xcbcb082a1bb943db

Agregar una descripción del repositorio al archivo fuentes. Abra el archivo en el editor nano:

Nano /etc/apt/sources.list

Copie las siguientes líneas al final:

Deb http://lon1.mirrors.digitalcean.com/mariadb/repo/10.1/debian jessie principal Deb-SRC http://lon1.mirors.digitalcean.com/mariadb/repo/10.1/debian jessie main

Actualizamos la lista de paquetes disponibles:

Actualización de apt-get

Ejecutar el proceso de instalación de MariaDB 10.1:

Apt-get instale mariadb-server

Durante la instalación, se le pediremos que ingresen una contraseña para el usuario root. En este proceso de instalación de Mariadb en Debian 8 está completo. Ahora vaya a la configuración del servidor.

Para aumentar la confiabilidad de nuestro servidor, necesita realizar requerimientos mínimos seguridad. Prohibir la autorización bajo el usuario root de los hosts remotos. Si hay una base de prueba y un usuario anónimo, debe eliminarlos del servidor. Para facilitar la tarea, use el guión:

Mysql_secure_instalation

Tipo de almacenamiento predeterminado

Si necesita cambiar el tipo de almacenamiento predeterminado, agregue las siguientes líneas al archivo my.cnf:

Default-Storage-Motor \u003d InnoDB

Asegúrese de que Mariadb use las tablas de innoves predeterminadas. Para hacer esto, ejecute el comando:

Mostrar motores;

Crear un usuario y una base de datos de Mariadb

Para crear un usuario en Mariadb, use el comando a continuación:

Crear usuario "user_name" @ "localhost" identificado por "contraseña";

Crear una nueva base de datos:

Crear base de datos de base de datos_name;

Cumpliremos al usuario User_Name a la base de datos de DatabaseName:

Grantan todos los privilegios en la base de datos_name. * Para "user_name" @ "localhost";

Ahora necesitas actualizar todos los privilegios:

PRIVILEGIOS DE AJUSTE.

Para ver los privilegios, ejecute el comando:

Mostrar subvenciones para "user_name" @ "localhost";

Registros binarios

Mariadb registra todos los cambios en la BD en la revista binaria, es necesario para la operación del mecanismo de replicación. Si no realizó copias de seguridad o están desactualizadas, se pueden usar registros binarios para recuperar datos. Sin embargo, no hay garantía de que los datos sean restaurados total o parcialmente. El éxito dependerá del tamaño, el tiempo de almacenamiento de registros binarios, las frecuencias de la bolsa.

Para deshabilitar los registros binarios, comente en las cadenas en el archivo my.cnf:

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

Voy a instalar MARIADB SSL (Capa Secure Sockets) también conexiones seguras Desde el cliente MySQL y las aplicaciones PHP. ¿Cómo habilitar SSL para el cliente del servidor y la mariadb trabajando en un sistema Linux o UNIX?

Mariadb - servidor de base de datos que ofrece funcionalidad Inclinado para el servidor MySQL.

Mariadb fue creado por algunos de los autores originales de MySQL, utilizando el estado más amplio de los desarrolladores gratuitos y el otro software fuente abierta. Además de las funciones básicas de MySQL, Mariadb ofrece un rico conjunto de mejoras de funciones, incluidos mecanismos de almacenamiento alternativos, optimización de servidores y otras correcciones. En esta guía voy a hablar sobre cómo configurar el servidor Mariadb usando SSL y cómo instalar conexiones seguras Uso de los scripts de consola y php.

Al crear certificados SSL, es importante usar 192.168.1.100 como un nombre estándar.

Paso 1 - Instalación Mariadb

Ingrese el comando de acuerdo con su opción Linux o UNIX.

Instalación del servidor / cliente de MariaDB en Ubuntu / Debian Linux

Ingrese uno de los siguientes comandos: comando APT-GET o APT Command:

$ sudo apt-get install mariadb-server mariadb-cliente

Instalación del servidor / cliente de MariaDB en CentOS / RHEL / FEDORA LINUX

Ingrese el siguiente comando yum:

$ sudo yum install mariadb-server mariadb

Para los usuarios de Fedora Linux, debe ingresar al comando DNF:

$ sudo dnf instalar mariadb-server mariadb

Instalación del servidor / cliente de MariaDB en Arch Linux

Ingrese el siguiente comando pacman:

$ sudo pacman -s mariadb

Instalación del servidor / cliente de MariaDB en FreeBSD UNIX

Para instalar el puerto, ejecute:

# CD / USR / PUERTOS / BASES DE DATOS / MARIADB100-Server / && Make Instale Clean # CD / USR / Puertos / Bases de datos / MariaDB100-Client / && Hacer instalar instalar

Para agregar un paquete binario, ingrese:

# PKG instale MariaDB100-Server MariaDB100-Cliente

Paso 2 - Asegure la instalación segura de Mariadb

Ingrese el siguiente comando:

$ mysql_secure_instalation

Figura .01: Confine la instalación de Mariadb

Paso 3 - Crea CERTIFICADO DE CA

Cree un directorio llamado SSL IN / ETC / MYSQL / directorio:

$ CD / ETC / MYSQL $ SUDO MKDIR SSL $ CD SSL

Valor: El valor de nombre estándar (nombre común) utilizado para los certificados de servidor y cliente debe diferir del nombre estándar (nombre común) utilizado para el certificado de CA. Para evitar cualquier problema, los instalo de la siguiente manera:

Nombre estándar CA: Mariadb admin.
Nombre del servidor estándar: Servidor de mariadb
Nombre del cliente estándar: Cliente de Mariadb.

Ingrese el siguiente comando para crear una nueva clave CA:

$ sudo openssl gnersa 2048\u003e ca-key.pem

Ejemplos de posibles conclusiones de datos:


Figura 10: Creación de una llave CA

Ingrese el siguiente comando para crear un certificado usando esta tecla:

$ sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
Figura 03: Uso de la tecla CA, genera CAR Certificado para Mariadb

Ejemplos de posibles conclusiones de datos:

Ahora tienes que tener dos archivos siguientes ::

  1. /etc/mysql/ssl/ca-cert.pem - Archivo de certificado para la autoridad de certificación (Autoridad de certificación (CA)).
  2. /etc/mysql/ssl/ca-key.pem - Fichero clave para el Centro de Certificación (Autoridad de certificación (CA)).

Voy a usar ambos archivos para crear certificados de servidor y cliente.

Paso 4 - Creación de un certificado de servidor

Para crear una tecla de servidor, ejecute:

$ sudo openssl req -newkey RSA: 2048 -Days 365000 -Nodes -KeyOut Server-Key.pem -out Server-req.pem

Ejemplos de posibles conclusiones de datos:


Figura 04: Creación de una tecla de servidor para el servidor mariadb

Luego maneje la tecla del servidor RSA, ingrese:

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

Ejemplos de posibles conclusiones de datos:

Escribiendo la tecla RSA

Finalmente, firme el certificado del servidor, para esto, ejecute:

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

Ejemplos de posibles conclusiones de datos:

Signature OK Asunto \u003d / C \u003d AU / ST \u003d SOME-ESTADO / O \u003d WIDGITS DE INTERNET PTY LTD / CN \u003d MARIADB Server Obteniendo CA Llave privada

Ahora necesitas aparecer archivos adicionales:

  1. /etc/mysql/ssl/server-cert.pem. - Archivo de certificado de servidor MariaDB.
  2. /etc/mysql/ssl/server-ey.pem - Archivo de teclas del servidor MariaDB.

Debe usar al menos dos archivos en el servidor de Mariadb y cualquier otro nodo que va a usar para el tráfico de clúster / replicación. Estos dos archivos protegerán la conexión en el lado del servidor.

Paso 5 - Creación de un certificado de cliente

Cliente MySQL, y aplicación PHP / PYTHON / PERL / RUBY Utilizará el certificado del cliente para proteger la conectividad del cliente. Debe establecer los siguientes archivos en todos sus clientes, incluido un servidor web. Para crear una clave de cliente, ejecute:

$ sudo openssl req -newkey rsa: 2048 -days 365000 -Nodos -Keeut Client-Key.pem -out Client-req.pem

Ejemplos de posibles conclusiones de datos:


Figura 05: Creación de una clave de cliente para el servidor de Mariadb

Luego maneje la tecla RSA Client, para esta entrada

$ sudo openssl rsa -in client-key.pem -out client-key.pem escribiendo la tecla RSA

Finalmente, firme el certificado del cliente, para esto, Inicie:

$ 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

Ejemplos de posibles conclusiones de datos:

Signature OK Asunto \u003d / C \u003d AU / ST \u003d ALGUIENTE PTY LTD / CN \u003d CLIENTE DE MARIADB CONSEGUIR CA

Paso 6 - ¿Cómo verificar los certificados?

Ingrese el siguiente comando para verificar los certificados para asegurarse de que todo se haya creado correctamente:

$ OpenSSL Verify -Cafile CA-CERT.PEM Server-cert.pem Client-cert.pem

Ejemplos de posibles conclusiones de datos:

Servidor-cert.pem: OK Client-cert.pem: OK

No debe haber errores, y debe obtener una respuesta OK para los certificados de servidor y cliente.

Paso 7: configure el servidor Mariadb para usar SSL

Editar archivo. vi /etc/mysql/mariadb.conf.d/50-server.cnf o /etc/mysql/mariadb.cnf de la siguiente manera:

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

Añadir de la siguiente manera:

### MySQL Server ### ## Asegurando la base de datos con la opción SSL y los certificados ## ## No hay control sobre el nivel de protocolo utilizado. ## ## mariadb usará tlsv1.0 o mejor. ## 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 / Tecla del servidor. PEM.

Guarde y cierre el archivo. Puedes reiniciar a Mariad como sigue:

$ sudo /etc/init.d/mysql reinicio

$ Sudo systemctl reiniciar MySQL

Paso 8: configure el cliente de Mariadb para usar SSL

Configure el cliente de Mariadb como 192.168.1.200 para usar SSL (Agregar a /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf.):

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

Añadir a la sección:

## Configuración del cliente MySQL ## SSL-CA \u003d / etc / mysql / ssl / cart.pem ssl-cert \u003d / etc / mysql / ssl / client-cert.pem ssl-key \u003d / etc / mysql / ssl / cliente- KEY.PEM ### Esta opción está deshabilitada por defecto ### ### SSL-Verify-Server-Cert ###

Guarde y cierre el archivo. Debe copiar los archivos /etc/mysql/ssl/ca-cert.pem, /etc/mysql/ssl/client-cert.pem. y /etc/mysql/ssl/client-key.pem para todos sus clientes. Por ejemplo:

{[Correo electrónico protegido]): rsync /etc/mysql/ssl/ca-cert.pem /etc/mysql/ssl/client-cert.pem /etc/mysql/ssl/client-key.pem \\ [Correo electrónico protegido]: / etc / mysql / ssl

Paso 9 - Cheque

Ingrese el siguiente comando:

$ Mysql -u (nombre de usuario: aquí) -h (servidor-ip-here) -p (db-name-here) $ mysql -u root -h 192.168.1.100 -p MySQL $ MYSQL -U raíz -H 127.0 .0.1 -p mysql

Ingrese las siguientes variables Mostrar como '% SSL%'; Comando en Mariadb [(Ninguno)]\u003e Fila:

Mariadb [(Ninguno)]\u003e Mostrar variables como "% ssl%";

O ejecute el comando de estado:

Mariadb [(ninguno)]\u003e estado;

Ejemplos de posibles conclusiones de datos:

Figura 06: Establecimiento de una conexión segura con la consola y revisándolo

Compruebe las conexiones SSL y TLS. El siguiente comando debe completar la falla, ya que SSL 3 no es compatible y, en consecuencia, no está configurado para usar:

$ Openssl s_client -connect 192.168.1.100:3306 -ssL3 140510572795544: Error: 140A90C4: Rutinas SSL: SSL_CTX_NEW: NULL MÉTODO SSL PASADO: SSL_LIB.C: 1878:

Compruebe 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

Ejemplos de posibles conclusiones de datos:

Conectado (00000003) --- No hay certificado de pareado disponible --- Nombre del certificado de cliente que se envíen --- el apretón de manos SSL ha leído 5 bytes y ha escrito 7 bytes --- Nuevo, (Ninguno), el cifrado es (Ninguno) es una renegociación segura. No compatible con compresión: ninguna expansión: Ninguna Ninguna SESIÓN SSL negociada: Protocolo: TLSV1 CIPHER: 0000 SESIÓN-ID: SESIÓN-ID-CTX: Master-Key: Key-Arg: Ninguno PSK Identidad: Ninguno PSK Identity Sugerencia: Ninguno SRP Nombre de usuario: Ninguna hora de inicio: 1485335036 Tiempo de espera: 7200 (SEC) Verifique el código de retorno: 0 (OK) ---

Cómo leer un archivo de captura de paquete TCPDUMP para verificar una conexión segura

Finalmente, puede usar el analizador de paquetes de comandos TCPDUMP, que se ejecuta en la línea de comandos para ver el puerto 3306:

$ sudo tcpdump -i eth0 -s 65535 PORT 3306 -W /TMP/MYSQL.PCAP

Ahora conecte a su aplicación PHP / PYTHON / PERL / RUBY Mysql o aplicación de consola Mysql:

$ MYSQL -U BAR -H 192.168.1.100 -P FOO

Usa tcpdump para verificar que no información de texto, incluidas las contraseñas, no intercambia entre el servidor y el cliente. Esto se hace de la siguiente manera:

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

Paso 10 - Agregar usuario al servidor Mariadb

Ingrese el siguiente comando:

$ mysql -u root -p

Crear una base de datos llamada Foo:

Crear base de datos foo;

Cree un usuario con la barra para Estring para una base de datos llamada FOO:

Grant todo en Foo. * A [Correo electrónico protegido] Identificados por "MyPassword" requieren SSL;

Proporcionar acceso desde un servidor web publicado en 192.168.1.200:

Grant todo en Foo. * A [Correo electrónico protegido] Identificados por "MyPassword" requieren SSL;

Crea una conexión SAFE BASH Shell

Puede iniciar sesión con la consola de la siguiente manera:

$ MySQL -U BAR -P -H 192.168.1.100 FOO

Crea una conexión segura de Python.

Primero instale la interfaz Pitón Para mysql:

$ sudo apt-get install python-mysql.connector

O por Python v3.x.

$ sudo apt-get install python3-mysql.connector

Aquí hay un ejemplo de un código Python para una conexión segura utilizando:

#! / usr / bin / Python Import MySQLDB SSL \u003d ("CERT": "/etc/tysql/ssl/client-cert.pem", "Clave": "/etc/mysql/ssl/client-key.pem" ) Conn \u003d mysqldb.connect (host \u003d "192.168.1.1.100", usuario \u003d "barra", passwd \u003d "mypasswordword", SSL \u003d SSL) Cursor \u003d Conn.cursor () cursor.execute ("Mostrar estado como" SSL_CIPHER "" ) Imprimir cursor.fetchone ()

Número de #! / USR / bin / Python # Nota (ejemplo es válido para Python V2 y V3) de __Future__ Import print_function Importar SYS Importar MySQL.Connector desde mysql.connector.constracts Importar ClientFlag config \u003d ("Usuario": "Barra", " Contraseña ":" MyPassword "," HOST ":" 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-ey.pem ",) cnx \u003d mysql.connector.connect (** config) cur \u003d cnx.cursor (tamponado \u003d Cierto) cur.execute ("Mostrar estado como" ssl_cipher ") impresión (Cur.fetchone ()) cur.CROSE () CNX.CROSE ()

Ejemplos de posibles conclusiones de datos:

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

Hoy en día, asumiremos una de las roles más buscadas de cualquier servidor Linux, que ocupan un papel de liderazgo en este segmento funcional. Configuración servidores web CentOS 7 en la bolsa de base HTTP popular apache.Interprete pHP. y servidor de base de datos mysql, o brevemente - instalar lámpara. Este paquete es la configuración más popular hoy en día entre el alojamiento web. Aunque la misma compañía, ella viene al talón recientemente, pero sobre la base de Nginx, es posible que ya tenga más adelante, no tengo datos precisos sobre esto.

Este artículo es parte del ciclo unificado del artículo sobre el servidor.

Servidor web en CentOS 7

Entonces, nuestra web centros Server constará de tres componentes principales - servidor HTTP apache., intérprete de lenguaje de programación pHP.y servidor de base de datos mysql. Nos familiarizaremos un poco con cada uno de ellos:

  1. Apache. - Servidor HTTP o Simply Web Server Apache. Es un software multiplataforma que admite casi todos populares. os, incluyendo ventanas. Se aprecia principalmente por su confiabilidad y flexibilidad de la configuración, que se puede ampliar significativamente al conectar módulos, que hay un gran conjunto. De las desventajas, existen mayores demandas de recursos, en comparación con otros servidores. Para mantener la misma carga que, por ejemplo, NGINX, Apache no podrá tener parámetros de hierro similares.
  2. PHP. - Idioma de programación de propósito general, que se aplica más a menudo en el desarrollo web. Hasta la fecha, este es el idioma más popular en este ámbito de aplicación. Apoyado por casi todos los proveedores de alojamiento.
  3. Mysql - Sistema de administración de base de datos. Ganó su popularidad en el entorno de pequeñas y medianas aplicaciones, que son muchas en la web. Entonces, como PHP, hoy es la base de datos más popular utilizada en los sitios web. Apoyado por la mayoría de los alojamiento. En los centros en lugar de los conjuntos de MySQL mariadb. - Rama MySQL. Son totalmente compatibles, es posible en cualquier momento la transición de un DBMS a otra y de vuelta. Últimamente Conocí la información que Mariadb Wars MySQL y la gente se mueven lentamente. En la práctica, no pasó a observar esto, ya que nunca trabajé con bases de datos cargadas. Y en condiciones normales, la diferencia no es notable.

El servidor experimental actuará, las siguientes características:

UPC2 núcleos
Memoria8 GB.
Disco150 GB SSD.

Estos son parámetros de configuración personalizados. No son óptimos por el precio, pero necesitaba exactamente eso.

Quiero aclarar inmediatamente que trato con la configuración predeterminada básica. Para mejorar la velocidad, mejorar la confiabilidad y la facilidad de uso, debe instalar varias herramientas más, lo que le diré por separado. En general, será suficiente para organizar un servidor web, lo que hay en este artículo.

Si aún no tiene un servidor, debe ejecutar. Y si el servidor ya está instalado, no lo olvide. Recomiendo prestar atención al entorno, porque hay mucho. información útilque, como parte de este artículo, no doy ninguna actualización del sistema, una configuración de firewall, instalando el editor y mucho más.

Configurar Apache en Centlos 7

En Centlos, el servicio Apache se llama. httpd.. Cuando me familiaricé con esta distribución, era inusual. En FreeBSD y Debian, con quien he trabajado, el servicio del servidor web se llamó Apache, aunque en algún lugar me di cuenta, parece en Fruch que el archivo de configuración tiene el nombre httpd.conf. Hasta ahora, no sé por qué ambos nombres se propagan. Me alegraría de que alguien compartiera conmigo información sobre este proyecto de ley en los comentarios.

Ahora proceda a instalación Apache. En Centlos 7 esto se hace muy simple:

# yum install -y httpd

Añadir Apache a AutoLoad:

# Systemctl habilitar httpd

Lanzamos Apache en Centos 7:

# Systemctl iniciar httpd

Compruebe si el servidor comenzó:

# Netstat -tulnp | GREP httpd tcp6 0 0 :::: 80 ::: * Escuchar 21586 / httpd

Todo está en orden, Hoving en el puerto 80, como debería ser. Ya, puede ir a la dirección HTTP: // IP y ver la imagen:

Ahora vamos a configurar Apache. Prefiero la siguiente estructura de alojamiento web:

Crear una estructura similar:

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

Incluyendo Conf.d / *. Conf

Si no, inconsumamos y vamos al directorio /etc/httpd/conf.d. Con i tire de un sitio web1.ru.conf:

ServerName Site1.RU Serveralias www.site1.ru Documentroot /Web/Site1.RU/www Opciones HallowsyMlinks Los alemán, todos lo requieren, todos bien otorgados. ERRORLOG /WEB/SITE1.RU/LOGS/ERROR.LOG CUSTOMLOG /WEB/SITE1.RU/LOGS/Access.log común

Reiniciar Apache en Centlos

Ahora hacemos reiniciar Apache:

# SystemCTL Reinicie httpd

Si hay algún error, consulte Apache / VAR / LOG / httpd / error_log log. Si todo está en orden, entonces compruebe si nuestro host virtual es normal. Para hacer esto, cree en la carpeta. /Web/site1.ru/www archivo index.html Siguiente contenido:

# MCEDIT /WEB/SITE1.RU/www/index.html

Apache está configurado!

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

192.168.1.25 Site1.RU.

donde 192.168.1.25 Dirección IP de nuestro servidor web.

Ahora, en el navegador, reclutamos la dirección http://site1.ru. Si ves una foto:

así que todos estaban configurados correctamente. Si hay errores, vaya a ver registros. Y en este caso, no un registro común httpd, sino el registro de errores de registro anfitrión virtual en /web/site1.ru/logs/error.log.

Inmediatamente, le prestaré su atención a la rotación de los registros de los hosts virtuales. A menudo sucede que si no confundes inmediatamente, entonces se olvida. Pero si el sitio está con buena asistencia, los registros crecerán rápidamente y pueden tomar mucho espacio. Es mejor configurar la rotación de los registros del servidor web inmediatamente después de la creación. Haz que no sea difícil.

Para configurar la rotación de los registros de host virtuales, debe editar el archivo /etc/logrotate.d/httpd. Se crea durante la instalación de Apache e incluye la configuración de rotación. ubicación estándar Registros. Y dado que hemos transferido los registros de cada host virtual a una carpeta individual, debe agregar estas carpetas a este archivo:

# mCedit /etc/logrotate.d/httpd. /Web/*/logs/*.log. / VAR / LOG / HTTPD / * Log (Missingok NotifEmpty SharedScripts retarthcompress postrotate / bin / systemctl Reload httpd.service\u003e / dev / null 2\u003e / dev / null || True Thinkcript)

En principio, el servidor web más simple está listo y se pueden usar. Pero es poco probable que haya sitios con contenido estático, que sea suficiente para soportar solo HTML. Así que continuaremos nuestra configuración.

Si necesita organizar el trabajo del sitio por el protocolo. https, Aproveche la guía del software.

Instale PHP en Centlos 7

Para soportar contenidos de contenido dinámico. el siguiente paso. Instalación pHP. En los centros 7:

# Yum install -y php

Y los siguientes componentes más útiles. Instalamos popular módulos para PHP.:

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

Vamos a reiniciar Apache:

# SystemCTL Reinicie httpd

Cree un archivo en un directorio de host virtual y marque trabajo php:

# MCEDIT /WEB/SITE1.RU/www/index.php. # Chown Apache. /Web/site1.ru/www/index.php.

Vamos a la dirección http://site1.ru/index.php

Debe ver la salida de información sobre PHP. Si algo está mal, hay algunos errores, consulte el registro de errores de host virtual, los errores de PHP también estarán allí.

Donde se encuentra php.ini

Después de la instalación, la pregunta a menudo surge, ¿y dónde está almacenada la configuración de PHP? Tradicionalmente, están en un solo archivo de configuración. En los centros. php.ini se encuentra en / etc, justo en la raíz. Allí puede editar la configuración global para todos los hosts virtuales. Los ajustes personales de cada sitio se pueden realizar por separado en el archivo de configuración del host virtual que hemos hecho antes. Vamos a agregar varias configuraciones útiles allí:

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

Añadir a lo más fácil, antes.

PHP_ADMIN_VALUE Fecha.TimeZone "Europa / Moscú" PHP_ADMIN_VALUE MAX_EXECURY_TIME 60 PHP_ADMIN_VALUE UPLOAD_MAX_FILESIZE 30M

Para aplicar las configuraciones, necesita para reiniciar Apache. Ahora, en la salida PHPINFO, puede ver el cambio en la configuración.

Actualización a PHP 5.6 en Centlos 7

En nuestro ejemplo, instalamos en los centros 7. pHP 5.4. Del repositorio estándar. Y que si necesitamos una versión más nueva, por ejemplo pHP 5.6.? En este caso, necesitas realizar actualizar PHP..

# wetget http://rpms.remirepo.net/enterprise/Remi-Release-7.RPM # RPM -UVH REMI-LIGHT-7 * .RPM

Ahora actualizar PHP 5.4 a PHP 5.6:

# Yum --enablerepo \u003d REMI, REMI-PHP56 Instale PHP PHP-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Reinicie Apache:

# SystemCTL Reinicie httpd

Y vamos a mirar la salida phpinfo - http://site1.ru/index.php

Excelente, actualizamos PHP a la versión 5.6.

Instalación de MySQL en CentOS 7

Como ya he escrito anteriormente, la horquilla MySQL se está convirtiendo cada vez más. mariadb.. Tiene total compatibilidad con MySQL, por lo que puede usar con seguridad. Prefiero usarlo.

Instale mariadb. en los centros 7:

# Yum install -y mariadb mariadb-server

Añadimos mariadb a autorun:

# SystemCTL Habilitar mariadb.service

Ejecutar mariadb:

# Systemctl iniciar mariadb

Comprobando, comenzó o no:

# Netstat -tulnp | GREP MYSQLDL TCP 0 0 0.0.0.0:3306 0.0.0.0:* Escucha 22276 / MySQLDLD

Tenga en cuenta que incluso se muestra en el sistema como servicio MySQLDL. Ahora inicie el script de configuración de seguridad estándar:

# / usr / bin / mysql_secure_instalation

No daré toda la producción de este guión, todo es bastante simple y comprensible. Primero, especifica una contraseña para la raíz (contraseña actual después de instalar vacía), luego eliminar los usuarios anónimos, apague la capacidad de conectar la raíz de forma remota, elimine el usuario de la prueba y la base de datos.

Archivo ajustes Mysql / mariadb se encuentra en /etc/my.cnf.. Para la operación normal, hay suficientes configuraciones predeterminadas. Pero si decide cambiarlos, no olvide reiniciar el servicio de base de datos.

Reiniciando a mariadb./ MySQL en CENTOS 7:

# Systemctl reiniciar mariadb

Eso es todo. El funcionario básico del servidor web en CENTOS 7 está configurado.

Estaré encantado de comentar y comentaré sobre el tema del artículo. Recuerdo que este artículo es parte de un solo ciclo de un artículo sobre el servidor.

Taller en Kali Linux

El curso para aquellos que están interesados \u200b\u200ben realizar pruebas para penetrar y querer practicarse prácticamente en situaciones cercanas a Real. El curso está diseñado para aquellos que no tienen experiencia en seguridad de información. La formación dura de 3 meses a 4 horas a la semana. ¿Qué te dará este curso?
  • Busque y opere vulnerabilidades o configuraciones de defectos en redes corporativas, sitios web, servidores. Centrarse en la Puntería de Windows y la Seguridad del Segmento Corporativo.
  • Estudio de herramientas como metasploit, sqlmap, Wireshark, Burp Suite y muchos otros.
  • El desarrollo del kit de herramientas de Kali Linux en la práctica, con él debería haber cualquier especialista en IB.
Compruebe usted mismo en la prueba de introducción y vea más del programa de software.

A partir de la versión de Debian del noveno, el popular sistema de gestión de la base de datos MySQL fue reemplazado por Mariadb. Este DBMS es una sucursal de MySQL creado por sus desarrolladores iniciales que fueron infelices. políticas con licencia Oracle y temor de que MySQL pueda convertirse en un producto más cerrado. Mariadb es totalmente compatible con MySQL, lo que significa que el reemplazo será lo más transparente posible y todas las aplicaciones que trabajaron con MySQL también funcionarán con Mariadb. Y consideraremos algunas características de esta transición.

En primer lugar, digamos que todos los equipos, instrucciones, scripts, etc. etc. Lo que trabajó anteriormente con MySQL también funcionará con Mariadb, no se deben realizar cambios y muchos usuarios simplemente pueden no notar que trabajan con otro DBMS.

Pero también hay diferencias, en primer lugar, se relacionan con la seguridad y fueron hechas por el equipo de Debian. Una de las principales diferencias es que Mariadb es parte de Debian 9. no solicita una contraseña de root al instalar. Después de eso, el usuario permanece en alguna confusión, ¿y qué hacer a continuación? Los aceites en el incendio vertieron el hecho de que la mayoría de las instrucciones en Internet están considerando que la administración de MySQL puramente a través del Panel de control PHPMYAdmin, y que no tiene que trabajar las habilidades en el comando, los usuarios de la solicitud de comando están en estado particularmente indefensos.

"Cómo instalar la contraseña de root en mariadb"En diferentes variaciones es una de las populares. consultas de búsquedarelacionado con este DBMS. Pero no cortaremos el hombro, y primero nos ocuparemos de los desarrolladores de Debian y por qué.

El mayor problema de seguridad de MySQL es que las credenciales de acceso a la base de datos se almacenan en los archivos de configuración de las aplicaciones web en el texto abierto. Teniendo en cuenta el hecho de que muchos usuarios no se molestan y hacen que el dueño de todas las bases de datos del superusuario de la raíz, el problema se vuelve bastante grave. Y si considera que el acceso a los archivos de la aplicación web puede tener una gama bastante amplia de personas, incluidos no solo los empleados, sino también los freelancers, se vuelve completamente mala.

Por lo tanto, en Debian para el superusuario de la raíz, Mariadb proporciona autenticación a través de un zócalo UNIX y se implementa de tal manera que el acceso ilimitado a Mariadb solo puede recibir un sistema de superfolder y solo en el modo de línea de comandos. Desde el punto de vista de la seguridad, es muy correcto, ya que ahora los usuarios de terceros y las aplicaciones web no podrán acceder a los derechos de la raíz, incluso si de alguna manera aprendieron la contraseña.

Todo esto es bueno, pero ¿qué hacer con el usuario habitual que puso a Mariadb a su servidor y quiere verter el volcado de la base del sitio? En primer lugar, usted tiene un usuario, incluso no uno. Para hacer esto, elevar sus derechos en el sistema a rootear a través de su o sudo y ejecutar el comando:

MySQL -U raíz.

Después de eso, se encontrará en la línea de comandos de Mariadb. Para crear un nuevo usuario para ejecutar el comando:

Crear usuario "Andrey" @ "localhost" identificado por "contraseña";

En nuestro ejemplo, creamos un usuario. andrey. con contraseña contraseña..

Ahora lo nombraremos bien. En primer lugar, claramente tomamos los derechos a las bases de otras personas:

donación de uso en *. * A "Andrey" @ "localhost";

Y emitiré todos los derechos a la base de datos con la plantilla de Andrey_Basename, este enfoque le dará automáticamente los derechos a todas las bases nuevas que el usuario creará.

conceder todos los privilegios en `Andrey \\ _%`. * A "Andrey" @ "localhost";

Tenga en cuenta que la plantilla está envuelta con símbolos. gravis (`)que está en la llave con la letra rusa E.

Sólo sigue siendo reiniciar los privilegios y salir de la consola de Mariadb.

Privilegios de descarga;
dejar;

Después de eso, puede regresar a las herramientas familiares para trabajar con MySQL / Mariadb, por ejemplo, PhpMyAdmin:


tenga en cuenta que este métodoEn contraste con las recomendaciones generalizadas para incluir la raíz en Mariadb, le permite mantener la mayor seguridad del sistema, lo que es importante si el acceso a TI tendrá terceros. Tampoco conseguimos mantener todas las bases de datos bajo un usuario, idealmente un sitio (u otra aplicación): un usuario, lo permitirá sin costo adicional Tiempo y esfuerzo para cambiar la contraseña en caso de su compromiso o su oportunidad potencial (digamos que se sintió atraído por trabajar con el sitio de Freelancer).

Instalación de Mariadb del repositorio de desarrolladores.

El sistema operativo Debian tiene muchas ventajas, una de ellas, por lo que es más probable que sea la estabilidad. Configure y olvidó: esto es justo acerca de él, pero el lado giratorio de este enfoque es el conservadurismo, muchos paquetes no son tan versiones frescasCómo a veces me gustaría. En este momento, Mariadb 10.1 viene con Debian 9, mientras que las versiones actuales son 10.2 y 10.3.

Así que si necesita algunas nuevas funciones de Mariadb o simplemente desea utilizar lo último versiones estables Software, puede instalar Mariadb directamente desde el repositorio del desarrollador. Esto es fácil, pero antes de cualquier acción potencialmente peligrosa, debe hacer una copia de seguridad completa de su servidor.

Para hacer esto, ejecute el siguiente comando en la consola del servidor con el superusuario:

Mysqldump -u Root - Todas las bases de datos\u003e ~ / my_backup.sql

Este comando guardará todas las bases de datos de Mariadb, incluido el servicio, el archivo my_backup.sql. en directorios / raíz. Y si algo sale mal, siempre puede restaurar el estado de su servidor al momento de crear una copia.

Puede obtener instrucciones de instalación en la página especial del sitio web oficial.

Se hace muy conveniente: elige su distribución, su versión, versión de DBMS y el espejo, después de lo cual obtiene las instrucciones terminadas para la instalación. Para ahorrarle tiempo, lo damos aquí (instalaremos mariadb 10.3 en Debian 9):

Apt-Get Instale Software-Properties-Common Dirmngr
aPT-KEY ADV --Recv-Keys --keyserver Keyserver.ubuntu.com 0xf1656f24c74cd1d8
add-apt-Repository "DEB http://mirror.mephi.ru/mariadb/repo/10.3/debian stretche main"

Para que entiendas que haces comentarios brevemente sobre estos comandos. El primero de ellos agrega las dependencias necesarias al sistema, el segundo establece la clave a la que se firman los paquetes y el tercero, finalmente se suma al propio repositorio.

Ahora actualiza la lista de paquetes:

Actualización de apt-get

e instale una nueva versión de mariadb:

Apt-get instale mariadb-server

Tenga en cuenta que el administrador por lotes eliminará correctamente versión previa y establecer una nueva, todas las bases de datos continuarán y continuarán trabajando con nueva versión Mariadb.

El segundo punto, al instalar Mariadb de los desarrolladores, el instalador le pedirá que establezca la contraseña de root, como en esta versión, la autenticación a través de un zócalo UNIX no se usa.

Alguien puede deleitar esto, pero si logró comprender y evaluar todas las ventajas del método de revelador de debanos, habrá una pregunta razonable: ¿es posible regresar como fue? Lata. Para este descubre archivo de configuración. /etc/mysql/mariadb.conf.d/50-server.cnf. y añadir a la sección Línea:

Plugin-load-add \u003d auth_socket.so

Reinicie el DBMS:

Servicio MySQLDLD Reinicie.

Vamos a tratar de entrar cuenta Usuario normal:

A pesar del hecho de que el sistema nos preguntará la contraseña y lo corregiremos correctamente, todavía nos negaremos el acceso a nosotros. Repetiremos el intento a través de PHPMYAdmin:

Y aquí no tendremos éxito. ¡Excelente! Ahora, el acceso con los derechos del superusuario de DBMS tiene solo un sistema de superusuario y no necesitamos preocuparnos de que la contraseña de la raíz mariadb sea conocida por cualquier persona.



¿Te gustó el artículo? Compártelo