Este tutorial lo guiará a través de la instalación de su propia configuración multiservidor ISPConfig 3 con servidores dedicados para el panel, web, DNS, correo y correo web. Tanto el DNS como el servidor de correo tendrán un servidor espejo para redundancia. Puede agregar fácilmente más servidores de cierto tipo después.
Se utilizará el instalador automático oficial de ISPConfig para configurar los servidores. Se utilizará Debian 10 como sistema operativo. La guía también se probó con Ubuntu 20.04.2.
Puede leer más sobre el instalador automático aquí.
Estos serán los hosts que estamos instalando:
host FQDN IP
panel panel.example.com 10.0.64.12
web01 web01.example.com 10.0.64.13
mx1 mx1.example.com 10.mx14
ns1 ns1.example.com 10.0.64.16
ns2 ns2.example.com 10.0.64.17
webmail 6 webmail.
Usaremos ejemplos de nombres de host, direcciones IP y rangos de IP. Asegúrese de cambiarlos en consecuencia en sus comandos/configuración.
Todos los servidores están en la misma red privada pero tienen su propia IP pública. Si sus servidores no tienen una red local compartida, use sus direcciones IPv4 públicas.
Antes de iniciar la instalación de un servidor, configure un registro A y eventual AAAA que apunte al público Dirección IP de su servidor. Por ejemplo, si el nombre de host es panel.example.com y la IP pública es 11.22.33.44, debe configurar un registro A para panel.example.com que apunte a 11.22.33.44. Cada servidor debe tener su propia IP pública y nombre de host.
2. Instalación del servidor maestro
Inicie sesión como root o ejecute
su -
para convertirse en el usuario raíz de su servidor antes de continuar. IMPORTANTE :Debe usar 'su -' y no solo 'su', de lo contrario, Debian configura incorrectamente su variable PATH.
2.1 Configurar el nombre de host y los hosts
El nombre de host de su servidor debe ser un subdominio como "panel.example.com". No use 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 la configuración de su correo. Primero, debe 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, incluido el dominio - espacio - parte del subdominio". Para nuestro nombre de host panel.example.com, el archivo se verá así (algunas líneas pueden ser diferentes, puede diferir según el proveedor de alojamiento):
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
# Esta línea debe cambiarse en cada nodo al nombre de servidor correcto:
127.0.1.1 panel.example.com panel
# Estas líneas son las mismo en cada nodo:10.0.64.12 panel.example.com panel
10.0.64.13 web01.example.com web01
10.0.64.14 mx1.example.com mx1
10.0.64.15 mx2.example .com mx2
10.0.64.16 ns1.example.com ns1
10.0.64.17 ns2.example.com ns2
10.0.64.18 webmail.example.com webmail# Las siguientes líneas son deseables para IPv6 hosts compatibles::1 localhost ip6-localhost ip6-loopbackff02::1 ip6-allnodesff02::2 ip6-allrouters
Como puede ver, también agregamos los nombres de host de nuestros otros servidores, para que puedan comunicarse a través de la red interna más tarde.
Luego edite el archivo /etc/hostname:
nano /etc/nombre de host
Contendrá solo la parte del subdominio, en nuestro caso:
panel
Finalmente, reinicia el servidor para aplicar el cambio:
reinicio systemctl
Inicie sesión nuevamente y verifique si el nombre de host es correcto ahora con estos comandos:
nombre de host
nombre de host -f
La salida será así:
[email protected]:~$ hostname
panel
[email protected]:~$ hostname -f
panel.example.com
Ahora podemos ejecutar el instalador automático para instalar todos los paquetes necesarios e ISPConfig:
wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=sistema
Después de un tiempo, verá:
¡ADVERTENCIA! ¡Este script reconfigurará su servidor completo!
Debe ejecutarse en un servidor recién instalado y lo más probable es que se pierda toda la configuración actual que haya realizado.
Escriba 'sí' si realmente desea continuar:
Responda "sí" y presione enter. Ahora se iniciará el instalador.
Cuando el instalador haya terminado, le mostrará el administrador de ISPConfig y la contraseña raíz de MySQL de esta manera:
[INFO] Su contraseña de administrador de ISPConfig es:5GvfSSSYsdfdYC
[INFO] Su contraseña de root de MySQL es:kkAkft82d!kafMwqxdtYs
Asegúrese de anotar esta información, junto con el servidor al que pertenecen, ya que los necesitará más adelante.
2.2 Configurando los usuarios remotos de MySQL para nuestros servidores esclavos
Iniciaremos sesión en MySQL para permitir que los otros servidores se conecten a la base de datos ISPConfig en este nodo durante la instalación, agregando registros de usuario raíz de MySQL en la base de datos maestra para cada nombre de host y dirección IP del servidor esclavo.
En la terminal, ejecuta
mysql -u raíz -p
Ingrese su contraseña de MySQL y luego ejecute los siguientes comandos:
CREAR USUARIO 'root'@'10.0.64.13' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.13' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'10.0.64.14' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.14' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'10.0.64.15' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.15' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'10.0.64.16' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.16' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'10.0.64.17' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.17' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'10.0.64.18' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'10.0.64.18' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'web01.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'web01.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'mx1.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'mx1.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'mx2.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'mx2.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'ns1.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'ns1.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE USER 'root'@'ns2.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'ns2.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREAR USUARIO 'root'@'webmail.example.com' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'webmail.example.com' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
En los comandos SQL anteriores, reemplace las direcciones IP (10.0.64.12 - 10.0.64.18) con las direcciones IP de sus servidores, web01.example.com, mx1.example.com, mx2.example.com, ns1.example.com , ns2.example.com y webmail.example.com con los nombres de host de sus servidores y myrootpassword con la contraseña raíz deseada (es una buena práctica usar una contraseña diferente para cada host. Anótelas, ya que las necesitará más adelante al instalar o actualizar sus servidores esclavos).
Cuando haya terminado, puede salir de MySQL con:
SALIR;
Ahora puede iniciar sesión en ISPConfig en https://panel.example.com:8080 con el nombre de usuario admin y la contraseña que le mostró el instalador.
2.3 Configuración del cortafuegos
Lo último que debe hacer es configurar nuestro firewall.
Inicie sesión en la interfaz de usuario de ISPConfig y vaya a Sistema -> Firewall. Luego haga clic en "Agregar nuevo registro de firewall".
Para el servidor del panel, tenemos que abrir los siguientes puertos:
TCP:
22,80,443,8080,8081
No es necesario abrir puertos UDP a través de la interfaz de usuario.
También vamos a abrir el puerto 3306, que se usa para MySQL, pero solo desde nuestra red local por razones de seguridad. Para hacerlo, ejecute el siguiente comando desde la CLI, después de que se propague el cambio desde el panel ISPConfig (cuando desaparezca el punto rojo):
ufw permite desde 10.0.64.0/24 a cualquier puerto 3306 proto tcp
Su panel ahora está configurado y listo para usar.
En el siguiente paso, instalaremos el servidor web.