Cómo instalar Webmin en un servidor Ubuntu 20.04

Webmin es un panel de control gratuito y de código abierto para administrar servidores Unix/Linux. Este tutorial le mostrará cómo instalar Webmin en el servidor Ubuntu 20.04.

Cómo instalar Webmin en un servidor Ubuntu 20.04

Webmin proporciona a los usuarios una interfaz gráfica de usuario basada en la web para configurar tareas y ajustes comunes del sistema. Si no te gusta la idea de usar la línea de comandos para gestionar tu servidor, entonces Webmin es una buena alternativa gráfica para ti. La siguiente es una lista de funcionalidades proporcionadas por Webmin.

  • Servidor BIND DNS y DNS autoritativo
  • Servidor Samba
  • Servidor FTP
  • Servidor SMTP Postfix y servidor IMAP/POP3 Dovecot
  • copia de seguridad del sistema de archivos
  • Configurar la rotación de archivos de registro.
  • Editar repositorios de paquetes, programar actualizaciones automáticas de software y recibir informes de actualización por correo electrónico.
  • Gestionar usuarios y grupos
  • Programar trabajos Cron.
  • Configurar el firewall iptables
  • Y muchos más.

Cómo Instalar Webmin en Ubuntu 20.04 desde el repositorio de Webmin

Webmin existe desde 1997. En el momento de escribir este artículo, la última versión estable disponible es la 1.984. Webmin no está en el repositorio de software de Ubuntu. Se recomienda instalar Webmin desde su repositorio oficial para tener siempre la última versión.

Yo voy a usar una maquina virtual en mi propio PC para hacer esta instalación, podéis ver como se monta una maquina virtual en como instalar Oracle VirtualBox y como instalar Vagrant

Para añadir el repositorio de Webmin, cree un archivo de lista de fuentes con un editor de texto de línea de comandos como Nano.

sudo nano /etc/apt/sources.list.d/webmin.list

Añade la siguiente línea en el archivo.

deb http://download.webmin.com/download/repository sarge contrib

Guarda y cierra el archivo. Para guardar el archivo en el editor de texto Nano, pulsa CTRL+O y, a continuación, pulsa Intro para confirmar. Para cerrar el archivo, pulsa CTRL+X . A continuación, debemos ejecutar el siguiente comando para descargar e importar la clave de firma PGP de Webmin al llavero de APT, de forma que el gestor de paquetes de APT pueda verificar la integridad de los paquetes descargados desde el repositorio de Webmin.

wget http://www.webmin.com/jcameron-key.asc

Entonces impórtalo con:

sudo apt-key add jcameron-key.asc

Ahora podemos actualizar el índice de paquetes locales e instalar Webmin.

sudo apt update

sudo apt install webmin -y

Una vez instalado, el servidor web incorporado de Wemin se iniciará automáticamente como se puede ver ejecutando el comando systemctl de abajo:

systemctl status webmin

Output:

Sugerencia: Si el comando anterior no sale inmediatamente, puede pulsar la tecla Q para recuperar el control del terminal.

Si no está en marcha, puedes arrancarlo con:

sudo systemctl start webmin

El servidor de Webmin escucha en el puerto 10000. Si utilizas un firewall como UFW en tu servidor, entonces necesitas abrir el puerto TCP 10000.

sudo ufw allow 10000/tcp

Ahora puedes acceder al panel de control basado en la web a través de

https://your-server-ip:10000

Ahora se te presentará la pantalla de inicio de sesión de Webmin. Puedes usar el root o cualquier cuenta de usuario del grupo sudo en tu sistema Ubuntu 20.04 para iniciar sesión.

webmin ubuntu install

Si no te gusta el color por defecto del menú de navegación, puedes cambiarlo por otro haciendo clic en el icono de configuración del tema en la parte inferior del menú de navegación,

luego selecciona las opciones del menú de navegación y establece la paleta de colores. Por ejemplo, he seleccionado el verde.

Guarda el cambio.

Configuración del proxy inverso

Si instalas Webmin en un servidor de producción, es posible que quieras configurar un proxy inverso con Apache o Nginx para poder utilizar un nombre de dominio para acceder a la interfaz de Webmin sin especificar el número de puerto (10000). Esto también le permite obtener e instalar un certificado Let’s Encrypt TLS válido para Webmin.

Si no tienes un nombre de dominio real, te recomiendo ir a NameCheap para comprar uno. El precio es bajo y dan protección de privacidad whois gratis de por vida.

Apache

Si prefieres usar el servidor web Apache, entonces sigue las instrucciones siguientes para configurar el proxy inverso.

Instalar el servidor web Apache.

sudo apt install apache2

Para utilizar Apache como proxy inverso, necesitamos habilitar el módulo proxy, proxy_http y rewrite.

sudo a2enmod proxy proxy_http rewrite

A continuación, cree un archivo de host virtual para Webmin.

sudo nano /etc/apache2/sites-available/webmin.conf

Añade los siguientes textos en el archivo. Sustituye webmin.tu-dominio.com por tu nombre de dominio real y no olvides crear un registro DNS A para él.

<VirtualHost *:80>
    ServerName webmin.your-domain.com

    ProxyPass / http://127.0.0.1:10000/
    ProxyPassReverse / http://127.0.0.1:10000/
</VirtualHost>

Guarde y cierre el archivo. A continuación, habilite este host virtual.

sudo a2ensite webmin.conf

Recarga Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Ahora puedes acceder remotamente a Webmin introduciendo el nombre del dominio (webmin.tu-dominio.com ) en la barra de direcciones del navegador.

Nginx

Si prefiere utilizar el servidor web Nginx, siga las siguientes instrucciones para configurar el proxy inverso.

Instalar Nginx en Ubuntu.

sudo apt install nginx

Inicie el servidor web Nginx.

sudo systemctl start nginx

A continuación, cree un nuevo archivo de bloque del servidor en el directorio /etc/nginx/conf.d/.

sudo nano /etc/nginx/conf.d/webmin.conf

Pegue el siguiente texto en el archivo. Sustituye webmin.tu-dominio.com por tu nombre de dominio preferido y no olvides crear un registro DNS A para él.

server {
       listen 80;
       listen [::]:80;
       server_name webmin.your-domain.com;

       access_log /var/log/nginx/webmin.access;
       error_log /var/log/nginx/webmin.error;

       location / {
              proxy_pass http://127.0.0.1:10000;
              #proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
        }
}

Guarda y cierra el archivo. A continuación, prueba la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, recarga Nginx.

sudo systemctl reload nginx

Ahora puedes acceder a la interfaz web de Webmin a través de webmin.your-domain.com.

Habilitar HTTPS

Para cifrar el tráfico HTTP cuando se visita la interfaz web de Webmin, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let’s Encrypt. Ejecuta el siguiente comando para instalar el cliente de Let’s Encrypt (certbot) en Ubuntu.

sudo apt install certbot

Si usas Apache, entonces necesitas instalar el plugin de Certbot para Apache.

sudo apt install python3-certbot-apache

A continuación, ejecuta el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d webmin.your-domain.com

Si usas Nginx, entonces necesitas instalar el plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecuta el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d webmin.your-domain.com

Donde:

  • --apache: Utilizar el plugin de Apache.
  • --nginx: Utilizar el plugin nginx.
  • --agree-tos: Aceptar las condiciones del servicio.
  • --redirect: Forzar HTTPS mediante una redirección 301.
  • --hsts: Añadir la cabecera Strict-Transport-Security a cada respuesta HTTP. Obliga al navegador a utilizar siempre TLS para el dominio. Defiende contra el SSL/TLS Stripping.
  • --staple-ocsp: Activa el grapado OCSP. Una respuesta OCSP válida se grapa al certificado que el servidor ofrece durante TLS.

El certificado debería obtenerse e instalarse automáticamente. Y podrá acceder a la interfaz web de Webmin a través de una conexión segura HTTPS.

Añadir remitentes de confianza

Debido a que el propio Webmin se ejecuta en modo HTTP y habilitamos HTTPS en Apache/Nginx, Webmin pensará que https://webmin.your-domain.com está fuera del servidor Webmin. Así que tenemos que añadir referentes de confianza.

Edita el archivo de configuración de Webmin.

sudo nano /etc/webmin/config

Añade la siguiente línea al final.

referers=webmin.your-domain.com

Guarda y cierra el archivo. A continuación, reinicia Webmin.

sudo systemctl restart webmin

Desactivar el modo HTTPS en Webmin

Ahora que la conexión TLS está terminada en Apache/Nginx, necesitamos desactivar el modo HTTPS en el servidor web incorporado de Webmin. Edite el archivo de configuración de Webmin.

sudo nano /etc/webmin/miniserv.conf

Encuentra la siguiente línea.

ssl=1

Cámbialo por lo siguiente para desactivar el modo HTTPS en Webmin.

ssl=0

También podemos añadir la siguiente línea en este archivo para que el servidor web incorporado sólo permita el acceso desde localhost. Los visitantes que utilicen el esquema http://public-ip:10000 estarán prohibidos.

allow=127.0.0.1

Guarda y cierra el archivo. A continuación, reinicia Webmin.

sudo systemctl restart webmin

Solución de problemas

Si ves algún error, puedes comprobar el registro de errores de Webmin (/var/webmin/miniserv.error) para solucionar el problema.

¡Que tengas un ingenioso día!

¡que tengas un ingenioso día!

Contrata tu plan Ingenios@ de Sistemas por 5€ al mes y responderé a todas tus preguntas sobre tecnología en el menor tiempo posible. Pasa a formar parte de la comunidad Ingenios@s de Sistemas y disfruta de contenido exclusivo y aprende sobre sistemas Open Source, Blockchain, SmarContract, Web3, Inteligencia Artificial y Reaidad Virtual, súbete al tren de la Revolución 4.0

Si quieres estar al día y no perderte nada Suscribete al Podcast Ingenios@s de Sistemas, un episodio diario que te mantendrá informado y formado en esta vertiginosa carrera.

Deja un comentario

Share to...