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

El servidor perfecto - Fedora 15 x86_64 [ISPConfig 2]

El Servidor Perfecto - Fedora 15 x86_64 [ISPConfig 2]

Esta es una descripción detallada sobre cómo configurar un Fedora 15 servidor que ofrece todos los servicios que necesitan los ISP y los hosters:servidor web Apache (compatible con SSL) con PHP5/Ruby/Python, servidor de correo Postfix con SMTP-AUTH y TLS, servidor BIND DNS, servidor Proftpd FTP, servidor MySQL, Dovecot POP3/ IMAP, Cuota, Firewall, etc. Este tutorial está escrito para la versión de 64 bits de Fedora 15, pero también debe 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 (es decir, ISPConfig se ejecuta en él de forma inmediata).

Usaré el siguiente software:

  • Servidor web:Apache 2.2.17
  • PHP 5.3.6
  • Rubí
  • Pitón
  • Servidor de base de datos:MySQL 5.5.12
  • Servidor de correo:sufijo
  • 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 la imagen iso del DVD de Fedora 15 desde un espejo cercano (la lista de espejos se puede encontrar aquí:http://mirrors.fedoraproject.org/publiclist/Fedora/15/), p. http://ftp.tu-chemnitz.de/pub/linux/fedora/linux/releases/15/Fedora/x86_64/iso/Fedora-15-x86_64-DVD.iso
  • una conexión 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.

Asegúrese de que el sistema que desea actualizar tenga más de 600 MB de RAM; de lo contrario, el sistema podría bloquearse cuando intente iniciarse con el siguiente mensaje:

Trying to unpack rootfs image as initramfs...

3 Instalar el sistema base

Arranque desde su DVD de Fedora 15. Seleccione Instalar un nuevo sistema o actualizar un sistema existente:

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

Elija su idioma a continuación:

Seleccione su diseño de teclado:

Supongo que utiliza un disco duro conectado localmente, por lo que debe seleccionar Dispositivos de almacenamiento básicos aquí:

Como queremos una instalación nueva de Fedora, haga clic en el botón Sí, descartar cualquier dato a continuación:

Complete el nombre de host del servidor:

Elija su zona horaria:

Dale una contraseña a root:

A continuación hacemos la partición. Seleccione Reemplazar sistemas Linux existentes. Esto le dará una pequeña partición /boot y una gran partición / que está bien para nuestros propósitos:

Seleccione Escribir cambios en el disco:

El disco duro se está formateando:

Ahora seleccionamos el software que queremos instalar. Desmarque Escritorio gráfico y marque Servidor web en su lugar. Luego marque Personalizar ahora. Luego, seleccione los repositorios adicionales Fedora 15 - x86_64 y Fedora 15 - x86_64 - Actualizaciones (si está en un sistema i686, los nombres probablemente sean Fedora 15 - i686 y Fedora 15 - i686 - Actualizaciones):

Como los dos últimos repositorios necesitan una conexión a Internet, aparece una nueva ventana donde debe configurar su tarjeta de red. Seleccione su tarjeta de red y haga clic en Aceptar:

Vaya a la pestaña Con cable, seleccione la interfaz de red (tenga en cuenta que Fedora 15 usa nombres de BIOS para dispositivos, es por eso que su tarjeta de red se llama p3p1 en lugar de eth0; cambiaremos eso más adelante; puede encontrar más información sobre esto en http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming) y haga clic en Editar...:

Marque la casilla de verificación Conectar automáticamente y vaya a la pestaña Configuración de IPv4 y seleccione Manual en el menú desplegable Método. Complete uno, dos o tres servidores de nombres (separados por comas) en el campo de servidores DNS (por ejemplo, 8.8.8.8,8.8.4.4), luego haga clic en el botón Agregar junto al área Direcciones:

Ahora asigne a su tarjeta de red una dirección IP estática y una máscara de red (en este tutorial estoy usando la dirección IP 192.168.0.100 y la máscara de red 255.255.255.0 para fines de demostración; si no está seguro de los valores correctos, http://www. subnetmask.info podría ayudarlo). También complete su puerta de enlace (por ejemplo, 192.168.0.1) y haga clic en el botón Guardar...:

A continuación, haga clic en Cerrar en la ventana Conexiones de red:

El servidor perfecto - Fedora 15 x86_64 [ISPConfig 2] - Página 2

4 Cambiar el nombre de su NIC a ethx

Ahora debemos configurar Fedora para que ya no use nombres de dispositivos BIOS para nuestra interfaz de red. En lugar de p3p1, necesitamos recuperar nuestro viejo y bueno eth0 (porque de lo contrario, el firewall de ISPConfig se volverá loco y bloqueará todo porque espera eth0 en lugar de p3p1). Abra /etc/grub.conf...

vi /etc/grub.conf

... y agregue biosdevname=0 a la línea del kernel:

Luego reinicie el sistema:

reboot

Después del reinicio, su NIC debe llamarse eth0. Corre...

ifconfig

... para verificar:

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:15:60:FA
          inet addr:192.168.0.100  Bcast:192.168.0.255  Máscara:255.255. 255.0
          inet6 dirección: fe80::20c:29ff:fe15:60fa/64 Scope:Link
          UP BROADCAST EJECUTANDO MULTICAST  MTU:1500  Métrica:1
          Paquetes RX:48 errores:0 caídos:0 overruns:0 frame:0
          TX paquetes:58 errores:0 caídos:0 overruns:0 carrier:0
          colisiones:0 txqueuelen:1000
          RX bytes:5226 (5.1 KiB)  TX bytes:9682 (9.4 KiB)

lo        Link encap:Local Loopback
          dirección inet:127.0.0.1  Máscara:255.0.0.0
          dirección inet6: ::1/128 Alcance:Host
          UP LOOPBACK EN EJECUCIÓN  MTU:16436  Métrica:1
          Paquetes RX:2 errores:0 caídos:0 desbordamientos:0 marco:0
          Paquetes TX:2 errores:0 caídos:0 desbordados:0 portadora:0
          colisiones:0 txqueuelen:0
          Bytes RX:100 (100.0 b) bytes TX:100 (100.0 b)
[[email protected] ~]#

5 Ajustar /etc/hosts

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

vi /etc/hosts
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.38.6-27.fc15.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.38.6-27.fc15.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=de rhgb quiet biosdevname=0
        initrd /initramfs-2.6.38.6-27.fc15.x86_64.img

Es importante que agregue una línea para server1.example.com y elimine server1.example.com y server1 de la línea 127.0.0.1.

6 Configurar el cortafuegos

(Puede omitir este capítulo si ya ha 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 firewall. Es por eso que ahora deshabilito el firewall predeterminado de Fedora. Por supuesto, puede dejarlo encendido y configurarlo según sus necesidades (pero no debe usar ningún otro firewall más adelante, ya que lo más probable es que interfiera con el firewall de Fedora).

Ejecutar

system-config-firewall

y desactivar el cortafuegos.

Para comprobar que el cortafuegos realmente se ha desactivado, puede ejecutar

iptables -L 

después. La salida debería verse así:

[[email protected] ~]# iptables -L
Cadena INPUT (política ACCEPT)
objetivo     prot opt origen               destino

Cadena ADELANTE (política ACCEPT)
objetivo prot opt origen               destino

Cadena SALIDA (política ACCEPT)
objetivo     prot opt origen               destino
[[email protected] ~]#

7 Deshabilitar SELinux

SELinux es una extensión de seguridad de Fedora 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, lo deshabilito (esto es obligatorio si desea instalar ISPConfig más adelante).

Edite /etc/selinux/config y establezca SELINUX=disabled:

vi /etc/selinux/config
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

Posteriormente debemos reiniciar el sistema:

reboot

8 Instalar algún software

Primero importamos las claves GPG para paquetes de software:

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

A continuación, 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 ncftp gcc gcc-c++

9 Cuota registrada

(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 ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 a la partición / (/dev/mapper/vg_server1-lv_root):

vi /etc/fstab
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Entonces corre

mount -o remount /

control de cuota -avugm
cuota -avug

para habilitar la cuota.

10 Instalar un servidor DNS chroot (BIND9)

Para instalar un BIND9 chroot, hacemos esto:

yum install bind-chroot

A continuación, cambiamos algunos permisos:

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

Luego abrimos /etc/sysconfig/named y nos aseguramos de que tenga la siguiente línea para decirle a BIND que se está ejecutando chroot en /var/named/chroot:

vi /etc/sysconfig/named
#
# /etc/fstab
# Created by anaconda on Wed May 25 15:57:24 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_server1-lv_root /                       ext4    defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
UUID=366ba6a7-7e68-4ec9-9743-4b02dd105180 /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

A continuación, abra /etc/rsyslog.conf...

vi /etc/rsyslog.conf

... y agregue la línea $AddUnixListenSocket /var/named/chroot/dev/log:

[...]
ROOTDIR=/var/named/chroot

Reiniciar rsyslog:

/etc/init.d/rsyslog restart

Luego creamos los enlaces de inicio del sistema para BIND:

chkconfig --levels 235 named on

No iniciamos BIND ahora porque fallará debido a la falta de /var/named/chroot/etc/named.conf. Esto será creado más tarde por ISPConfig (es decir, si usa el Administrador de DNS de ISPConfig).

El servidor perfecto - Fedora 15 x86_64 [ISPConfig 2] - Página 4

11 MySQL 5

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 algo como esto:

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

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

vi /etc/my.cnf
[...]
$AddUnixListenSocket /var/named/chroot/dev/log

y reinicie su servidor MySQL:

/etc/init.d/mysqld restart 

Ejecutar

 mysql_secure_installation 

para establecer una contraseña para el usuario root (¡de lo contrario, cualquiera puede acceder a su base de datos MySQL!).

[[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):<-- ENTER
OK, contraseña utilizada con éxito, continuando...

Configurar la contraseña de root asegura que nadie pueda iniciar sesión en MySQL
usuario root 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 ~]#

12 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

Ahora 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 [::1]/128'

Debemos editar /usr/lib64/sasl2/smtpd.conf para que Postfix permita inicios de sesión PLAIN y LOGIN (en sistemas de 32 bits, este archivo está en /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

Ahora inicie Postfix y saslauthd:

chkconfig 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 inicio
/etc/init.d/saslauthd inicio

Antes de iniciar Dovecot, debemos habilitar la autenticación de texto sin formato. Abra /etc/dovecot/conf.d/10-auth.conf...

vi /etc/dovecot/conf.d/10-auth.conf

... y agregue la línea disabled_plaintext_auth =no:

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = 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
         ddd $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.8.3/samples
readme_directory = /usr/share/doc/postfix-2.8.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 [::1]/128
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

Luego inicie Dovecot:

  /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
Intentando ::1...
Conectado a localhost.
El carácter de escape es '^]'.
220 servidor1. 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
<-- quit
221 2.0.0 Adiós
Conexión cerrada por host externo.
[[email protected] ssl]#

Escriba

quit 

para volver al shell del sistema.

12.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 - Fedora 15 x86_64 [ISPConfig 2] - Página 5

13 Apache2 con PHP, Ruby, Python, WebDAV

Ahora instalamos Apache con PHP5 (esto es PHP 5.3.6):

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy 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

[...]
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
#disable_plaintext_auth = yes
disable_plaintext_auth = no
[...]

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

chkconfig --levels 235 httpd on

Inicie Apache:

/etc/init.d/httpd start

13.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, editamos /etc/httpd/conf.d/php.conf y comentamos 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

13.2 Rubí

A partir de la versión 2.2.20, ISPConfig tiene soporte integrado para Ruby. En lugar de usar CGI/FastCGI, ISPConfig depende de que mod_ruby esté disponible en el Apache del servidor.

Para Fedora 15, 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>
  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

(Si omite la directiva RubyAddPath /1.8, verá errores como los siguientes en el registro de errores de Apache cuando llame a los archivos de Ruby:

[Jue 26 de mayo 02:05:05 2011] [error] mod_ruby:ruby:0:in `require':no ​​such file to load -- apache/ruby-run (LoadError)
[Jue 26 de mayo 02:05:05 2011] [error] mod_ruby:error al requerir apache/ruby-run
[jueves 26 de mayo 02:05:05 2011] [error] mod_ruby:error en ruby

)

Puede encontrar más detalles sobre mod_ruby en este artículo.

13.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

13.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
RubyAddPath /1.8

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

/etc/init.d/httpd restart

14 ProFTPd

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

yum remove vsftpd
yum install proftpd

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

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

15 Webalizador

Para instalar webalizer, simplemente ejecute

yum install webalizer

16 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

17 Instalar algunos módulos de Perl

ISPConfig comes with SpamAssassin which needs a few Perl modules to work. We install the required Perl modules with a single command:

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-ExtUtils-AutoInstall perl-NetAddr-IP perl-Archive-Tar

18 ISPConfig

The configuration of the server is now finished. You can now install ISPConfig on it, following these instructions:http://www.ispconfig.org/manual_installation.htm

Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 673:

vim /usr/include/stdio.h
[...]
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
[...]

If you don't do this, the installation will fail because of the following error:

htpasswd.c:101:error:conflicting types for âgetlineâ
/usr/include/stdio.h:653:note:previous declaration of âgetlineâ was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache

You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).

18.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the web root for websites created by ISPConfig as Fedora's 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).

  • Fedora:http://fedoraproject.org/
  • Network Device Naming:http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming
  • ISPConfig:http://www.ispconfig.org/

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

  2. El servidor perfecto - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

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

  4. El servidor perfecto - CentOS 5.6 x86_64 [ISPConfig 2]

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

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

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

El servidor perfecto:CentOS 6.2 x86_64 con Apache2 [ISPConfig 3]

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

El servidor perfecto - OpenSUSE 12.2 x86_64 (nginx, Dovecot, ISPConfig 3)

El servidor perfecto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

    [...]
    /* Like `getdelim', but reads up to a newline.
    
       This function is not part of POSIX and therefore no official
       cancellation point.  But due to similarity with an POSIX interface
       or due to the implementation it is a cancellation point and
       therefore not marked with __THROW.  */
    extern _IO_ssize_t parseline (char **__restrict __lineptr,
                                size_t *__restrict __n,
                                FILE *__restrict __stream) __wur;
    #endif
    [...]