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

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2]

El Servidor Perfecto - CentOS 5.6 x86_64 [ISPConfig 2]

Este tutorial muestra cómo configurar un CentOS 5.6 (x86_64) que ofrece todos los servicios que necesitan los ISP y los proveedores de alojamiento web:servidor web Apache (compatible con SSL), servidor de correo Postfix con SMTP-AUTH y TLS, servidor BIND DNS, servidor FTP Proftpd, servidor MySQL, Dovecot POP3/IMAP, Cuota, Firewall, etc. Este tutorial está escrito para la versión de 64 bits de CentOS 5.6, pero también debería aplicarse a la versión de 32 bits con muy pocas modificaciones. Al final, debe tener un sistema que funcione de manera confiable y, si lo desea, puede instalar el panel de control de alojamiento web gratuito ISPConfig 2 (es decir, ISPConfig se ejecuta en él de forma inmediata).

Usaré el siguiente software:

  • Servidor web:Apache 2.2 con PHP 5.1.6
  • Servidor de base de datos:MySQL 5.0
  • Servidor de correo:Postfix
  • Servidor DNS:BIND9 (chroot)
  • Servidor FTP:Proftpd
  • Servidor POP3/IMAP:Dovecot
  • Webalizer para estadísticas de sitios web

Tenga en cuenta que esta configuración no funciona para ISPConfig 3 ! ¡Es válido solo para ISPConfig 2!

Primero quiero decir que esta no es la única forma de establecer un sistema de este tipo. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. ¡No emito ninguna garantía de que esto funcione para usted!

1 Requisitos

Para instalar dicho sistema, necesitará lo siguiente:

  • Descargue los dos DVD de CentOS 5.6 o los ocho CD de CentOS 5.6 desde un espejo cercano (la lista de espejos se puede encontrar aquí:http://isoredirect.centos.org/centos/5/isos/x86_64/) .
  • una conexión rápida a Internet.

2 Nota Preliminar

En este tutorial utilizo 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 usted, por lo que debe reemplazarlas cuando corresponda.

3 Instalar el sistema base

Arranque desde su primer CD de CentOS 5.6 (CD 1) o el primer DVD de CentOS 5.6. Presione en el indicador de arranque:

Puede llevar mucho tiempo probar los medios de instalación, por lo que nos saltamos esta prueba aquí:

Aparece la pantalla de bienvenida del instalador de CentOS. Haga clic en Siguiente:

Elija su idioma a continuación:

Seleccione su diseño de teclado:

Estoy instalando CentOS 5.6 en un sistema nuevo, así que respondo Sí a la pregunta ¿Le gustaría inicializar esta unidad y borrar TODOS LOS DATOS?

Ahora debemos seleccionar un esquema de partición para nuestra instalación. En aras de la simplicidad, selecciono Eliminar particiones de Linux en unidades seleccionadas y creo un diseño predeterminado. Esto dará como resultado una partición /boot pequeña y una partición / grande, así como una partición de intercambio. Por supuesto, eres libre de particionar tu disco duro como quieras. Luego presiono Siguiente:

Responda la siguiente pregunta (¿Está seguro de que desea hacer esto?) con Sí:

En la configuración de red. La configuración predeterminada aquí es configurar las interfaces de red con DHCP, pero estamos instalando un servidor, por lo que las direcciones IP estáticas no son una mala idea... Haga clic en el botón Editar en la parte superior derecha.

En la ventana que aparece, desmarque Configuración de IP dinámica (DHCP) y Habilite la compatibilidad con IPv6 y asigne a su tarjeta de red una dirección IP estática (en este tutorial estoy usando la dirección IP 192.168.0.100 para fines de demostración) y una máscara de red adecuada (por ejemplo, 255.255.255.0; si no está seguro de los valores correctos, http://www.subnetmask.info podría ayudarlo):

Establezca el nombre de host manualmente, p. server1.example.com e ingrese una puerta de enlace (por ejemplo, 192.168.0.1) y hasta dos servidores DNS (por ejemplo, 8.8.8.8 y 145.253.2.75):

Elige tu zona horaria:

Dale una contraseña a root:

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2] - Página 2

4 Ajustar /etc/hosts

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

vi /etc/hosts

5 Configurar direcciones IP adicionales

(Esta sección es totalmente opcional. Solo muestra cómo agregar direcciones IP adicionales a su interfaz de red eth0 si necesita más de una dirección IP. Si está de acuerdo con una dirección IP, puede omitir esta sección).

Supongamos que nuestra interfaz de red es eth0. Luego hay un archivo /etc/sysconfig/network-scripts/ifcfg-eth0 que contiene la configuración de eth0. Podemos usar esto como muestra para nuestra nueva interfaz de red virtual eth0:0:

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Ahora queremos usar la dirección IP 192.168.0.101 en la interfaz virtual eth0:0. Por lo tanto, abrimos el archivo /etc/sysconfig/network-scripts/ifcfg-eth0:0 y lo modificamos de la siguiente manera (podemos omitir la línea HWADDR ya que es la misma tarjeta de red física):

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.0.100           server1.example.com server1
::1             localhost6.localdomain6 localhost6

Luego tenemos que reiniciar la red:

/etc/init.d/network restart

También es posible que desee ajustar /etc/hosts después de haber agregado nuevas direcciones IP, aunque esto no es necesario.

Ahora ejecuta

ifconfig

Ahora debería ver su nueva dirección IP en el resultado:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:FD:78:BE
          inet addr:192.168.0.100  Bcast:192.168.0.255  Máscara:255.255. 255.0
          inet6 dirección: fe80::20c:29ff:fefd:78be/64 Scope:Link
          UP BROADCAST EJECUTANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:469 errores descartados:0 0 overruns:0 frame:0
          TX paquetes:534 errores:0 caídos:0 overruns:0 carrier:0
          colisiones:0 txqueuelen:1000
          RX bytes:43223 (42,2 KiB)  TX bytes:100665 (98,3 KiB)
          Dirección base:0x1070 Memoria:e8820000-e8840000

eth0:0    Encap de enlace:Ethernet  HWaddr 00:0C:29:FD:78:BE
INET ADDR:192.168.0.101 bcast:192.168.0.255 Máscara:255.255.255.0
Up transmisión ejecutando MTU multidifusión:1500 Métrica:1
Dirección base:0x1070 Memoria:E8820000-E8840000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Máscara:255.0.0.0
 inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX paquetes:8 errores:0 dropped:0 overruns:0 frame:0
          Paquetes TX :8 errores:0 caídos:0 desbordamientos:0 carrier:0
          colisiones:0 txqueuelen:0
          Bytes RX:560 (560.0 b) bytes TX:560 (560.0 b)

[[email protected] ~]#

6 Deshabilitar el firewall y SELinux

(Puede omitir este capítulo si ya ha deshabilitado el firewall y SELinux al final de la instalación básica del sistema (en el Agente de configuración).)

Quiero instalar ISPConfig al final de este tutorial que viene con su propio firewall. Es por eso que deshabilito el firewall predeterminado de CentOS ahora. Por supuesto, puede dejarlo encendido y configurarlo según sus necesidades (pero luego no debe usar ningún otro firewall, ya que probablemente interferirá con el firewall de CentOS).

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 suele causar más problemas que ventajas (piensa en ello después de haber realizado una semana de resolución de problemas porque algún servicio no estaba funcionando como se esperaba, y luego descubra que todo estaba bien, solo SELinux estaba causando el problema). Por lo tanto, también lo deshabilito (esto es obligatorio si desea instalar ISPConfig más adelante).

Ejecutar

system-config-securitylevel

Establezca el nivel de seguridad y SELinux en Deshabilitado y presione Aceptar:

Posteriormente debemos reiniciar el sistema:

reboot

7 Instalar algún software

Primero importamos las claves GPG para los paquetes de software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Luego actualizamos nuestros paquetes existentes en el sistema:

yum update

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

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils gcc gcc-c++

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2] - Página 4

8 Cuota

(Si ha elegido un esquema de particionamiento diferente al que yo elegí, debe ajustar este capítulo para que la cuota se aplique a las particiones donde lo necesita).

Para instalar la cuota, ejecutamos este comando:

yum install quota

Edite /etc/fstab y agregue,usrquota,grpquota a la partición / (/dev/VolGroup00/LogVol00):

vi /etc/fstab
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

Entonces corre

touch /aquota.user /aquota.group
chmod 600 /aquota.*
mount -o remount /
quotacheck -avugm
quotaon -avug

para habilitar la cuota.

9 Instalar un servidor DNS chroot (BIND9)

Para instalar un BIND9 chroot, hacemos esto:

yum install bind-chroot

Entonces haz esto:

chmod 755 /var/con nombre/
chmod 775 /var/con nombre/chroot/
chmod 775 /var/con nombre/chroot/var/
chmod 775 /var/con nombre/chroot/var/ con nombre/
chmod 775 /var/con nombre/chroot/var/run/
chmod 777 /var/con nombre/chroot/var/run/con nombre/
cd /var/con nombre/chroot/ var/named/
ln -s ../../ chroot
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/ chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
toque /var/named/chroot/etc/named.conf
chkconfig --levels 235 named on
/etc/init.d/named start

BIND se ejecutará en un chroot jail bajo /var/named/chroot/var/named/. Usaré ISPConfig para configurar BIND (zonas, etc.).

10 MySQL (5.0)

Para instalar MySQL, hacemos esto:

yum install mysql mysql-devel mysql-server

Luego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que se inicia el sistema) e iniciamos el servidor MySQL:

chkconfig --niveles 235 mysqld en
/etc/init.d/mysqld start

Ahora verifique que la red esté habilitada. Ejecutar

netstat -tap | grep mysql

Debería mostrar una línea como esta:

[[email protected] ~]# netstat -tap | grep mysql
tcp        0      0 *:mysql                     *:*                        ESCUCHA      3486/mysqld
[[email protected] ~]#

Si no es así, edite /etc/my.cnf y comente la opción skip-networking:

vi /etc/my.cnf
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
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
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0

y reinicie su servidor MySQL:

/etc/init.d/mysqld restart 

Establecer contraseñas para la cuenta raíz de MySQL:

mysql_secure_installation

[[email protected] ~]# mysql_secure_installation




NOTA: SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS MySQL
      SERVIDORES EN PRODUCCIÓN ¡USAR! ¡POR FAVOR, LEA CADA PASO CUIDADOSAMENTE!


Para iniciar sesión en MySQL para protegerlo, necesitaremos la contraseña actual
para el usuario root. Si acaba de instalar MySQL y
aún no ha establecido la contraseña raíz, la contraseña estará en blanco,
por lo que solo debe presionar Intro aquí.

Introducir contraseña actual para root (ingresar para ninguno):
OK, contraseña utilizada con éxito, continuando...

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

¿Establecer contraseña root? [Y/n] <-- ENTRAR
Nueva contraseña: <-- turootsqlpassword
Vuelve a introducir nueva contraseña: <-- turootsqlpassword
¡La contraseña se actualizó correctamente!
Recargando tablas de privilegios. .
 ... ¡Éxito!


De forma predeterminada, 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 creado para
ellos. Esto solo está diseñado para realizar pruebas y para que la instalación
sea un poco más sencilla. Debe eliminarlos antes de pasar a un
entorno de producción.

¿Eliminar usuarios anónimos? [S/n] <-- ENTRAR
 ... ¡Éxito!

Normalmente, solo debería permitirse que el root se conecte desde 'localhost'. Esto
garantiza que nadie pueda adivinar la contraseña raíz de la red.

¿Deshabilitar el inicio de sesión raíz de forma remota? [S/n] <-- ENTRAR
 ... ¡Éxito!

De forma predeterminada, MySQL viene con una base de datos llamada 'prueba' a la que cualquiera puede
acceder. Esto también está diseñado solo para pruebas y debe eliminarse
antes de pasar a un entorno de producción.

¿Eliminar la base de datos de prueba y acceder a ella? [S/n] <-- ENTRAR
 - Eliminación de la base de datos de prueba...
 ... ¡Éxito!
 - Eliminación de privilegios en la base de datos de prueba...
 ... Éxito !

Al volver a cargar las tablas de privilegios, se asegurará de que todos los cambios realizados hasta el momento
se apliquen de inmediato.

¿Recargar las tablas de privilegios ahora? [S/n] <-- ENTRAR
 ... ¡Éxito!

Limpiando...



¡Todo hecho! Si completó todos los pasos anteriores, su instalación de MySQL
ahora debería ser segura.

¡Gracias por usar MySQL!


[ejemplo @unixlinux.online ~]#

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2] - Página 5

11 Postfix con SMTP-AUTH y TLS

Ahora instalamos Postfix y Dovecot (Dovecot será nuestro servidor POP3/IMAP):

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

A continuación configuramos SMTP-AUTH y TLS:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
postconf -e 'mynetworks =127.0.0.0/8'

Debemos editar /usr/lib64/sasl2/smtpd.conf para que Postfix permita inicios de sesión PLAIN y LOGIN. En un Centos 5.6 de 32 bits, debe editar el archivo /usr/lib/sasl2/smtpd.conf. Debería verse así:

vi /usr/lib64/sasl2/smtpd.conf
[...]
#skip-networking
[...]

Luego creamos los certificados para TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.smtpd.key sin cifrar
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

A continuación configuramos Postfix para TLS:

postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf - e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'

Luego configuramos el nombre de host en nuestra instalación de Postfix (asegúrese de reemplazar server1.example.com con su propio nombre de host):

postconf -e 'myhostname = server1.example.com'

Después de estos pasos de configuración, ahora debería tener un /etc/postfix/main.cf que se ve así (he eliminado todos los comentarios):

cat /etc/postfix/main.cf
pwcheck_method: saslauthd
mech_list: plain login

De forma predeterminada, el demonio Dovecot de CentOS proporciona solo servicios IMAP e IMAP. Debido a que también queremos POP3 y POP3, debemos configurar Dovecot para hacerlo. Editamos /etc/dovecot.conf y habilitamos la línea protocols=imap imaps pop3 pop3s:

vi /etc/dovecot.conf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.3.3/samples
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = server1.example.com

Ahora inicie Postfix, saslauthd y Dovecot:

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
chkconfig --levels 235 dovecot on
/etc/init.d /sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start
/etc/init.d/dovecot start

Para ver si SMTP-AUTH y TLS funcionan correctamente, ejecute el siguiente comando:

telnet localhost 25 

Una vez que haya establecido la conexión con su servidor de correo Postfix, escriba

ehlo localhost 

Si ves las líneas

250-STARTTLS 

y

250-AUTH LOGIN PLAIN 

todo esta bien.

[[email protected] ssl]# telnet localhost 25
Probando 127.0.0.1...
Conectado a localhost.localdomain (127.0.0.1).
El carácter de escape es '^]'.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250- VRFY
250-ETRN
250-STARTTLS
250-AUTH INICIO DE SESIÓN
250-AUTH=INICIO DE SESIÓN
250-CÓDIGOS DE ESTADO MEJORADOS
250-8BITMIME
250 DSN
salir
221 2.0.0 Adiós
Conexión cerrada por host externo.
[[email protected] ssl]#

Escriba

quit 

para volver al shell del sistema.

11.1 Maildir

Dovecot usa el formato Maildir (no mbox), por lo que si instala ISPConfig en el servidor, asegúrese de habilitar Maildir en Administración -> Servidor -> Configuración -> Correo electrónico. ISPConfig luego hará la configuración necesaria.

Si no desea instalar ISPConfig, debe configurar Postfix para enviar correos electrónicos al Maildir de un usuario (también puede hacer esto si usa ISPConfig; no duele;-)):

postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2] - Página 6

12 Apache2 con PHP, Ruby, Python, WebDAV

Ahora instalamos Apache con PHP (esto es PHP 5.1.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Luego edite /etc/httpd/conf/httpd.conf:

vi /etc/httpd/conf/httpd.conf

y cambie DirectoryIndex a

[...]
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to "none".
protocols = imap imaps pop3 pop3s
[...]

Ahora configure su sistema para iniciar Apache en el momento del arranque:

chkconfig --levels 235 httpd on

Inicie Apache:

/etc/init.d/httpd start

12.1 Deshabilitar PHP globalmente

(Si no planea instalar ISPConfig en este servidor, ¡omita esta sección!)

En ISPConfig, configurará PHP por sitio web, es decir, puede especificar qué sitio web puede ejecutar scripts PHP y cuál no. Esto solo puede funcionar si PHP está deshabilitado globalmente porque, de lo contrario, todos los sitios web podrían ejecutar scripts de PHP, sin importar lo que especifique en ISPConfig.

Para deshabilitar PHP globalmente, edite /etc/httpd/conf.d/php.conf y comente las líneas AddHandler y AddType:

vi /etc/httpd/conf.d/php.conf
[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
[...]

Luego reiniciamos Apache:

/etc/init.d/httpd restart

12.2 Instalación de mod_ruby

Para CentOS 5.6, no hay un paquete mod_ruby disponible, por lo que debemos compilarlo nosotros mismos. Primero instalamos algunos requisitos previos:

yum install httpd-devel ruby ruby-devel

A continuación descargamos e instalamos mod_ruby de la siguiente manera:

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
hacer
hacer instalación

Finalmente debemos agregar el módulo mod_ruby a la configuración de Apache, por lo que creamos el archivo /etc/httpd/conf.d/ruby.conf...

vi /etc/httpd/conf.d/ruby.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  # Use of the "ZTS" build with worker is experimental, and no shared
  # modules are supported.
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .php
#AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

... y reinicie Apache:

/etc/init.d/httpd restart

12.3 Instalación de mod_python

Para instalar mod_python, simplemente ejecutamos...

yum install mod_python

... y reinicie Apache después:

/etc/init.d/httpd restart

12.4WebDAV

WebDAV ya debería estar habilitado, pero para verificar esto, abra /etc/httpd/conf/httpd.conf y asegúrese de que los siguientes tres módulos estén activos:

vi /etc/httpd/conf/httpd.conf
LoadModule ruby_module modules/mod_ruby.so

Si tiene que modificar /etc/httpd/conf/httpd.conf, no olvide reiniciar Apache después:

/etc/init.d/httpd restart

13ProFTPd

ISPConfig tiene mejor soporte para proftpd que vsftpd, así que eliminemos vsftpd:

yum remove vsftpd

Debido a que CentOS no tiene un paquete proftpd, tenemos que compilar Proftpd manualmente:

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar .gz
cd proftpd-1.3.3e/
./configure --sysconfdir=/etc
make
make install
cd ..
rm - de proftpd-1.3.3e*

El binario proftpd se instala en /usr/local/sbin, pero lo necesitamos en /usr/sbin, por lo que creamos un enlace simbólico:

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Ahora cree el script de inicio /etc/init.d/proftpd:

vi /etc/init.d/proftpd
[...]
LoadModule auth_digest_module modules/mod_auth_digest.so
[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
[...]

Luego hacemos que el script de inicio sea ejecutable:

chmod 755 /etc/init.d/proftpd

Luego abrimos /etc/proftpd.conf y cambiamos Grupo a nadie:

vi /etc/proftpd.conf
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
#
# proftpd        This shell script takes care of starting and stopping
#                proftpd.
#
# chkconfig: - 80 30
# description: ProFTPD is an enhanced FTP server with a focus towards \
#              simplicity, security, and ease of configuration. \
#              It features a very Apache-like configuration syntax, \
#              and a highly customizable server infrastructure, \
#              including support for multiple 'virtual' FTP servers, \
#              anonymous FTP, and permission-based directory visibility.
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -x /usr/sbin/proftpd ] || exit 0

RETVAL=0

prog="proftpd"

start() {
        echo -n $"Starting $prog: "
        daemon proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}

stop() {
        echo -n $"Shutting down $prog: "
        killproc proftpd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status proftpd
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  condrestart)
        if [ -f /var/lock/subsys/proftpd ]; then
          stop
          start
        fi
        ;;
  reload)
        echo -n $"Re-reading $prog configuration: "
        killproc proftpd -HUP
        RETVAL=$?
        echo
        ;;
  *)
        echo "Usage: $prog {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $RETVAL

Por razones de seguridad, también puede agregar las siguientes líneas a /etc/proftpd.conf (gracias a Reinaldo Carvalho; puede encontrar más información aquí:http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd.conf
[...]
Group                           nobody
[...]

Para asegurarse de que los usuarios de FTP puedan usar el comando chmod, comente la sección :

[...]
DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."
[...]

Ahora podemos crear los enlaces de inicio del sistema para Proftpd:

chkconfig --levels 235 proftpd on

Y finalmente comenzamos Proftpd:

/etc/init.d/proftpd start

El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2] - Página 7

14 Webalizador

Para instalar webalizer, simplemente ejecute

yum install webalizer

15 Sincronizar el reloj del sistema

Si desea sincronizar el reloj del sistema con un servidor NTP, haga lo siguiente:

yum install ntp

chkconfig --levels 235 ntpd en
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

16 Instalar algunos módulos de Perl

ISPConfig viene con SpamAssassin que necesita algunos módulos de Perl para funcionar. Instalamos los módulos Perl requeridos con un solo comando:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-Archive-Tar

También necesitamos instalar el módulo Perl NetAddr::IP que no está disponible en el repositorio oficial de CentOS, sino en RPMforge. Podemos instalarlo de la siguiente manera:

rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/perl-NetAddr-IP-4.042-1.el5.rf.x86_64.rpm

(Si el paquete ya no existe, puede encontrar la última versión en http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/.)

17 El Fin

La configuración del servidor ya está finalizada, y si lo desea, ahora puede instalar ISPConfig 2 en él.

17.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as CentOS' suExec is compiled with /var/www as Doc_Root. Run

/usr/sbin/suexec -V

and the output should look like this:

[[email protected] ~]# /usr/sbin/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"
[[email protected] ~]#

So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).

  • CentOS:http://www.centos.org/
  • ISPConfig 2:http://www.ispconfig.org/ispconfig-2/

Panels
  1. El servidor perfecto - Fedora 15 x86_64 [ISPConfig 2]

  2. El servidor perfecto - Fedora 15 x86_64 [ISPConfig 3]

  3. El servidor perfecto - Ubuntu 11.04 [ISPConfig 3]

  4. El servidor perfecto:CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

  5. El servidor perfecto:OpenSUSE 12.1 x86_64 con Nginx [ISPConfig 3]

El servidor perfecto:CentOS 6.1 x86_64 con nginx [ISPConfig 3]

El servidor perfecto:CentOS 6.3 x86_64 (nginx, Dovecot, ISPConfig 3)

El servidor perfecto - CentOS 6.3 x86_64 (nginx, Courier, ISPConfig 3)

El servidor perfecto - CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

El servidor perfecto:CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

El servidor perfecto - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)

    [...]
    # Bar use of SITE CHMOD by default
    #<Limit SITE_CHMOD>
    #  DenyAll
    #</Limit>
    [...]