PERMITIR CONEXIÓN REMOTA A MYSQL ENTRE 2 SERVIDORES

No es raro alojar bases de datos y servidores web en el mismo servidor. Sin embargo, muchas organizaciones se están moviendo ahora a un entorno más distribuido.
Un servidor de base de datos independiente puede mejorar la seguridad, el rendimiento del hardware y permitirle escalar los recursos rápidamente.En tales casos de uso, aprender a administrar recursos remotos de manera efectiva es una prioridad.

Prerrequisitos
Implementación MySQL en servidor Linux Debian 12:
1.Hetznet he usado el servidor Debian 12 (CPX11 – SSD: 40 GBG, RAM: 2 GB, vCPU: 2)
2. Editar el archivo de configuración de MySQL.
3. Configurar el cortafuegos.
4. Conectarse a un servidor MySQL.

Paso 1: Inicia sesión en el servidor de Debian utilice el siguiente comando para iniciar sesión en el servidor.
ssh username@ip_de_servidor -i llave_privada -p 22
Paso 2: Actualizaremos los repositorios del servidor.
apt update
apt dist-upgrade
Paso 3: Cambiamos la zona horaria.
dpkg-reconfigure tzdata

Paso 4: Agregamos un usuario nuevo

adduser techcompsolutions

Paso 5: Asignamos al usuario al grupo SUDO

adduser techcompsolutions sudo

Paso 6: Crearemos el directorio .SSH

mkdir /home/techcompsolutions/.ssh

Paso 7: Generamos una nueva lleve de acceso en nuestro pc.

ssh-keygen

Paso 8: Crearemos el archivo para almacenar la nueva llave publica generada.

nano /home/techcompsolutions/.ssh/authorized_keys

Paso 9: Verificamos la llave publica almacenada.

cat /home/techcompsolutions/.ssh/authorized_keys

Paso 10: Recargamos el servicio SSH

systemctl reload ssh.service

Paso 11: Nos conectamos a nuestro servidor con la ueva llave privada.

ssh techcompsolutions@ip_servidor -i llave_nueva -p 22

Paso 12: Instalamos el FireWall UFW

sudo apt install ufw

Paso 13: Cambiamos el parámetro del archivo sshd_config buscamos y cambimos.

sudo nano /etc/ssh/sshd_config
Port 8226
PermitRootLogin no
PasswordAuthentication no

Paso 14: Recargamos el servicio SSH.

sudo systemctl reload ssh.service

Paso 15: Habiliotamos el puerto SSH 8226 en el FireWall.

sudo ufw allow "8226"

Paso 16: Recargamos el servicio SSH.

sudo systemctl reload ssh.service

paso 17: Habilamos el FireWall.

sudo ufw enable

Paso 18: Verificamos el estado del FireWall y los puertos habilitados.

sudo ufw status verbose

Paso 19: Nos desconectamos y volvemos a conectarnos con el nuevo puerto.

ssh techcompsolutions@ip_servidor -i llave_nueva -p 8226

Paso 20: Instalamos Fail2Ban y Paquetes adicionales.

sudo apt install fail2ban
sudo apt install python3-systemd

Paso 21: Editamos el archivo de configuración Fail2Ban.

nano /etc/fail2ban/jail.d/defaults-debian.conf

Paso 22: Agregamos la siguiente linea.

backend = systemd

Paso 23: Creamos el archivo JAIL.LOCAL

sudo nano /etc/fail2ban/jail. Local

Paso 24: Agregamos en el archivo el siguiente bloque de linea.

[DEFAULT]
bantime = 10h
maxretry = 3

[sshd]
enabled = true

[ssh-ddos]
enabled = true
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3

Paso 25: Iniciamos Fail2Ban.

sudo systemctl start fail2ban.service

Paso 26: Reiniciemos el servicio SSH.

sudo systemctl reload sshd.service

Paso 27: Reiniciamos el servicio Fail2Ban.

sudo systemctl restart fail2ban.service

Paso 28: Verificamos el estado Fail2Ban.

sudo systemctl status fail2ban.service

Paso 29: Verificamos el estado las Jaulas.

sudo fail2ban-client status sshd

Paso 30: para instalar el motor de mysql 8

sudo apt update
sudo apt install -y gnupg wget
cd /tmp
wget https://repo.mysql.com//mysql-apt-config_0.8.26-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb
sudo apt update

Paso 31: instalaremos mysql server

sudo apt install -y mysql-server

Paso 32: Aseguramiento de nuestra instalación mysql 8#

sudo mysql_secure_installation

Paso 33: verificamos el estado mysql

sudo systemctl status mysql

Paso 34: Ingresamos a nuestro mysql#

mysql -u root -p

Paso 35: configuraremos nueva contraseña mysql

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Quito12345*-*ññ*-*';

Paso 36: Refrescamos los privilegios y salimos.

FLUSH PRIVILEGES;

Paso 37: Ingresamos a MYSQL con la nueva contraseña.

mysql -u root -p

password: Quito12345*-*ññ*-*

Paso 38: agregaremos una capa de seguridad MySQL

sudo nano /etc/fail2ban/jail.d/mysql.conf
[mysqld-auth]
enabled = true
filter = mysqld-auth
port = 3306
logpath = /var/log/mysql/error.log
maxretry = 3
bantime = 600

Paso 39: Editar el archivo de configuración de MySQL

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Paso 40: Agregamos el bloque de línea con la ip la cual daremos acceso
bind-address = 10.50.10.2,127.0.0.1
mysqlx-bind-address = 127.0.0.1
Paso 41: Reiniciar el servicio MySQL
sudo systemctl restart mysql
Paso 42: Configurar el cortafuegos para permitir la conexión remota de MySQL
sudo ufw allow from 10.50.10.3 to any port 3306

Paso 43: Configuramos una connexion de nuestro cliente Navicat hacia nuestro servidor MySQL

Paso 44: Configuramos la connexion de nuestro  MySQL en nuestro proyecto web .env 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *