Instalación ISPConfig · 10 min read · Nov 09, 2025

Instalación Automatizada de ISPConfig 3 en Debian 11 y Debian 12, Ubuntu 22.04 y Ubuntu 24.04

Este tutorial te ayudará a instalar tu configuración de servidor único ISPConfig 3 utilizando el instalador automático de ISPConfig. Este instalador sigue las antiguas guías de Perfect Server, pero es más modular y fácil de seguir. Si deseas configurar una instalación multiserver con servidores dedicados para cada servicio, consulta la guía de Perfect Multiserver.

Esta guía funciona para Debian 11 y 12, Ubuntu 22.04 y Ubuntu 24.04. Actualmente soporta las arquitecturas de CPU x86_64 (también conocido como AMD64) y ARM (ARM64). Usaremos el nombre de host server1.example.com. Reemplázalo donde sea necesario. La guía requiere un sistema operativo base recién instalado y vacío; no intentes usarlo en un sistema donde ya hayas configurado otros servicios.

Prerrequisitos

  • Sistema Operativo: Debian 11 y Debian 12, Ubuntu 22.04 o Ubuntu 24.04.
  • Arquitectura de CPU de 64 bits Intel o AMD (x86_64, también conocido como AMD64) o arquitectura de CPU ARM (ARM64).
  • El sistema debe tener acceso a internet para descargar e instalar software con apt.
  • Comienza desde una instalación limpia y vacía del sistema operativo base. El sistema debe ser completamente accesible desde internet; no bloquees el acceso con un firewall, especialmente no el puerto 80 para la emisión de certificados LE y el puerto 8080 para el acceso a ISPConfig, además de los puertos para todos los servicios que uses en ese sistema. El servidor también debe tener acceso a internet para descargar e instalar software durante la instalación y resolver nombres de dominio a través de DNS.

1. Iniciar sesión en el servidor

Inicia sesión como root o ejecuta

su --login

en Debian para convertirte en el usuario root en tu servidor antes de continuar. IMPORTANTE: Debes usar ‘su –login’ o ‘su -‘ y no solo ‘su’. De lo contrario, Debian establecerá incorrectamente tu variable PATH.

En Ubuntu, usa el comando:

sudo -s

para convertirte en el usuario root.

2. Configurar el nombre de host y hosts

El nombre de host de tu servidor debe ser un subdominio como “server1.example.com”. No uses un nombre de dominio sin una parte de subdominio como “example.com” como nombre de host, ya que esto causará problemas más adelante con tu configuración. Primero, debes verificar el nombre de host en /etc/hosts y cambiarlo cuando sea necesario. La línea debe ser: “Dirección IP - espacio - nombre de host completo incl. dominio - espacio - parte del subdominio”. Para nuestro nombre de host server1.example.com, el archivo debe verse así (algunas líneas pueden ser diferentes; puede variar según el proveedor de hosting):

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# Esta línea debe cambiarse al nombre de servidor correcto:  
127.0.1.1 server1.example.com server1  

# Las siguientes líneas son deseables para hosts compatibles con IPv6
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Luego edita el archivo /etc/hostname:

nano /etc/hostname

Deberá contener solo la parte del subdominio, en nuestro caso:

server1

Finalmente, reinicia el servidor para aplicar el cambio:

systemctl reboot

Inicia sesión nuevamente y verifica si el nombre de host es correcto ahora con estos comandos:

hostname  
hostname -f

La salida debe ser como esta:

root@server1:~$ hostname  
server1  
root@server1:~$ hostname -f  
server1.example.com

También deberás configurar un registro DNS con tu proveedor de DNS que apunte a tu servidor. Debe haber un registro A (y/o AAAA) para el subdominio que apunte a tu IP pública.

3. Actualizar el sistema

Para actualizar los paquetes del sistema, ejecuta el comando:

apt update && apt upgrade

4. Ejecutar el autoinstalador

Ahora podemos ejecutar el autoinstalador. La configuración básica contiene los siguientes paquetes de software (más sus dependencias, por supuesto): Apache2, PHP (versiones 5.6 - 8.3), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats y GoAccess. Puedes elegir fácilmente no usar ciertas funciones o instalar servicios adicionales pasando argumentos al instalador. Consulta el Capítulo 6 para las opciones de línea de comandos disponibles.

Instalar ISPConfig con servidor web Apache

Ahora puedes ejecutar el script con argumentos. Por ejemplo, si deseas una instalación normal con servidor web Apache y un rango de puertos para FTP Pasivo + actualizaciones no atendidas, ejecuta:

wget -O - https://get.ispconfig.org | sh -s -- `--use-ftp-ports=40110-40210` --unattended-upgrades

Los siguientes pasos se describen en el capítulo “Ejecutando el autoinstalador”.

Instalar ISPConfig con servidor web Nginx

Ahora puedes ejecutar el script con argumentos. Por ejemplo, si deseas una instalación normal con servidor web Nginx y un rango de puertos para FTP Pasivo + actualizaciones no atendidas, ejecuta:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx `--use-ftp-ports=40110-40210` --unattended-upgrades

Ejecutando el autoinstalador

Después de un tiempo, verás:

¡ADVERTENCIA! Este script reconfigurará tu servidor completo!  
¡Debe ejecutarse en un servidor recién instalado y toda la configuración actual que hayas realizado probablemente se perderá!  
Escribe 'sí' si realmente deseas continuar:

Responde “sí” y presiona enter. El instalador comenzará ahora.

Cuando el instalador haya terminado, te mostrará la contraseña de administrador de ISPConfig y la contraseña root de MySQL así:

[INFO] Tu contraseña de administrador de ISPConfig es: 5GvfSSSYsdfdYC  
[INFO] Tu contraseña root de MySQL es: kkAkft82d!kafMwqxdtYs

Asegúrate de anotar esta información, ya que la necesitarás más tarde.

5. Configuración del firewall

Lo último que hay que hacer es configurar nuestro firewall.

Inicia sesión en la interfaz de ISPConfig y ve a Sistema -> Firewall. Luego haz clic en “Agregar nuevo registro de firewall”.

Para una configuración normal, se vería así:

TCP:

20,21,22,25,80,443,40110:40210,110,143,465,587,993,995,53,8080,8081

UDP:

53

Los puertos necesarios para cada servicio son:

Web: 20, 21, 22, 80, 443 y 40110:40210 (Todos TCP, sin UDP)

Correo: 25, 110, 143, 465, 587, 993 y 995 (Todos TCP, sin UDP)

DNS: 53 (TCP y UDP)

Panel: 8080 y 8081 (Todos TCP, sin UDP)

Tu servidor ahora está configurado y listo para usar. Puedes iniciar sesión en https://server1.example.com:8080

6. Opciones Avanzadas

El autoinstalador tiene varias opciones de línea de comandos para ajustar la configuración.

Puedes ver todos los argumentos con:

wget -O - https://get.ispconfig.org | sh -s -- --help

Puedes, por ejemplo, elegir entre el servidor web Apache y Nginx y qué servicios se instalarán en el sistema. Los argumentos de línea de comandos son:

Uso: ispc3-ai.sh [] [...]  

Este script instala automáticamente todos los paquetes necesarios para una configuración de ISPConfig 3 utilizando las pautas de los "Perfect Server Setup" howtos en www.howtoforge.com.

Los argumentos posibles son:  
    --help          Muestra esta página de ayuda.  
    --debug         Habilita el registro detallado (registra cada comando con el código de salida).  
    --channel       Elige el canal a usar para ISPConfig: --channel=  
                    "stable" es la última versión de ISPConfig disponible en www.ispconfig.org  
                    "dev" es la última rama de desarrollo del repositorio git de ISPConfig: https://git.ispconfig.org/ispconfig/ispconfig3/tree/develop  
                    El canal de desarrollo puede contener errores y características menos probadas y solo debe ser utilizado en producción por usuarios muy experimentados.  
    --lang          Usa el idioma para la instalación de ISPConfig. Especifica con --lang=en|de (solo se soportan actualmente en (Inglés) y de (Alemán)).  
    --interactive   No instales ISPConfig en modo no interactivo.  
                    Esto es necesario si deseas usar el modo experto, por ejemplo, para instalar un servidor esclavo que deba integrarse en una configuración multiserver existente.  
    --use-nginx     Usa el servidor web nginx en lugar de apache2.  
    --use-amavis    Usa amavis en lugar de rspamd para el filtrado de correo.  
    --use-unbound   Usa unbound en lugar de bind9 para la resolución local. Solo permitido si se establece --no-dns.  
    --use-php       Usa versiones específicas de PHP, separadas por comas, en lugar de instalar múltiples PHP, por ejemplo, --use-php=7.4,8.0 (5.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2 y 8.3 disponibles).  
                    --use-php=system desactiva el repositorio sury y solo instala la versión predeterminada de PHP del sistema.  
                    --use-php omitiendo el argumento, usa todas las versiones.  
    --use-ftp-ports Esta opción establece el rango de puertos pasivos para pure-ftpd. Debes especificar el rango de puertos separado por un guion, por ejemplo, --use-ftp-ports=40110-40210.  
                    Si no se proporciona, el rango de puertos pasivos no se configurará.  
    --use-certbot   Usa Certbot en lugar de acme.sh para emitir certificados de Let's Encrypt. No se recomienda a menos que estés migrando desde un servidor antiguo que use Certbot.  
    --no-web        No uses ISPConfig en este servidor para gestionar la configuración del servidor web y no instales nginx/apache o pureftpd.  
                    Esto también evitará la instalación de una interfaz de ISPConfig e implica --no-roundcube así como --no-pma.  
    --no-mail       No uses ISPConfig en este servidor para gestionar la configuración del servidor de correo.  
                    Esto instalará postfix para enviar correos del sistema, pero no dovecot y no configurará ninguna configuración para el correo de ISPConfig. Implica --no-mailman.  
    --no-dns        No uses ISPConfig en este servidor para gestionar entradas DNS. Bind se instalará solo para caché/resolución DNS local.  
    --no-local-dns  No instales caché/resolución DNS local a través de bind.  
    --no-firewall   No instales ufw y dile a ISPConfig que no gestione la configuración del firewall en este servidor.  
    --no-roundcube  No instales roundcube webmail.  
    --roundcube     Instala Roundcube incluso cuando se use --no-mail. Se necesita configuración manual del config de Roundcube.  
    --no-pma        No instales PHPMyAdmin en este servidor.  
    --no-mailman    No instales el gestor de listas de correo Mailman.  
    --no-quota      Desactiva la cuota del sistema de archivos.  
    --no-ntp        Desactiva la configuración de NTP.  
    --no-jailkit    No instales jailkit.  
    --no-ftp        No instales el servidor pure-ftpd.  
    --monit         Instala Monit y configúralo para monitorear los servicios instalados. Servicios soportados: Apache2, NGINX, MariaDB, pure-ftpd-mysql, php-fpm, ssh, named, Postfix, Dovecot, rspamd.  
    --monit-alert-email  
                    Configura alertas para Monit que se envíen a la dirección de correo electrónico dada. por ejemplo, [email protected].  
    --ssh-port      Configura el servidor SSH para escuchar en un puerto no predeterminado. El número de puerto debe estar entre 1 y 65535 y no puede estar en uso por otros servicios. por ejemplo, --ssh-port=64.  
    --ssh-permit-root  
                    Configura el servidor SSH si se permite o no el inicio de sesión root: --ssh-permit-root=, por ejemplo, --ssh-permit-root=without-password.  
    --ssh-password-authentication  
                    Configura el servidor SSH si se permite o no la autenticación por contraseña: --ssh-password-authentication=, por ejemplo, -ssh-password-authentication=no.  
    --ssh-harden    Configura el servidor SSH para tener una configuración de seguridad más fuerte.  
    --unattended-upgrades  
                    Instala UnattendedUpgrades. Puedes agregar argumentos adicionales para limpieza automática y reinicios automáticos cuando sea necesario: --unattended-upgrades=autoclean,reboot (o solo uno de ellos).  
    --i-know-what-i-am-doing  
                    Evita que el autoinstalador pida confirmación antes de continuar para reconfigurar el servidor.

Por ejemplo, para instalar una configuración similar a ‘Perfect Server’ con Nginx en lugar de Apache, usa este comando:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx `--use-ftp-ports=40110-40210` --unattended-upgrades

O para instalar un servidor web Nginx sin servicios de correo y DNS:

wget -O - https://get.ispconfig.org | sh -s -- --use-nginx --no-dns --no-mail `--use-ftp-ports=40110-40210` --unattended-upgrades

7. Finalizando

¡Tu configuración ya está lista!

Puedes apoyar a ISPConfig comprando nuestro manual: https://www.ispconfig.org/documentation/

Los siguientes enlaces son algunos tutoriales/puntos valiosos para una configuración adicional:

Si tienes alguna pregunta, pregúntalas en el foro.

8. Depuración en caso de error

Si algo sale mal durante la instalación, puedes depurar el proceso agregando la bandera de línea de comandos –debug al comando de instalación. Esto escribirá un archivo de registro

/tmp/ispconfig-ai/var/log/ispconfig.log

Además, la opción de línea de comandos –interactive puede ayudar a revelar la razón de un error de instalación.

9. Descargar como máquina virtual

Esta configuración está disponible como una descarga de máquina virtual en formato ova/ovf (compatible con VMWare y Virtualbox) para suscriptores de howtoforge. La máquina virtual está basada en Debian 12 y utiliza Apache como servidor web.

Detalles de inicio de sesión para la VM

  • La contraseña root es: howtoforge
  • La contraseña del usuario “admin” de ISPConfig es: howtoforge
  • Hay otro usuario de shell con el nombre “administrator” y contraseña: howtoforge
  • La contraseña root de MySQL es: 7s8EtDL1QhorSaeHhnRh

Por favor, cambia todas las contraseñas en el primer inicio de sesión.

  • La dirección IP de la VM es 192.168.0.100
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.