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