¿Conoces el Hosting Linode (Akamai)? Ya llevo unos 10 años alojando mis webs con ellos en sus VPS Linux «unmanaged«, tú te lo guisas, tú te lo comes), así que he decidido escribir unos cuantos tutoriales explicando todos los pasos para poner en marcha una web en un servidor web VPS en LINODE.
Al principio estaba dado de alta en su plan Linode 4 GB con las siguientes características (en 2017): 4 GB RAM, 2 CPU Cores, 48 GB SSD Storage, 3 TB Transfer, 40 Gbit Network In, 1000 Mbit Network Out y un coste de 20 $ mes. Toda una ganga si te fijas en la cantidad de RAM. Normalmente, te suelen ofrecer solo 2 GB de RAM en planes con este precio. En 2024, estoy en un plan Linode 16 GB de CPU compartida con 6 CPU, 320 GB, 8 TB de transferencia y 40/6 Gbps de entrada/salida por 96 $. Siguen teniendo un precio muy competitivo.
¡Ojo! ¿Han cambiado mucho las cosas desde que Akami compro Linode? Bueno, sigue la fusión. Han subido el precio de las instancias, aunque siguen estando por debajo del precio de otros proveedores como por ejemplo Digital Ocean.
A cambio, han añadido muchas localizaciones, entre ellas Madrid, España, y siguen mejorando sus procesadores y ancho de banda, además de añadir nuevas funcionalidades como el Cloud Firewall o el Object Storage. No va mal la cosa.
¿Planes? Tienen planes de CPU dedicada, compartida, instancias de alta memoria, GPU e instancias Prémium, cada una con su precio. ¿Para quién está indicada cada una?
- CPU compartidas (1 GB – 192 GB de memoria, 1 – 32 núcleos vCPU compartidos, 25 GB – 3840 GB de almacenamiento): servidores de desarrollo, servidores de ensayo, sitios web con poco tráfico, blogs personales y aplicaciones de producción que no se vean afectadas por la contención de recursos.
- CPU dedicadas (4 GB – 512 GB* de memoria, 2 – 64 vCPU dedicadas, 80 GB – 7200 GB de almacenamiento): sitios web de producción, bases de datos de alto tráfico y cualquier aplicación que requiera un uso sostenido del 100% de la CPU o que pueda verse afectada por la contención de recursos.
- Instancias Premium (4 GB – 512 GB* de memoria, 2 – 64 vCPU dedicadas, 80 GB – 7200 GB de almacenamiento): para aplicaciones empresariales críticas y sensibles a la latencia.
- Instancias de alta memoria (24 GB – 300 GB de memoria, 2 – 16 vCPU dedicadas, 20 GB – 340 GB de almacenamiento): para las bases de datos en memoria, los sistemas de caché en memoria, el procesamiento de big data y cualquier aplicación de producción que requiera una gran cantidad de memoria manteniendo los costes bajos.
¿Precios respecto a competidores? Digital Ocean o Upcloud son más caros en planes equivalentes. Linode (Akamai) tiene más o menos los mismos precios que Vultr. OVH tiene precios más bajos. Hetzner es el más barato de todos, pero no tiene tantas opciones en sus planes (aunque tiene la mejor relación calidad precio si solo quieres un servidor normal y corriente y no te importa que solo tenga ubicaciones en Alemania y Finlandia dentro de Europa). No voy a entrar en calidad de servidores, procesadores, discos duros y velocidad de red. En este artículo puedes ver la comparativa: https://techblog.nexxwave.eu.
En este artículo vas a encontrar la siguiente información:
- ¿Cómo se pone en marcha el servidor con Linode?
- Elegir distribución de Linux en Linode Hosting
- Acceder a tu Linode
- Actualizamos el sistema y creamos el hostname
- Configurar Timezone
- Añadimos una cuenta con permisos limitados
- Para ese nuevo usuario, utilizamos una SSH Key para acceder al servidor
- Modificamos algunos parámetros del Kernel (avanzado)
- Configuramos el servidor con Virtualmin/Webmin
- Actualizamos Rocky Linux con Virtualmin o DNF Automatic
- Como nos aseguramos que los servicios críticos del servidor funcionan
- Seguridad extra para tu servidor
- Varias versiones de PHP en tu servidor
- Backups
- Lish, la consola de recuperación de Akamai Linode
- Cloud Firewall de Linode
- Otras cosas
- Conclusión
¿Cómo se pone en marcha el servidor con Linode?
Primero más información de este hosting:
- Muchas regiones en todo el mundo, incluida España.
- Almacenamiento SSD
- ¿Qué sistema de virtualización utilizan? KVM (posiblemente el mejor que existe)
- Linode Manager: un panel de control de tu servidor realmente bien diseñado y con muchas opciones para controlar tu instalación
- Opción de backups automáticos
- Estadísticas detalladas de tu servidor
- Opción de pasar a un servicio «managed», pero es algo caro
- Nodebalancers: posibilidad de distribuir tu tráfico entre varios nodos para mantener tu web online en cualquier situación.
- Firewall en la nube
- VPC
- Creación de Volumes, Images
- Con Stackscripts, Object Storage o Kubernetes.
- DNS manager: muy intuitivo y sencillo de usar
- ¿Paneles de control que pueden instalar? El que quieras, pero lo haces tú mismo. Recomiendo Virtualmin/Webmin, que es totalmente gratuito.
- ¿Sistema Linux que instalan? Todos los que te puedas imaginar: Rocky Linux, Alma Linux, Ubuntu, Fedora, Debian, Alpine, Kali Linux…
- Con sus tutoriales vas a poder poner en marcha el servidor en menos de una hora. Su comunidad es muy activa.
- Vas a poder subir de plan o bajar sin mucha complicación
- Puedes pagar con tarjeta de crédito o Paypal.
- Cuando he usado el soporte, me han contestado muy rápido (aunque no he tenido que usarlo mucho, porque las cosas suelen ir siempre bien).
1.-Elegir distribución de Linux en Linode Hosting
Primero hay que darse alta en Linode. Si lo haces con mi enlace, recibirás un crédito de 100 $ que dura 60 días una vez que agregues un método de pago válido a tu nueva cuenta. No está nada mal, ¿no?
- Acuérdate de activar en tu cuenta la opción de 2FA (Two-Factor Authentication) para mejorar la seguridad de tu cuenta de Linode.
Ahora podemos crear el primer servidor. Si te vas a Linodes, en la parte izquierda, verás tus Linode creados. Si quieres, puedes crear uno nuevo con Create en la parte superior:
Elegimos la distribución, por ejemplo, Rocky Linux 9. Puedes elegir Alma Linux 9, que es casi lo mismo.
Luego elegimos la región. Hay muchas localizaciones en Europa, incluida una en Madrid, España:
Y ahora elegimos el plan que queremos. Tienes varias pestañas disponibles:
Luego le pones un nombre a tu servidor y eliges un password buena para el usuario root (que luego quitaremos… y configuraremos una buena SSH Key):
No te preocupes por el Firewall (luego lo puedes configurar). Por 10$ al mes te dan la opción de elegir su backup. Yo uso Rclone y mando mis backups a Backblaze.
Y ahora, sin preocuparte por nada más, le das a Create Linode.
En apenas unos 5 minutos tendremos instalada nuestra distribución de Linux. Entonces hay que ponerla en marcha dándole al botón Boot.
Cuando esté creado aparecerá en panel de control de Linode. En este panel de control puedes ver las estadísticas, Network, Storage, Configurations, backups y Settings principalmente. También te indican como acceder mediante SSH, como acceder mediante la consola de recuperación Lish y puedes apagar y encender el servidor. Adicionalmente, puedes cambiar de plan o incluso colocar tu servidor.
Te recomiendo que pases por la pestaña Storage antes de hacer nada más, y que aumentes el tamaño de la partición SWAP, que suele estar solo en 512 MB. Para 16 GB la he puesto en 8 GB. Se apaga el servidor y cambias el tamaño, quitando MB de tu partición principal.
¡Ojo! Tienes que asegurarte de que en el panel de control de Linode está activa la opción Network Helper, que se encarga de configurar automáticamente los parámetros de red de tu servidor con los datos que proporciona Linode. Tienes que ir a Account > Settings > Network Helper. En el caso de Rcoky Linux 9, se va a encargar de configurar /etc/sysconfig/network-scripts/ifcfg-eth0 y /etc/resolv.conf (añade los DNS de Linode y search members.linode.com).
2.-Acceder a tu Linode
¡Ojo! Para editar los archivos de servidor necesitas conocimientos básicos del editor vi:
Categoría | Comando | Descripción |
---|---|---|
Entrar en edición | i | Entrar en modo de inserción antes del cursor |
I | Entrar en modo de inserción al inicio de la línea | |
A | Entrar en modo de inserción al final de la línea | |
o | Crear una nueva línea debajo del cursor e ingresar al modo de inserción | |
Navegar por el archivo | l | Mover el cursor una letra a la derecha |
k | Mover el cursor una línea arriba | |
j | Mover el cursor una línea abajo | |
0 | Mover el cursor al inicio de la línea actual | |
$ | Mover el cursor al final de la línea actual | |
gg | Mover el cursor al inicio del archivo | |
G | Mover el cursor al final del archivo | |
:n | Mover el cursor a una línea específica (n es el número de línea) | |
Guardar y salir (hemos presionado ESC para salir del modo edición) | :wq | Guardar los cambios y salir del editor |
:w | Guardar los cambios | |
:q! | Salir del editor sin guardar cambios |
Para acceder a tu servidor Linode tendrás que hacerlo mediante SSH usando el terminal de tu ordenador con Linux o Mac o un programa como PUTTY en Windows.
Para acceder al servidor deberemos conocer cuál es la IP que nos ha asignado LINODE. Vamos de nuevo al Linode Manager y en la pantalla principal tienes la información de acceso. Será algo así:
ssh root@tudireccionip
Entonces nos pedirá el usuario (root) y el password que hayas creado previamente. Ya estás dentro.
3.-Actualizamos el sistema y creamos el hostname
Cómo hemos instalado Rocky Linux 9, para actualizar el sistema hacemos:
dnf upgrade
Ahora creamos el hostname con el siguiente comando:
hostnamectl set-hostname ejemplo-hostname
Cambiando «ejemplo-hostname» por el nombre que queramos. Da un poco igual.
Actualizamos el archivo /etc/hosts con los valores IPv4 e IPv6 que nos haya dado Linode. Hacemos vi /etc/hosts para editarlo:
127.0.0.1 localhost.localdomain localhost
tu_ipv4-publica ejemplo-hostname.ejemplo.com ejemplo-hostname
tu_ipv6-publica ejemplo-hostname.ejemplo.com ejemplo-hostname
Guardamos dando al ESC y luego wq!
Puedes utilizar un dominio tuyo, pero en ese caso, ten en cuenta que debes configurar los valores A y AAAA del hostname en tu servidor DNS. También puedes elegir solo el nombre del hostname y dejar los de Linode por defecto (hostname.members.linode.com).
En Virtualmin lo puedes modificar todo posteriormente en la sección Webmin > Networking. Te recuerdo, que si has dejado activado el Network Helper de Linode en tu panel de control, la configuración de red de tu servidor se hará de forma automática (en eth0). En Host Addresses de Webmin tienes la configuración de /etc/hosts.
- En Hostname and DNS Client puedes ver el Hostname, los DNS servers que te ha asignado Linode y el Search Domains: members.linode.com (esto es parte del archivo /etc/resolv.conf).
4.-Configurar Timezone
Listamos toda la lista con:
timedatectl list-timezones
Y luego elegimos la que nos interese con:
timedatectl set-timezone 'Europe/Madrid'
Luego en Webmin puedes cambiarlo en Webmin > Hardware > system Time.
5.-Añadimos una cuenta con permisos limitados
Ahora toca quitar el acceso root y crear un usuario con permiso sudo. En mi caso lo he tenido que hacer en Rocky Linux. Sirve igual para CentOS, Fedora, Alma Linux, RHEL. Creamos el usuario y le damos un password (cambia usuario_ejemplo por el nombre que tú quieras). Son dos órdenes. Las realizó por separado para evitar confusiones:
useradd usuario_ejemplo passwd usuario_ejemplo
Ahora tenemos que añadir este usuario al grupo wheel para que tenga privilegios sudo:
usermod -aG wheel usuario_ejemplo
Ahora podemos comprobar que tenemos todo bien configurado en sudoers. Podemos poner el siguiente comando: cat /etc/sudoers y ver el contenido. Deberías comprobar que tienes estas dos líneas:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
Todos los usuarios en el grupo Wheel pueden hacer uso del comando sudo siempre y cuando metan la correspondiente contraseña. Y es importante que esta línea esté comentada (si quitamos la #, podremos acceder al comando sudo sin contraseña):
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
Si necesitas editar algo en sudoers, hazlo mediante el comando visudo. Lo bueno de hacerlo así, es que visudo verifica la sintaxis del archivo /etc/sudoers antes de guardar cualquier cambio (funciona como si fuera el editor vi o nano -depende de tu configuración-).
Inciso I: Posteriormente, cuando instalemos Virtualmin y Webmin, Webmin va a crear usuarios para cada Servidor Virtual con permisos limitados. También te vas a encontrar al usuario root por defecto y posteriormente vas a meter a tu nuevo usuario (luego te digo cómo lo haces) creado para ejecutar el comando sudo (usuario_ejemplo). Si no metes a este nuevo usuario en los Webmin Users, es posible que no puedas iniciar sesión a Virtualmin con él. Y si has quitado el acceso a root en Virtualmin… estás fastidiado (aunque no tiene nada que ver con el acceso SSH mediante usuario_ejemplo).
- Solo nos vamos a tener que preocupar de crear un grupo para ese nuevo usuario donde le vamos a dar permiso para usar todos los módulos de Webmin.
- También vamos a quitar el acceso al login de Virtualmin al usuario root. Todo esto lo puedes ver en Webmin > Webmin Users.
- Te lo cuento luego, pero hay unas cuantas opciones muy útiles como Unix User Synchronization o Convert Unix to Webmin Users.
Inciso II: En Webmin > System > Users and Groups puedes controlar todos los usuarios y grupos de tu sistema Linux de manera visual, cuál es su directorio raíz. También vas a poder modificar directamente el grupo Wheel, por ejemplo. O comprobar si Shell tienen tus usuarios, algo importante para ver si hacen login (/sbin/bash) o NO hacen login en tu sistema (/sbin/nologin). Vas a poder comprobar de forma visual que permisos tienen, cambiar políticas de passwords y a qué grupos pertenecen.
Vale, ya tenemos creado el nuevo usuario y podemos entrar con él mediante SSH a nuestro servidor con un comando como este:
ssh usuario_ejemplo@tu_direccion_ip
Todavía no quitamos el acceso SSH a la cuenta root.
- Posteriormente, cuando instalemos Virtualmin/Webmin, podremos gestionar los usuarios Unix en Webmin, y además, crear los usuarios de Webmin para el servidor.
- Te recuerdo que también he quitado el acceso root al panel de control Virtualmin/Webmin. Pásate por la entrada para ver porque y qué implicaciones tiene para la administración de Webmin.
6.-Para ese nuevo usuario, utilizamos una SSH Key para acceder al servidor
Esto te lo he contado con todo detalle en Cómo usar claves SSH para acceder a tu servidor, pero tienes una buena guía en linode.com. Sigue las instrucciones de mi entrada si quieres hacerlo con 1Password o lo que te cuento en Cómo iniciar sesión en tu servidor Hetzner con una SSH Key para generar las claves en tu terminal.
¿Pasos para hacerlo en tu ordenador sin Password?
Primero generamos las claves en nuestro ordenador personal. NO en el servidor.
ssh-keygen -t ed25519 -C "[email protected]"
Te dirá que cuál es su nombre y donde lo quieres guardar. Dale al Enter para dejar todo por defecto. todo se guarda en ~/.ssh/. La clave privada se guarda como id_ed25519 (NO SE COMPARTE NUNCA) y la clave pública como id_ed25519.pub. Si ya has creado otras claves, ten cuidado, porque se van a sobreescribir si pones el mismo nombre. Después hay que poner una contraseña a nuestra clave SSH (Superimportante) para cifrar y descifrar la clave. Esto con 1Password no hace falta, ya que está todo encriptado en sus bóvedas. Guarda esa password en tu gestor de contraseñas.
Ahora podemos subir la clave pública al servidor desde la Terminal de nuestro ordenador:
ssh-copy-id usuarioservidor@IPservidor
Te pedirá la contraseña de acceso al servidor y después se copiará la clave SSH en la carpeta /home/usuarioservidor/ en ~/.ssh/authorized_keys
Después de hacerlo y de comprobar que funciona el acceso con el nuevo usuario, tanto con claves como con SSH Key, ya puedes quitar el acceso SSH a root. Básicamente, hay que editar este archivo, vi /etc/ssh/sshd_config:
#Quitamos acceso root
PermitRootLogin no
Y ya que estamos, quitamos también el acceso al servidor mediante claves y dejamos solo el acceso mediante SSH Keys (editamos el mismo archivo):
#Esta opción habilita la autenticación basada en claves públicas.
PubkeyAuthentication yes
#ubicación del archivo que contiene las claves públicas autorizadas para cada usuario.
AuthorizedKeysFile .ssh/authorized_keys
# Deshabilita la autenticación basada en contraseñas.
PasswordAuthentication no
Y cambiamos el puerto de acceso a SSH (muchos bots buscan siempre el puerto 22). Lo puedes cambiar al puerto 449, por ejemplo, pero deberías comprobar los puertos ocupados con el comando sudo netstat -tuln y elegir cualquiera de los que no lo estén:
Port 449
Y salgo del editor vi dando a ESC y poniendo, :wq!
¡Ojo! Acuérdate de cerrar el puerto 22 en el Firewall y de abrir el puerto 449 (o el que hayas puesto) para no quedarte fuera de tu servidor al volver a conectarte por SSH. Deja alguna ventana SSH conectada a tu servidor por si las moscas has hecho algo mal: para no quedarte fuera y poder solucionar las cosas. Ahora reinicia SSH:
Reiniciamos el servidor SSH para que se apliquen todos los cambios.
systemctl restart sshd
Ahora vas a tener que acceder a tu servidor mediante SSH con el siguiente comando:
ssh -p <nuevo_puerto> usuario_ejemplo@tu_direccion_ip
#En el ejemplo con el puerto cambaido a 449
ssh -p 449 usuario_ejemplo@tu_direccion_ip
- Comprueba que todo funciona correctamente y que puedes acceder con tu nuevo usuario al servidor junto con su clave SSH Key.
7.-Modificamos algunos parámetros del Kernel (avanzado)
No pongo avanzado porque sea difícil de hacer, sino porque hay cosas que pueden dejar de funcionar si nos equivocamos y colocamos algún parámetro incorrecto. No lo digo por asustar. Tienes que revisar cada punto de la configuración para que cuadre con tu caso concreto. Te lo he ocntado en detalle en Mejorando la seguridad y rendimiento del Kernel en Rocky Linux.
- ¡Ojo! Antes de comenzar a cambiar cosas, ejecuta en la Terminal sysctl -a para saber de qué valores partes y tenerlo en cuenta para tus cambios.
Tienes que editar el siguiente archivo:
vi /etc/sysctl.conf
Cuando hayas terminado, sales con ESC y luego wq! Luego tienes que aplicar los cambios al sistema con este comando (si hay algún error te lo va a indicar):
sysctl -p
Estos son algunos parámetros que puedes usar:
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
# ------------------------------
# Sección: Configuración de printk
# ------------------------------
kernel.printk = 3 4 1 3
# ------------------------------
# Sección: Seguridad y Optimización de Red
# ------------------------------
net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.log_martians = 1
net.ipv6.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# ------------------------------
# Sección: Protección contra Ataques
# ------------------------------
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 3
kernel.yama.ptrace_scope = 2
net.core.bpf_jit_harden = 1
dev.tty.ldisc_autoload = 0
fs.protected_fifos = 2
fs.protected_regular = 2
fs.suid_dumpable = 0
kernel.kptr_restrict = 2
kernel.sysrq = 0
kernel.perf_event_paranoid = 3
# ------------------------------
# Sección: Optimización de la Memoria
# ------------------------------
vm.swappiness = 10
fs.file-max = 1000000
kernel.pid_max = 65536
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.dirty_expire_centisecs = 4000
vm.dirty_writeback_centisecs = 100
vm.overcommit_memory = 1
vm.overcommit_ratio = 50
vm.vfs_cache_pressure = 50
vm.min_free_kbytes = 491520
# ------------------------------
# Sección: Ajustes Generales de Red
# ------------------------------
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.core.netdev_max_backlog = 100000
net.core.optmem_max = 25165824
# ------------------------------
# Sección: Ajustes de Memoria TCP/UDP
# ------------------------------
net.ipv4.tcp_mem = 786432 1048576 26777216
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.udp_rmem_min = 16384
net.ipv4.tcp_wmem = 4096 87380 67108864
net.ipv4.udp_wmem_min = 16384
# ------------------------------
# Sección: Optimización de Conexiones TCP
# ------------------------------
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_keepalive_time = 900
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 5
8.-Configuramos el servidor con Virtualmin/Webmin
Solo decirte una cosa importante: Virtualmin siempre se instala inmediatamente después de poner en marcha el servidor… porque si no te va a dar muchos problemas. No instales nada antes.
Vamos a hacernos la vida más sencilla utilizando este panel de control gratuito, el mejor del momento, según mi opinión.
Procedemos a descargar Virtualmin en la carpeta de nuestro usuario o de root:
sudo sh -c "$(curl -fsSL https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh)" -- --bundle LAMP
Y básicamente seguimos las instrucciones que van apareciendo. Si no cambias nada, vas a realizar la instalación completa (necesitas un mínimo de 2 GB de RAM en tu sistema), pero puedes optar por la instalación mínima que requiere 1 GB (añades al comando anterior la opción: –minimal).
¿Qué conseguimos instalando Virtualmin después de la configuración inicial del servidor? Pues que vamos a tener un sistema LAMP o LEMP operativo y configurado. En cuanto lo hayas instalado, puedes acceder al panel de control en la siguiente dirección: https://tudirecciónip:10000 con la contraseña de tu usuario root o con la de cualquier usuario con capacidades sudo.
- ¡Ojo! Acuérdate de hacer esta comprobación de seguridad con MariaDB: mariadb-secure-installation desde la línea de comandos.
Con este panel de control vamos a poder configurar fácilmente nuestro dominio web para que use Apache o Nginx y podremos tener online nuestro dominio en poco tiempo. No te cuento más en esta entrada, ya que merece una explicación más detallada, pero es tan sencillo como ir a Create Virtual Server en el menú principal y completar los datos (tienes que tener el dominio configurado en tu DNS con los valores típicos de A y AAAA y apuntando a la dirección IP de tu servidor). Claro, en la sección Enabled Features, tienes que dejar marcado Setup apache website y Create MariaDB database como mínimo. Por defecto, el sistema se va a crear con PHP-FPM. Es imprescindible configurar luego el SSL de tu web en Virtualmin > Manage Virtual Server > Setup SSL Certificate > Let’s Encrypt. Virtualmin lo hace por ti directamente sin tener que instalar nada más. Incluso se encarga de las renovaciones.
Llegados a este punto, deberías optimizar Apache y MariaDB: Te lo cuento en Optimizar Apache, optimizar mariaDB y si tienes el DNS en Cloudflare, hacer que funcione bien el registro de IP. También puedes hacer algún test ab con Apache.
- ¡Ojo! Virtualmin activa en la instalación el repositorio de EPEL. No pasa nada. Es más, nova a venir muy bien para conseguir muchas de las apps que vamos a necesitar. No hay problemas de compatibilidad con los repositorios oficiales. Luego he instalado también la repo de Remi para conseguir las últimas versiones de PHP en mi servidor.
Te aconsejo que gestiones tu DNS con Cloudflare, que proporciona herramientas muy interesantes para proteger tu infraestructura.
¡Ojo! Cuando lo tengas todo instalado con Virtualmin, te recomiendo que vayas a Virtualmin > System Settings y le des a Re-Check Configuration para comprobar que todo tu servidor funciona correctamente. Va a comprobarlo todo: PHP, CGI, la presencia de HHTP/2 en tu sistema, configuración de Postfix, memoria del sistema, SSL, MariaDB, logrotate, ClamAV, eth0, IPv4, IPV6, usuarios y grupos, actualizaciones del sistema, repositorios… También puedes ir a Virtualmin > Limits and Validation > Validate virtual Servers para comprobar todos los servidores virtuales creados en la pestaña inicial y luego pasarte por Fix Permissions para corregir las propiedades de los archivos en los servidores virtuales. Puede ser útil si los archivos han sido editados o creados por root, y ahora son propiedad de otro usuario. En Cómo instalar Virtualmin en tu servidor Linux te cuento cómo funciona su instalación.
9.-Actualizamos Rocky Linux con Virtualmin o DNF Automatic
¿Más cosas con Virtualmin? Una muy importante: en Webmin > Software Package updates > Scheduled Upgrades, marca que se comprueben todos los días y, si quieres, que se instalen las actualizaciones de seguridad de manera automática (también puedes poner solo que te lo notifiquen por e-mail).
Evidentemente, esto también lo puedes directamente mediante algunos comandos en Rocky Linux con DNF Automatic. Tú eliges. Pero es muy importante tener todos los paquetes del servidor actualizados.
dnf install dnf-automatic
Puedes editar el archivo de configuración con vi /etc/dnf/automatic.conf y comprobar que tienes algo como esto:
#Solo actualizaciones de seguridad
upgrade_type = security
#Ya hacemos nosotros el reboot
reboot = never
#Para descargarlas y aplicarlas
download_updates = yes
apply_updates = yes
#Ponemos lo mismo en [command_email] y [email]
# desde donde las enviamos
email_from = root
# a donde las enviamos
email_to = [email protected]
# como enviamos los mesjaes
email_host = localhost
Ahora activamos el dnf-automatic.timer:
#Establecemos las actualizaciones automaticas (por defecto se hacen a las 6 am, pero lo puedes cambiar con sudo systemctl edit dnf-automatic.timer)
sudo systemctl enable --now dnf-automatic.timer
#Podemos reactivar ambos servicios
systemctl restart dnf-automatic.timer
systemctl restart dnf-automatic.service
Si te das cuenta, con esto he activado dnf-automatic.timer, que coge la información de automatic.conf. Si activas notifyonly.timer, download.timer o install.timer van a seguir sus propias reglas de configuración pasando totalmente de automatic.conf:
Timer | Acción | Propósito |
---|---|---|
dnf-automatic.timer | Ejecuta tareas según la configuración en automatic.conf | Puede notificar, descargar e instalar actualizaciones según configuración. |
notifyonly.timer | Notifica sobre actualizaciones disponibles | Informa al usuario de actualizaciones sin descargarlas ni instalarlas. |
download.timer | Descarga actualizaciones | Descarga actualizaciones sin instalarlas, dejándolas listas para instalación manual. |
install.timer | Instala actualizaciones | Descarga e instala actualizaciones automáticamente sin intervención del usuario. |
10.-Como nos aseguramos que los servicios críticos del servidor funcionan
Se supone que tenemos un servidor web, por ejemplo, que tiene que funcionar las 24 horas dle días los 7 días de la semana. Cómo comprobamos que Apache, MySQL o PHP están activos y funcionando? ¿Cómo sabemos que los certificados SSL se han renovado correctamente? ¿Y el servidor SSH? Pues Virtualmin tiene una sección muy interesante llamada System and Server Status en Webmin > Tools.
En esta sección puedes configurar monitores para controlar que tus principales servicios están activos. Por ejemplo, yo tengo activado uno, para asegurarme que Apache está funcionando y que en caso de que deje de funcionar se reinicie automáticamente:
- Solo permitimos un fallo y todo se pone en marcha
- Nos lo notifica al email que hemos configurado
- Ejecuta el comando service httpd start para reiniciar el servicio de nuevo.
Puedes configurarlo también para ver si tus webs están online, para comprobar que el firewall este activo (CSF), vigilar procesos como Memcache, OSSEC, LFD, Postfix, MariaDB, PHP-FPM o comprobar que el certificado SSL está correcto.
11.-Seguridad extra para tu servidor
Si has instalado Virtualmin, este panel de control viene con Fail2Ban y FirewallD activado por defecto. Es una gran opción, aunque hay que configurar unas cuantas cosas. En mi caso, siempre he preferido instalar una nueva opción que se llama CSF, otro firewall gratuito que tiene soporte GUI en Virtualmin. Si instalas CSF, se van a desactivar automáticamente Fail2Ban y FirewallD.
cd /usr/local/src
curl -O https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
./install.sh
Después de la instalación, debes instalar el módulo ConfigServer Security & Firewall Webmin. Para hacerlo, tienes que ir a la página Webmin > Webmin Configuration: Webmin Modules y elije la opción From local file. A continuación, selecciona el archivo /usr/local/csf/csfwebmin.tgz y haz clic en Install Module.
Vale. El Firewall no está activo todavía, pero eso es bueno porque te puedes quedar fuera del servidor si no compruebas antes los puertos que están abiertos, entre ellos el de Virtualmin (10000) o el de SSH (22). Si te fijas, en la parte superior de la imagen anterior, hay una rueda dentada. Pinchala para entrar en la configuración de CSF. Lo primero que te encuentras en la opción Testing. Está en ON. Cuando compruebes todo, pásala a OFF para que el Firewall empiece a funcionar. En la siguiente tabla te dejo algunos parámetros que debes revisar:
Parámetro | Descripción | Valor de ejemplo |
---|---|---|
TESTING | Controla si CSF está en modo de prueba. Debe ser 0 para que CSF esté activo. | ON/OFF (0/1) |
RESTRICT_SYSLOG | Limita el acceso a los registros del sistema solo a root y aplicaciones del sistema. | 3 |
TCP_IN | Lista de puertos TCP permitidos para conexiones entrantes (te pongo estos, pero puede haber más. Compruébalo). Lo mismo para IPv6 si la tienes activa. | 22, 25, 80, 443, 10000 |
TCP_OUT | Lista de puertos TCP permitidos para conexiones salientes. (te pongo estos, pero puede haber más. Compruébalo) | 22, 25, 80, 443, 10000 |
UDP_IN | Lista de puertos UDP permitidos para conexiones entrantes. (te pongo estos, pero puede haber más. Compruébalo) | 53 |
UDP_OUT | Lista de puertos UDP permitidos para conexiones salientes. (te pongo estos, pero puede haber más. Compruébalo) | 53 |
LF_TRIGGER | Número de eventos que desencadenan un bloqueo. | 5 |
LF_INTERVAL | Intervalo de tiempo en segundos para considerar los eventos. | 3600 |
LF_SSHD | Habilitar detección de intrusos para SSH. | 3 |
LF_EMAIL_ALERT | Actívalo para que te lleguen emails de aviso | ON/OFF |
LF_ALERT_TO | Dirección de correo electrónico para recibir alertas. | [email protected] |
CONNLIMIT | Limitar el número de conexiones simultáneas a los puertos específicos. | 22;5,80;50,443;50 |
PORTFLOOD | Configura Iptables para protegerte de ataques DOS | 80;tcp;20;5,443;tcp;20;5 |
Te recomiendo que visites la última sección OS Specific Settings para que compruebes que todas las rutas son las correctas. En mi caso, he tenido que añadir varias cosas (quita el bloqueo de UI al principio de la configuración para poder hacerlo):
HTACCESS_LOG = /var/log/httpd/error_log /var/log/virtualmin/*_access_log /var/log/virtualmin/*_error_log
SMTPAUTH_LOG = "/var/log/secure"
Esto lo he hecho para que tenga en cuenta todos los logs que ha creado Virtualmin para cada dominio. El segundo caso estaba mal la ruta. CSF revisa los logs para proceder a los bloqueos de IP, pero solo si están correctamente configurados.
Antes de activar el Firewall, haz una última cosa. En la pantalla principal (no en configuración), vete a Quick Allow, y pon la IP desde donde te conectas a tu servidor, para que CSF no la bloquee en ningún momento. No está de más estar dado de alta en algún servicio VPN para poder cambiar nuestra IP y así evitar un posible bloqueo de nuestro propio Firewall. Luego vuelve a la pantalla anterior y activa el Firewall.
También puedes ir a Check Server Security, en la pantalla principal al principio para comprobar la seguridad dle servidor. Una puntuación por encima de unos 38 puntos está bien.
- Te cuento más cosas sobre CSF en: Cómo conseguir que Cloudflare y el firewall CSF se lleven bien y en Cómo bloquear bots, SPAM y tráfico malicioso con el firewall CSF y LFD
¿Qué más cosas puedes instalar para mejorar la seguridad? Rkhunter (para buscar rootkit y malware), OSSEC (detección de intrusos), Maldet y ClamAV (malware y virus, sobre todo si tienes un servidor de correo. Virtualmin instala ClamAV por defecto), AIDE (herramienta de detección de intrusos basada en la verificación de la integridad de los archivos), Logwatch (resumen de los principales eventos de los logs del sistema) o activar las reglas de AUDITD (reglas de auditoría de tu servidor para controlar que pasa con detalle en él). Si tienes paciencia y buena mano, también puedes configurar SELinux. Te lo cuento en otras entradas.
Como broche final, deberías instalar dos programas para auditar la seguridad de tu servidor y corregir cosas: Lynis y OpenSCAP (https://docs.rockylinux.org/books/disa_stig/disa_stig_part2/). Ambos están disponibles en los repositorios de Rocky Linux. Yo empezaría con Lynis que da menos falsos positivos y solo nos informa de los fallos.
#Instalamos Lynis
dnf install lynis
#Ejecutamos analisis con Lynis a todo el sistema
sudo lynis audit system
#miramos el informe
sudo cat /var/log/lynis-report.dat
#Podmeos consultar detalles concretos d euna parte del informe con datos sobre como remediarlo.
lynis show details AUTH-9229
Todo lo que esté por encima de 80 en la puntuación final de Lynis es un buen resultado. En el artículo de Lynis te cuento más cosas. Deberías empezar usando Lynis antes que OpenSCAP. Es más seguro.
#Instalamos OpenSCAP
dnf install -y openscap-scanner scap-security-guide
#Comprobamos que perfiles de seguridad tiene para Rocky Linux 9
oscap info /usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
#Ejecutamos un analisis con este perfil para servidores
oscap xccdf eval \
--profile xccdf_org.ssgproject.content_profile_cis \
--results-arf arfCISfull.xml \
--report reportCISfull.html \
/usr/share/xml/scap/ssg/content/ssg-rl9-ds.xml
#OJO. Revisa los problemas uno a uno. puede haber falsos positivos o reglas que no se aplican a tu servidor. Nada de aplicar los scripts automaticos para arreglar cosas que te propone o usar la opción automatica --remediate en este comando general. Puedes cargarte el sistema entero.
En el artículo de OpenSCAP te cuento más cosas en detalle. Vas a tener muchos falsos positivos. Tenlo en cuenta. Hay que revisar los resultados uno a uno y no usar sus opciones automáticas ni sus scripts sin haberlos revisado antes con mucho cuidado.
12.-Varias versiones de PHP en tu servidor
En Rocky Linux 9 tenemos solo PHP 8.0. Y me dirás. ¿Pero no está obsoleta? Para la gente de PHP sí, pero recuerda que en distribuciones RHEL como Rocky Linux, se encargan de actualizar la versión de PHP, Apache o Mariadb con parches de seguridad hasta el final de la vida útil del sistema operativo.
Pero a lo mejor necesitas una versión más moderna de PHP. Desde Virtualmin nos indican la forma correcta de instalar la nueva versión con el repositorio de REMI.
Instalamos el repositorio de Remi
. /etc/os-release && repo_dir=$([ "$ID" = "fedora" ] && echo "fedora" || echo "enterprise") && dnf -y install "https://rpms.remirepo.net/$repo_dir/remi-release-$(rpm -E %$ID).rpm" && dnf clean all
Instalamos la nueva versión, por ejemplo PHP 8.2:
dnf install php82-php-{cli,fpm,pdo,gd,mbstring,mysqlnd,opcache,curl,xml,zip}
Puedes instalar las extensiones que tú necesites, algo importante si vas a instalar cocas como WordPress.
Ahora tienes que ir a Virtualmin y hacer que el sistema reconozca la nueva versión PHP: Virtualmin > System Settings > Re-Check Configuration. Después de hacer eso, ya puedes ir a Virtualmin > Web Configuration > PHP Options y elegir la versión de PHP nueva para tu servidor virtual. Allí también podrás ver el archivo php.ini y todos los módulos PHP instalados.
Te recomiendo optimizar PHP-FPM y Opcache en tu servidor. Te di unos cuantos consejos instalando una nueva versión PHP en Rocky Linux y Cómo borrar la caché de PHP Opcache cuando usas WordPress.
¿Problema que te puedes encontrar al tener dos versiones de PHP (no he borrado la que viene con Rocky Linux para evitarme problemas)? Qué estos cambios que te he contado solo se aplican al servidor web, es decir, en la línea de comando, vas a seguir llamado a los scripts PHP mediante la versión PHP 8.0. Se soluciona de la siguiente manera si tenemos instalado Virtualmin:
#ejecutamos el comando siguiente que me dice donde esta el archivo de php que uso
virtualmin list-php-versions
#Sale algo como esto:
Version Path
--------------- ------------------------------------------------------------
8.0 /bin/php
8.2 /bin/php82-cgi
#Editamos el archivo bashrc del susuarioq ue estemos usando
vi ~/.bashrc
#Y ponemos lo siguiente:
alias php=’/bin/php82’
#¿Tienes algun programa como por ejemplo WP-CLI que quieres que se ejecute con PHP8.2? Pones algo así:
alias wp='/bin/php82 /usr/local/bin/wp'
#Salimos de la edición del archivo y aplicamos los cambios
source ~/.bashrc
13.-Backups
Puedes optar por la opción sencilla. Darte de alta en los backups de Linode, pero es un gasto extra. Y siempre vas a necesitar backups fuera de la infraestructura de tu proveedor de hospedaje, por si las moscas.
Yo gestiono mis backups con Rclone (te cuento cómo hacerlo en esa entrada). Es un programa que instalas de manera sencilla en Rocky Linux y que es capaz de conectarse a una cantidad innumerable de servicios online de Backup, entre ellos S3, B2, Jottacloud… Lo configuras en pocos minutos y creas un cron para enviar los backups que has creado previamente con Virtualmin.
¿Cómo creo los backups? Con la sección de backups de Virtualmin: Virtualmin > Backup and Restore. Puedes seleccionar todos los dominios que tengas instalados en Virtualmin. Con esta opción cubres el backup de los archivos de configuración de Virtualmin, datos del servidor virtual creado, contenido de las bases de datos, registros DNS, directivas de Apache o el directorio home del servidor virtual. Eliges de que quieres hacer Backup, creas un cron y se ejecuta automáticamente. ¡Ojo! Virtualmin te da la opción de enviar directamente estos backups creados a algunos servicios online como Amazon S3, o B2, pero no tiene tantas opciones como Rclone. En la versión Virtualmin Pro puedes cifrar los archivos de backup.
Si luego vas a Webmin, tienes otras dos opciones de backup: Webmin > Backup Configuration files, que te cubre todas las configuraciones que has aplicado en Webmin. También tienes otra opción interesante en System > Filesystem Backup, donde puedes elegir carpetas del sistema para tener un backup de ellas, como por ejemplo /etc, /boot, /opt, /usr/local, /var/log, /root… Lo mismo: Eliges de que quieres hacer Backup, creas un cron y se ejecuta automáticamente.
Por último, Webmin ofrece la posibilidad de hacer Backup directamente de las bases de datos con MariaDB. Lo vas a encontrar en Webmin > Servers > MariaDB Database Server > Backup Databases, al final de la de página. Lo mismo que antes: Eliges de que quieres hacer Backup, creas un cron y se ejecuta automáticamente.
14.-Lish, la consola de recuperación de Akamai Linode
Para terminar, algo importante. ¿Qué pasa si te quedas sin acceso al servidor mediante SSH por haber perdido las claves SSH, porque el servidor SSH está caído o tu firewall te ha bloqueado? Tienes que usar la consola Lish de Linode.
Tienes que acceder a tu panel de control en Linode, entrar en tu Linode y pinchar en Launch LISH console en la parte superior. De esta manera accedes a la Weblish o Glish. Ene ste caso, te va a pedir el usuario y contraseña de tu usuario principal en el servidor.
Pero me gusta más la otra forma de acceder. Mediante un comando SSH que vas a encontrar justo en la parte superior del panel de control de tu servidor (Lish console via SSH). Va a ser algo así (lo pones en tu programa para hacer conexiones SSH):
ssh -t [email protected]
Esta opción te sirve si tienes tu servidor Linode en su centro de Ámsterdam. Tienes que poner la localización donde este tu servidor en la red de Linode. La lista completa en: https://www.linode.com/docs/products/compute/compute-instances/guides/lish/#lish-gateways.
En este caso, te va a pedir el nombre y usuario de Linode. En cuanto lo metes, vas a ver un listado de todas tus instancias. Pon el nombre de la instancia en la línea de comandos. Te pedirá tu usuario y contraseña del servidor. Y ya estás dentro.
Pero para hacerlo todo más seguro, y como ya sabes crear claves SSH, en el panel de control de Linode puedes meter una clave pública para acceder a Lish. Tienes que hacerlo en tu perfil > Lish console Settings. Allí pegas tu clave pública. Y para mejorar la seguridad, eliges como método de autenticación solo Allow Key Authentication only. Ten cuidado de guardar bien tu clave privada en 1Password u otro gestor de contraseñas.
Cuando ya estés dentro, vas a poder cambiar la configuración que te impide acceder a tu servidor, reiniciar SSH, parar el firewall o volver a activar las contraseñas para acceder mediante SSH.
¿Y qué te va a pasar la primera vez que entres en tu servidor si no has cambiado los parámetros del Kernel que te he comentado antes? Si no has hecho esto:
#Editamos el archivo
vi /etc/sysctl.conf
#Ponemos esto para limitar el nivel de ruido de la consola en Lish
kernel.printk = 3 4 1 3
#Despues de guardar el archivo reiniciamos
sysctl -p
Cuando abras Lish la primera vez vas a ver una ristra interminable de mensajes con total probabilidad. En mi caso estaba provocado por el Firewall CSF mandando mensajes ANSI/ASCII a la consola. Puede que a ti no te pase, pero por si las moscas no te cuesta nada cambiar el valor de kernel.printk para que Lish funcione bien. Te recomiendo que lo pruebes, no lo dejes para un momento de emergencia.
15.-Cloud Firewall de Linode
Esto sí que es interesante. Ya has instalado en tu servidor CSF, es posible que uses Cloudflare (que también tiene un Firewall), pero este Firewall de Linode es interesante para hacer determinadas cosas como cerrar alguno de los puertos más comunes. Esos que sufren ataques cada dos por tres. Estoy hablando del puerto 22, el de SSH.
- Lo bueno que tiene crear un Firewall en Linode directamente es que puedes usarlo en varios servidores al mismo tiempo.
Para crear tu primer Firewall solo tienes que ir a la barra de la izquierda, pinchar en Firewall y darle a Create Firewall.
Vas a tener Inbound Rules y Outbound Rules. Las entrantes son las que nos importan ahora. Puedes crear una regla para bloquear el puerto 22 directamente en la infraestructura de Linode y evitarte que nadie llegue a tu servidor en ese puerto (siempre que ya hayas cambiado el protocolo SSH a otro puerto, como hemos hecho antes).
Solo tienes que crear una nueva regla con estos valores en Add an Inbound Rule:
- Preset: SSH
- Label: drop-inbound-SSH
- Pones una descripción
- Protocol: TCP
- Ports: SSH (22) – Lo pone por defecto.
- Sources: All IPv4, All Ipv6
- Action: Drop
Y le das a Add Rule. Ya has bloqueado el puerto 22.
Ahora solo tienes que ir a la pestaña Linodes dentro del Firewall y pinchar en Add Linodes to Firewall. Eliges el Linode de tu servidor. También puedes añadir NodeBalancers.
Recuerda que la regla general del Firewall es aceptar todas las conexiones, algo que puedes cambiar y configuras las reglas de firewall para aceptar los puertos que necesitas. En una sola regla puedes añadir varios puertos separados por coma. También puedes bloquear determinadas direcciones IP o rangos mediante notación CIDR. La guía de Linode está muy bien.
16.-Otras cosas
- Si tengo que reiniciar el servidor, siempre lo hago desde el panel de control de Linode. Supongo que es algo que se me ha quedado metido dentro de la cabeza porque cuando Linode nos metía su propio Kernel en la instalación, siempre tenía problemas a la hora de reiniciar si ponía el comando directamente en la conexión SSH en línea de comandos. Supongo que ahora, como el Kernel que dejan es el propio de la distribución (con arranque GRUB2). Si haces un reboot directamente desde el Terminal no va a pasar nada.
- En Rocky Linux 9 no he conseguido instalar el servicio de estadísticas expandidas Longview. Parece que todavía no hay una repo compatible.
- No he utilizado el servicio DNS de Linode porque lo tengo todo Cloudflare, pero a lo mejor tú si puedes aprovecharlo.
- Sí que he usado su servicio de Volumes para añadir un espacio extra a algún servidor. Puede ser útil para guardar backups. Su precio es razonable.
- Si tienes un problema gordo con el servidor, siempre puedes iniciar el modo Rescue desde el panel de control. Puede iniciar tu instancia en modo de rescate para realizar tareas de recuperación del sistema y transferir datos de los discos. Lo inicias en modos rescate, entras mediante Lish y activas SSH o lo que necesites. También puedes aplicar algunos comandos como: e2fsck -f /dev/sda (compruebas un disco NO montado en el sistema: comprueba que no está montado con df -h).
Conclusión
En Cómo instalar Virtualmin en tu servidor Linux, te cuento consejos y trucos para configurarlo, pero también te puede interesar: Trucos y consejos para optimizar la memoria RAM en un servidor VPS con Virtualmin.
Podéis consultar cuáles son sus planes de alojamiento en el siguiente link: www.linode.com
Referencias: https://www.linode.com/docs/products/compute/compute-instances/guides/set-up-and-secure/
Muchas gracias por la info, andaba buscando como configurar mi dominio de godaddy con mi host linode y el punto «6.-Añadir registros DNS» estuvo perfecto…
Nota, después de configurar la «zona master DNS» en linode y de «establecer los servidores de nombres: ns1.linode.com…» en godaddy tuve que esperar un rato para poder hacer el paso de «Configurar el ‘Reverse DNS'» porque me salia un mensaje que decía «Reverse DNS must have a matching forward entry that points to one of your IPs.» (cuando hacia ping midominio.com -por consola de windows- no se obtenía una respuesta de ningún servidor, después de un rato el ping ya funcionaba y respondía mi ip de linode, en ese momento si me funciono el «Configurar el ‘Reverse DNS'»)
Muchas gracias…
Muchas GRacias
Manually setting up Linode will take a lot of your time that could be utilized elsewhere. I would suggest you to use tools, like Cloudways, to launch Linode server in just few minutes, without having to manually setup a server. This platform automatically install the OS and stack and your selected app.
Estimado proveedor de alojamiento
: Quiero que mi sitio web sea lo más eficaz y seguro
posible con la última versión de PHP. Para el servidor en
el que está alojado mi sitio de WordPress, quiero asegurarme de que así
sea. Si aún no estoy en la última versión
de PHP, avíseme qué pasos debo seguir
para actualizar.
¡Gracias!
Lo de las versiones de PHP, Apache y demás depende mucho de la versión de Linux que tengas… y no significa que sean menos inseguras. Por ejemplo, Cantos 7 mantiene versiones muy antiguas de PHP o Apache, pero siguen actualizando con parches de seguridad.
Gracias por la info. ¿Se podrían actualizar los pasos con la versión Linode actual? Han cambiado el menú, la dashboard, los paneles, etc.
Un saludo y gracias.
Lo voy a mirar… y actualizo las fotos… ¿Sabes que todavía tienes disponible la antigua interfaz? En https://manager.linode.com/session/
buenas tardes soy el nuevo encargado del área de sistemas de mi empresa y necesito recuperar el usuario y contraseña de linode para la gestión de mi dominio, como lo puedo realizar?
[email protected]