Servidor Perfecto · 9 min read · Oct 07, 2025
El Servidor Perfecto - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Página 5
16 Instalar phpMyAdmin
A continuación, instalamos phpMyAdmin:
yum install phpmyadminA continuación, cambiamos la autenticación en phpMyAdmin de cookie a http:
vi /usr/share/phpmyadmin/config.inc.php| [...] /* Tipo de autenticación */ $cfg['Servers'][$i]['auth_type'] = 'http'; [...] |
Ahora puedes encontrar phpMyAdmin en el directorio /usr/share/phpmyadmin/.
Después de haber instalado ISPConfig 3, puedes acceder a phpMyAdmin de la siguiente manera:
La aplicación vhost de ISPConfig en el puerto 8081 para nginx viene con una configuración de phpMyAdmin, por lo que puedes usar http://server1.example.com:8081/phpmyadmin o http://server1.example.com:8081/phpMyAdmin para acceder a phpMyAdmin.
Si deseas usar un alias /phpmyadmin o /phpMyAdmin que puedas usar desde tus sitios web, esto es un poco más complicado que para Apache porque nginx no tiene alias globales (es decir, alias que se pueden definir para todos los vhosts). Por lo tanto, debes definir estos alias para cada vhost desde el cual deseas acceder a phpMyAdmin.
Para hacer esto, pega lo siguiente en el campo Directivas de nginx en la pestaña Opciones del sitio web en ISPConfig:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
Si usas http s en lugar de http para tu vhost, debes agregar la línea fastcgi_param HTTPS on; a tu configuración de phpMyAdmin de la siguiente manera:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS on; # <-- agrega esta línea fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
Si usas tanto http como https para tu vhost, necesitas agregar la siguiente sección a la sección http {} en /etc/nginx/nginx.conf (antes de cualquier línea de inclusión) que determina si el visitante usa http o https y establece la variable $fastcgi_https (que usaremos en nuestra configuración de phpMyAdmin) en consecuencia:
vi /etc/nginx/nginx.conf| [...] http { [...] ## Detectar cuando se usa HTTPS map $scheme $fastcgi_https { default off; https on; } [...] } [...] |
No olvides recargar nginx después:
/etc/init.d/nginx reload Luego ve al campo Directivas de nginx nuevamente, y en lugar de fastcgi_param HTTPS on; agregas la línea fastcgi_param HTTPS $fastcgi_https; para que puedas usar phpMyAdmin tanto para solicitudes http como https:
| location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass 127.0.0.1:9000; fastcgi_param HTTPS $fastcgi_https; # <-- agrega esta línea fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include /etc/nginx/fastcgi_params; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } } location /phpMyAdmin { rewrite ^/* /phpmyadmin last; } |
17 Instalar Mailman
Desde la versión 3.0.4, ISPConfig también te permite gestionar (crear/modificar/eliminar) listas de correo de Mailman. Si deseas hacer uso de esta función, instala Mailman de la siguiente manera:
yum install mailmanAntes de que podamos iniciar Mailman, se debe crear una primera lista de correo llamada mailman:
/usr/lib/mailman/bin/newlist mailman[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
Ingresa el correo electrónico de la persona que ejecuta la lista: <– dirección de correo electrónico del administrador, por ejemplo, [email protected]
Contraseña inicial de mailman: <– contraseña del administrador para la lista de mailman
Para terminar de crear tu lista de correo, debes editar tu archivo /etc/aliases (o equivalente) agregando las siguientes líneas, y posiblemente ejecutando el programa newaliases:
lista de correo mailman
mailman: “|/usr/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/usr/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/usr/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/usr/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/usr/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/usr/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/usr/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/usr/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/usr/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/usr/lib/mailman/mail/mailman unsubscribe mailman”
Presiona enter para notificar al propietario de mailman… <– ENTER
[root@server1 tmp]#
Abre /etc/aliases después…
vi /etc/aliases… y agrega las siguientes líneas:
| [...] mailman: "|/usr/lib/mailman/mail/mailman post mailman" mailman-admin: "|/usr/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/usr/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/usr/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/usr/lib/mailman/mail/mailman join mailman" mailman-leave: "|/usr/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/usr/lib/mailman/mail/mailman owner mailman" mailman-request: "|/usr/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/usr/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe mailman" |
Ejecuta
newaliasesdespues y reinicia Postfix:
/etc/init.d/postfix restartCrea los enlaces de inicio del sistema para Mailman y arráncalo:
chkconfig –levels 235 mailman on
/etc/init.d/mailman start
Ahora necesitamos crear este enlace simbólico para que Mailman funcione con ISPConfig:
cd /usr/lib/mailman/cgi-bin/
ln -s ./ mailman
Si deseas usar Mailman desde tus sitios web creados a través de ISPConfig, esto es un poco más complicado que para Apache porque nginx no tiene alias globales (es decir, alias que se pueden definir para todos los vhosts). Por lo tanto, debes definir estos alias para cada vhost desde el cual deseas acceder a Mailman.
Para hacer esto, pega lo siguiente en el campo Directivas de nginx en la pestaña Opciones del sitio web en ISPConfig:
| location /cgi-bin/mailman { alias /usr/lib/mailman/cgi-bin; fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/mailman$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED /usr/lib/mailman$fastcgi_path_info; fastcgi_intercept_errors on; fastcgi_pass unix:/var/run/fcgiwrap.socket; } location /images/mailman { alias /usr/lib/mailman/icons; } location /pipermail { alias /var/lib/mailman/archives/public; autoindex on; } |
Esto define el alias /cgi-bin/mailman/ para tu vhost, lo que significa que puedes acceder a la interfaz de administración de Mailman para una lista en http://
Bajo http://
18 Instalar PureFTPd
PureFTPd se puede instalar con el siguiente comando:
yum install pure-ftpdLuego crea los enlaces de inicio del sistema y arranca PureFTPd:
chkconfig –levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start
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. Al usar TLS, toda la comunicación puede ser cifrada, haciendo que FTP sea mucho más seguro.
OpenSSL es necesario para TLS; para instalar OpenSSL, simplemente ejecutamos:
yum install opensslAbre /etc/pure-ftpd/pure-ftpd.conf…
vi /etc/pure-ftpd/pure-ftpd.confSi deseas permitir sesiones FTP y TLS, establece TLS en 1:
| [...] # Esta opción puede aceptar tres valores : # 0 : deshabilitar la capa de cifrado SSL/TLS (por defecto). # 1 : aceptar tanto sesiones tradicionales como cifradas. # 2 : rechazar conexiones que no utilizan mecanismos de seguridad SSL/TLS, # incluidas las sesiones anónimas. # No descomentes esto a ciegas. Asegúrate de que : # 1) Tu servidor ha sido compilado con soporte SSL/TLS (--with-tls), # 2) Un certificado válido está en su lugar, # 3) Solo los clientes compatibles iniciarán sesión. TLS 1 [...] |
Para usar TLS, debemos crear un certificado SSL. Lo creo en /etc/ssl/private/, por lo que primero creo ese directorio:
mkdir -p /etc/ssl/private/Después, 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) [XX]: <– Ingresa el nombre de tu país (por ejemplo, “DE”).
Nombre del estado o provincia (nombre completo) []: <– Ingresa el nombre de tu estado o provincia.
Nombre de la localidad (por ejemplo, ciudad) [Ciudad por defecto]: <– Ingresa tu ciudad.
Nombre de la organización (por ejemplo, empresa) [Empresa por defecto]: <– Ingresa el nombre de tu organización (por ejemplo, el nombre de tu empresa).
Nombre de la unidad organizativa (por ejemplo, sección) []: <– Ingresa el nombre de tu unidad organizativa (por ejemplo, “Departamento de TI”).
Nombre común (por ejemplo, tu nombre o el nombre de host de tu servidor) []: <– Ingresa el Nombre de Dominio Completo del sistema (por ejemplo, “server1.example.com”).
Dirección de correo electrónico []: <– Ingresa tu dirección de correo electrónico.
Cambia los permisos del certificado SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pemFinalmente, reinicia PureFTPd:
/etc/init.d/pure-ftpd restartEso es todo. Ahora puedes intentar conectarte usando tu cliente FTP; sin embargo, debes configurar tu cliente FTP para usar TLS.
19 Instalar BIND
Podemos instalar BIND de la siguiente manera:
yum install bind bind-utilsA continuación, abre /etc/sysconfig/named…
vi /etc/sysconfig/named… y asegúrate de que la línea ROOTDIR=/var/named/chroot esté comentada:
| # Opciones del proceso BIND named # ~~~~~~~~~~~~~~~~~~~~~~~~~~ # Actualmente, puedes usar las siguientes opciones: # # ROOTDIR="/var/named/chroot" -- ejecutará named en un entorno chroot. # debes configurar el entorno chroot # (instalar el paquete bind-chroot) antes # de hacer esto. # NOTA: # Estos directorios se montan automáticamente en chroot si están # vacíos en el directorio ROOTDIR. Simplificará el mantenimiento de tu # entorno chroot. # - /var/named # - /etc/pki/dnssec-keys # - /etc/named # - /usr/lib64/bind o /usr/lib/bind (dependiente de la arquitectura) # # Estos archivos también se montan si el archivo de destino no existe en # chroot. # - /etc/named.conf # - /etc/rndc.conf # - /etc/rndc.key # - /etc/named.rfc1912.zones # - /etc/named.dnssec.keys # - /etc/named.iscdlv.key # # No olvides agregar la línea "$AddUnixListenSocket /var/named/chroot/dev/log" # a tu archivo /etc/rsyslog.conf. De lo contrario, tu registro se romperá # cuando se reinicie el demonio rsyslogd (debido a una actualización, por ejemplo). # # OPCIONES="lo que sea" -- Estas opciones adicionales se pasarán a named # al inicio. No agregues -t aquí, usa ROOTDIR en su lugar. # # KEYTAB_FILE="/dir/file" -- Especifica el archivo de clave del servicio named (para GSS-TSIG) # # DISABLE_ZONE_CHECKING -- Por defecto, el script de inicio llama a la utilidad named-checkzone # para cada zona para asegurar que todas las zonas son # válidas antes de que named inicie. Si estableces esta opción # en 'sí', entonces el script de inicio no realiza esas # verificaciones. |
Haz una copia de seguridad del archivo /etc/named.conf existente y crea uno nuevo de la siguiente manera:
cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf
vi /etc/named.conf
| // named.conf // Proporcionado por el paquete bind de Red Hat para configurar el servidor DNS ISC BIND named(8) // como un servidor de nombres solo en caché (como un resolvedor DNS localhost solamente). // // Ver /usr/share/doc/bind*/sample/ para ejemplos de archivos de configuración named. options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; recursion no; allow-recursion { none; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.conf.local"; |
Crea el archivo /etc/named.conf.local que se incluye al final de /etc/named.conf ( /etc/named.conf.local se llenará más tarde por ISPConfig si creas zonas DNS en ISPConfig):
touch /etc/named.conf.localLuego creamos los enlaces de inicio y arrancamos BIND:
chkconfig –levels 235 named on
/etc/init.d/named start
20 Instalar Webalizer y AWStats
Webalizer y AWStats se pueden instalar de la siguiente manera:
yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-BuilderRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.