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 CentOS 8/RHEL 8.
Webmin proporciona a los usuarios una interfaz gráfica de usuario basada en la web para configurar tareas y configuraciones comunes del sistema. Si no le gusta la idea de usar la línea de comandos para administrar su servidor, Webmin es una buena alternativa gráfica para usted. La siguiente es una lista de funcionalidades provistas por Webmin.
- Resolución de DNS BIND y servidor DNS autorizado
- Servidor Samba
- servidor FTP
- Servidor Postfix SMTP y servidor Dovecot IMAP/POP3.
- copia de seguridad del sistema de archivos
- Configure la rotación del archivo de registro.
- Edite repositorios de paquetes, programe actualizaciones de software automáticas y reciba informes de actualización por correo electrónico.
- Administrar usuarios y grupos
- Programar trabajos de Cron.
- Configurar el cortafuegos de iptables
- Y muchos más.
Instalar Webmin en CentOS 8/RHEL 8 desde el repositorio de Webmin
Webmin existe desde 1997. Al momento de escribir este artículo, la última versión estable disponible es la 1.970, que se lanzó el 6 de enero de 2021. Webmin no está en el repositorio de software CentOS/RHEL. Se recomienda instalar Webmin desde su repositorio oficial para que siempre pueda obtener la última versión.
Para agregar un repositorio de Webmin, cree un archivo de repositorio con un editor de texto de línea de comandos como Nano.
sudo dnf install nano sudo nano /etc/yum.repos.d/webmin.repo
Agregue las siguientes líneas en el archivo.
[Webmin] name=Webmin Distribution Neutral #baseurl=https://download.webmin.com/download/yum mirrorlist=https://download.webmin.com/download/yum/mirrorlist enabled=1
Guarde y cierre el archivo. Para guardar el archivo en el editor de texto Nano, presione CTRL+O
, luego presione Enter
para confirmar. Para cerrar el archivo, presiona CTRL+X
. A continuación, debemos ejecutar el siguiente comando para descargar e importar la clave de firma PGP de Webmin para que el administrador de paquetes pueda verificar la integridad de los paquetes descargados del repositorio de Webmin.
wget http://www.webmin.com/jcameron-key.asc
Luego impórtalo con:
sudo rpm --import jcameron-key.asc
Ahora podemos actualizar el repositorio e instalar Webmin.
sudo dnf update -y sudo dnf install webmin -y
Una vez instalado, el servidor web integrado de Wemin se iniciará automáticamente como se puede ver al ejecutar el siguiente comando systemctl:
systemctl status webmin
Salida:
Sugerencia :Si el comando anterior no se cierra inmediatamente, puede presionar la Q clave para recuperar el control de la terminal.
Si no se está ejecutando, puede iniciarlo con:
sudo systemctl start webmin
Si ve el mensaje “Unit webmin.service could not be found
”, entonces necesita reiniciar su servidor.
sudo shutdown -r now
El servidor Webmin escucha en el puerto 10000, por lo que debe abrir el puerto TCP 10000 en el firewall.
sudo firewall-cmd --permanent --add-port=10000/tcp sudo systemctl reload firewalld
Ahora puede acceder al panel de control basado en la web a través de
https://your-server-ip:10000
Debido a que se ejecuta en modo HTTPS y utiliza un certificado TLS autofirmado, el navegador le indicará que la conexión no es segura.
Pero sabe que este es su propio servidor, así que simplemente haga clic en Advanced
pestaña en Firefox y agregue una excepción. Si está utilizando Google Chrome, puede hacer clic en Advanced
-> Proceed
.
Ahora se le presentará la pantalla de inicio de sesión de Webmin. Necesitas usar root
cuenta para iniciar sesión.
Si no le gusta el color predeterminado en el menú de navegación, puede cambiarlo a un color diferente haciendo clic en theme configuration
icono en la parte inferior del menú de navegación,
luego seleccione las opciones del menú de navegación y configure la paleta de colores. Por ejemplo, seleccioné azul medianoche.
Guarde el cambio.
Configuración del proxy inverso
Si instala Webmin en un servidor de producción, es posible que desee configurar un proxy inverso con Apache o Nginx para poder usar 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 tiene un nombre de dominio real, le recomiendo ir a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad whois gratis de por vida.
Apache
Si prefiere utilizar el servidor web Apache, siga las instrucciones a continuación para configurar el proxy inverso.
Instale el servidor web Apache.
sudo dnf install httpd
Luego cree un archivo de host virtual para Webmin.
sudo nano /etc/httpd/conf.d/webmin.conf
Agregue los siguientes textos al archivo. Reemplace webmin.your-domain.com
con su nombre de dominio real y no olvide 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. Vuelva a cargar Apache para que los cambios surtan efecto.
sudo systemctl reload httpd
De forma predeterminada, SELinux prohíbe a Apache realizar solicitudes de red a otros servidores, pero luego Apache necesita reenviar solicitudes HTTP a 127.0.0.1:10000
, por lo que debemos decirle a SELinux que permita Apache con el siguiente comando.
sudo setsebool -P httpd_can_network_connect 1
Ahora puede acceder de forma remota a Webmin ingresando el nombre de dominio (webmin.your-domain.com
) en la barra de direcciones del navegador.
Nginx
Si prefiere usar el servidor web Nginx, siga las instrucciones a continuación para configurar el proxy inverso.
Instale Nginx en CentOS/RHEL.
sudo dnf install nginx
Inicie el servidor web Nginx.
sudo systemctl start nginx
Luego cree un nuevo archivo de bloque de servidor en /etc/nginx/conf.d/
directorio.
sudo nano /etc/nginx/conf.d/webmin.conf
Pegue el siguiente texto en el archivo. Reemplace webmin.your-domain.com
con su nombre de dominio preferido y no olvide 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; } }
Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.
sudo nginx -t
Si la prueba es exitosa, vuelva a cargar Nginx.
sudo systemctl reload nginx
De forma predeterminada, SELinux prohíbe a Nginx realizar solicitudes de red a otros servidores, pero luego Nginx necesita reenviar solicitudes HTTP a 127.0.0.1:10000
, por lo que debemos decirle a SELinux que permita Nginx con el siguiente comando.
sudo setsebool -P httpd_can_network_connect 1
Ahora puede acceder a la interfaz web de Webmin a través de webmin.your-domain.com
.
Habilitar HTTPS
Para cifrar el tráfico HTTP cuando visita la interfaz web de Webmin, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en CentOS/RHEL.
sudo dnf install certbot
Si usa Apache, entonces necesita instalar el complemento Certbot Apache.
sudo dnf install python3-certbot-apache
A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com
Si usa Nginx, entonces necesita instalar el complemento Certbot Nginx.
sudo dnf install python3-certbot-nginx
A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d webmin.your-domain.com
donde:
--apache
:Utilice el complemento de Apache.--nginx
:use el complemento nginx.--agree-tos
:Acepto los términos del servicio.--redirect
:Forzar HTTPS por redirección 301.--hsts
:agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.--staple-ocsp
:activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.
Ahora se debe obtener el certificado e instalarlo automáticamente. Y podrá acceder a la interfaz web de Webmin a través de una conexión HTTPS segura.
Añadir referentes de confianza
Debido a que Webmin se está ejecutando en modo HTTP y habilitamos HTTPS en Apache/Nginx, Webmin pensará que https://webmin.your-domain.com
está fuera del servidor de Webmin. Por lo tanto, debemos agregar referentes de confianza.
Edite el archivo de configuración de Webmin.
sudo nano /etc/webmin/config
Agregue la siguiente línea al final.
referers=webmin.your-domain.com
Guarde y cierre el archivo. Luego reinicie Webmin.
sudo systemctl restart webmin
Deshabilitar el modo HTTPS en Webmin
Ahora que la conexión TLS finaliza en Apache/Nginx, debemos deshabilitar el modo HTTPS en el servidor web integrado de Webmin. Edite el archivo de configuración de Webmin.
sudo nano /etc/webmin/miniserv.conf
Busque la siguiente línea.
ssl=1
Cámbielo a lo siguiente para deshabilitar el modo HTTPS en Webmin.
ssl=0
También podemos agregar la siguiente línea en este archivo para que el servidor web incorporado solo permita el acceso desde localhost. Visitantes que usan http://public-ip:10000
el esquema estará prohibido.
allow=127.0.0.1
Guarde y cierre el archivo. Luego reinicie Webmin.
sudo systemctl restart webmin
Resolución de problemas
Si ve algún error, puede consultar el registro de errores de Webmin (/var/webmin/miniserv.error
) para solucionar problemas.