Servidor CentOS · 8 min read · Sep 11, 2025
El Servidor Perfecto CentOS 7.4 con Apache, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1
Este tutorial muestra la instalación de ISPConfig 3.1 en un servidor CentOS 7.4 (64Bit). ISPConfig es un panel de control de alojamiento web que te permite configurar los siguientes servicios a través de un navegador web: servidor web Apache, servidor de correo Postfix, MySQL, servidor de nombres BIND, PureFTPd, SpamAssassin, ClamAV, Mailman, y muchos más.
1 Requisitos
Para instalar tal sistema necesitarás lo siguiente:
- Un sistema de servidor CentOS 7.4 mínimo. Esto puede ser un servidor instalado desde cero como se describe en nuestro tutorial de servidor mínimo CentOS 7 o un servidor virtual o servidor raíz de una empresa de alojamiento que tenga una configuración mínima de CentOS 7.4 instalada.
- Una conexión a Internet rápida.
2 Nota Preliminar
En este tutorial, uso el nombre de host server1.example.com con la dirección IP 192.168.0.100 y la puerta de enlace 192.168.0.1. Estas configuraciones pueden diferir para ti, así que debes reemplazarlas donde sea apropiado.
Ten en cuenta que HHVM y XMPP aún no son compatibles con ISPConfig para la plataforma CentOS. Si deseas gestionar un servidor de chat XMPP desde ISPConfig o usar HHVM (Hip Hop Virtual Machine) en un sitio web de ISPConfig, entonces utiliza Debian o Ubuntu 16.04 como sistema operativo del servidor en lugar de CentOS 7.4.
3 Preparar el servidor
Configurar el diseño del teclado
En caso de que el diseño del teclado del servidor no coincida con tu teclado, puedes cambiar al teclado correcto (en mi caso “de” para un diseño de teclado alemán), con el comando localectl:
localectl set-keymap dePara obtener una lista de todos los mapas de teclas disponibles, ejecuta:
localectl list-keymapsQuiero instalar ISPConfig al final de este tutorial, ISPConfig viene con el script del cortafuegos Bastille que usaré como cortafuegos, por lo tanto, desactivo el cortafuegos predeterminado de CentOS ahora. Por supuesto, eres libre de dejar el cortafuegos de CentOS activado y configurarlo a tus necesidades (pero entonces no deberías usar ningún otro cortafuegos más adelante, ya que probablemente interferirá con el cortafuegos de CentOS).
Ejecuta…
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.servicepara detener y desactivar el cortafuegos de CentOS. Está bien si obtienes errores aquí, esto solo indica que el cortafuegos no estaba instalado.
Luego deberías verificar que el cortafuegos realmente ha sido desactivado. Para hacerlo, ejecuta el comando:
iptables -LLa salida debería verse así:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationO usa el comando firewall-cmd:
firewall-cmd --state[root@server1 ~]# firewall-cmd --state
not running
[root@server1 ~]#Ahora instalaré el editor de configuración de red y el editor basado en shell “nano” que usaré en los siguientes pasos para editar los archivos de configuración:
yum -y install nano wget NetworkManager-tuiSi no configuraste tu tarjeta de red durante la instalación, puedes hacerlo ahora. Ejecuta…
nmtui… y ve a Editar una conexión:

Selecciona tu interfaz de red:

Luego completa los detalles de tu red - desactiva DHCP y completa una dirección IP estática, una máscara de red, tu puerta de enlace y uno o dos servidores de nombres, luego presiona Ok:

A continuación, selecciona OK para confirmar los cambios que realizaste en la configuración de red

y Salir para cerrar la herramienta de configuración de red nmtui.

Deberías ejecutar
ifconfigahora para verificar si el instalador obtuvo tu dirección IP correctamente:
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fe1a:3d8e prefixlen 64 scopeid 0x20
ether 00:0c:29:1a:3d:8e txqueuelen 1000 (Ethernet)
RX packets 184972 bytes 256696909 (244.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 62983 bytes 7236189 (6.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# Si tu tarjeta de red no aparece allí, entonces no estará habilitada al inicio, en este caso, abre el archivo /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33y establece ONBOOT en yes:
[...]
ONBOOT=yes
[...] y reinicia el servidor.
Verifica tu /etc/resolv.conf si lista todos los servidores de nombres que configuraste previamente:
cat /etc/resolv.confSi faltan servidores de nombres, ejecuta
nmtuiy agrega los servidores de nombres que faltan nuevamente.
Ahora, a la configuración…
Ajustando /etc/hosts y /etc/hostname
A continuación, editaremos /etc/hosts. Haz que se vea así:
nano /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6Establece el nombre de host en el archivo /etc/hostname. El archivo debe contener el nombre de dominio completamente calificado (por ejemplo, server1.example.com en mi caso) y no solo el nombre corto como “server1”. Abre el archivo con el editor nano:
nano /etc/hostnameY establece el nombre de host en el archivo.
server1.example.comGuarda el archivo y sal de nano.
Desactivar SELinux
SELinux es una extensión de seguridad de CentOS que debería proporcionar seguridad extendida. En mi opinión, no lo necesitas para configurar un sistema seguro, y generalmente causa más problemas que ventajas (piensa en ello después de haber pasado una semana solucionando problemas porque algún servicio no funcionaba como se esperaba, y luego descubres que todo estaba bien, solo SELinux estaba causando el problema). Por lo tanto, lo desactivo (esto es un requisito si deseas instalar ISPConfig más adelante).
Edita /etc/selinux/config y establece SELINUX=disabled:
nano /etc/selinux/config# Este archivo controla el estado de SELinux en el sistema.
# SELINUX= puede tomar uno de estos tres valores:
# enforcing - La política de seguridad de SELinux se aplica.
# permissive - SELinux imprime advertencias en lugar de aplicar.
# disabled - No se carga ninguna política de SELinux.
SELINUX=disabled
# SELINUXTYPE= puede tomar uno de estos dos valores:
# targeted - Los procesos dirigidos están protegidos,
# mls - Protección de Seguridad de Múltiples Niveles.
SELINUXTYPE=targetedDespués debemos reiniciar el sistema:
reboot4 Habilitar Repositorios Adicionales e Instalar Algunos Software
Primero, importamos las claves GPG para los paquetes de software:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Luego habilitamos el repositorio EPEL en nuestro sistema CentOS ya que muchos de los paquetes que vamos a instalar en el transcurso de este tutorial no están disponibles en el repositorio oficial de CentOS 7:
yum -y install epel-releaseyum -y install yum-prioritiesEdita /etc/yum.repos.d/epel.repo…
nano /etc/yum.repos.d/epel.repo… y agrega la línea priority=10 a la sección [epel]:
[epel]
name=Paquetes Extra para Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]Luego actualizamos nuestros paquetes existentes en el sistema:
yum -y updateAhora instalamos algunos paquetes de software que se necesitan más adelante:
yum -y groupinstall 'Development Tools'5 Cuota
(Si has elegido un esquema de particionado diferente al que yo hice, debes ajustar este capítulo para que la cuota se aplique a las particiones donde la necesitas.)
Para instalar cuota, ejecutamos este comando:
yum -y install quotaAhora verificamos si la cuota ya está habilitada para el sistema de archivos donde se almacenan los datos del sitio web (/var/www) y maildir (var/vmail). En este ejemplo, tengo una gran partición raíz, así que busco ‘ / ‘:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[root@server1 ~]#Si tienes una partición /var separada, entonces usa:
mount | grep ' /var 'en su lugar. Si la línea contiene la palabra “ noquota “, entonces procede con los siguientes pasos para habilitar la cuota.
Habilitando cuota en la partición / (raíz)
Normalmente habilitarías la cuota en el archivo /etc/fstab, pero si el sistema de archivos es el sistema de archivos raíz “/“, entonces la cuota debe habilitarse mediante un parámetro de arranque del núcleo de Linux.
Edita el archivo de configuración de grub:
nano /etc/default/grubbusca la línea que comienza con GRUB_CMDLINE_LINUX y agrega rootflags=uquota,gquota a los parámetros de la línea de comandos para que la línea resultante se vea así:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"y aplica los cambios ejecutando el siguiente comando.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfgy reinicia el servidor.
rebootAhora verifica si la cuota está habilitada:
mount | grep ' / '[root@server1 ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@server1 ~]#Cuando la cuota está activa, podemos ver “ usrquota,grpquota “ en la lista de opciones de montaje.
Habilitando cuota en una partición /var separada
Si tienes una partición /var separada, entonces edita /etc/fstab y agrega ,uquota,gquota a la partición / ( /dev/mapper/centos-var):
nano /etc/fstab#
# /etc/fstab
# Creado por anaconda el Dom Sep 21 16:33:45 2014
#
# Los sistemas de archivos accesibles, por referencia, se mantienen bajo '/dev/disk'
# Consulta las páginas del manual fstab(5), findfs(8), mount(8) y/o blkid(8) para más información
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0Luego ejecuta
mount -o remount /varquotacheck -avugm
quotaon -avugpara habilitar la cuota. Cuando obtengas un error de que no hay partición con cuota habilitada, entonces reinicia el servidor antes de continuar.
6 Instalar Apache, MySQL, phpMyAdmin
Podemos instalar los paquetes necesarios con un solo comando:
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadminPara asegurarnos de que el servidor no pueda ser atacado a través de la vulnerabilidad HTTPOXY, deshabilitaremos el encabezado HTTP_PROXY en apache globalmente.
Agrega la regla de encabezado de apache al final del archivo httpd.conf:
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.confY reinicia httpd para aplicar el cambio de configuración.
service httpd restart Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.