Cómo instalar Virtualmin en tu servidor Linux: consejos y trucos para configurarlo

Actualizada:

Si quieres gestionar tu propio servidor VPS o dedicado, una buena opción para hacerlo, si no quieres usar solo la línea de comandos, es instalar Virtualmin, un panel de control gratuito (en su versión GPL), que puede sustituir a cPanel y WHM (de pago). Es lo que suelo hacer yo. Vas a conseguir un servidor seguro, fácil de gestionar y te va permite montar tu servidor web en pocos pasos. Te voy a contar cómo se hace en unos cuantos pasos sencillo de seguir.

¡Ojo! Lo primero que tienes que hacer es darte de alta en un buen proveedor de hosting: actualmente estoy usando Linode (más caro pero con más opciones) y Hetzner (más barato).

Lo primero que tienes que tener en cuenta a la hora de instalar Virtualmin, es que tienes que hacerlo nada más crear tu imagen en tu proveedor de hosting. No instales nada más antes de hacerlo. Solo tienes que instalar el SO operativo, por ejemplo Rocky Linux (Alma Linux), Debian o Ubuntu, actualizarlo y luego instalar Virtualmin. Es lo que espera el script de instalación.

Actualizamos Rocky Linux nada más crear la imagen en el servidor VPS en Hetzner (donde lo he instalado yo). Accedemos mediante un Terminal y SSH (con tu usuario root y su password):

sudo dnf update
Actualizamos Rocky Linux nada más crear la imagen en el servidor VPS en Hetzner (donde lo he instalado yo)
  • Como estoy usando en un principio el usuario root, no haría falta poner sudo, pero luego esto va a cambiar cuando quitemos el acceso a este usuario y creemos uno nuevo para mejorar la seguridad del sistema.

Virtualmin espera que tengas configurado un password para el usuario root: es lo que vas a necesitar para luego acceder a la interfaz gráfica. Te lo comento, porque si has instalado previamente SSH Keys en tu servidor para asegurar SSH, no vas a poder acceder a la interfaz gráfica de Virtualmin. Tenlo en cuenta. Luego ya tendrás tiempo de quitar el acceso a root.

También va a esperar que tengas un hostname y un FQDN (Nombre de dominio totalmente calificado), que puede ser, por ejemplo, hostejemplo.tudominio.com (lo tienes que especificar en /etc/hosts). Puedes hacerlo así accediendo mediante ssh a tu servidor (tienes que tener los datos en tu panel de control del proveedor):

#Para crear el hostname en linea de comandos
hostnamectl set-hostname hostejemplo

#Para crear el host editar el archivo con vi
 vi /etc/hosts

#Entras en modo de edición pulsando i y pones tu IP y tu nombre de host

tu_ip_servidor hostejemplo.tudominio.com hostejemplo

#Sales con ESC y luego :wq! para guardar y salir

También hay que configurar correctamente la Timezone, vamos, donde está tu servidor. Por ejemplo:

hay que configurar correctamente la Timezone, vamos, donde está tu servidor.
#Listamos todas las zonas para elegir la nuestra
timedatectl list-timezones

#La configuramos:
timedatectl set-timezone 'Europe/Madrid'

Después de configurar estas dos cosas, podemos iniciar la instalación de Virtualmin

Como podemos instalar Virtualmin en nuestro servidor Linux

Por defecto, la instalación de Virtualmin te va a instalar un sistema LAMP (con servidor Apache), pero puedes elegir también LEMP (Nginx). Si tu sistema tiene poca memoria, puedes elegir la instalación mínima con el flag: –minimal (puede funcionar con solo 1 GB de RAM, ya que no instala cosas como el control de SPAM o antivirus). Yo lo he instalado con LAMP con el siguiente comando:

Como podemos instalar Virtualmin en nuestro servidor Linux
sudo sh -c "$(curl -fsSL https://software.virtualmin.com/gpl/scripts/virtualmin-install.sh)" -- --bundle LAMP

Nos avisa de que necesitamos 2 GB de espacio en disco, que hemos elegido LAMP y una instalación completa. En cuanto le damos a yes, continua la instalación y empieza a comprobar si cumplimos todos los requisitos. No he configurado el hostname a posta para que se vea que lo puedes configurar durante el proceso de instalación:

Como podemos instalar Virtualmin en nuestro servidor Linux: comprobación del sistema

Otra cosa interesante que vemos durante este proceso es lo siguiente. Al instalar Virtualmin en sistemas RHEL como Rocky Linux, nos instala el repositorio EPEL y activa el repositorio CRB. Tener EPEL de nuestro lado nos va a venir muy bien para instalar muchos programa que no están en las repos oficiales de Rocky Linux. También va a instalar los repositorios de Virtualmin para poder acceder posteriormente a sus actualizaciones.

Después va a empezar a instalar el paquete completo, lo que incluye cosas como ClamAV, AWStats, Bind, Dovecot, Postfix, SpamAssasin, Fail2ban, Firewalld, ProFTPd y los compañeros de Virtualmin para gestión de servidores, Webmin y Usermin.

Instalación de programas en servidor Rocky Linux con Virtualmin

Todo el proceso tarda menos de 10 minutos en completarse.

  • ¡Ojo! Después de instalar Virtualmin, jamás debes volver a ejecutar el script virtualmin-install.sh para arreglar cosas en el sistema. Se puede cargar tu instalación.
  • Si puede ser interesante encontrar aso de problemas con tu instalación, ejecutar el comando Virtualmin setup-repos, que va a configurar de nuevo los repositorios correctos de Virtualmin en tu sistema.

Cuando todo termina, te sale lo siguiente:

Instalación con éxito de Virtualmin en servidor Linux

Donde te indica como acceder mediante el navegador web a tu nueva instalación de Virtualmin en el puerto 10000 (con el host o con tu IP, da igual):

https://hostejemplo.tudominio.com:10000
https://tu_direccion_IP:10000

En ambos casos, te va a saltar un aviso de sitio no seguro en tu navegador. Esto es debido a que aunque la conexión es HTTPS (SSL), el certificado es autofirmado (luego puedes crear uno de verdad).

En cuanto entras a Virtualmin en su interfaz web, vas a comenzar un proceso de configuración muy rápido para elegir unas cuantas cosas (no te preocupes si no estás seguro de alguna de ellas, siempre puedes repetir el proceso después con una opción que hay en su menú):

configuracion Virtualmin después de la instalación

Este menú de configuración te va a permitir decidir que programas quieres utilizar. Vamos a verlo.

Necesitamos mail y las librerías de Virtualmin
  • Utiliza la opción rápida para la gestión de Virtualmin (usa más RAM, pero no demasiada)
  • Lo mimo para gestionar los correos.
ClamAV y Virtualmin

¿Vas a gestionar tu propio email en Virtualmin? Necesitas ClamAV para filtrar los virus.

MariaDB o PostgreSQL en Virtualmin

Yo he elegido MariaDB para gestionar mis bases de datos. Puedes elegir también PostgreSQL. Si eliges MariaDB, va a tener que elegir un password para root. Es conveniente hacerlo. También te va a preguntar cuanta memoria quieres dedicar a MariaDB para ajustar su archivo de configuración:

Configurando MariaDB en Virtualmin

¿Cómo quieres guardar las contraseñas que se generen? Mejor hacerlo de manera cifrada:

Passwords en Virtualmin

¿Vas a gestionar tu DNS en Virtualmin? Puedes darle a Skip check for resolvability si lo vas a hacer en Cloudflare u otro proveedor:

DNS y Virtualmin

¿Dónde quieres guardar los certificados SSL que generes para tus dominios con Virtualmin? Yo siempre elijo en el directorio Home.

Al terminar este proceso, debes refrescar la configuración de Virtualmin. Hay una opción en el menú de la izquierda, pero ahora se te presenta en pantalla:

debes refrescar la configuración Virtualmin

Esto es algo importante que debes hacer siempre que cambies algún tipo de configuración en tu servidor, para que Virtualmin se entere del cambio (por ejemplo al instalar nuevas versiones de PHP). Si hay algún problema en el sistema, te lo dirá en esta pantalla:

Comprobando la configuración en Virtualmin

Después de hacer esto, podemos quitar el acceso root al sistema y configurar un nuevo usuario para acceder a Virtualmin. Te lo he explicado en: Cómo quitamos el acceso root en Rocky Linux. Básicamente, vamos a crear un nuevo usuario Linux con acceso al grupo Wheel y vamos a impedir que root acceda tanto al sistema Linux como a Virtualmin. En el proceso, vamos a pasar ese usuario Wheel al grupo de usuarios admin en Virtualmin gracias a Webmin. No te lio más. Lo tienes en la entrada anterior.

¿Quieres alojar una web en Virtualmin y, por tanto, en tu servidor? Solo tienes que pinchar en Create Virtual Server. Pones tu nombre de dominio, creas una contraseña y eliges qué servicios quieres activar en ese Virtual Server:

¿Quieres alojar una web en  Virtualmin y, por tanto, en tu servidor? Solo tienes que pinchar en Create Virtual Server.

Cuando lo hayas hecho, parecerá el servidor virtual en la barra de la izquierda en la sección Virtualmin. Allí vas a poder configurar sus usuarios, PHP, instalar aplicaciones como WordPress de manera automática, configurar el SSL, Apache o MariaDB.

Gestionando dominio web en Virtualmin

¿Y para qué sirve la sección Webmin? Básicamente, para gestionar todos los servicios del servidor: apache, MariaDB, Postfix, Dovecot, ProFTPd, SSH Server o poder consultar los logs del sistema, los procesos, gestionar actualizaciones automáticas de paquetes, configurar trabajos cron, el firewall, procesos de arranque del sistema, cambiar la IP, usuarios de Linux y de Webmin (que son dos cosas diferentes), etc.

  • 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 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 su panel principal vas a poder ver las estadísticas del sistema, el estado de los servicios más importantes, configurar las interfaces de red, comprobar el espacio en disco. Vamos, todo lo necesario si no te gusta gestionar tu servidor desde la línea de comandos.

Panel principal de Virtualmin, Webmin

¿Más cosas que puedes hacer en tu sistema?

Nueva versión PHP

Pues en mi caso, suelo instalar una versión más actual de PHP. En Virtualmin hay que hacerlo de una manera muy concreta para no romper nada (para Rocky Linux y similares):

. /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

dnf install php82-php-{cli,fpm,pdo,gd,mbstring,mysqlnd,opcache,curl,xml,zip}

Instalas la repo de REMI y luego la versión PHP 8.2 y algunas extensiones. Puedes instalar también PHP 8.3 en estos momentos. Te lo he contado todo en: Cómo configurar diferentes versiones de PHP en Rocky Linux.

  • Después de instalar la nueva versión, para que Virtualmin la reconozca, tienes que hacer un Re-Check Configuration.

Instalar CSF Firewall

Me gusta más que FirewallD y Fail2ban. Y tiene soporte en Virtualmin con interfaz gráfica. Al instalar ya activar CSF y LFD, se desactivará automáticamente Firewalld y Fail2Ban, para que no haya conflictos.

Primero instalamos CSF mediante un Terminal accediendo con SSH al servidor:

cd /usr/local/src
curl -O https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
./install.sh

sudo systemctl status csf && sudo systemctl status lfd

¿Cómo instalamos la interfaz gráfica en Virtualmin? Hay que instalar el módulo ConfigServer Security & Firewall Webmin en Webmin > Webmin Configuration > Webmin Modules y elegimos instalar mediante From local file. Buscamos en nuestro servidor: /usr/local/csf/csfwebmin.tgz y le damos a instalar.

Automáticamente, nos aparece una entrada a CSF en Webmin > System > ConfigServer Security & Firewall y también en la interfaz principal.

CSF interfaz en Virtualmin

No se activa por defecto. Primero tienes que configurarlo correctamente. La configuración en Virtualmin se encuentra en la rueda dentada de arriba a la izquierda en el panel principal.

Actualizamos Rocky Linux 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).

Webmin > Software Package updates > Scheduled Upgrades para actualizar Rocky Linux mediante Virtualmin.

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 del día los 7 días de la semana. Virtualmin tiene una sección muy interesante llamada System and Server Status en Webmin > Tools. 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:

Como nos aseguramos que los servicios críticos del servidor funcionan con Virtualmin

Backups con Virtualmin y Webmin

Aquí hay que tener cuidado, ya que hay varios sitios donde los puedes crear, tanto en Webmin como en Virtualmin.

Virtualmin

Creando backups en Virtualmin

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.

Webmin

Tienes otras 3 opciones de backup:

  1. Webmin > Backup Configuration files, que te cubre todas las configuraciones que has aplicado en Webmin.
  2. 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.
  3. 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.

¿Qué más cosas puedes añadir a tu servidor?

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. Finalmente, deberías instalar dos programas para auditar la seguridad de tu servidor y corregir cosas: Lynis y OpenSCAP. Ambos están disponibles en los repositorios de Rocky Linux.

Conclusión

Como podéis comprobar, pone ene marcha Virtualmin no es tan complicado, y ahora solo tienes que bucear un poco en todas sus funciones. ¡Ojo! Usar Virtualmin y Webmin no significa que tengas que dar de lado la terminal. Usar SSH es una parte fundamental para gestionar tu servidor, pero para realizar tareas cotidianas, Virtualmin es tu compañero más fiel.

Puede usar la versión GPL, pero si necesitas funciones extra, puedes darte de alta en su suscripción, que no es muy cara (75 $ al año para 10 dominios). Realmente, con la versión gratuita puedes hacerlo todo. Virtualmin Professional está más centrado en usuarios profesionales que quieren montar un servidor y usarlo como reseller. Aquí tienes las diferencias. Pero si quieres apoyarles, puedes hacerles un donativo o darte de alta en la versión Professional.

Te puede interesar: Trucos y consejos para optimizar la memoria RAM en un servidor VPS con Virtualmin.


Descubre más desde algoentremanos.com

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.