- 12 de octubre de 2023
- techcompsolutionsec
- 0
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.
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
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 mysqlPaso 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