Instalación automatizada de ISPConfig 3 en Debian 10 – 11 y Ubuntu 20.04

Este tutorial te llevará a través de la instalación de tu propia configuración de servidor único ISPConfig 3 utilizando el auto-instalador de ISPConfig. Este instalador sigue las antiguas guías de Perfect Server pero es más modular y fácil de seguir. Si quieres montar una configuración multiservidor con servidores dedicados para cada servicio, consulta la guía Perfect Multiserver.

Esta guía funciona tanto para Debian 10, como para Debian 11 y Ubuntu 20.04. Utilizaremos el nombre de host servidor1.ejemplo.com. Sustitúyelo cuando sea necesario. La guía requiere un sistema operativo base recién instalado y vacío, no intentes utilizarla en un sistema en el que ya hayas configurado otros servicios.

1. Entra en el servidor

Accede como root o ejecuta

su -

para convertirte en el usuario root de tu servidor antes de proceder. IMPORTANTE: Debes utilizar ‘su -‘ y no sólo ‘su’, de lo contrario tu variable PATH será configurada erróneamente por Debian.

2. Configurar el nombre de host y los hosts

El nombre de host de tu servidor debe ser un subdominio como «servidor1.ejemplo.com». No utilices un nombre de dominio sin una parte de subdominio como «ejemplo.com» como nombre de host, ya que esto causará problemas más adelante con tu configuración. En primer lugar, debes comprobar el nombre de host en/etc/hosts y cambiarlo cuando sea necesario. La línea debería ser «Dirección IP – espacio – nombre de host completo incluyendo el dominio – espacio – parte del subdominio». Para nuestro nombre de host servidor1.ejemplo.com, el archivo deberá tener este aspecto (algunas líneas pueden ser diferentes, puede variar según el proveedor de alojamiento):

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost
# This line should be changed to the correct servername:
127.0.1.1 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters

A continuación, edita el archivo /etc/hostname:

nano /etc/hostname

En nuestro caso, sólo contendrá la parte del subdominio:

server1

Por último, reinicia el servidor para aplicar el cambio:

systemctl reboot

Vuelve a entrar y comprueba si el nombre de host es correcto ahora con estos comandos:

hostname
hostname -f

El resultado será así:

[email protected]:~$ hostname
server1
[email protected]:~$ hostname -f
server1.example.com

También tendrás que 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. Actualiza el sistema

Para actualizar los paquetes del sistema, ejecuta el comando

apt update && apt upgrade

4. Ejecuta 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.0), MariaDB, Postfix, Dovecot, Rspamd, BIND, Jailkit, Roundcube, PHPMyAdmin, Mailman, Webalizer, AWStats y GoAccess. Puedes elegir fácilmente no utilizar determinadas funciones o instalar servicios adicionales pasando argumentos al instalador. Puedes ver todos los argumentos con:

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

Ahora puedes ejecutar el script con argumentos. Por ejemplo, si quieres una instalación normal con un rango de puertos para FTP pasivo + actualizaciones desatendidas, ejecuta:

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

Después de un tiempo, verás:

WARNING! This script will reconfigure your complete server!
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!
Type 'yes' if you really want to continue:

Responde «sí» y pulsa intro. Ahora se iniciará el instalador.

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

[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs

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

5. Configurar el cortafuegos

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

Entra en la UI de ISPConfig, y ve a Sistema -> Cortafuegos. Luego haz clic en «Añadir 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, no UDP)

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

DNS: 53 (TCP y UDP)

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

Tu servidor ya está configurado y listo para ser utilizado. 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, por ejemplo, elegir entre el servidor web Apache y Nginx y qué servicios se instalarán en el sistema. Los argumentos de la línea de comandos son:

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

This script automatically installs all needed packages for an ISPConfig 3 setup using the guidelines from the "Perfect Server Setup" howtos on www.howtoforge.com.

Possible arguments are:
    --help          Show this help page
    --debug         Enable verbose logging (logs each command with the exit code)
    --channel       Choose the channel to use for ISPConfig. --channel=<stable|dev>
                    "stable" is the latest ISPConfig release available on www.ispconfig.org
                    "dev" is the latest stable-branch from the ISPConfig git repository: https://git.ispconfig.org/ispconfig/ispconfig3/tree/stable-3.1
                    -> The dev channel might contain bugs and less-tested features and should only be used in production by very experienced users.
    --lang          Use language for ISPConfig installation. Specify with --lang=en|de (only en (English) and de (German) supported currently).
    --interactive   Don't install ISPConfig in non-interactive mode. This is needed if you want to use expert mode, e. g. to install a slave server that shall be integrated into an existing
                    multiserver setup.
    --use-nginx     Use nginx webserver instead of apache2
    --use-amavis    Use amavis instead of rspamd for mail filtering
    --use-unbound   Use unbound instead of bind9 for local resolving. Only allowed if --no-dns is set.
    --use-php       Use specific PHP versions, comma separated, instead of installing multiple PHP, e.g. --use-php=7.4,8.0 (5.6, 7.0, 7.1, 7.2, 7.3, 7.4 and 8.0 available).
                    --use-php=system disables the sury repository and just installs the system's default PHP version.
                    ommiting the argument (use all versions)
    --use-ftp-ports This option sets the passive port range for pure-ftpd. You have to specify the port range separated by hyphen, e. g. --use-ftp-ports=40110-40210.
                    If not provided the passive port range will not be configured.
    --use-certbot   Use Certbot instead of acme.sh for issuing Let's Encrypt certificates. Not adviced unless you are migrating from a old server that uses Certbot.
    --no-web        Do not use ISPConfig on this server to manage webserver setting and don't install nginx/apache or pureftpd. This will also prevent installing an ISPConfig UI and implies
                    --no-roundcube as well as --no-pma
    --no-mail       Do not use ISPConfig on this server to manage mailserver settings. This will install postfix for sending system mails, but not dovecot and not configure any settings for
                    ISPConfig mail. It implies --no-mailman.
    --no-dns        Do not use ISPConfig on this server to manage DNS entries. Bind will be installed for local DNS caching / resolving only.
    --no-local-dns  Do not install local DNS caching / resolving via bind.
    --no-firewall   Do not install ufw and tell ISPConfig to not manage firewall settings on this server.
    --no-roundcube  Do not install roundcube webmail.
    --roundcube     Install Roundcube even when --no-mail is used. Manual configuration of Roundcube config is needed.
    --no-pma        Do not install PHPMyAdmin on this server.
    --no-mailman    Do not install Mailman mailing list manager.
    --no-quota      Disable file system quota
    --no-ntp        Disable NTP setup
    --unattended-upgrades
                    Install UnattendedUpgrades. You can add extra arguments for automatic cleanup and automatic reboots when necessary with --unattended-upgrades=autoclean,reboot (or only
                    one of them).
    --i-know-what-i-am-doing
                    Prevent the autoinstaller to ask for confirmation before continuing to reconfigure the server.

Por ejemplo, para instalar una configuración similar a la del «Servidor Perfecto» con Nginx en lugar de Apache, utiliza 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 los servicios de correo electrónico y DNS:

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

7. Finalizar

¡Tu configuración ya está hecha!

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

Los siguientes enlaces son algunos tutoriales/puntos útiles para la configuración posterior:

Si tienes alguna pregunta, hazla en el foro.

También te podría gustar...