Servidor Perfecto · 6 min read · Oct 08, 2025

El Servidor Perfecto - CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Página 3

4 Ajustar /etc/hosts

A continuación, editamos /etc/hosts. Haz que se vea así:

vi /etc/hosts

| 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.0.100 server1.example.com server1 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 |

5 Configurar El Cortafuegos

(Puedes omitir este capítulo si ya has desactivado el cortafuegos al final de la instalación básica del sistema.)

Quiero instalar ISPConfig al final de este tutorial, que viene con su propio cortafuegos. Por eso desactivo el cortafuegos predeterminado de CentOS ahora. Por supuesto, eres libre de dejarlo activado y configurarlo según 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

system-config-firewall

y desactiva el cortafuegos.

Para verificar que el cortafuegos realmente ha sido desactivado, puedes ejecutar

iptables -L 

despues. La salida debería verse así:

[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@server1 ~]#

6 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 estaba funcionando como se esperaba, y luego descubres que todo estaba bien, solo que SELinux estaba causando el problema). Por lo tanto, lo desactivo (esto es obligatorio si deseas instalar ISPConfig más adelante).

Edita /etc/selinux/config y establece SELINUX=disabled:

vi /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=targeted |

Después debemos reiniciar el sistema:

reboot

7 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 los repositorios RPMforge y EPEL en nuestro sistema CentOS, ya que muchos de los paquetes que vamos a instalar a lo largo de este tutorial no están disponibles en los repositorios oficiales de CentOS 6.3:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

cd /tmp
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

(Si el enlace anterior ya no funciona, puedes encontrar la versión actual de rpmforge-release aquí: http://packages.sw.be/rpmforge-release/)

rpm –import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm

También necesitamos habilitar el repositorio Remi RPM que contiene el paquete php-fpm que instalaremos más adelante:

rpm –import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

yum install yum-priorities

Edita /etc/yum.repos.d/epel.repo…

vi /etc/yum.repos.d/epel.repo

… y añade la línea priority=10 a la sección [epel]:

| [epel] name=Paquetes Extra para Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |

Luego haz lo mismo para la sección [remi] en /etc/yum.repos.d/remi.repo, además de cambiar enabled a 1:

vi /etc/yum.repos.d/remi.repo

| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |

Luego actualizamos nuestros paquetes existentes en el sistema:

yum update

Ahora instalamos algunos paquetes de software que se necesitan más adelante:

yum groupinstall 'Development Tools'

8 Cuota

(Si has elegido un esquema de particionado diferente al mío, debes ajustar este capítulo para que la cuota se aplique a las particiones donde la necesites.)

Para instalar cuota, ejecutamos este comando:

yum install quota

Edita /etc/fstab y añade,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 a la partición / ( /dev/mapper/vg_server1-lv_root):

vi /etc/fstab

| # # /etc/fstab # Creado por anaconda el Mié Jul 11 17:52:57 2012 # # 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/vg_server1-lv_root / ext4 defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 UUID=806910a1-dbdf-4746-bd94-cbe73ce81493 /boot ext4 defaults 1 2 /dev/mapper/vg_server1-lv_swap swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 |

Luego ejecuta

mount -o remount /

quotacheck -avugm
quotaon -avug

para habilitar la cuota.

9 Sincronizar El Reloj Del Sistema

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

yum install ntp

y tu hora del sistema siempre estará sincronizada.

10 Instalar MySQL

Instala MySQL de la siguiente manera:

yum install mysql mysql-server

Luego crea los enlaces de inicio del sistema para MySQL y arráncalo:

chkconfig –levels 235 mysqld on
/etc/init.d/mysqld start

Establece contraseñas para la cuenta root de MySQL:

mysql_secure_installation

[root@server1 tmp]# mysql_secure_installation

NOTA: EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT SE RECOMIENDA PARA TODOS LOS SERVIDORES MySQL EN USO EN PRODUCCIÓN! POR FAVOR LEE CUIDADOSAMENTE CADA PASO!

Para poder iniciar sesión en MySQL para asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MySQL, y no has establecido la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.

Introduce la contraseña actual para root (presiona enter si no hay):
OK, se utilizó correctamente la contraseña, continuando…

Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MySQL sin la autorización adecuada.

¿Establecer contraseña de root? [Y/n] <– ENTER
Nueva contraseña: <– tucontraseñaderootsql
Reingresa la nueva contraseña: <– tucontraseñaderootsql
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
… ¡Éxito!

Por defecto, una instalación de MySQL tiene un usuario anónimo, permitiendo que cualquiera inicie sesión en MySQL sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas, y para hacer que la instalación sea un poco más fluida. Debes eliminarlos antes de pasar a un entorno de producción.

¿Eliminar usuarios anónimos? [Y/n] <– ENTER
… ¡Éxito!

Normalmente, solo se debería permitir que root se conecte desde ‘localhost’. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.

¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <– ENTER
… ¡Éxito!

Por defecto, MySQL viene con una base de datos llamada ‘test’ a la que cualquiera puede acceder. Esto también está destinado solo para pruebas, y debe ser eliminado antes de pasar a un entorno de producción.

¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <– ENTER

  • Eliminando la base de datos de prueba…
    … ¡Éxito!
  • Eliminando privilegios en la base de datos de prueba…
    … ¡Éxito!

Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.

¿Recargar tablas de privilegios ahora? [Y/n] <– ENTER
… ¡Éxito!

Limpiando…

¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MySQL debería estar ahora segura.

¡Gracias por usar MySQL!

[root@server1 tmp]#

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.