GNU/Linux >> Tutoriales Linux >  >> Panels >> Panels

Instalación de un clúster de base de datos Web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3

Instalación de un clúster de base de datos web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3

Este tutorial describe la instalación de un servidor web, de correo electrónico, de base de datos y de DNS en clúster que se usará para redundancia, alta disponibilidad y equilibrio de carga en Debian 6 con el panel de control ISPConfig 3. La replicación MySQL Master/Master se usará para replicar las bases de datos del cliente MySQL entre los servidores y Unison se usará para sincronizar las carpetas /var/www (sitios web) y /var/vmail (datos de la cuenta de correo electrónico).

1 Configuración de los dos sistemas base

En esta configuración, habrá un servidor maestro (que ejecuta la interfaz del panel de control ISPConfig) y un servidor esclavo que refleja los servicios web (apache), correo electrónico (postfix y dovecot) y base de datos (MySQL) del servidor maestro.

Para instalar la configuración en clúster, necesitamos dos servidores con una instalación mínima de Debian 6.0. La configuración básica se describe en el siguiente tutorial en los pasos 1 - 8:

https://www.howtoforge.com/servidor-perfecto-debian-squeeze-with-bind-and-dovecot-ispconfig-3

¡Instale solo los pasos 1 a 8 del tutorial del servidor perfecto y no los otros pasos, ya que difieren para una configuración en clúster!

En mi ejemplo, utilizo los siguientes nombres de host y direcciones IP para los dos servidores:

Servidor maestro

Nombre de host:server1.example.tld
Dirección IP:192.168.0.105

Servidor esclavo

Nombre de host:server2.example.tld
Dirección IP:192.168.0.106

Siempre que aparezcan estos nombres de host o direcciones IP en los próximos pasos de instalación, deberá cambiarlos para que coincidan con las direcciones IP y los nombres de host de sus servidores.

2 Instalando los dos servidores

Los siguientes pasos deben ejecutarse en el maestro y en el servidor esclavo. Si un paso específico es solo para el maestro o el esclavo, he agregado una nota en la descripción en rojo.

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   server1.example.tld
192.168.0.106   server2.example.tld

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Establezca el nombre de host del servidor:

echo server1.example.tld> /etc/hostname
/etc/init.d/hostname.sh start

Utilice server1.example.tld en el primer servidor y server2.example.tld en el segundo servidor.

Edite el archivo source.list...

vi /etc/apt/sources.list 

... y asegúrese de que su /etc/apt/sources.list contenga el repositorio squeeze-updates (esto garantiza que siempre obtenga las actualizaciones más recientes para el escáner de virus ClamAV:este proyecto publica lanzamientos con mucha frecuencia y, a veces, las versiones antiguas dejan de funcionar) ).

[...]
deb http://ftp.de.debian.org/debian/ squeeze-updates main
[...]

Ejecutar

actualización apt-get
actualización apt-get

para instalar las últimas actualizaciones (si las hay).

Es una buena idea sincronizar el reloj del sistema con un NTP (n red t tiempo p rotocol) servidor a través de Internet. Simplemente ejecute

apt-get -y install ntp ntpdate

y la hora de su sistema siempre estará sincronizada.

En el servidor 1:

Ahora creamos un par de claves pública/privada en server1.example.tld:

ssh-keygen -t dsa

[email protected]:~# ssh-keygen -t dsa
Generando par de claves dsa pública/privada.
Ingrese el archivo en el que guardar la clave (/root/.ssh/id_dsa):<- - ENTRAR
Directorio creado '/root/.ssh'.
Ingresar frase de contraseña (vacío si no hay frase de contraseña):<-- ENTRAR
Ingresar la misma frase de contraseña nuevamente:<-- ENTRAR
Su identificación se ha guardado en /root/.ssh/id_dsa.
Su clave pública se ha guardado en /root/.ssh/id_dsa.pub.
La huella digital de la clave es:
1b:95:bc:4a:f4:9f:d8:ea:24:31:0f:c9:72:d5:a7:80 [email protected]
La imagen randomart de la clave es:
+- -[ DSA 1024]----+
| |
| oo |
| E*. . |
| o =o o |
| . Asi que . |
| +O+. |
| + + + |
| o. |
| .o |
+-----------------+
[email protected]:~#

Es importante que no ingrese una frase de contraseña; de lo contrario, la duplicación no funcionará sin la interacción humana, ¡simplemente presione ENTER!

A continuación, copiamos nuestra clave pública en server2.example.tld:

ssh-copy-id -i $HOME/.ssh/id_dsa.pub [email protected]

[email protected]:~# ssh-copy-id -i $HOME/.ssh/id_dsa.pub [email protected]
La autenticidad del host '192.168.0.101 (192.168.0.101)' no puede establecerse.
La huella dactilar de la clave RSA es 25:d8:7a:ee:c2:4b:1d:92:a7:3d:16:26:95:56:62:4e.
¿Está seguro desea continuar conectándose (sí/no)? <-- sí (lo verá solo si es la primera vez que se conecta al servidor 2)
Advertencia:'192.168.0.101' (RSA) agregado permanentemente a la lista de hosts conocidos.
ejemplo@ Contraseña de unixlinux.online:<-- contraseña raíz del servidor2
Ahora intente iniciar sesión en la máquina, con "ssh '[email protected]'", y verifique:

 .ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

Ahora compruebe en el servidor2 si la clave pública del servidor1 se ha transferido correctamente:

servidor2:

cat $HOME/.ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBAPhiAexgEBexnw0rFG8lXwAuIsca/V+lhmv5lhF3BqUfAbL7e2sWlQlGhxZ8I2UnzZK8Ypffq6Ks+lp46yOs7MMXLqb7JBP9gkgqxyEWqOoUSt5hTE9ghupcCvE7rRMhefY5shLUnRkVH6hnCWe6yXSnH+Z8lHbcfp864GHkLDK1AAAAFQDddQckbfRG4C6LOQXTzRBpIiXzoQAAAIEAleevPHwi+a3fTDM2+Vm6EVqR5DkSLwDM7KVVNtFSkAY4GVCfhLFREsfuMkcBD9Bv2DrKF2Ay3OOh39269Z1rgYVk+/MFC6sYgB6apirMlHj3l4RR1g09LaM1OpRz7pc/GqIGsDt74D1ES2j0zrq5kslnX8wEWSHapPR0tziin6UAAACBAJHxgr+GKxAdWpxV5MkF+FTaKcxA2tWHJegjGFrYGU8BpzZ4VDFMiObuzBjZ+LrUs57BiwTGB/MQl9FKQEyEV4J+AgZCBxvg6n57YlVn6OEA0ukeJa29aFOcc0inEFfNhw2jAXt5LRyvuHD/C2gG78lwb6CxV02Z3sbTBdc43J6y [email protected]

Instale postfix, dovecot y mysql con un solo comando:

apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d sudo

Ingrese la nueva contraseña para el usuario root de MySQL cuando lo solicite el instalador. Debe elegir la misma contraseña para ambos servidores. Luego responda las siguientes preguntas como se describe a continuación:

¿Tipo general de configuración? <-- Sitio de Internet
¿Nombre del correo? <-- server1.mydomain.tld
Se requiere certificado SSL <-- Ok

Utilice server1.example.tld en el primer servidor y server2.example.tld en el segundo servidor.

Queremos que MySQL escuche en todas las interfaces, no solo en localhost, por lo tanto, editamos /etc/mysql/my.cnf y comentamos la línea bind-address =127.0.0.1:

vi /etc/mysql/my.cnf
[...]  

# Instead of skip-networking the default is now to listen only on  
# localhost which is more compatible and is not less secure.  
#bind-address           = 127.0.0.1  

[...]

Luego reinicie MySQL:

/etc/init.d/mysql restart

Ahora preparamos los servidores MySQL para la replicación maestro/maestro mysql.

En el servidor 1:

Inicie sesión en MySQL en el shell con...

 mysql -u root -p

... e ingrese la contraseña raíz de MySQL que eligió durante la instalación de mysql. Luego ejecute este comando en el shell de MySQL:

OTORGAR ESCLAVO DE REPLICACIÓN EN *.* A 'slaveuser'@'%' IDENTIFICADO POR 'slave_user_password';
FLUSH PRIVILEGES;
quit;

Reemplace 'slave_user_password' con una contraseña segura que desea usar para que el esclavo se conecte al servidor maestro. Reemplace este marcador de posición en los próximos pasos con la contraseña que haya elegido dondequiera que aparezca el marcador de posición.

Ahora configuremos nuestros 2 nodos MySQL:

En el servidor 1:

vi /etc/mysql/my.cnf

Busque la sección que comienza con [mysqld] y coloque las siguientes opciones (comentando todos los conflictos existentes). opciones):

[...]
[mysqld]
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
 
master-host = 192.168.0.106
master-user = slaveuser
master-password = slave_user_password
master-connect-retry = 60   
 
expire_logs_days        = 10
max_binlog_size         = 500M
log_bin                        = /var/log/mysql/mysql-bin.log  
[...]

Luego detenga MySQL:

/etc/init.d/mysql stop

Ahora haga casi lo mismo en el servidor2...

En el servidor 2:

vi /etc/mysql/my.cnf

Busque la sección que comienza con [mysqld] y coloque las siguientes opciones (comentando todos los conflictos existentes). opciones):

[...]
[mysqld]
server-id = 2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2
   
master-host = 192.168.0.105
master-user = slaveuser
master-password = slave_user_password
master-connect-retry = 60
 
expire_logs_days        = 10
max_binlog_size         = 500M
log_bin                        = /var/log/mysql/mysql-bin.log  
[...]

Luego detenga MySQL:

/etc/init.d/mysql stop

Ahora tenemos que sincronizar los dos servidores mysql. Hacemos esto copiando el directorio de datos mysql del maestro al esclavo y también el archivo de configuración de debian que contiene el usuario debian-sys-maint. Esto se puede hacer como detuvimos mysql antes en ambos servidores.

En el servidor 1:

scp -pr /var/lib/mysql/* [email protected]:/var/lib/mysql/
scp -pr /etc/mysql/debian.cnf [email protected]:/etc/mysql/ debian.cnf

Ahora volvemos a iniciar MySQL en el servidor maestro:

/etc/init.d/mysql start

Inicie sesión en el shell de MySQL como usuario root...

mysql -u root -p

... y ejecute este comando en el shell de MySQL...

 SHOW MASTER STATUS; 

... para obtener el estado maestro de MySQL:

mysql> MOSTRAR ESTADO DEL MAESTRO;
+------------------+----------+--------- -----+------------------+
| Archivo | Posición | Binlog_Do_DB | Binlog_Ignorar_DB |
+------------------+----------+------------ -----------------------------------+
| mysql-bin.000002 | 106 | | |
+------------------+----------+-------------- +------------------+
1 fila en conjunto (0.00 seg)

La información que necesitamos para el siguiente paso es el archivo binlog mysql-bin.000002 y la posición binlog 106. Necesitamos los mismos detalles para server2 más adelante.

Ahora ejecute este comando en el shell de MySQL en el maestro para conectarlo al esclavo:

DETENER ESCLAVO;
CAMBIAR MAESTRO A MASTER_HOST='192.168.0.106', MASTER_USER='slaveuser', MASTER_PASSWORD='slave_user_password', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106;
INICIAR ESCLAVO;

Luego verifique el estado del esclavo:

SHOW SLAVE STATUS \G

Es importante que tanto Slave_IO_Running como Slave_SQL_Running tengan el valor Sí en la salida.

En el servidor 2:

Inicie sesión en el shell de MySQL como usuario root...

mysql -u root -p

... y ejecute este comando en el shell de MySQL:

DETENER ESCLAVO;
CAMBIAR MAESTRO A MASTER_HOST='192.168.0.105', MASTER_USER='slaveuser', MASTER_PASSWORD='slave_user_password', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=106;
INICIAR ESCLAVO;

Luego verifique el estado del esclavo:

SHOW SLAVE STATUS \G

Es importante que tanto Slave_IO_Running como Slave_SQL_Running tengan el valor Sí en la salida

La configuración de mysql master/master replication ya está finalizada y procedemos a instalar los demás paquetes de software.

Instalación de un clúster de base de datos Web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3 - Página 2

Los siguientes pasos deben ejecutarse en el servidor 1 y el servidor 2.

Para instalar amavisd-new, SpamAssassin y ClamAV, ejecutamos:

 apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

La configuración de ISPConfig 3 usa amavisd que carga la biblioteca de filtros SpamAssassin internamente, por lo que podemos detener SpamAssassin para liberar RAM:

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove

Luego instale Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear y mcrypt se pueden instalar de la siguiente manera:

 apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby php5-xcache libapache2-mod-perl2 sudo zip wget

Verá la siguiente pregunta:

Servidor web para reconfigurar automáticamente:<-- apache2
¿Configurar base de datos para phpmyadmin con dbconfig-common? <-- No

Luego ejecute el siguiente comando para habilitar los módulos de Apache suexec, rewrite, ssl, actions e include:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd y la cuota se pueden instalar con el siguiente comando:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Edite el archivo /etc/default/pure-ftpd-common...

vi /etc/default/pure-ftpd-common

... y asegúrese de que el modo de inicio esté configurado como autónomo y establezca VIRTUALCHROOT=true:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Edite el archivo /etc/inetd.conf para evitar que inetd intente iniciar ftp:

vi /etc/inetd.conf

Si hay una línea que comienza con ftp stream tcp, coméntelo (si no existe tal archivo, está bien y no tiene que modificar /etc/inetd.conf):

[...]
#:STANDARD: These are standard services.
#ftp    stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper
[...]

Si tuvo que modificar /etc/inetd.conf, reinicie inetd ahora:

/etc/init.d/openbsd-inetd restart

Ahora configuramos PureFTPd para permitir sesiones FTP y TLS. FTP es un protocolo muy inseguro porque todas las contraseñas y todos los datos se transfieren en texto claro. Mediante el uso de TLS, toda la comunicación se puede cifrar, lo que hace que el FTP sea mucho más seguro.

Si desea permitir sesiones FTP y TLS, ejecute:

echo 1 > /etc/pure-ftpd/conf/TLS

Para usar TLS, debemos crear un certificado SSL. Lo creo en /etc/ssl/private/, por lo tanto, primero creo ese directorio:

mkdir -p /etc/ssl/private/

Posteriormente, podemos generar el certificado SSL de la siguiente manera:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Nombre del país (código de 2 letras) [AU]:<-- Ingrese el nombre de su país (por ejemplo, "DE").
Nombre del estado o provincia (nombre completo) [Algún estado]:<-- Ingrese su estado o Nombre de la provincia.
Nombre de la localidad (p. ej., ciudad) []:<-- Ingrese su ciudad.
Nombre de la organización (p. ej., empresa) [Internet Widgits Pty Ltd]:<-- Ingrese el nombre de su organización (p. ej., el nombre de su empresa).
Nombre de la unidad organizativa (p. ej., sección) []:<-- Ingrese el nombre de su unidad organizativa (p. ej., "Departamento de TI").
Nombre común (p. ej., SU nombre) []:<-- Ingrese el nombre de dominio completo del sistema (por ejemplo, "servidor1.ejemplo.com").
Dirección de correo electrónico []:<-- Ingrese su dirección de correo electrónico.

Cambiar los permisos del certificado SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Luego reinicie PureFTPd:

/etc/init.d/pure-ftpd-mysql restart

Edite /etc/fstab. El mío se ve así (agregué ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 a la partición con el punto de montaje /):

vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
# swap was on /dev/sda5 during installation
UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

Para habilitar la cuota, ejecute estos comandos:

 mount -o remount /

control de cuota -avugm
cuota -avug

Instale el servidor DNS BIND:

apt-get -y install bind9 dnsutils

Instale vlogger, webalizer y awstats:

 apt-get -y install vlogger webalizer awstats geoip-database

Abra /etc/cron.d/awstats luego...

vi /etc/cron.d/awstats

... y comente ambos trabajos cron en ese archivo:

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
 #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh 

Instale Jailkit:Jailkit solo es necesario si desea chrootear a los usuarios de SSH. Se puede instalar de la siguiente manera (importante:Jailkit se debe instalar antes de ISPConfig - ¡no se puede instalar después!):

apt-get -y install build-essential autoconf automake1.9 libtool flex bison

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*

Instale fail2ban:esto es opcional pero recomendado, porque el monitor ISPConfig intenta mostrar el registro:

apt-get install fail2ban

Para hacer que fail2ban monitoree PureFTPd y Dovecot, cree el archivo /etc/fail2ban/jail.local:

vi /etc/fail2ban/jail.local
[pureftpd]
enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

Luego cree los siguientes dos archivos de filtro:

vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P<host>\S*),.*
ignoreregex =

Reinicie fail2ban después:

/etc/init.d/fail2ban restart

Para instalar el cliente de correo web SquirrelMail, ejecute:

apt-get install squirrelmail

Luego crea el siguiente enlace simbólico...

ln -s /usr/share/squirrelmail/ /var/www/webmail

... y configurar SquirrelMail:

squirrelmail-configure

Debemos decirle a SquirrelMail que estamos usando Dovecot-IMAP/-POP3:

Configuración de SquirrelMail: Leer: config.php (1.4.0)
--------------------------------- ------------------------
Menú principal --
1. Preferencias de la organización
2. Configuración del servidor
3. Valores predeterminados de carpeta
4. Opciones generales
5. Temas
6. Libretas de direcciones
7. Mensaje del día (MOTD)
8. Complementos
9. Base de datos
10. Idiomas

D. Establecer configuraciones predefinidas para servidores IMAP específicos

C   Activar color 
S   Guardar datos
Q   Salir

Comando >> <-- D


Configuración de SquirrelMail: Leer: config.php
--------------------------- ------------------------------
Mientras construimos SquirrelMail, hemos descubierto algunas
preferencias que funcionan mejor con algunos servidores que no funcionan
tan bien con otros. Si selecciona su servidor IMAP, esta opción
establecerá algunas configuraciones predefinidas para ese servidor.

Tenga en cuenta que aún tendrá que revisar y asegurarse
de que todo es correcto. Esto no lo cambia todo. Hay
solo algunas configuraciones que esto cambiará.

Por favor, seleccione su servidor IMAP:
    bincimap    = Servidor BInc IMAP
    courier     = Servidor IMAP de Courier
Cyrus =cyrus imap servidor
dovecot =dovecot seguro imap servidor
intercambio =microsoft intercambio imap servidor
hmailserver =hmailserver
macOSX =Mac OS X Mailserver
Mercury32 =Mercury /32
    uw          = Servidor IMAP de la Universidad de Washington
    gmail       = Acceso IMAP a cuentas de Google mail (Gmail)

    quit        = No cambiar nada
Comando >> <-- dovecot


Configuración de SquirrelMail : Leer: config.php
-------------- ----------------------------------
Mientras construíamos SquirrelMail, hemos descubierto algunos
preferencias que funcionan mejor con algunos servidores que no funcionan
tan bien con otros. Si selecciona su servidor IMAP, esta opción
establecerá algunas configuraciones predefinidas para ese servidor.

Tenga en cuenta que aún tendrá que revisar y asegurarse
de que todo es correcto. Esto no lo cambia todo. Hay
solo algunas configuraciones que esto cambiará.

Por favor, seleccione su servidor IMAP:
    bincimap    = Servidor BInc IMAP
    courier     = Servidor IMAP de Courier
Cyrus =cyrus imap servidor
dovecot =dovecot seguro imap servidor
intercambio =microsoft intercambio imap servidor
hmailserver =hmailserver
macOSX =Mac OS X Mailserver
Mercury32 =Mercury /32
    uw          = Servidor IMAP de la Universidad de Washington
    gmail       = Acceso IMAP a cuentas de Google mail (Gmail)

    quit        = No cambiar nada
Comando >> dovecot

imap_server_type =dovecot
default_folfer_prefix =
Trash_folder =Trash
Sent_folder =SED
Draft_Folder =Drafts
/>          default_sub_of_inbox = false
show_contain_subfolders_option =false
            opcional_delimitador = detectar
                 delete_folder = false

Presione enter para continuar... <-- presione ENTER


Configuración de SquirrelMail :Leer: config.php (1.4.0)
---------------------------------------------------- ---------------------
Menú principal --
1. Preferencias de la organización
2. Configuración del servidor
3. Valores predeterminados de carpeta
4. Opciones generales
5. Temas
6. Libretas de direcciones
7. Mensaje del día (MOTD)
8. Complementos
9. Base de datos
10. Idiomas

D. Establecer configuraciones predefinidas para servidores IMAP específicos

C   Activar color 
S   Guardar datos
Q   Salir

Comando >> <-- S


Configuración de SquirrelMail: Leer: config.php (1.4.0)
---------------------- --------------------------------------------------
Menú principal --
1. Preferencias de la organización
2. Configuración del servidor
3. Valores predeterminados de carpeta
4. Opciones generales
5. Temas
6. Libretas de direcciones
7. Mensaje del día (MOTD)
8. Complementos
9. Base de datos
10. Idiomas

D. Establecer configuraciones predefinidas para servidores IMAP específicos

C   Activar color 
S   Guardar datos
Q   Salir

Comando >> <-- Q

A continuación, habilitamos un Alias ​​/webmail global para Squirrelmail:

cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 recargar

Ahora abra /etc/apache2/conf.d/squirrelmail.conf...

vi /etc/apache2/conf.d/squirrelmail.conf

... y agregue las siguientes líneas al contenedor que garantiza que se use mod_php para acceder a SquirrelMail, independientemente del modo PHP que seleccione para su sitio web en ISPConfig:

[...]
Alias /webmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
   Options FollowSymLinks
<IfModule mod_php5.c>
   AddType application/x-httpd-php .php
   php_flag magic_quotes_gpc Off
   php_flag track_vars On
   php_admin_flag allow_url_fopen Off
   php_value include_path .
   php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp
   php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname
   php_flag register_globals off
</IfModule>
<IfModule mod_dir.c>
   DirectoryIndex index.php
</IfModule>
 
# access to configtest is limited by default to prevent information leak
<Files configtest.php>
   order deny,allow
   deny from all
   allow from 127.0.0.1
</Files>
</Directory>
[...]

Cree el directorio /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... y hacerlo propiedad del usuario www-data:

chown www-data /var/lib/squirrelmail/tmp

Vuelva a cargar Apache:

/etc/init.d/apache2 reload

Eso es todo:/etc/apache2/conf.d/squirrelmail.conf define un alias llamado /squirrelmail que apunta al directorio de instalación de SquirrelMail /usr/share/squirrelmail.

Ahora puede acceder a SquirrelMail desde su sitio web de la siguiente manera:

http://www.example.com/squirrelmail

También puede acceder desde el panel de control de ISPConfig vhost de la siguiente manera (esto no necesita ninguna configuración en ISPConfig):

http://server1.example.com:8080/squirrelmail

A continuación instalamos Unison. Unison se utiliza para sincronizar los directorios /var/www y /var/vmail entre maestro y esclavo

apt-get install unison

Ahora instalamos un archivo de configuración unísono en el primer servidor.

En el servidor 1:

Cree un nuevo archivo /root/.unison/default.prf en server1...

mkdir /root/.unison
vi /root/.unison/default.prf

... y agregue el siguiente contenido:

# Roots of the synchronization
root = /var
root = ssh://192.168.0.106//var/
 
# Paths to synchronize
path = www
path = vmail
 
# Some regexps specifying names and paths to ignore
#ignore = Path stats    ## ignores /var/www/stats
#ignore = Path stats/*  ## ignores /var/www/stats/*
#ignore = Path */stats  ## ignores /var/www/somedir/stats, but not /var/www/a/b/c/stats
#ignore = Name *stats   ## ignores all files/directories that end with "stats"
#ignore = Name stats*   ## ignores all files/directories that begin with "stats"
#ignore = Name *.tmp    ## ignores all files with the extension .tmp
   
#          When set to true, this flag causes the user interface to skip
#          asking for confirmations on non-conflicting changes. (More
#          precisely, when the user interface is done setting the
#          propagation direction for one entry and is about to move to the
#          next, it will skip over all non-conflicting entries and go
#          directly to the next conflict.)
auto=true
   
#          When this is set to true, the user interface will ask no
#          questions at all. Non-conflicting changes will be propagated;
#          conflicts will be skipped.
batch=true
   
#          !When this is set to true, Unison will request an extra
#          confirmation if it appears that the entire replica has been
#          deleted, before propagating the change. If the batch flag is
#          also set, synchronization will be aborted. When the path
#          preference is used, the same confirmation will be requested for
#          top-level paths. (At the moment, this flag only affects the
#          text user interface.) See also the mountpoint preference.
confirmbigdel=true
   
#          When this preference is set to true, Unison will use the
#          modification time and length of a file as a `pseudo inode
#          number' when scanning replicas for updates, instead of reading
#          the full contents of every file. Under Windows, this may cause
#          Unison to miss propagating an update if the modification time
#          and length of the file are both unchanged by the update.
#          However, Unison will never overwrite such an update with a
#          change from the other replica, since it always does a safe
#          check for updates just before propagating a change. Thus, it is
#          reasonable to use this switch under Windows most of the time
#          and occasionally run Unison once with fastcheck set to false,
#          if you are worried that Unison may have overlooked an update.
#          The default value of the preference is auto, which causes
#          Unison to use fast checking on Unix replicas (where it is safe)
#          and slow checking on Windows replicas. For backward
#          compatibility, yes, no, and default can be used in place of
#          true, false, and auto. See the section "Fast Checking" for more
#          information.
fastcheck=true

#          When this flag is set to true, the group attributes of the
#          files are synchronized. Whether the group names or the group
#          identifiers are synchronizeddepends on the preference numerids.
group=true
   
#          When this flag is set to true, the owner attributes of the
#          files are synchronized. Whether the owner names or the owner
#          identifiers are synchronizeddepends on the preference
#          extttnumerids.
owner=true
   
#          Including the preference -prefer root causes Unison always to
#          resolve conflicts in favor of root, rather than asking for
#          guidance from the user. (The syntax of root is the same as for
#          the root preference, plus the special values newer and older.)
#          This preference is overridden by the preferpartial preference.
#          This preference should be used only if you are sure you know
#          what you are doing!
prefer=newer
   
#          When this preference is set to true, the textual user interface
#          will print nothing at all, except in the case of errors.
#          Setting silent to true automatically sets the batch preference
#          to true.
silent=true
   
#          When this flag is set to true, file modification times (but not
#          directory modtimes) are propagated.
times=true

Queremos automatizar la sincronización, por eso creamos un trabajo cron para ello en server1.example.tld:

crontab -e
*/5 * * * * /usr/bin/unison &> /dev/null

Instalación de un clúster de base de datos Web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3 - Página 3

3 Instalación de ISPConfig en el primer servidor (maestro)

En este paso instalaremos ISPConfig en el servidor maestro. Para obtener la URL de descarga de la última versión estable de ISPConfig 3, visite el sitio web de ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

Ahora tenemos que agregar dos nuevos registros de usuario raíz de mysql en la base de datos maestra para permitir el acceso raíz desde el nombre de host y la dirección IP del servidor esclavo.

En el servidor1:

Inicie sesión en la base de datos MySQL como usuario root...

mysql -u root -p

... y ejecute estas consultas mysql:

CREAR USUARIO 'root'@'192.168.0.106' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'192.168.0.106' 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'@'server2.example.tld' IDENTIFICADO POR 'myrootpassword';
CONCEDER TODOS LOS PRIVILEGIOS EN * . * TO 'root'@'server2.example.tld' IDENTIFICADO POR 'myrootpassword' CON GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
FLUSH PRIVILEGES;
QUIT;

En los comandos SQL anteriores, reemplace 192.168.0.106 con la dirección IP del segundo servidor, reemplace server2.example.tld con el nombre de host del segundo servidor y 'myrootpassword' con la contraseña raíz deseada.

Ahora debe volver al shell en server1.example.tld y descargar la última versión estable de ISPConfig 3:

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ instalar/

Inicie el script de instalación:

php -q install.php

Seleccionar idioma (en,de) [en]:<-- en
Modo de instalación (estándar, experto) [estándar]:<-- estándar
Nombre de host completo (FQDN) del servidor, por ejemplo, servidor1 .domain.tld [server1.example.tld]:<-- server1.example.tld
nombre de host del servidor MySQL [localhost]:<-- localhost
nombre de usuario root de MySQL [root]:<-- root
Contraseña raíz de MySQL []:<-- Ingrese su contraseña de raíz mysql aquí
Base de datos MySQL para crear [dbispconfig]:<-- dbispconfig1 (el nombre de la base de datos ispconfig local del maestro y el esclavo debe ser diferente, ya que ambos servidores comparten el mismo directorio de datos)
Juego de caracteres MySQL [utf8]:<-- utf8

Nombre del país (código de 2 letras) [AU]:<-- DE (Ingrese aquí el código ISO del país donde vive)
Nombre del estado o provincia (nombre completo) [Algún estado]:<-- Niedersachsen (Ingrese el estado donde vive aquí)
Nombre de la localidad (p. ej., ciudad) []:<-- Lueneburg (Ingrese la ciudad aquí)
Nombre de la organización (p. ej., empresa) [Internet Widgits Pty Ltd]:
Nombre de la unidad organizativa (p. ej., sección) []:
Nombre común (p. ej., SU nombre) []:
Dirección de correo electrónico []:

Instalando ISPConfig
Puerto ISPConfig [8080]:

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:

Generación de clave privada RSA, módulo largo de 4096 bits
........................++
....... .........++
e es 65537 (0x10001)
Se le pedirá que ingrese información que se incorporará
en su solicitud de certificado.
Lo que está a punto de ingresar es lo que se llama un nombre distinguido o un DN.
Hay bastantes campos, pero puede dejar algunos en blanco
Para algunos campos habrá un valor predeterminado,
Si ingresa '.', el campo se dejará en blanco.
-----
Nombre del país (código de 2 letras) [AU]:
Nombre del estado o provincia (código completo name) [Algún estado]:
Nombre de la localidad (p. ej., ciudad) []:
Nombre de la organización (p. ej., empresa) [Internet Widgits Pty Ltd]:
Nombre de la unidad organizativa (p. ej., sección) []:
Nombre común (p. ej., SU nombre) []:
Dirección de correo electrónico []:

Ingrese los siguientes atributos 'adicionales'
para enviarlos con su solicitud de certificado
Una contraseña de desafío []:
Un nombre de empresa opcional []:

Limpie los directorios de instalación:

rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Instalación de un clúster de base de datos Web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3 - Página 4

4 Instalación de ISPConfig 3 en el segundo servidor

En este paso instalaremos ISPConfig en el servidor esclavo (server2.example.tld). Esta vez usamos el modo experto del instalador ISPConfig para agregar este nodo al servidor y la base de datos maestro ispconfig. Para obtener la URL de descarga de la última versión estable de ISPConfig 3, visite el sitio web de ISPConfig:http://www.ispconfig.org/ispconfig-3/download/

En el servidor 2:

Descargue la última versión estable de ISPConfig 3...

cd /tmp
wgethttp://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/ instalar/

... e inicie el script de instalación:

php -q install.php

Seleccionar idioma (en,de) [en]:<-- en
Modo de instalación (estándar, experto) [estándar]:<-- experto
Nombre de host completo (FQDN) del servidor, por ejemplo, servidor2 .domain.tld [server2.example.tld]:<-- server2.example.tld
nombre de host del servidor MySQL [localhost]:<-- localhost
nombre de usuario root de MySQL [root]:<-- root
Contraseña raíz de MySQL []:<-- Ingrese su contraseña de raíz mysql aquí
Base de datos MySQL para crear [dbispconfig]:<-- dbispconfig2 (el nombre de la base de datos ispconfig local del maestro y el esclavo debe ser diferente, ya que ambos servidores comparten el mismo directorio de datos)
Conjunto de caracteres MySQL [utf8]:<-- utf8

Las siguientes dos preguntas son sobre el usuario y la contraseña de la base de datos ISPConfig interna.
Se recomienda aceptar los valores predeterminados que son 'ispconfig' como nombre de usuario y una contraseña aleatoria.
Si usa una contraseña diferente, use solo números y caracteres para la contraseña.

Nombre de usuario de la base de datos mysql de ISPConfig [ispconfig]:<-- ispconfig2
Contraseña de la base de datos mysql de ISPConfig [54c243fd3f9ca68de7b08527c81dd5ef]:<-- (presione regresar para aceptar el valor predeterminado)

¿Este servidor debe unirse a un ISPConfig existente? configuración multiservidor (y,n) [n]:<-- y
nombre de host del servidor maestro MySQL []:<-- servidor1.ejemplo.tld
nombre de usuario raíz del servidor maestro MySQL [raíz]:<-- root
Contraseña raíz del servidor maestro MySQL []:<-- Ingrese aquí la contraseña raíz del servidor maestro
Nombre de la base de datos del servidor maestro MySQL [dbispconfig]:<-- dbispconfig1
Configurar correo (y ,n) [s]:<-- y

Nombre del país (código de 2 letras) [AU]:<-- DE (Ingrese aquí el código ISO del país donde vive)
Nombre del estado o provincia (nombre completo) [Algún estado]:<-- Niedersachsen (Ingrese el estado donde vive aquí)
Nombre de la localidad (p. ej., ciudad) []:<-- Lueneburg (Ingrese la ciudad aquí)
Nombre de la organización (p. ej., empresa) [Internet Widgits Pty Ltd]:
Nombre de la unidad organizativa (p. ej., sección) []:
Nombre común (p. ej., SU nombre) []:
Dirección de correo electrónico []:

Configure Jailkit (y,n) [y]:<-- y
Configure FTP Server (y,n) [y]:<-- y
Configure DNS Server (y,n) [y]:<-- y
Configure Apache Server (y,n) [y]:<-- y
Configure Firewall Server (y,n) [y]:<--y
Install ISPConfig Web-Interface (y,n) [y]:<--y
Installing ISPConfig
ISPConfig Port [8080]:

Enable SSL for the ISPConfig web interface (y,n) [y]:<-- y

Generating RSA private key, 4096 bit long modulus
.................++
.............................................................................................................++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Clean up the install directories:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

In a last configuration step, we want to connect the ISPConfig interface of the slave directly to the master database. This step is only required if you want to access ISPConfig on port 8080 on the master and on the slave server. Log into the master server as root user on the shell...

On server 1:

... and execute this command:

scp -p /usr/local/ispconfig/interface/lib/config.inc.php [email protected]:/usr/local/ispconfig/interface/lib/config.inc.php

This command has to be excuted after each ISPConfig update again after you updated ISPConfig on the master and on the slave with the normal ISPConfig update command (ispconfig_update.sh).

Installing A Web, Email &MySQL Database Cluster On Debian 6.0 With ISPConfig 3 - Page 5

5 Configure Replication In ISPConfig

Log into ISPConfig on the master server with a webbrowser:

http://192.168.0.105:8080

Click on System> Server Services> server2.example.tld:

Select "server1.example.tld" in the "is mirror of" field and click on Save.

Then open System> Server Config and enable the checkbox "Connect Linux userid to webid" on the "Web" tab:

6 Additional Notes

When you want to activate a firewall on the master or slave server, ensure that you open port 3306 for MySQL on both servers.

  • ISPConfig Website:http://www.ispconfig.org/
  • ISPConfig Forum:https://www.howtoforge.com/forums/
  • ISPConfig Bugtracker:http://bugtracker.ispconfig.org/

Panels
  1. Instalación de Web Server en FreeBSD 6.0 con Apache 2.2, MySQL 5.0 y PHP 5 – Parte 5

  2. Instalación del Servidor Web en FreeBSD 6.0 con Apache 2.2, MySQL 5.0 y PHP 5 – Parte 4

  3. Instalación del Servidor Web en FreeBSD 6.0 con Apache 2.2, MySQL 5.0 y PHP 5 – Parte 3

  4. Instalación de Web Server en FreeBSD 6.0 con Apache 2.2, MySQL 5.0 y PHP 5 – Parte 2

  5. Instalación de Web Server en FreeBSD 6.0 con Apache 2.2, MySQL 5.0 y PHP 5 – Parte 1

Cómo instalar Drupal 5.6 en Debian Etch con ISPConfig

El servidor perfecto:Debian Squeeze (Debian 6.0) con BIND y Dovecot [ISPConfig 3]

El servidor perfecto:Debian Squeeze (Debian 6.0) con BIND, Dovecot y Nginx [ISPConfig 3]

Instalación de un clúster de base de datos Web, de correo electrónico y MySQL en Debian 6.0 con ISPConfig 3

Configuración multiservidor con servidores web, correo electrónico, DNS y bases de datos MySQL dedicados en Debian Squeeze con ISPConfig 3

Entorno multiservidor virtual con servidores Web y MySQL, correo electrónico y DNS dedicados en Debian Squeeze con ISPConfig 3