70
311 Apache HTTP Server El Servidor HTTP Apache es un servidor Web de tecnología Open Source sólido y para uso comercial desarrollado por Apache Software Foundation (http://www.apache.org/). Red Hat Enterprise Linux incluye el Servidor HTTP Apache versión 2.2 así como también una serie de módulos de servidor diseñados para mejorar su funcionalidad. El archivo de configuración predeterminado instalado en el Servidor HTTP Apache funciona sin necesidad de modificarlo, en la mayor parte de los casos. Este capítulo da una idea general de las directrices dentro de este archivo de configuración (/etc/httpd/conf/httpd.conf) para ayudar a aquellos que requieren una configuración personalizada o que necesitan convertir un archivo de configuración del formato más antiguo del Servidor HTTP Apache versión 1.3. Advertencia If using the graphical HTTP Configuration Tool (system-config-httpd ), do not hand edit the Apache HTTP Server's configuration file as the HTTP Configuration Tool regenerates this file whenever it is used. 22.1. Servidor HTTP Apache Versión 2.2 There are important differences between the Apache HTTP Server 2.2 and version 2.0 (version 2.0 shipped with Red Hat Enterprise Linux 4 and earlier). This section reviews some of the features of Apache HTTP Server 2.2 and outlines important changes. If you are upgrading from version 1.3, you should also read the instructions on migrating from version 1.3 to version 2.0. For instructions on migrating a version 1.3 configuration file to the 2.0 format, refer to Sección 22.2.2, “Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0”. 22.1.1. Características del Servidor HTTP Apache Versión 2.2 El Servidor HTTP Apache Versión 2.2 presenta las siguientes mejoras sobre las versión 2.0: Módulos de cacheo mejorados (mod_cache, mod_disk_cache, mod_mem_cache). Una nueva estructura para el soporte de autenticación y autorización que remplaza los módulos de autenticación proporcionados en las versiones anteriores. Soporte para balanceo de carga proxy (mod_proxy_balancer) soporte para manejo de archivos grandes (más grandes de 2 GB) en plataformas de 32 bits. Se han realizado los siguientes cambios a la configuración httpd predeterminada: Los módulos mod_cern_meta y mod_asis ya no se cargan por defecto. Ahora el módulo mod_ext_filter se carga por defecto. Si actualiza desde un lanzamiento previo de Red Hat Enterprise Linux, la configuración httpd necesitará actualizarse para httpd 2.2. Para obtener más información refiérase a http:// httpd.apache.org/docs/2.2/upgrading.html.

22 http ftp_linux_asoitson

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 22 http ftp_linux_asoitson

311

Apache HTTP ServerEl Servidor HTTP Apache es un servidor Web de tecnología Open Source sólido y para uso comercialdesarrollado por Apache Software Foundation (http://www.apache.org/). Red Hat Enterprise Linuxincluye el Servidor HTTP Apache versión 2.2 así como también una serie de módulos de servidordiseñados para mejorar su funcionalidad.

El archivo de configuración predeterminado instalado en el Servidor HTTP Apache funciona sinnecesidad de modificarlo, en la mayor parte de los casos. Este capítulo da una idea general de lasdirectrices dentro de este archivo de configuración (/etc/httpd/conf/httpd.conf) para ayudara aquellos que requieren una configuración personalizada o que necesitan convertir un archivo deconfiguración del formato más antiguo del Servidor HTTP Apache versión 1.3.

Advertencia

If using the graphical HTTP Configuration Tool (system-config-httpd ), do not hand edit theApache HTTP Server's configuration file as the HTTP Configuration Tool regenerates this filewhenever it is used.

22.1. Servidor HTTP Apache Versión 2.2There are important differences between the Apache HTTP Server 2.2 and version 2.0 (version 2.0shipped with Red Hat Enterprise Linux 4 and earlier). This section reviews some of the features ofApache HTTP Server 2.2 and outlines important changes. If you are upgrading from version 1.3, youshould also read the instructions on migrating from version 1.3 to version 2.0. For instructions onmigrating a version 1.3 configuration file to the 2.0 format, refer to Sección 22.2.2, “Migración de losArchivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0”.

22.1.1. Características del Servidor HTTP Apache Versión 2.2El Servidor HTTP Apache Versión 2.2 presenta las siguientes mejoras sobre las versión 2.0:

• Módulos de cacheo mejorados (mod_cache, mod_disk_cache, mod_mem_cache).

• Una nueva estructura para el soporte de autenticación y autorización que remplaza los módulos deautenticación proporcionados en las versiones anteriores.

• Soporte para balanceo de carga proxy (mod_proxy_balancer)

• soporte para manejo de archivos grandes (más grandes de 2 GB) en plataformas de 32 bits.

Se han realizado los siguientes cambios a la configuración httpd predeterminada:

• Los módulos mod_cern_meta y mod_asis ya no se cargan por defecto.

• Ahora el módulo mod_ext_filter se carga por defecto.

Si actualiza desde un lanzamiento previo de Red Hat Enterprise Linux, la configuraciónhttpd necesitará actualizarse para httpd 2.2. Para obtener más información refiérase a http://httpd.apache.org/docs/2.2/upgrading.html.

Page 2: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

312

22.2. Migración de los Archivos de Configuración delServidor HTTP Apache

22.2.1. Migración de los Archivos de Configuración del ServidorHTTP Apache Versión 2.0.This section outlines migration from version 2.0 to 2.2. If you are migrating from version 1.3, pleaserefer to Sección 22.2.2, “Migración de los Archivos de Configuración del Servidor HTTP Apache de laVersión 1.3 a la 2.0”.

• Los archivos de configuración y los scripts de inicialización de la versión 2.0 necesitan ajustesmínimos particularmente en los nombres de los módulos los cuales pueden haber cambiado. Losmódulos de terceros que servían en la versión 2.0 también sirven en la versión 2.2 pero necesitanser recompilados antes de que los cargue. Los módulos claves que se deben observar son losmódulos de autenticación y autorización. Para cada unos de los módulos que ha sido renombradoserá necesario actualizar la línea LoadModule1.

• El módulo mod_userdir sólamente actuará bajo pedidos si proporciona una directiva UserDirindicando un nombre de directorio. Si desea mantener los procedimientos utilizados en la versión2.0 añada la directiva UserDir public_html en su archivo de configuración.

• Para habilitar SSL, edite el archivo httpd.conf añadiendo las directivas necesarias mod_ssl.Utilice apachectl start ya que apachectl startssl no se encuentra disponible en laversión 2.2. Puede ver un ejemplo de la configuración SSL para httpd en conf/extra/httpd-ssl.conf.

• Para probar su configuración se le aconseja que utilice service httpd configtest la cualdetectará errores de configuración.

Para obtener más información sobre como actualizar desde la versión 2.0 a la 2.2 puede ir a http://httpd.apache.org/docs/2.2/upgrading.html.

22.2.2. Migración de los Archivos de Configuración del ServidorHTTP Apache de la Versión 1.3 a la 2.0Esta sección detalla la migración de un archivo de configuración del Servidor HTTP Apache versión1.3 para el Servidor HTTP Apache versión 2.0 lo pueda utilizar.

Si está actualizando a Red Hat Enterprise Linux 5 desde Red Hat Enterprise Linux 2.1 tenga encuenta que el nuevo archivo de configuración para el paquete del Servidor HTTP Apache versión 2.0es instalado como /etc/httpd/conf/httpd.conf.rpmnew y no se toca la versión original 1.3httpd.conf. Depende absolutamente de usted si decide utilizar el nuevo archivo de configuracióny migrar los viejos cambios o si utilizar el archivo ya existente como base y modificarlo para que seadapte; sin embargo, algunas partes del archivo se han cambiado más que otras y lo mejor es llegar aun punto intermedio. Los archivos de configuración para ambas versiones la 1.3 y la 2.0 están dividosen tres secciones.

Si el archivo /etc/httpd/conf/httpd.conf es una versión modificada de la versión por defectorecién instalada y ha guardado una copia del original, entonces le será más fácil invocar el comandodiff, como se muestra a continuación (conectándose como root):

diff -u httpd.conf.orig httpd.conf | less

Page 3: 22 http ftp_linux_asoitson

Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0

313

Este comando subraya los cambios realizados. Si no tiene una copia del archivo original, cójalo delpaquete RPM usando los comandos rpm2cpio y cpio, como en el ejemplo siguiente:

rpm2cpio apache-<version-number>.i386.rpm | cpio -i --make

In the above command, replace <version-number> with the version number for the apachepackage.

Finalmente, es útil saber que el Servidor HTTP Apache tiene un modo de prueba para verificar si hayerrores en la configuración. Para ello, escriba el siguiente comando:

apachectl configtest

22.2.2.1. Configuración del entorno a nivel globalLa sección del entorno global del archivo de configuración contiene directrices que afectan laoperación general del Servidor HTTP Apache como por ejemplo el número de peticiones que puedemanejar al mismo tiempo y la ubicación de varios archivos que usa. Esta sección requiere un grannúmero de cambios y por ello se recomienda que base esta sección en el archivo de configuración delServidor HTTP Apache versión 2.0 y que migre sus configuraciones anteriores a este.

22.2.2.1.1. Interfaces y vinculación de puertosYa no existen las directrices BindAddress y Port; porque quedan recogidas en la directriz Listen.

Si tenía configurado el Puerto 80 en el archivo de configuración de la versión 1.3, debe cambiarlo aListen 80 en el archivo de configuración 2.0. Si el valor del Puerto estaba configurado a un valordiferente que 80, tiene que poner el número del puerto a los contenidos de la directriz ServerName.

Por ejemplo, el siguiente es un ejemplo de la directtriz de Servidor HTTP Apache de la versión 1.3:

Port 123 ServerName www.example.com

Para migrar esta configuración al Servidor HTTP Apache versión 2.0 utilice la siguiente estructura:

Listen 123 ServerName www.example.com:123

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mpm_common.html#listen

• http://httpd.apache.org/docs-2.0/mod/core.html#servername

22.2.2.1.2. Regulación del tamaño del pool de servidoresCuando el Servidor HTTP Apache acepta peticiones, este despacha procesos hijo o hilos para que losmanejen. Este grupo de procesos o hilos es conocido como un pool de servidores. Bajo el ServidorHTTP Apache versión 2.0 se ha abstraído la responsabilidad de crear y mantener estos pool deservidores a un grupo de módulos llamados Módulos de Procesos Múltiples (MPMs). A diferenciade otros módulos, el Servidor HTTP Apache sólamente puede cargar un módulo del grupo MPM.Hay tres módulos MPM incluidos con la versión 2.0: prefork, worker, y perchild. Actualmente,

Page 4: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

314

únicamente están disponibles los MPMs prefork y worker, aunque el MPM perchild estarádisponible más adelante.

El comportamiento del Servidor HTTP Apache 1.3 original ha sido movido al MPM prefork. El MPMprefork acepta las mismas directrices que el Servidor HTTP Apache versión 1.3 por tanto, lassiguientes directrices se pueden migrar directamente:

• StartServers

• MinSpareServers

• MaxSpareServers

• MaxClients

• MaxRequestsPerChild

El MPM worker implementa un servidor multi-proceso y multi-hilos proporcionando una mayorescalabilidad. Cuando este utilizando este MPM, los hilos manejan las peticiones conservandorecursos del sistema y permitiendo servir a grandes números de peticiones de manera eficiente.Aún cuando algunas de las directrices aceptadas por el MPM worker son las mismas que aquellasaceptadas por el MPM prefork los valores para esas directrices no deberían ser transferidosdirectamente desde una instalación del Servidor HTTP Apache versión 1.3. Es mejor utilizar losvalores por defecto como una guía y luego experimentar para determinar los valores que funcionanmejor.

Importante

Para utilizar el MPM worker, cree el archivo /etc/sysconfig/httpd y añada la directrizsiguiente:

HTTPD=/usr/sbin/httpd.worker

For more on the topic of MPMs, refer to the following documentation on the Apache SoftwareFoundation's website:

• http://httpd.apache.org/docs-2.0/mpm.html

22.2.2.1.3. Soporte del Dynamic Shared Object (DSO) (Objeto dinámicocompartido)Se tienen que realizar muchos cambios aquí, por eso se recomienda que para modificar laconfiguración del Servidor HTTP Apache 1.3 para adaptarse a la versión 2.0 (al contrario de migrarlos cambios en la configuración de la versión 2.0) copie esta sección del archivo de configuración delServidor HTTP Apache 2.0.

Aquellos que no deseen copiar la sección desde la configuración del Servidor HTTP Apache versión2.0 deberían tomar en cuenta lo siguiente:

• Las directrices AddModule y ClearModuleList ya no existen. Estas directrices eran usadaspara asegurarse de que se pudiesen activar los módulos en el orden correcto. El Servidor HTTPApache versión 2.0 permite a los módulos especificar su orden, eliminando la necesidad de estasdos directrices.

Page 5: 22 http ftp_linux_asoitson

Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0

315

• El orden de las líneas LoadModule ya no es relevante en la mayoría de los casos.

• Se han añadido muchos módulos, otros han sido eliminados, renombrado, dividido o incorporadoscon otros.

• Ya no son necesarias las líneas LoadModule para los módulos empaquetados en sus propiosRPMs (mod_ssl, php, mod_perl y similares) ya que se pueden encontrar en sus archivosrelevantes dentro del directorio /etc/httpd/conf.d/.

• Las definiciones HAVE_XXX ya no existen.

Importante

Si se está modificando el archivo original, por favor tenga en cuenta que es de suma importanciaque httpd.conf contenga la directriz siguiente:

Include conf.d/*.conf

La omisión de esta directriz podría resultar en la falla de todos los módulos enpaquetados en suspropios RPMs (tales como mod_perl, php y mod_ssl).

22.2.2.1.4. Otros cambios en el entorno globalThe following directives have been removed from Apache HTTP Server 2.0's configuration:

• ServerType — El Servidor HTTP Apache se puede ejecutar sólamente como ServerTypestandalone por lo que esta directriz es irrelevante.

• AccessConfig y ResourceConfig — Se han eliminado estas directrices porque su funcionalidadaparece ya en la directriz Include. Si las directrices AccessConfig y ResourceConfig sonconfiguradas, entonces reemplácelas por las directrices Include.

Para asegurarse que estos archivos se lean en el orden de las antiguas directrices, las directricesInclude se deberían colocar al final de httpd.conf, con la correspondiente a ResourceConfigprecediendo la que corresponde a AccessConfig. Si se estan usando los valores por defecto,inclúyalos explícitamente como archivos conf/srm.conf y conf/access.conf.

22.2.2.2. Configuración del servidor principalThe main server configuration section of the configuration file sets up the main server, which respondsto any requests that are not handled by a virtual host defined within a <VirtualHost> container.Values here also provide defaults for any <VirtualHost> containers defined.

Las directrices utilizadas en esta sección han cambiado ligeramente respecto a las del ServidorHTTP Apache versión 1.3 y la versión 2.0. Si la configuración del servidor principal está altamentepersonalizada, le será más fácil modificar el archivo de configuración existente para que seadapte a la versión 2.0 del Servidor HTTP Apache. Los usuarios con secciones del servidorprincipal ligeramente personalizadas deberían migrar sus cambios al archivo de configuración 2.0predeterminado.

22.2.2.2.1. Asignaciones UserDirLa directriz UserDir se usa para habilitar URLs tales como http://example.com/~bob/para mapear a un subdirectorio dentro del directorio home del usuario bob tal como /home/bob/

Page 6: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

316

public_html/. Un efecto secundario de esta característica es que un potencial atacante puededeterminar si un nombre de usuario dado se encuentra en el sistema; por esta razón la configuraciónpor defecto para el Servidor HTTP Apache desactiva esta directriz.

Para habilitar la asignación de UserDir, cambie la directriz en httpd.conf desde:

UserDir disable

a lo siguiente:

UserDir public_html

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_userdir.html#userdir

22.2.2.2.2. LoggingSe han eliminado las siguientes directrices de conexión:

• AgentLog

• RefererLog

• RefererIgnore

Sin embargo, las conexiones agent y referrer estan disponibles usando las directrices CustomLog yLogFormat.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#customlog

• http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#logformat

22.2.2.2.3. Índice de directoriosSe ha eliminado la directriz FancyIndexing. La misma funcionalidad se encuentra ahora enFancyIndexing option dentro de la directriz IndexOptions.

La opción VersionSort para la directriz IndexOptions causa que los archivos conteniendonúmeros de versiones sean ordenados de una forma más natural. Por ejemplo, httpd-2.0.6.taraparece antes de httpd-2.0.36.tar en una página de índices de directorio.

Las directrices predeterminadas ReadmeName y HeaderName han sido cambiadas desde README yHEADER a README.html y HEADER.html.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_autoindex.html#indexoptions

• http://httpd.apache.org/docs-2.0/mod/mod_autoindex.html#readmename

Page 7: 22 http ftp_linux_asoitson

Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0

317

• http://httpd.apache.org/docs-2.0/mod/mod_autoindex.html#headername

22.2.2.2.4. Negociación de contenidoLa directriz CacheNegotiatedDocs toma ahora el argumento on o off. Las instancias existentesde CacheNegotiatedDocs deberían ser cambiadas con CacheNegotiatedDocs on.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_negotiation.html#cachenegotiateddocs

22.2.2.2.5. Documentos de errorTo use a hard-coded message with the ErrorDocument directive, the message should be enclosedin a pair of double quotation marks ", rather than just preceded by a double quotation mark asrequired in Apache HTTP Server 1.3.

Por ejemplo, el siguiente es un ejemplo de la directtriz de Servidor HTTP Apache de la versión 1.3:

ErrorDocument 404 "The document was not found

Para migrar la configuración de ErrorDocument al Servidor HTTP Apache versión 2.0, utilice lasiguiente estructura:

ErrorDocument 404 "The document was not found"

Observe las dobles comillas en la directriz ErrorDocument del ejemplo anterior.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/core.html#errordocument

22.2.2.3. Configuración de host virtualesThe contents of all <VirtualHost> containers should be migrated in the same way as the mainserver section as described in Sección 22.2.2.2, “Configuración del servidor principal”.

Importante

Observe que la configuración de las máquinas virtuales SSL/TLS se han quitado del archivo deconfiguración del servidor principal al archivo /etc/httpd/conf.d/ssl.conf.

• http://httpd.apache.org/docs-2.0/vhosts/

22.2.2.4. Módulos y el Servidor HTTP Apache 2.0En la versión 2.0 del Servidor HTTP Apache el sistema de módulos se ha cambiado para permitirque los módulos se encadenen o se combinen en maneras nuevas e interesantes. Los scripts CGI(Common Gateway Interface), por ejemplo, pueden generar documentos HTML interpretados porel servidor que luego pueden ser procesados por mod_include. Esto abre una gran cantidad de

Page 8: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

318

posibilidades en lo que se refiere a cómo los módulos pueden combinarse para lograr una metadeterminada.

La forma en que esto funciona es que cada petición es servida por exáctamente un módulo handlerseguido por cero o más módulos filtro.

Bajo el Servidor HTTP Apache 1.3, por ejemplo, un script Perl es manejado completamente por elmódulo Perl (mod_include). En la versión 2.0 del Servidor HTTP Apache la petición la gestionainicialmente el módulo principal — que sirve archivos estáticos — y que es luego filtrado pormod_perl.

Exactamente cómo utilizar esto y otras de las nuevas características del Servidor HTTP Apache2.0, están más allá del alcance de este documento; sin embargo, el cambio tiene ramificaciones siha usado la directriz PATH_INFO para un documento que es gestionado por un módulo que ahorase implementa como un filtro, pues cada uno contiene información del recorrido del nombre delarchivo verdadero. El módulo principal, que inicialmente manejaba la petición, no entiende pordefecto PATH_INFO y devuelve el error 404 Not Found para las peticiones que contienen dichainformación. Como alternativa puede utilizar la directriz AcceptPathInfo para obligar al móduloprincipal a que acepte peticiones con PATH_INFO.

A continuación se presenta un ejemplo de esta directriz:

AcceptPathInfo on

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/core.html#acceptpathinfo

• http://httpd.apache.org/docs-2.0/handler.html

• http://httpd.apache.org/docs-2.0/filter.html

22.2.2.4.1. El módulo suexecEn el Servidor HTTP Apache 2.0, el módulo mod_suexec utiliza la directriz SuexecUserGroup envez de las directrices User y Group, la cual se utiliza para configurar hosts virtuales. Las directricesUser y Group también se pueden utilizar en general, pero no para la configuración de hosts virtuales.

Por ejemplo, el siguiente es un ejemplo de la directtriz de Servidor HTTP Apache de la versión 1.3:

<VirtualHost vhost.example.com:80> User someone Group somegroup </VirtualHost>

Para migrar esta configuración al Servidor HTTP Apache versión 2.0 utilice la siguiente estructura:

<VirtualHost vhost.example.com:80> SuexecUserGroup someone somegroup </VirtualHost>

22.2.2.4.2. El módulo mod_sslThe configuration for mod_ssl has been moved from the httpd.conf file into the /etc/httpd/conf.d/ssl.conf file. For this file to be loaded, and for mod_ssl to work, the statement Includeconf.d/*.conf must be in the httpd.conf file as described in Sección 22.2.2.1.3, “Soporte delDynamic Shared Object (DSO) (Objeto dinámico compartido)”.

Page 9: 22 http ftp_linux_asoitson

Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0

319

Las directrices ServerName en las máquinas virtuales SSL tienen que especificar el número delpuerto.

Por ejemplo, el siguiente es un ejemplo de la directtriz de Servidor HTTP Apache de la versión 1.3:

<VirtualHost _default_:443> # General setup for the virtual host ServerName ssl.example.name ... </VirtualHost>

Para migrar esta configuración al Servidor HTTP Apache versión 2.0 utilice la siguiente estructura:

<VirtualHost _default_:443> # General setup for the virtual host ServerName ssl.host.name:443 ... </VirtualHost>

It is also important to note that both the SSLLog and SSLLogLevel directives have been removed.The mod_ssl module now obeys the ErrorLog and LogLevel directives. Refer to ErrorLog andLogLevel for more information about these directives.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_ssl.html

• http://httpd.apache.org/docs-2.0/vhosts/

22.2.2.4.3. El módulo mod_proxyProxy access control statements are now placed inside a <Proxy> block rather than a <Directoryproxy:>.

La funcionalidad de caché del antiguo mod_proxy se ha dividido en tres módulos siguientes:

• mod_cache

• mod_disk_cache

• mod_mem_cache

Estos generalmente usan directrices similares a las versiones anteriores del módulo mod_proxy,pero se recomienda que verifique cada directriz antes de migrar cualquier configuración caché.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_proxy.html

22.2.2.4.4. El módulo mod_includeThe mod_include module is now implemented as a filter and is therefore enabled differently. Refer toSección 22.2.2.4, “Módulos y el Servidor HTTP Apache 2.0” for more about filters.

Por ejemplo, el siguiente es un ejemplo de la directtriz de Servidor HTTP Apache de la versión 1.3:

AddType text/html .shtml AddHandler server-parsed .shtml

Para migrar esta configuración al Servidor HTTP Apache versión 2.0 utilice la siguiente estructura:

Page 10: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

320

AddType text/html .shtml AddOutputFilter INCLUDES .shtml

Note that the Options +Includes directive is still required for the <Directory> container or in a.htaccess file.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_include.html

22.2.2.4.5. Los módulos mod_auth_dbm y mod_auth_dbEl Servidor HTTP Apache 1.3 soportaba dos módulos de autenticación, mod_auth_db ymod_auth_dbm que usaba las bases de datos Berkeley y DBM respectivamente. Estos módulosse han combinado en un único módulo que se llama mod_auth_dbm en el Servidor HTTPApache 2.0, que puede acceder a diferentes formatos de bases de datos. Para migrar desdemod_auth_db los archivos de configuración se tienen que ajustar reemplazando AuthDBUserFiley AuthDBGroupFile con los equivalentes: AuthDBMUserFile y AuthDBMGroupFile. También, sedebe añadir la directriz AuthDBMType DB para indicar el tipo de archivo de base de datos en uso.

El siguiente ejemplo muestra una configuración mod_auth_db de ejemplo para el Servidor HTTPApache 1.3:

<Location /private/> AuthType Basic AuthName "My Private Files" AuthDBUserFile /var/www/authdb require valid-user </Location>

Para migrar esta configuración a la versión 2.0 del Servidor HTTP Apache 2.0 utilice la siguienteestructura:

<Location /private/> AuthType Basic AuthName "My Private Files" AuthDBMUserFile /var/www/authdb AuthDBMType DB require valid-user </Location>

Observe que la directriz AuthDBMUserFile también puede ser usada en archivos .htaccess.

El script Perl dbmmanage que se utiliza para manipular bases de datos de nombres de usuarios ycontraseñas ha sido reemplazado por htdbm en el Servidor HTTP Apache 2.0. El programa htdbmofrece una funcionalidad equivalente y como mod_auth_dbm puede operar en una variedad deformatos de bases de datos; la opción -T se puede usar en la línea de comandos para especificar elformato a utilizar.

Tabla 22.1, “Migración del dbmmanage a htdbm” shows how to migrate from a DBM-format databaseto htdbm format using dbmmanage.

Tabla 22.1. Migración del dbmmanage a htdbm

Action comando dbmmanage (1.3) comando equivalente htdbm(2.0)

Añade un usuario a la base dedatos (usando la contraseñadada)

dbmmanage authdb addusername password

htdbm -b -TDB authdbusername password

Añade un usuario a la base dedatos ( le pide la contraseña)

dbmmanage authdbadduser username

htdbm -TDB authdbusername

Page 11: 22 http ftp_linux_asoitson

Migración de los Archivos de Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0

321

Action comando dbmmanage (1.3) comando equivalente htdbm(2.0)

Eliminar el usuario de la basede datos

dbmmanage authdb deleteusername

htdbm -x -TDB authdbusername

Listar usuarios en la base dedatos

dbmmanage authdb view htdbm -l -TDB authdb

Verificar una contraseña dbmmanage authdb checkusername

htdbm -v -TDB authdbusername

Las opciones -m y -s trabajan con dbmmanage y con htdbm, permitiendo el uso de los algortimosMD5 o SHA1 para las contraseñas hashing, respectivamente.

Cuando cree una nueva base de datos con htdbm, use la opción -c.

For more on this topic, refer to the following documentation on the Apache Software Foundation'swebsite:

• http://httpd.apache.org/docs-2.0/mod/mod_auth_dbm.html

22.2.2.4.6. El módulo mod_perlThe configuration for mod_perl has been moved from httpd.conf into the file /etc/httpd/conf.d/perl.conf. For this file to be loaded, and hence for mod_perl to work, the statementInclude conf.d/*.conf must be included in httpd.conf as described in Sección 22.2.2.1.3,“Soporte del Dynamic Shared Object (DSO) (Objeto dinámico compartido)”.

Las ocurrencias del Apache:: en el httpd.conf tienen que ser sustituídas por ModPerl::.Además, se ha cambiado el modo en que se registran los manejadores.

Ejemplo de configuración del Servidor HTTP Apache 1.3 mod_perl:

<Directory /var/www/perl> SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI </Directory>

Este es el equivalente del mod_perl para el Servidor HTTP Apache 2.0:

<Directory /var/www/perl> SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI </Directory>

La mayoría de los módulos para mod_perl 1.x deberían funcionar sin modificación con los módulosmod_perl 2.x. Los módulos XS requieren recompilación y quizás algunas modificaciones menoresde Makefile.

22.2.2.4.7. El módulo mod_pythonConfiguration for mod_python has moved from httpd.conf to the /etc/httpd/conf.d/python.conf file. For this file to be loaded, and hence for mod_python to work, the statementInclude conf.d/*.conf must be in httpd.conf as described in Sección 22.2.2.1.3, “Soporte delDynamic Shared Object (DSO) (Objeto dinámico compartido)”.

22.2.2.4.8. PHPThe configuration for PHP has been moved from httpd.conf into the file /etc/httpd/conf.d/php.conf. For this file to be loaded, the statement Include conf.d/*.conf must be in

Page 12: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

322

httpd.conf as described in Sección 22.2.2.1.3, “Soporte del Dynamic Shared Object (DSO) (Objetodinámico compartido)”.

Nota

Cualquier directriz de configuración PHP utilizada en el Servidor HTTP Apache 1.3 ahora escompletamente compatible cuando se migra al Servidor HTTP Apache 2.0 en Red Hat EnterpriseLinux 5.

En PHP 4.2.0 y posterior, el conjunto predeterminado de variables predefinidas que están disponiblesen el ámbito global, han cambiado. Las entradas individuales y las variables del servidor, por defecto,ya no se colocan directamente en el ámbito global. Este cambio puede hacer que se rompan losscripts. Cámbiese al antiguo comportamiento colocando register_globals a On en el archivo /etc/php.ini.

Para mayor información sobre estos temas, consulte los siguientes sitios web:

• http://www.php.net/release_4_1_0.php

22.2.2.4.9. El módulo mod_authz_ldapRed Hat Enterprise Linux ships with the mod_authz_ldap module for the Apache HTTP Server. Thismodule uses the short form of the distinguished name for a subject and the issuer of the client SSLcertificate to determine the distinguished name of the user within an LDAP directory. It is also capableof authorizing users based on attributes of that user's LDAP directory entry, determining access toassets based on the user and group privileges of the asset, and denying access for users with expiredpasswords. The mod_ssl module is required when using the mod_authz_ldap module.

Importante

El módulo mod_authz_ldap no valida un usuario a un directorio LDAP usando un hashde contraseña encriptada. Esta funcionalidad es proporcionada por el módulo experimentalmod_auth_ldap. Consulte la documentación en línea de mod_auth_ldap en http://httpd.apache.org/docs-2.0/mod/mod_auth_ldap.html para más detalles sobre el estatus de estemódulo.

El archivo /etc/httpd/conf.d/authz_ldap.conf configura al módulo mod_authz_ldap.

Refer to /usr/share/doc/mod_authz_ldap-<version>/index.html (replacing <version>with the version number of the package) or http://authzldap.othello.ch/ for more information onconfiguring the mod_authz_ldap third party module.

22.3. Arrancar y detener httpdAfter installing the httpd package, review the Apache HTTP Server's documentation available onlineat http://httpd.apache.org/docs/2.2/.

El RPM de httpd instala el script /etc/init.d/httpd, el cual se puede acceder usando elcomando /sbin/service.

Iniciando httpd utilizandoel script de control apachectl configura las variables del entorno en/etc/sysconfig/httpd e inicia httpd. También puede configurar las variables del entornoutilizando el script de inicialización.

Page 13: 22 http ftp_linux_asoitson

Arrancar y detener httpd

323

Para arrancar el servidor utilizando el script de control apachectl como tipo root:

apachectl start

También puede arrancar httpd utilizando /sbin/service httpd start. Esto inicia httpdpero no configura las variables del entorno. Si está utilizando la directriz predeterminada Listen enhttpd.conf, la cual es el puerto 80, necesitará contar con privilegios de usuario root para iniciar elservidor apache.

Para detener el servidor, como root escriba:

apachectl stop

También puede detener httpd utilizando /sbin/service httpd stop. La opción restart esuna manera más rápida de detener y luego iniciar el Servidor HTTP Apache.

Para reiniciar el servidor como root escriba:

apachectl restart or:/sbin/service httpd restart

Apache presentará un mensaje en la consola o en el ErrorLog si encuentra un error al iniciar.

Por defecto, el servicio httpd no inicia automáticamente al momento de arranque. Si quiereque Apache inicie al momento de arranque necesitará añadir una llamada a apachectl en susarchivos de inicalización dentro de su directorio rc.local. Un archivo que se utiliza típicamentees rc.local. Ya que esto inicia Apache como usuario root se recomienda que configureapropiadamente su seguridad y autenticación antes de añadir esta llamada.

También puede configurar el servicio httpd para iniciar en tiempo de arranque utilizando unaherramienta script de inicialización tal como /sbin/chkconfig, /usr/sbin/ntsysv, o el programaServices Configuration Tool.

También puede visualizar el estado de su servidor httpd escribiendo:

apachectl status

Sin embargo, el módulo de estado mod_status necesita ser habilitado en su archivo deconfiguración mod_status para que esto funcione. Para obtener más detalles sobre mod_statusvaya a http://httpd.apache.org/docs/2.2/mod/mod_status.html.

Nota

If running the Apache HTTP Server as a secure server, the secure server's password is requiredafter the machine boots when using an encrypted private SSL key.

Puede encontrar más información en http://httpd.apache.org/docs/2.2/ssl

Page 14: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

324

22.4. Configuración del Servidor HTTP ApacheThe HTTP Configuration Tool allows you to configure the /etc/httpd/conf/httpd.confconfiguration file for the Apache HTTP Server. It does not use the old srm.conf or access.confconfiguration files; leave them empty. Through the graphical interface, you can configure directivessuch as virtual hosts, logging attributes, and maximum number of connections. To start the HTTDConfiguration Tool, click on System > Administration > Server Settings > HTTP.

Sólo se pueden configurar con la Herramienta de Configuración HTTPaquellos módulos queestén incluídos con Red Hat Enterprise Linux. Si se instalan otros módulos, no se podrán configurarutilizando esta herramienta.

Advertencia

No modifique el archivo de configuración /etc/httpd/conf/httpd.conf manualmente sidesea utilizar esta herramienta. La Herramienta de Configuración HTTP genera este archivodespués de que haya grabado los cambios y haya salido del programa. Si desea añadir módulosu opciones de configuración que no se encuentran en la Herramienta de Configuración HTTPno podrá usarla.

Los pasos generales para configurar el Servidor HTTP Apache utilizando la Herramienta deConfiguración HTTP son los siguientes:

1. Configure los aspectos básicos que se encuentran en la pestaña Principal

2. Haga clic en Hosts Virtualesy configure las opciones predeterminadas.

3. Bajo la pestaña Hosts Virtuales configure el Host Virtual Predeterminado.

4. Para servir más de una URL o más de un host virtual, añada cualquier host virtual adicional.

5. Configure las características del servidor bajo la pestaña Servidor.

6. Configure la configuración de las conexiones bajo la pestaña Ajuste de Rendimiento.

7. Copie todos los archivos necesarios a los directorios DocumentRoot y cgi-bin

8. Salga de la aplicación y seleccione guardar sus configuraciones.

22.4.1. Basic SettingsUse la pestaña Principal para establecer las configuraciones básicas del servidor.

Page 15: 22 http ftp_linux_asoitson

Basic Settings

325

Figura 22.1. Basic Settings

Enter a fully qualified domain name that you have the right to use in the Server Name text area.This option corresponds to the ServerName2 directive in httpd.conf. The ServerName directivesets the hostname of the Web server. It is used when creating redirection URLs. If you do notdefine a server name, the Web server attempts to resolve it from the IP address of the system. Theserver name does not have to be the domain name resolved from the IP address of the server. Forexample, you might set the server name to www.example.com while the server's real DNS name isfoo.example.com.

Enter the email address of the person who maintains the Web server in the Webmaster emailaddress text area. This option corresponds to the ServerAdmin3 directive in httpd.conf. If youconfigure the server's error pages to contain an email address, this email address is used so thatusers can report a problem to the server's administrator. The default value is root@localhost.

Utilice el área Direcciones Disponibles para definir los puertos en los que el servidor acepta pedidosentrantes. Esta opción corresponde a la directriz Listen4 en httpd.conf. Por defecto, Red Hatconfigura el Servidor HTTP Apache para que escuche el puerto 80 para comunicaciones de web noseguras.

Click the Add button to define additional ports on which to accept requests. A window as shown inFigura 22.2, “Available Addresses” appears. Either choose the Listen to all addresses option tolisten to all IP addresses on the defined port or specify a particular IP address over which the serveraccepts connections in the Address field. Only specify one IP address per port number. To specify

2 http://httpd.apache.org/docs/2.2/mod/core.html#servername3 http://httpd.apache.org/docs/2.2/mod/core.html#serveradmin4 http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen

Page 16: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

326

more than one IP address with the same port number, create an entry for each IP address. If at allpossible, use an IP address instead of a domain name to prevent a DNS lookup failure. Refer to http://httpd.apache.org/docs/2.2/dns-caveats.html for more information about Issues Regarding DNS andApache.

Si introduce un asterisco (*) en el campo Direccionesequivaldrá a elegir la opción Escuchar todaslas direcciones. Haga click en el botón Modificar en el recuadro de Direcciones disponiblesmuestra la misma ventana que el botón Añadir excepto los campos de la entrada seleccionada. Paraborrar una entrada, seleccionela y haga clic en el botón Eliminar.

Tip

Si configuró el servidor para escuchar en el puerto 1024, deberá ser root para arrancarlo. Para elpuerto 1024 y superiores, se puede arrancar httpd como un usuario normal.

Figura 22.2. Available Addresses

22.4.2. Configuraciones predeterminadasDespués de definir el Nombre del Servidor, Dirección de correo eletrónico del webmaster yDirecciones Disponibles haga clic en la pestaña Hosts Virtuales. La figura a continuación ilustra lapestaña Hosts Virtuales.

Page 17: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

327

Figura 22.3. Virtual Hosts Tab

Al hacer clic en Modificar presentará la ventana de las Propiedades del Host Virtual desde dondeusted puede configurarlo como desee. Para añadir nuevas configuraciones haga clic en el botónAñadir, el cual también presentará la ventana Propiedades del Host Virtual. Al hacer clic en elbotón Modificar Configuración Predeterminada aparecerá una ventana Propiedades del HostVirtual sin la pestaña Opciones Generales.

In the General Options tab, you can change the hostname, the document root directory and also setthe webmaster's email address. In the Host information, you can set the Virtual Host's IP Address andHost Name. The figure below illustrates the General Options tab.

Page 18: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

328

Figura 22.4. General Options

Si añade un host virtual, la configuración del host virtual tiene prioridad para ese host virtual. Para unadirectriz no definida dentro de la configuración del host virtual se utiliza el valor predeterminado.

22.4.2.1. Site ConfigurationLa figura a continuación ilustra la pestaña Opciones de Página desde la cual puede configurar laLista de Páginas del Directorio y Páginas de Error. Si no está seguro de esta configuración no lamodifique.

Page 19: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

329

Figura 22.5. Site Configuration

Las entradas que aparecen en la Lista de Búsqueda de Página de Directorio definen la directivaDirectoryIndex5. ElDirectoryIndex es la página predeterminada que el servidor da a unusuario que pide el índice de un directorio escribiendo la barra inclinada (/) al final del nombre deldirectorio.

Por ejemplo, cuando un usuario pide la páginahttp://www.example.com/this_directory/recibe la página del índice del directorio, DirectoryIndex, si existe, o un listado de directoriosgenerado por el servidor. El servidor intentará encontrar uno de los archivos incluidos enDirectoryIndex y entregará el primero que encuentre.Si no encuentra ninguno de estos archivos y siOptions Indexes está configurado para esedirectorio, el servidor genera y devuelve una lista, en formato HTML, de los subdirectorios y archivosdentro del directorio.

5 http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex

Page 20: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

330

Utilice la sección Código Error para configurar el Servidor HTTP Apache para redireccionar el clientea una URL local o externa en el caso de que haya un error o un problema. Esta opción corresponde ala directriz ErrorDocument6. Si ocurre un error o si se presenta un problema cuando un clienta tratade conectarse al Servidor HTTP Apache, la acción predeterminada es presentar un corto mensajede error en la columna Código Error. Para cancelar esta configuración predeterminada seleccioneel código error y haga clic en el botón Modificar. Seleccione Predeterminado para visualizar elmensaje corto de error predeterminado. Elija URL para redireccionar el cliente a la URL externa eingresar una URL completa incluyendo el http:// en el campo Location. Seleccione File pararedireccionar el cliente a una URL interna e ingresar la ubicación de un archivo bajo la raíz deldocumento para el servidor Web. La ubicación debe comenzar con la barra inclinada (/) y debe estarrelacionada con la Raíz del Documento.

Por ejemplo, para redirigir un código de error 404 Not Found a una página web que usted ha creadoen un archivo llamado 404.html copie 404.html a DocumentRoot/../error/404.html. Eneste caso, DocumentRoot es el directorio del documento raíz que ha definido (el valor por defecto es/var/www/html/). Si se deja el documento raíz como la ubicación por defecto, el archivo deberíaser copiado a /var/www/error/404.html. Luego, elija Archivo como el Comportamiento para elcódigo de error 404 - Not Found e introduzca /error/404.html como la Ubicación.

Desde el menú Pie de Página de Error por Defecto escoja una de las siguientes opciones:

• Mostrar el pie de página con la dirección de correo electrónico — Esta opción muestra el piede página predeterminado en todas las páginas de error junto con la dirección de correo electrónicodel encargado del sitio web especificado por la directriz ServerAdmin7.

• Muestra el pie de página — Esta opción le muestra el pie de página predeterminado en todas laspáginas de error.

• Ningún pie de página — No muestra el pie de página en las páginas de error.

22.4.2.2. Soporte SSLEl mod_ssl le permite encriptar el protocolo HTTP sobre SSL. El protocolo SSL(Secure SocketsLayer) se utiliza para comunicación y para encriptar sobre redes TCP/IP. La pestaña SSL le permiteconfigurar SSL para su servidor. Para configurar SSL necesita proporcionar la ruta a su:

• Archivo de certificado - equivalente a utilizar la directriz SSLCertificateFile la cual apunta laruta al archivo de certificado de servidor codificado PEM (Privacy Enhanced Mail).

• Archivo de la llave - equivalente a utilizar la directriz SSLCertificateKeyFile la cual apunta laruta al archivo de la llave privada del servidor codificado PEM.

• Certificate chain file - equivalent to using the SSLCertificateChainFile directive which pointsthe path to the certificate file containing all the server's chain of certificates.

• Archivo de autoridad del certificado - es un archivo encriptado utilizado para confirmar laautenticidad o identidad de las partes que se comunican con el servidor.

Puede encontrar más información sobre las directrices de configuración para SSL en http://httpd.apache.org/docs/2.2/mod/directives.html#S8. También necesita determinar que opciones SSLdebe habilitar. Estas son equivalentes a utilizar SSLOptions con las siguientes opciones:

6 http://httpd.apache.org/docs/2.2/mod/core.html#errordocument8 http://httpd.apache.org/docs/2.2/mod/directives.html#S

Page 21: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

331

• FakeBasicAuth - enables standard authentication methods used by Apache. This means thatthe Client X509 certificate's Subject Distinguished Name (DN) is translated into a basic HTTPusername.

• ExportCertData - crea variables de entorno CGI en SSL_SERVER_CERT, SSL_CLIENT_CERT ySSL_CLIENT_CERT_CHAIN_n en donde n es un número 0,1,2,3,4... Los scripts CGI utilizan estosarchivos para más chequeos de certificados.

• CompatEnvVars - habilita una compatibilidad retroactiva para Apache SSL añadiendo variables deentorno CGI.

• StrictRequire - habilita acceso estricto el cual obliga a denegar acceso cuando las directricesSSLRequireSSL y SSLRequire indican que es prohibido el acceso.

• OptRenegotiate - permite eludir los apretones de manos de mod_ssl el cual también realizachequeos de parámetros seguros. Se recomienda que habilite OptRenegotiate con base en eldirectorio.

Para obtener más información sobre las opciones SSL mencionadas anteriormente vaya a http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#ssloptions9. La figura a continuación ilustra la pestañaSSL y las opciones que se discutieron anteriormente.

9 http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#ssloptions

Page 22: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

332

Figura 22.6. SSL

22.4.2.3. LoggingUtilice la pestaña Registro para configurar las opciones para registro de errores y transferenciaespecífica.

Por defecto, el servidor escribe el registro de transferencia en el archivo /var/log/httpd/access_log y el registro de error en el archivo /var/log/httpd/error_log.

El registro de transferencias contiene una lista de todos los intentos para acceder al servidor web.Graba las direcciones IP del cliente que está tratande de conectarse, la fecha y hora en que intentó,y el archivo en el servidor web que está tratando de recuperar. Introduzca el nombre de la ruta ydel archivo en donde se alamacenará esta información. Si el nombre de la ruta y del archivo no

Page 23: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

333

comienzan con una barra inclinada (/), la ruta es relativa al directorio root del servidor como seconfigurá. Esta opción corresponde a la directriz TransferLog10.

Figura 22.7. Logging

Puede configurar un registro con formato personalizado chequeando Usar las facilidadesde registro personalizado e introduciendo una cadena personalizada en el campo Cadenade registro personalizada. Esto configura la directriz LogFormat11. Para mayor informaciónsobre los detalles del formato de la directiva consulte http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat12.

El registro de transferencia incluye una lista de los errores del servidor. Introduzca el nombre de laruta y del archivo en donde se debe almacenar esta información. Si el nombre de la ruta y del archivo

10 http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#transferlog11 http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#logformat12 http://httpd.apache.org/docs-2.0/mod/mod_log_config.html#formats

Page 24: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

334

no empiezan con una barra inclinada (/), la ruta es relativa al directorio root del servidor como seconfiguró. Esta opción corresponde a la directriz ErrorLog13.

Utilice el menú Nivel de Registro para establecer la verbosidad de los emnsajes de error en losregistrs de error. Se puede configurar (del menos verbos al más verboso) como emerg, alerta, crit,error, advert, aviso, info o depurar. Esta opción corresponde a la directriz LogLevel14.

El valor escogido en el menú Búsqueda inversa del DNS define la directiva HostnameLookups15 Siescoge Ninguna búsqueda inversa se desactiva el valor, si escoge Búsqueda inversa el valor estáactivado y si escoge Doble búsqueda inversa éste se duplica.

Si escoje Búsuqeda Inversa su servidor resuelve automáticamente la dirección IP para cadaconexión la cual pide un documento de su servidor web. El resolver una dirección IP significa que suservidor realiza una o más conexiones al DNS para encontrar el nombre del host que corresponde auna dirección IP en particular.

Si elije Búsqueda Inversa Doble su servidor realiza un DNS inverso doble. Es decir, después de quese realiza una búsqueda inversa, se realiza una búsqueda avanzada en el resultado. Por lo menosuna de las direcciones IP en la búsqueda vanazada debe coincidir con la dirección de la primerabúqieda inversa.

Generalmente, esta opción debería de estar en Ninguna Búsqueda Inversa porque sino sesobrecarga al servidor y disminuye el ritmo de trabajo. Si su servidor tiene mucha carga, al tratar derealizar estas búsquedas, los efectos serán bastante notables.

Reverse lookups and double reverse lookups are also an issue for the Internet as a whole. Eachindividual connection made to look up each hostname adds up. Therefore, for your own Web server'sbenefit, as well as for the Internet's benefit, you should leave this option set to No Reverse Lookup.

22.4.2.4. Environment VariablesUtilice la pestaña Entorno para configurar las opciones para variables específicas para establecer,pasar o desconfigurar para scripts CGI.

Algunas veces es necesario modificar las variables del entorno para scripts CGI o páginas server-sideinclude (SSI). El Servidor HTTP Apache puede usar el módulo mod_env para configurar las variablesdel ambiente que son pasadas a los scripts CGI y a las páginas SSI. Utilice la página Variables deentorno para configurar las directivas para este módulo.

Use the Set for CGI Scripts section to set an environment variable that is passed to CGI scripts andSSI pages. For example, to set the environment variable MAXNUM to 50, click the Add button insidethe Set for CGI Script section, as shown in Figura 22.8, “Environment Variables”, and type MAXNUM inthe Environment Variable text field and 50 in the Value to set text field. Click OK to add it to the list.The Set for CGI Scripts section configures the SetEnv16 directive.

Utilice la sección Pasar a los Scripts CGI para pasar el valor de una variable de entorno cuandoel servidor se inicia por primera vez en scripts CGI. Para ver esta variable de entrada escriba elcomando env en un intérprete de comandos. Haga clic en el botón Añadir dentro de la secciónPasar a Scripts CGI e introduzca el nombre de la variable de entorno en la ventana de diálogo

13 http://httpd.apache.org/docs/2.2/mod/core.html#errorlog14 http://httpd.apache.org/docs/2.2/mod/core.html#loglevel15 http://httpd.apache.org/docs/2.2/mod/core.html#hostnamelookups16 http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv

Page 25: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

335

que aparece. Haga clic en OK para añadirla a la lista. La sección Pass to CGI Scripts configura ladirectriz PasarEnt 17.

Figura 22.8. Environment Variables

Para eliminar una variable de entorno de manera que el valor no se pase a a los scripts CGI y a laspáginas SSI utilice la sección Desconfigurar para Scripts CGI. Haga clic en Añadir en la secciónDesconfigurar para Scripts CGI e introduzca el nombre de la variable de entorno en desconfigurar.Haga clic en OK para añadirla a la lista. Esto corresponde a la directriz DesconfigEnt18

Para modificar cualquier de estos valores de entorno selecciónelo de la lista y haga clic en el botónModificar . Para borrar cualquier entrada de la lista selecciónela y haga clic en el botón Eliminarcorrespondiente.

17 http://httpd.apache.org/docs/2.2/mod/mod_env.html#passenv18 http://httpd.apache.org/docs/2.2/mod/mod_env.html#unsetenv

Page 26: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

336

Para obtener más información sobre las variables de entorno en el Servidor HTTP Apache refiérase a:http://httpd.apache.org/docs/2.2/env.html

22.4.2.5. DirectoriesUse the Directories page in the Performance tab to configure options for specific directories. Thiscorresponds to the <Directory>19 directive.

Figura 22.9. Directories

Click the Edit button in the top right-hand corner to configure the Default Directory Options for alldirectories that are not specified in the Directory list below it. The options that you choose are listedas the Options20 directive within the <Directory>21 directive. You can configure the followingoptions:

19 http://httpd.apache.org/docs/2.2/mod/core.html#directory20 http://httpd.apache.org/docs/2.2/mod/core.html#options

Page 27: 22 http ftp_linux_asoitson

Configuraciones predeterminadas

337

• ExecCGI — Permite la ejecución de los scripts CGI. Los scripts no se ejecutan si no elige estaopción.

• FollowSymLinks — Permite que se sigan enlaces simbólicos.

• Includes — Permite las inclusiones en el servidor (SSI).

• IncludesNOEXEC — Permite las inclusiones en el servidor pero anula los comandos #exec y#include en los scripts CGI.

• Indexes — Display a formatted list of the directory's contents, if no DirectoryIndex (such asindex.html) exists in the requested directory.

• index.html Soporta las visualizaciones múltiples de los contenidos; esta opción no está activadapor defecto.

• SymLinksIfOwnerMatch — Permite seguir un enlace simbólico sólamente si el archivo o eldirectorio en cuestión tienen el mismo propietario que el enlace.

To specify options for specific directories, click the Add button beside the Directory list box. Awindow as shown in Figura 22.10, “Directory Settings” appears. Enter the directory to configure in theDirectory text field at the bottom of the window. Select the options in the right-hand list and configurethe Order22 directive with the left-hand side options. The Order directive controls the order in whichallow and deny directives are evaluated. In the Allow hosts from and Deny hosts from text field, youcan specify one of the following:

• Permitir todas los hosts — Escriba all para permitir el acceso a todos los hosts.

• Nombre parcial de dominio — Permite todas las máquinas cuyos nombres coincidan o terminen conuna cadena determinado.

• Dirección IP completa — Permite el acceso a una determinada dirección IP.

• Una subred — Tal como 192.168.1.0/255.255.255.0

• Una especificación CIDR de red — como por ejemplo 10.3.0.0/16

21 http://httpd.apache.org/docs/2.2/mod/core.html#directory22 http://httpd.apache.org/docs-2.0/mod/mod_access.html#order

Page 28: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

338

Figura 22.10. Directory Settings

Si marca Permitir que los archivos .htaccess pasen por encima de las opciones del directoriolas directivas de configuración en el archivo .htaccess toman precedencia.

22.5. Directrices de configuración en httpd.confEl archivo de configuración del Servidor HTTP Apache es /etc/httpd/conf/httpd.conf. Elarchivo httpd.conf está bien comentado y en gran parte es autoexplicativo. Su configuración pordefecto funciona para la mayoría de los casos; sin embargo, es una buena idea familiarizarse conalgunas de las opciones de configuración más importantes.

Advertencia

With the release of Apache HTTP Server 2.2, many configuration options have changed. Ifmigrating from version 1.3 to 2.2, please firstly read Sección 22.2.2, “Migración de los Archivosde Configuración del Servidor HTTP Apache de la Versión 1.3 a la 2.0”.

22.5.1. Sugerencias de configuración generalesIf configuring the Apache HTTP Server, edit /etc/httpd/conf/httpd.conf and then eitherreload, restart, or stop and start the httpd process as outlined in Sección 22.3, “Arrancar y detenerhttpd”.

Antes de modificar el archivo httpd.conf, primero haga una copia del archivo original. Al crear unacopia de respaldo se hace más fácil recuperarse de posibles errores cometidos mientras se editaba elarchivo de configuración.

Si comete un error y su servidor de web no funciona correctamente, lo primero que debe realizar esrevisar lo que lo que acaba de modificar en httpd.conf para ver si no hay errores de transcripción.

Page 29: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

339

Next look in the Web server's error log, /var/log/httpd/error_log. The error log may not beeasy to interpret, depending on your level of expertise. However, the last entries in the error log shouldprovide useful information.

Las siguientes subsecciones proporcionan una breve descripción de muchas de las directricesincluidas en httpd.conf. Estas descripciones no son exhaustivas. Para obtener más informaciónconsulte la documentación de Apache en línea http://httpd.apache.org/docs/2.2/.

Para obtener mayor información sobre las directrices mod_ssl consulte la documentación en http://httpd.apache.org/docs/2.2/mod/mod_ssl.html.

AccessFileNameAccessFileName denomina el archivo que el servidor utilizará para información de control deacceso en cada directorio. Por defecto, el servidor utilizará .htaccess.

Justo tras AccessFileName, un conjunto de indicadores de Files aplican el control de accesoa cualquier archivo comenzando con un .ht. Estas directrices niegan el acceso Web a cualquierarchivo .htaccess (o otros archivos que comiencen con .ht) por razones de seguridad.

ActionAction especifica parejas tipo contenido MIME y script CGI, para que cuando un archivo de ese tipode media sea solicitado, se ejecute un script CGI particular.

AddDescriptionCuando utilice FancyIndexing como un parámetro de IndexOptions, la directrizAddDescription se puede usar para mostrar descripciones especificadas por el usuario paraciertos archivos o tipos de archivo en un listado de directorio generado por el servidor. La directrizAddDescription soporta el listado de archivos específicos, expresiones con comodines oextensiones de archivos.

AddEncodingLa directriz AddEncoding nombra las extensiones de archivos que deberían especificar un tipoparticular de codificación. También se puede usar AddEncoding para decirle a los navegadores quedescompriman ciertos archivos mientras los descargan.

AddHandlerLa directriz AddHandler hace corresponder extensiones de archivos a manejadores específicos.Por ejemplo, se puede corresponder el manejador cgi-script con la extensión .cgi para queautomáticamente trate a cualquier archivo con un nombre que termine en .cgi como un script CGI. Acontinuación se presenta un ejemplo de una directriz AddHandler para la extensión .cgi.

AddHandler cgi-script .cgi

This directive enables CGIs outside of the cgi-bin to function in any directory on the server whichhas the ExecCGI option within the directories container. Refer to Directory for more information aboutsetting the ExecCGI option for a directory.

Además de los scripts CGI, la directriz AddHandler es usada para procesar archivos de mapas deimagen y HTML analizados por el servidor.

Page 30: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

340

AddIconAddIcon dice al servidor qué icono mostrar en los listados del directorio para ciertos tipos dearchivos según la extensión. Por ejemplo, el servidor Web muestra el icono binary.gif paraarchivos con extensiones .bin o .exe.

AddIconByEncodingEsta directriz denomina qué iconos se mostrarán con los archivos según su codificación MIME, en loslistados de directorio. Por ejemplo, el servidor muestra por defecto el icono compressed.gif junto aarchivos con codificación MIME x-compress y x-gzip en los listados de directorio.

AddIconByTypeEsta directriz denomina qué iconos se mostrarán con los archivos con codificación MIME, en loslistados del directorio. Por ejemplo, por defecto, el servidor muestra el icono text.gif junto aarchivos con tipo MIME text en los listados del directorio.

AddLanguageAddLanguage associates file name extensions with specific languages. This directive is useful forApache HTTP Servers which serve content in multiple languages based on the client Web browser'slanguage settings.

AddTypeUtilice la directriz AddType para definir o suprimir por defecto pares tipo MIME y extensionesde archivos. El siguiente ejemplo de directriz le dice al Servidor HTTP Apache que reconozca laextensión de archivos .tgz:

AddType application/x-tar .tgz

AliasThe Alias setting allows directories outside the DocumentRoot directory to be accessible. AnyURL ending in the alias automatically resolves to the alias' path. By default, one alias for an icons/directory is already set up. An icons/ directory can be accessed by the Web server, but the directoryis not in the DocumentRoot.

AllowAllow especifica cual cliente puede acceder a un directorio dado. El solicitante puede ser all, unnombre de dominio, una dirección IP, una dirección IP parcial, un par de red/máscara de la red, etc.El directorio DocumentRoot está configurado para permitir (Allow) peticiones desde todos (all), esdecir, que todos tienen acceso.

AllowOverrideLa directriz AllowOverride indica si puede o no ignorar cualquiera de las Options por lasdeclaraciones en un archivo .htaccess. Por defecto, tanto el directorio raíz como DocumentRootestán configurados para no se permita ignorar .htaccess.

Page 31: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

341

BrowserMatchThe BrowserMatch directive allows the server to define environment variables and take appropriateactions based on the User-Agent HTTP header field — which identifies the client's Web browser type.By default, the Web server uses BrowserMatch to deny connections to specific browsers with knownproblems and also to disable keepalives and HTTP header flushes for browsers that are known tohave problems with those actions.

Directrices CacheEl archivo de configuración del Servidor HTTP Apache suministra varias directrices de cachécomentadas. En la mayoría de los casos, al quitar el comentario de estas líneas mediante laeliminación de las almohadillas (#) del principio de la línea es suficiente. Sin embargo, lo siguiente esuna lista de algunas de las directrices relacionadas con caché más importantes.

• CacheEnable — Especifica si la caché es un disco, memoria o caché de archivo descriptivo. Pordefecto CacheEnable configura un disco caché para las URLs en o por debajo de /.

• CacheRoot — pone el nombre del directorio que contiene archivos de caché. El valorpredeterminado de CacheRoot es el directorio /var/httpd/proxy/.

• CacheSize — establece cuánto espacio puede usar el caché, en KB. El valor predeterminado deCacheSize es 5 KB.

Lo siguiente es una lista de algunas directrices comunes relacionadas con caché.

• CacheMaxExpire — Especifica cuanto tiempo se conservan los documentos HTML (sin unarecarga desde el servidor Web original) en el caché. El valor por defecto es 24 horas (86400segundos).

• CacheLastModifiedFactor — Especifica la creación de una fecha de vencimiento paradocumentos que no venían con caducidad desde el servidor de origen. El valor predeterminadode CacheLastModifiedFactor está configurado a 0.1, es decir que la fecha de vencimientopara tales documentos es igual a un décimo de la cantidad de tiempo desde la última vez que semodificó el documento.

• CacheDefaultExpire — Especifica el tiempo de caducidad en horas para un documento quefue recibido usando un protocolo que no soporta fechas de vencimiento. El valor por defecto esconfigurado a 1 hora (3600 segundos).

• NoProxy — Especifica una lista separada por espacios de subredes, direcciones IP, dominios ohosts cuyos contenidos no están en caché. Este valor es de gran utilidad para sitios de Intranet.

CacheNegotiatedDocsPor defecto, el servidor Web requiere a los servidores proxy que no hagan caché de los documentosque se negocian en base al contenido (pueden cambiar en el tiempo o según la entrada de quien lossolicita). Si se configura CacheNegotiatedDocs a on, se desactiva la función y se permite acceso alos servidores proxy a tales documentos caché.

CustomLogCustomLog identifica el archivo de registro y su formato. Por defecto, el registro de acceso esguardado al archivo /var/log/httpd/access_log mientras que los errores se guardan en elarchivo /var/log/httpd/error_log.

El formato por defecto CustomLog es combined, como se ilustra a aquí:

Page 32: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

342

remotehost rfc931 user date "request" status bytes referrer user-agent

DefaultIconDefaultIcon especifica el icono desplegado en el listado generado por el servidor para archivosque no tienen otro icono especificado. El archivo de imagen por defecto es unknown.gif.

DefaultTypeDefaultType establece el tipo de contenido por defecto que el servidor utilizará para documentoscuyos tipos MIME no puedan ser determinados. Por defecto es text/plain.

DenyDeny funciona igual que Allow, excepto que especifica a quién se le niega el acceso.DocumentRoot no es configurado para negar (Deny) peticiones a ninguno por defecto.

Directory<Directory /path/to/directory> and </Directory> tags create a container used to enclosea group of configuration directives which apply only to a specific directory and its subdirectories. Anydirective which is applicable to a directory may be used within Directory tags.

By default, very restrictive parameters are applied to the root directory (/), using the Options (referto Options) and AllowOverride (refer to AllowOverride) directives. Under this configuration, anydirectory on the system which needs more permissive settings has to be explicitly given those settings.

En la configuración predeterminada, otro contenedor Directory es configurado para elDocumentRoot, el cual asigna parámetros menos rígidos al árbol del directorio para que el ServidorHTTP Apache pueda acceder a los archivos que residan allí.

The Directory container can be also be used to configure additional cgi-bin directories for server-side applications outside of the directory specified in the ScriptAlias directive (refer to ScriptAliasfor more information).

Para lograr esto, el contenedor Directory debe configurar la opción ExecCGI para ese directorio.

Por ejemplo, si los scripts CGI están localizados en /home/my_cgi_directory, añada elcontenedor siguiente Directory al archivo httpd.conf:

<Directory /home/my_cgi_directory> Options +ExecCGI </Directory>

Next, the AddHandler directive must be uncommented to identify files with the .cgi extension asCGI scripts. Refer to AddHandler for instructions on setting AddHandler.

Para que esto funcione, los permisos para los scripts CGI y la ruta completa a los scripts, se debencolocar a 0755.

DirectoryIndexDirectoryIndex es la página por defecto que entrega el servidor cuando hay una petición de índicede un directorio especificado con una barra (/) al final del nombre del directorio.

Cuando un usuario pide la página http://ejemplo/este_directorio/, recibe la página del índicedel directorio, DirectoryIndex, si existe, o un listado de directorios generado por el servidor. El

Page 33: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

343

valor por defecto para DirectoryIndex es index.html y el tipo de mapa index.html.var. Elservidor intentará encontrar cualquiera de estos archivos y entregará el primero que encuentre. Si noencuentra ninguno de estos archivos y Options Indexes esta configurado para ese directorio, elservidor genera y devuelve una lista, en formato HTML, de los subdirectorios y archivos dentro deldirectorio, a menos que la característica de listar directorios esté desactivada.

DocumentRootDocumentRoot es el directorio que contiene la mayoría de los archivos HTML que se entregarán enrespuesta a peticiones. El directorio predeterminado DocumentRoot para servidores web seguros yno seguros es /var/www/html. Por ejemplo, el servidor puede recibir una petición para el siguientedocumento:

http://example.com/foo.html

El servidor busca por el archivo siguiente en el directorio por defecto:

/var/www/html/foo.html

To change the DocumentRoot so that it is not shared by the secure and the non-secure Web servers,refer to Sección 22.7, “Hosts virtuales”.

ErrorDocumentLa directriz ErrorDocument asocia un código de respuesta HTTP con un mensaje o un URL paraque sea devuelto al cliente. Por defecto, el servidor Web produce una salida simple de mensaje deerror cuando ocurre alguno. La directriz ErrorDocument obliga a que el servidor Web envie unasalida de mensaje personalizado o página.

Importante

To be valid, the message must be enclosed in a pair of double quotes ".

ErrorLogErrorLog especifica el archivo donde se guardan los errores del servidor . Por defecto, esta directrizes configurada a /var/log/httpd/error_log.

ExtendedStatusThe ExtendedStatus directive controls whether Apache generates basic (off) or detailed serverstatus information (on), when the server-status handler is called. The server-status handler iscalled using Location tags. More information on calling server-status is included in Location.

GroupEspecifica el nombre del grupo de los procesos del Servidor HTTP Apache.

Esta directriz se ha desaprobado para la configuración de hosts virtuales.

Por defecto, Group está configurado a apache.

Page 34: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

344

HeaderNameLa directriz HeaderName dicta el archivo (si existe dentro del directorio) que se antepondrá alcomienzo de los listados de los directorios. Al igual que con ReadmeName, el servidor intentaráincluirlo como documento HTML si es posible, o en caso contrario, como texto.

HostnameLookupsHostnameLookups se puede configurar a on, off o double. Si se configura HostnameLookupsa on, el servidor automáticamente resuelve las direcciones IP para cada conexión. Resolver lasdirecciones IP significa que el servidor hace una o más conexiones a un servidor DNS, añadiendosobrecarga por procesamiento. Si HostnameLookups es configurado a double, el servidor realizabúsquedas inversa doble del DNS, añadiendo aún más sobrecarga.

Para ahorrar recursos en el servidor, HostnameLookups es configurado a off por defecto.

Si se requieren nombres de host en los archivos de registro, considere ejecutar una de los muchasherramientas de análisis de log que llevan a cabo las búsquedas de DNS de forma mucho máseficiente y por montones cuando se este rotando los archivos de log del servidor Web.

IfDefineThe IfDefine tags surround configuration directives that are applied if the "test" stated in theIfDefine tag is true. The directives are ignored if the test is false.

The test in the IfDefine tags is a parameter name (for example, HAVE_PERL). If the parameter isdefined, meaning that it is provided as an argument to the server's start-up command, then the test istrue. In this case, when the Web server is started, the test is true and the directives contained in theIfDefine tags are applied.

IfModule<IfModule> and </IfModule> tags create a conditional container which are only activated if thespecified module is loaded. Directives within the IfModule container are processed under one of twoconditions. The directives are processed if the module contained within the starting <IfModule> tagis loaded. Or, if an exclamation point ! appears before the module name, the directives are processedonly if the module specified in the <IfModule> tag is not loaded.

For more information about Apache HTTP Server modules, refer to Sección 22.6, “Añadir módulos”.

IncludeInclude permite que se incluyan otros archivos de configuración en el tiempo de ejecución.

La ruta a estos archivos de configuración pueden ser absolutas o relativas con respecto alServerRoot.

Importante

Para que el servidor use módulos de paquetes individuales, como mod_ssl, mod_perl y php,tiene que estar la siguiente directriz en Section 1: Global Environment del httpd.conf:

Include conf.d/*.conf

Page 35: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

345

IndexIgnoreIndexIgnore lista las extensiones de archivo, los nombres de los archivos parciales, lasexpresiones con comodines o los nombres completos. El servidor Web no incluirá ningún archivo quecoincida con estos patrones en los listados de directorios.

IndexOptionsIndexOptions controls the appearance of server generated directing listings, by adding icons, filedescriptions, and so on. If Options Indexes is set (refer to Options), the Web server generates adirectory listing when the Web server receives an HTTP request for a directory without an index.

Primero el servidor Web busca en el directorio solicitado un archivo que coincida los nombres listadosen la directriz DirectoryIndex (usualmente, index.html). Si el servidor no encuentra un archivoindex.html el Servidor HTTP Apache genera un listado del directorio en HTML. La apariencia dellistado de este directorio es controlada, en parte, por la directriz IndexOptions.

La configuración predeterminada activa FancyIndexing. Esto significa que un usuario puedereordenar un listado de directorio haciendo clic en las cabeceras de columnas. Otro clic en la mismacabecera cambiará del orden ascendente al descendente. FancyIndexing también muestra iconosdiferentes para diferentes archivos, basados en las extensiones de archivos.

La opción AddDescription, cuando se utiliza junto con FancyIndexing, presenta una descripcióncorta para el archivo en los listados de directorios generados por el servidor.

IndexOptions tiene otros parámetros que pueden activarse para controlar la apariencia de loslistados generados por los servidores. Los parámetros IconHeight y IconWidth requieren queel servidor incluya etiquetas HTML HEIGHT y WIDTH para los iconos en las páginas generadas porel servidor. El parámetro IconsAreLinks combina el icono con el ancla HTML, la cual contiene elenlace URL objetivo.

KeepAliveKeepAlive sets whether the server allows more than one request per connection and can be used toprevent any one client from consuming too much of the server's resources.

By default Keepalive is set to off. If Keepalive is set to on and the server becomes very busy, theserver can quickly spawn the maximum number of child processes. In this situation, the server slowsdown significantly. If Keepalive is enabled, it is a good idea to set the the KeepAliveTimeout low(refer to KeepAliveTimeout for more information about the KeepAliveTimeout directive) and monitorthe /var/log/httpd/error_log log file on the server. This log reports when the server is runningout of child processes.

KeepAliveTimeoutLa directriz KeepAliveTimeout establece el número de segundos que el servidor esperará trashaber dado servicio a una petición, antes de cerrar la conexión. Una vez que el servidor recibe unapetición, se aplica la directriz Timeout en su lugar. KeepAliveTimeout está configurado a 15segundos por defecto.

LanguagePriorityLa directriz LanguagePriority permite dar la prioridad para diferentes idiomas en caso de que elnavegador Web no especique la preferencia de idioma.

Page 36: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

346

ListenEl comando Listen identifica los puertos en los que el servidor Web aceptará las peticionesentrantes. Por defecto, el Servidor HTTP Apache está configurado para escuchar en el puerto 80 paracomunicaciones Web no seguras y (en el archivo /etc/httpd/conf.d/ssl.conf el cual definecualquier servidor seguro) en el puerto 443 para comunicaciones seguras.

Si el Servidor HTTP Apache está configurado para escuchar en un puerto por debajo del 1024,se necesita al usuario root para iniciarlo. Para los puertos 1024 y superiores, httpd puede serarrancado por cualquier usuario.

La directriz Listen también se puede usar para especificar direcciones IP particulares sobre lascuales el servidor aceptará conexiones.

LoadModuleLoadModule is used to load Dynamic Shared Object (DSO) modules. More information on theApache HTTP Server's DSO support, including instructions for using the LoadModule directive, canbe found in Sección 22.6, “Añadir módulos”. Note, the load order of the modules is no longer importantwith Apache HTTP Server 2.0. Refer to Sección 22.2.2.1.3, “Soporte del Dynamic Shared Object(DSO) (Objeto dinámico compartido)” for more information about Apache HTTP Server 2.0 DSOsupport.

LocationThe <Location> and </Location> tags create a container in which access control based on URLcan be specified.

For instance, to allow people connecting from within the server's domain to see status reports, use thefollowing directives:

<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from <.example.com> </Location>

Replace <.example.com> with the second-level domain name for the Web server.

Para proporcionar informes de configuración del servidor (incluyendo los módulos instalados y lasdirectrices de configuración) a peticiones desde dentro del dominio, utilice las siguientes directrices:

<Location /server-info> SetHandler server-info Order deny,allow Deny from all Allow from <.example.com> </Location>

Again, replace <.example.com> with the second-level domain name for the Web server.

LogFormatThe LogFormat directive configures the format of the various Web server log files. The actualLogFormat used depends on the settings given in the CustomLog directive (refer to CustomLog).

Las siguientes son las opciones de formato si la directriz CustomLog es configurada a combined:

%h (remote host's IP address or hostname)Lista la dirección IP de la máquina remota del cliente solicitante. Si HostnameLookups esconfigurada a on, el nombre de máquina del cliente es registrado a menos que no este disponibledesde el DNS.

Page 37: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

347

%l (rfc931)No se usa. Un guión - aparece en el campo de registro para este campo.

%u (usuario autenticado)Si se requiere autenticación, lista el nombre del usuario registrado. Usualmente, esto no se utiliza,por tanto aparece un guión - en el archivo de registro para este campo.

%t (fecha)Lista la fecha y hora de la solicitud.

%r (cadena de la solicitud)Lista la cadena de la solicitud exactamente como viene del navegador o cliente.

%s (estado)Lista el estado de código HTTP el cual fue devuelto al host cliente.

%b (bytes)Lista el tamaño del documento.

%\"%{Referer}i\" (referrer)Lista la dirección URL de la página web que refiere el máquina cliente al servidor Web.

%\"%{User-Agent}i\" (user-agent)Lista el tipo de navegador Web que está realizando la solicitud.

LogLevelLogLevel establece la cantidad de detalles que tendrán los registros de mensajes de error.LogLevel se puede configurar (desde el que tiene menos detalles a los más detallados) a emerg,alert, crit, error, warn, notice, info o debug. El valor predeterminado de LogLevel eswarn.

MaxKeepAliveRequestsThis directive sets the maximum number of requests allowed per persistent connection.The Apache Project recommends a high setting, which improves the server's performance.MaxKeepAliveRequests is set to 100 by default, which should be appropriate for most situations.

NameVirtualHostLa directriz NameVirtualHost asocia una dirección IP y el número de puerto, si es necesario, paracualquier máquina virtual basada en nombres. El hospedaje virtual basado en nombres permite a unServidor HTTP Apache servir a dominios diferentes sin utilizar múltiples direcciones IP.

Nota

Los hosts virtuales basados en nombre only funcionan con conexiones HTTP no seguras. Si estáusando host virtuales con un servidor seguro, use host virtuales basados en direcciones IP.

Para habilitar el hospedaje basado en nombres, quite los comentarios de la directriz de configuraciónNameVirtualHost y añada la dirección IP correcta. Luego añada más contenedores VirtualHostpara cada host virtual como sea necesario para su configuración.

Page 38: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

348

OptionsLa directriz Options controla cuáles características del servidor están disponibles en un directorio enparticular. Por ejemplo, en los parámetros restrictivos especificados para el directorio raíz, Optionssólo permite FollowSymLinks. No hay características activadas, salvo que el servidor puede seguirenlaces simbólicos en el directorio raíz.

Por defecto, en el directorio DocumentRoot, Options se configura para incluir Indexes yFollowSymLinks. Indexes permite al servidor generar un listado de un directorio si no seespecifica el DirectoryIndex (por ejemplo, index.html). FollowSymLinks permite al servidorseguir enlaces simbólicos en ese directorio.

Nota

Options statements from the main server configuration section need to be replicated to eachVirtualHost container individually. Refer to VirtualHost for more information.

OrderLa directriz Order controla el orden en el cual las directrices allow y deny son evaluadas. Elservidor es configurado para evaluar las directrices Allow antes de las directrices Deny para eldirectorio DocumentRoot.

PidFilePidFile nombra el archivo en el que el servidor graba su ID de proceso (pid). Por defecto, el PID eslistado en /var/run/httpd.pid.

Proxy<Proxy *> and </Proxy> tags create a container which encloses a group of configuration directivesmeant to apply only to the proxy server. Many directives which are allowed within a <Directory>container may also be used within <Proxy> container.

ProxyRequestsTo configure the Apache HTTP Server to function as a proxy server, remove the hash mark (#) fromthe beginning of the <IfModule mod_proxy.c> line, the ProxyRequests, and each line in the<Proxy> stanza. Set the ProxyRequests directive to On, and set which domains are allowed accessto the server in the Allow from directive of the <Proxy> stanza.

ReadmeNameLa directriz ReadmeName determina el archivo (si existe dentro del directorio) que se adjuntará a loslistados de los directorios. El servidor Web intentará primero incluirlo como documento HTML y luegocomo texto plano. El valor predeterminado de ReadmeName es README.html.

RedirectCuando se mueve una página web, se puede utilizar Redirect para crear asignaciones de laubicación del archivo a un nuevo URL. El formato es como sigue:

Page 39: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

349

Redirect /<old-path>/<file-name> http://<current-domain>/<current-path>/<file-name>

In this example, replace <old-path> with the old path information for <file-name> and<current-domain> and <current-path> with the current domain and path information for<file-name>.

In this example, any requests for <file-name> at the old location is automatically redirected to thenew location.

Para técnicas de redireccionamiento más avanzadas, utilice el módulo mod_rewrite incluidocon el Servidor HTTP Apache. Para obtener más información sobre la configuración del módulomod_rewrite refiérase a la documentación de la Apache Software Foundation en http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html23.

ScriptAliasLa directriz ScriptAlias define donde pueden encontrarse los scripts CGI. Normalmente, no esuna buena idea colocar los scripts CGI dentro de DocumentRoot, donde podrían, potencialmente,ser visualizados como documentos de texto. Por esta razón, la directriz ScriptAlias diseña undirectorio especial fuera del directorio DocumentRoot para contener ejecutables del servidor yscripts. Este directorio es conocido como un cgi-bin y se configura por defecto a /var/www/cgi-bin/.

It is possible to establish directories for storing executables outside of the cgi-bin/ directory. Forinstructions on doing so, refer to AddHandler and Directory.

ServerAdminConfigure la directriz ServerAdmin a la dirección de correo electrónico del administrador del servidorWeb. Esta dirección de correo aparecerá en los mensajes de error en las páginas generadas porel servidor Web, de tal manera que los usuarios pueden comunicar errores enviando correo aladministrador.

Por defecto, ServerAdmin es configurado a root@localhost.

Una forma típica de configurar ServerAdmin es configurarlo en a [email protected]. Unavez configurado, cree un alias del webmaster para la persona responsable del servidor Web en /etc/aliases y ejecute /usr/bin/newaliases.

ServerNameServerName specifies a hostname and port number (matching the Listen directive) for the server.The ServerName does not need to match the machine's actual hostname. For example, the Webserver may be www.example.com, but the server's hostname is actually foo.example.com. Thevalue specified in ServerName must be a valid Domain Name Service (DNS) name that can beresolved by the system — do not make something up.

Lo siguiente es una directriz ServerName de ejemplo:

ServerName www.example.com:80

23 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Page 40: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

350

Cuando especifique un ServerName, asegúrese de que el par de la dirección IP y el nombre delservidor esten incluidos en el archivo /etc/hosts.

ServerRootThe ServerRoot directive specifies the top-level directory containing website content. By default,ServerRoot is set to "/etc/httpd" for both secure and non-secure servers.

ServerSignatureLa directriz ServerSignature añade una línea que contiene la versión del Servidor HTTP Apachey el ServerName para cualquier documento generado por el servidor, tales como mensajes de errordevueltos a los clientes. Por defecto ServerSignature está configurada a on.

ServerSignature se puede configurar como EMail el cual añade una etiqueta HTMLmailto:ServerAdmin a la línea de firma de respuestas auto generadas. También se puedeconfigurar como Off para que Apache pare de enviar su número de versión y la información delmódulo. Revise también la configuración de ServerTokens.

ServerTokensLa directriz ServerTokens determina si el encabezamiento de la respuesta del servidor que sedevuelve al cliente debe incluir detalles sobre el tipo de Sistema Operativo e información sobrelos módulos compilados. Por defecto, ServerTokens se encuentra configurado como Full y portanto envía información sobre el tipo del Sistema Operativo y lo módulos compilados. Al configurarServerTokens como Prod envía el nombre del producto sólamente y se recomienda un buennúmero de hackers revise la información en el encabezamiento del servidor en la búsqueda devulnerabilidades. También puede configurar ServerTokens como Min (minimal) o como OS (sistemaoperativo).

SuexecUserGroupLa directriz SuexecUserGroup, que se origina desde el módulo mod_suexec, permite especificarprivilegios de ejecución de usuario y grupo para programas CGI. Las solicitudes no CGI también sonprocesadas con el usuario y el grupo especificado en las directrices User y Group.

Nota

Desde la versión 2.0, la directriz SuexecUserGroup reemplaza la configuración del ServidorHTTP Apache versión 1.3 de utilizar las directrices User y Group dentro de la configuración delas secciones VirtualHosts.

TimeoutTimeout define, en segundos, el tiempo que el servidor esperará por recibir y transmitir durante lacomunicación. Timeout está configurado por defecto a 300 segundos, lo cual es apropiado para lamayoría de las situaciones.

TypesConfigTypesConfig nombra el archivo que configura la lista por defecto de asignaciones tipo MIME(extensiones de nombres de archivo a tipos de contenido). El archivo predeterminado TypesConfiges /etc/mime.types. En vez de modificar el /etc/mime.types, la forma recomendada de añadirasignaciones de tipo MIME es usando la directriz AddType.

Page 41: 22 http ftp_linux_asoitson

Sugerencias de configuración generales

351

For more information about AddType, refer to AddType.

UseCanonicalNameCuando se configure esta directriz como on, se está indicando al Servidor HTTP Apache a que sereferencie asímismo utilizando el valor especificado en las directrices ServerName y Port. CuandoUseCanonicalName es configurada como off, el servidor usará el valor usado por el clientesolicitante cuando se refiera a él.

UseCanonicalName está configurada a off por defecto.

UserLa directriz User establece el nombre de usuario para el proceso del servidor y determina quéarchivos pueden acceder al servidor. Cualquier archivo que no esté accesible a este usuario tampocoestará disponible para los clientes conectándose al Servidor HTTP Apache.

Por defecto User es configurado a apache.

Esta directriz se ha desaprobado para la configuración de hosts virtuales.

Nota

Por razones de seguridad, el Servidor HTTP Apache no se ejecuta como el usuario root.

UserDirUserDir is the subdirectory within each user's home directory where they should place personalHTML files which are served by the Web server. This directive is set to disable by default.

El nombre para el subdirectorio esta configurado a public_html en la configuración por defecto. Porejemplo, el servidor puede recibir la siguiente petición:

http://example.com/~username/foo.html

El servidor buscará por el archivo:

/home/username/public_html/foo.html

In the above example, /home/username/ is the user's home directory (note that the default path tousers' home directories may vary).

Make sure that the permissions on the users' home directories are set correctly. Users' homedirectories must be set to 0711. The read (r) and execute (x) bits must be set on the users'public_html directories (0755 also works). Files that are served in a users' public_htmldirectories must be set to at least 0644.

VirtualHost<VirtualHost> and </VirtualHost> tags create a container outlining the characteristics of avirtual host. The VirtualHost container accepts most configuration directives.

Page 42: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

352

A commented VirtualHost container is provided in httpd.conf, which illustrates the minimum setof configuration directives necessary for each virtual host. Refer to Sección 22.7, “Hosts virtuales” formore information about virtual hosts.

Nota

El contenedor de host virtuales SSL por defecto reside en el archivo /etc/httpd/conf.d/ssl.conf.

22.5.2. Configuración de directrices para SSLLas directrices en el archivo /etc/httpd/conf.d/ssl.conf se pueden configurar para activar lascomunicaciones Web seguras usando SSL y TLS.

SetEnvIfSetEnvIf sets environment variables based on the headers of incoming connections. It is not solelyan SSL directive, though it is present in the supplied /etc/httpd/conf.d/ssl.conf file. It'spurpose in this context is to disable HTTP keepalive and to allow SSL to close the connection withouta closing notification from the client browser. This setting is necessary for certain browsers that do notreliably shut down the SSL connection.

Para más información sobre otras directrices dentro del archivo de configuración SSL, consulte lossiguientes URLs:

• http://localhost/manual/mod/mod_ssl.html

• http://httpd.apache.org/docs/2.2/mod/mod_ssl.html

Nota

En la mayoría de los casos, las directrices SSL son configuradas apropiadamente durante lainstalación de Red Hat Enterprise Linux. Tenga cuidado cuando altere las directrices del ServidorSeguro HTTP de Apache pues un error en la configuración puede provocar que el servidor seavulnerable en términos de seguridad.

22.5.3. Directrices MPM específicas al pool de servidoresAs explained in Sección 22.2.2.1.2, “Regulación del tamaño del pool de servidores”, the responsibilityfor managing characteristics of the server-pool falls to a module group called MPMs under ApacheHTTP Server 2.0. The characteristics of the server-pool differ depending upon which MPM is used.For this reason, an IfModule container is necessary to define the server-pool for the MPM in use.

Por defecto, el Servidor HTTP Apache 2.0 define el pool de servidores para ambos MPMs: preforky worker.

La sección siguiente lista las directrices encontradas dentro de los contenedores del pool deservidores específicos al MPM.

MaxClientsMaxClients sets a limit on the total number of server processes, or simultaneously connectedclients, that can run at one time. The main purpose of this directive is to keep a runaway ApacheHTTP Server from crashing the operating system. For busy servers this value should be set to

Page 43: 22 http ftp_linux_asoitson

Añadir módulos

353

a high value. The server's default is set to 150 regardless of the MPM in use. However, it is notrecommended that the value for MaxClients exceeds 256 when using the prefork MPM.

MaxRequestsPerChildMaxRequestsPerChild establece el número máximo de peticiones que cada proceso de servidorhijo procesa antes de morir. La principal razón para configurar MaxRequestsPerChild es evitar queprocesos de larga vida gasten memoria. El valor predeterminado de MaxRequestsPerChild para elMPM prefork es de 4000 y, para el MPM worker, es 0.

MinSpareServers y MaxSpareServersEstos valores solamente se utilizan con el MPM prefork. Ellos ajustan como el Servidor HTTPApache se adapta dinámicamente a la carga percibida manteniendo un número apropiado deprocesos de servidor extras o de repuesto basado en el número de peticiones entrantes. Elservidor comprueba el número de servidores que esperan peticiones y elimina algunos si el númeroes más alto que MaxSpareServers o crea algunos si el número de servidores es menor queMinSpareServers.

El valor predeterminado de MinSpareServers es 5 y el de MaxSpareServers es 20. Estos valorespredeterminados son suficientes en la mayoría de los casos. Tenga cuidado de no incrementarel número de MinSpareServers a un número muy elevado ya que creará una gran carga deprocesamiento, incluso cuando el tráfico fuese bajo.

MinSpareThreads y MaxSpareThreadsEstos valores solamente son utilizado con el MPM worker. Ellos ajustan como el Servidor HTTPApache se adapta dinámicamente a la carga percibida manteniendo un número apropiado de hilosde servidores extras basado en el número de peticiones entrantes. El servidor comprueba el númerode hilos de servidores que esperan peticiones y elimina algunos si el número es más alto queMaxSpareThreads o crea algunos si el número de servidores es menor que MinSpareThreads.

El valor predeterminado de MinSpareThreads es 25 y el de MaxSpareThreads es75. Estos valores predeterminados son apropiados en la mayoría de los casos. El valorpara MaxSpareThreads debe ser mayor o igual que la suma de MinSpareThreads yThreadsPerChild, de lo contrario el Servidor HTTP Apache lo corregirá automáticamente.

StartServersLa directriz StartServers establece cuántos procesos de servidor serán creados al arrancar.Ya que el servidor Web crea y elimina dinámicamente procesos de servidor según el tráfico, no senecesitará cambiar este parámetro. El servidor web está configurado para arrancar 8 procesos delservidor al arrancar para el MPM prefork y 2 para el MPM worker.

ThreadsPerChildEste valor solamente es utilizado con el MPM worker. Configura el número de hilos dentro de cadaproceso hijo. El valor por defecto para esta directriz es 25.

22.6. Añadir módulosEl Servidor HTTP Apache se distribuye con un número de módulos. Para obtener más informaciónsobre los módulos HTTP Apache diríjase a http://httpd.apache.org/docs/2.2/mod/.

El Servidor HTTP Apache soporta Objetos Compartidos Dinámicamente (Dynamically SharedObjects, DSOs) o módulos, los cuales se pueden cargar fácilmente en el momento de ejecución.

Page 44: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

354

El Proyecto Apache proporciona Documentación DSO completa en línea en http://httpd.apache.org/docs/2.2/dso.html. Si el paquete http-manual está instalado, se puede encontrar documentaciónsobre DSOs en http://localhost/manual/mod/.

For the Apache HTTP Server to use a DSO, it must be specified in a LoadModule directive within/etc/httpd/conf/httpd.conf. If the module is provided by a separate package, the linemust appear within the modules configuration file in the /etc/httpd/conf.d/ directory. Refer toLoadModule for more information.

If adding or deleting modules from http.conf, Apache HTTP Server must be reloaded or restarted,as referred to in Sección 22.3, “Arrancar y detener httpd”.

Si está creando un nuevo módulo, instale primero el paquete httpd-devel pues contiene losarchivos include, las cabeceras de archivos así como también la aplicación APache eXtenSion (/usr/sbin/apxs), la cual utiliza los archivos include y las cabeceras para compilar DSOs.

Después de escribir un módulo, utilice /usr/sbin/apxs para compilar las fuentes del módulo fueradel árbol de fuentes Apache. Para obtener más información sobre el uso del comando /usr/sbin/apxs, vea la documentación de Apache en línea en http://httpd.apache.org/docs/2.2/dso.html y en lapágina man de apxs.

Una vez compilado, coloque el módulo en el directorio /usr/lib/httpd/modules/. Para lasplataformas RHEL que utilizan el espacio de usuario de 64 bits predeterminado (x86_64, ia64, ?)esta ruta será /usr/lib64/httpd/modules/. Luego añada una línea LoadModule al archivohttpd.conf usando la siguiente estructura:

LoadModule <module-name> <path/to/module.so>

Where <module-name> is the name of the module and <path/to/module.so> is the path to theDSO.

22.7. Hosts virtualesThe Apache HTTP Server's built in virtual hosting allows the server to provide different informationbased on which IP address, hostname, or port is being requested. A complete guide to using virtualhosts is available online at http://httpd.apache.org/docs/2.2/vhosts/.

22.7.1. Configuración de máquinas virtualesPara crear un host virtual basado en nombre, lo mejor es utilizar el contenedor del host virtualproporcionado en httpd.conf como un ejemplo.

El ejemplo de máquina virtual se lee como sigue:

#NameVirtualHost *:80##<VirtualHost *:80># ServerAdmin [email protected]# DocumentRoot /www/docs/dummy-host.example.com# ServerName dummy-host.example.com# ErrorLog logs/dummy-host.example.com-error_log# CustomLog logs/dummy-host.example.com-access_log common #</VirtualHost>

Para activar máquinas virtuales basadas en nombre, quite los comentarios de la líneaNameVirtualHost eliminando el símbolo de numeral o almohadilla (#) y reemplazando el asterísco(*) con la dirección IP asignada a la máquina.

Page 45: 22 http ftp_linux_asoitson

Configuración del Servidor Seguro Apache HTTP

355

Next, configure a virtual host by uncommenting and customizing the <VirtualHost> container.

On the <VirtualHost> line, change the asterisk (*) to the server's IP address. Change theServerName to a valid DNS name assigned to the machine, and configure the other directives asnecessary.

The <VirtualHost> container is highly customizable and accepts almost every directive availablewithin the main server configuration.

Tip

Si se está configurando un host virtual para que escuche en un puerto no predeterminado, sedebe agregar ese puerto a la directriz Listen en la sección de configuraciones globales delarchivo /etc/httpd/conf/http.conf.

To activate a newly created virtual host, the Apache HTTP Server must be reloaded or restarted. Referto Sección 22.3, “Arrancar y detener httpd” for further instructions.

Se proporciona información completa sobre la creación y configuración de máquinas virtualesbasadas en nombre y en dirección IP en http://httpd.apache.org/docs/2.2/vhosts/.

22.8. Configuración del Servidor Seguro Apache HTTPEste capítulo proporciona información básica sobre SErvidor HTTP Apache con el módulo deseguridad mod_ssl activado para utilizar las bibliotecas y el conjunto de herramientas de OpenSSL.La combinación de estos tres componentes se conocen en este capítulo como el servidor Web seguroo simplemente como el servidor seguro.

El módulo mod_ssl es un módulo de seguridad para el Servidor HTTP Apache. El módulo mod_sslutiliza las herramientas proporcionadas por el Proyecto OpenSSL para añadir una característcia muyimportante al Servidor HTTP Apache— la habilidad de encriptar comunicaciones. Por el contrario, lascomunicaciones HTTP comunes entre un navegador y un servidor Web se envían en texto plano, elcual lo puede interceptar y leer alguien en la ruta entre el navegador y el servidor.

Este capítulo no está diseñado para ser una guía completa de ninguno de estos programas. Siempreque sea posible, esta guía le indicará los lugares apropiados en donde puede encontrar informaciónmás detallada sobre estos temas.

Este capítulo le mostrará como instalar estos programas. También aprenderá los pasos necesariospara generar una clave privada y una petición de certificado, cómo generar su propio certificadofirmado, y cómo instalar un certificado para usarlo con su servidor web seguro.

El archivo de configuración mod_ssl se encuentra en /etc/httpd/conf.d/ssl.conf. Paracargar este archivo y hacer que mod_ssl funcione tiene que tener la declaración Include conf.d/*.conf en el archivo /etc/httpd/conf/httpd.conf. Esta declaración esta incluída por defectoen el archivo de configuración predeterminado del Servidor HTTP Apache.

22.8.1. Vista preliminar de los paquetes relacionados con laseguridadPara habilitar el servidor seguro tiene que tener los siguientes paquetes instalados como mínimo:

Page 46: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

356

httpdEl paquete httpd contiene el demonio httpd y herramientas relacionadas, archivos deconfiguración, iconos, módulos del Servidor HTTP Apache, páginas man y otros archivos qu elServidor HTTP apache utiliza.

mod_sslEl paquete mod_ssl incluye el módulomod_ssl que proporciona criptografía fuerte para elServidor HTTP Apache a través de los protocolos SSL, Secure Sockets Layer y TLS, TransportLayer Security.

opensslEl paquete openssl contiene el kit de herramientas OpenSSL. Este kit implementa los protocolosSSL y TLS y también incluye una biblioteca criptográfica de uso general.

Adicionalmente, otros paquetes de software pueden proporcionar ciertas funcionalidades deseguridad (pero que no son requeridas para que funcione el servidor seguro):

22.8.2. Vista preliminar de certificados y seguridadYour secure server provides security using a combination of the Secure Sockets Layer (SSL) protocoland (in most cases) a digital certificate from a Certificate Authority (CA). SSL handles the encryptedcommunications as well as the mutual authentication between browsers and your secure server.The CA-approved digital certificate provides authentication for your secure server (the CA puts itsreputation behind its certification of your organization's identity). When your browser is communicatingusing SSL encryption, the https:// prefix is used at the beginning of the Uniform Resource Locator(URL) in the navigation bar.

Encryption depends upon the use of keys (think of them as secret encoder/decoder rings in dataformat). In conventional or symmetric cryptography, both ends of the transaction have the same key,which they use to decode each other's transmissions. In public or asymmetric cryptography, two keysco-exist: a public key and a private key. A person or an organization keeps their private key a secretand publishes their public key. Data encoded with the public key can only be decoded with the privatekey; data encoded with the private key can only be decoded with the public key.

To set up your secure server, use public cryptography to create a public and private key pair. In mostcases, you send your certificate request (including your public key), proof of your company's identity,and payment to a CA. The CA verifies the certificate request and your identity, and then sends back acertificate for your secure server.

A secure server uses a certificate to identify itself to Web browsers. You can generate your owncertificate (called a "self-signed" certificate), or you can get a certificate from a CA. A certificate from areputable CA guarantees that a website is associated with a particular company or organization.

Alternatively, you can create your own self-signed certificate. Note, however, that self-signedcertificates should not be used in most production environments. Self-signed certificates are notautomatically accepted by a user's browser — users are prompted by the browser to accept thecertificate and create the secure connection. Refer to Sección 22.8.4, “Tipos de certificados” for moreinformation on the differences between self-signed and CA-signed certificates.

Una vez que haya obtenido un certificado auto-firmado o un certificado firmado del AC que hayaescogido, tiene que instalarlo en su servidor seguro.

22.8.3. Uso de claves y certificados preexistentesIf you already have an existing key and certificate (for example, if you are installing the secure serverto replace another company's secure server product), you can probably use your existing key and

Page 47: 22 http ftp_linux_asoitson

Tipos de certificados

357

certificate with the secure server. The following two situations provide instances where you are notable to use your existing key and certificate:

• Si está cambiando su dirección IP o su nombre de dominio — No podrá usar su vieja clave ycertificado si está cambiando la dirección IP o el nombre de dominio. Los certificados se emitenpara un par concreto de dirección IP y nombre de dominio. Necesitará un nuevo certificado si loscambia.

• If you have a certificate from VeriSign and you are changing your server software — VeriSign isa widely used CA. If you already have a VeriSign certificate for another purpose, you may havebeen considering using your existing VeriSign certificate with your new secure server. However, youare not be allowed to because VeriSign issues certificates for one specific server software and IPaddress/domain name combination.

Si cambia uno de estos parámetros (por ejemplo, si previamente ha usado otro producto deservidor web seguro, el certificado VeriSign que obtuvo para usar con la configuración previa, nofuncionará con la nueva configuración. Necesitará obtener un nuevo certificado.

Si ya tiene una clave y un certificado existente que quiera usar, no tendrá que generar una nuevaclave ni obtener un nuevo certificado. Sin embargo, necesitará mover y renombrar los archivos quecontienen su clave y su certificado.

Mueva su archivo de claves existente a:

/etc/pki/tls/private/server.key

Mueva su archivo de certificado existente a:

/etc/pki/tls/certs/server.crt

If you are upgrading from the Red Hat Secure Web Server, your old key (httpsd.key) and certificate(httpsd.crt) are located in /etc/httpd/conf/. Move and rename your key and certificate so thatthe secure server can use them. Use the following two commands to move and rename your key andcertificate files:

mv /etc/httpd/conf/httpsd.key /etc/pki/tls/private/server.keymv /etc/httpd/conf/httpsd.crt /etc/pki/tls/certs/server.crt

Después inicie su servidor seguro con el comando:

/sbin/service httpd start

22.8.4. Tipos de certificadosSi ha instalado su servidor seguro desde el paquete RPM proporcionado por Red Hat se genera unallave aleatoria y un certificado de prueba y son puestos en sus directorios apropiados. Sin embargo,antes de que empiece a usar su servidor seguro necesitará generar su propia llave y obtener uncertificado que identifique correctamente su servidor.

Necesita una llave y un certificado para operar su servidor seguro — lo cual significa que puedegenerar un certificado autofirmado o adquirir uno firmado por una CA. ¿Cuáles son las diferenciasentre los dos?

Page 48: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

358

Un certificado firmado por una CA proporciona dos importantes capacidades para su servidor:

• Los navegadores (normalmente) reconocen automáticamente el certificado y permiten establecer laconexión segura sin preguntar al usuario.

• Cuando una CA emite un certificado firmado, ellos garantizan la identidad de la organización queestá proporcionando las páginas web al navegador.

Si a su servidor seguro está siendo accesado por todo el mundo, necesitará un certificado firmado poruna CA, así la gente que acceda a su sitio web sabrá que dicho sitio es propiedad de la organizaciónque proclama ser la dueña. Antes de firmar un certificado, una CA verifica que la organizaciónpeticionaria de dicho certificado es realmente quien proclama ser.

Muchos navegadores web que soportan SSL tienen una lista de CAs cuyos certificados admitenautomáticamente. Si el navegador encuentra un certificado autorizado por una CA que no está en lalista, el navegador preguntará al usuario si desea aceptar o rechazar la conexión.

Puede generar un certificado auto-firmado para su servidor seguro pero tenga en cuenta de que uncertificado auto-firmado no proporciona la misma funcionalidad que un certificado firmado por un AC.Un certificado auto-firmado no es reconocido automáticamente por la mayoría de los navegadores yno proporciona ninguna garantía en realción con la identidad de la organización que proporciona elsitio web. UN certificado firmado por un AC proporciona estas dos habilidades tan importantes paraun servidor seguro. Si va a utilizar su servidor seguro en un entorno de producción se recomienda quetenga un certificado firmado por AC.

El proceso para conseguir un certificado de una CA es bastante sencillo. A continuación un vistazorápido a dicho proceso:

1. Crear un par de claves encriptadas, pública y privada.

2. Crear una petición de certificado basada en la clave pública. La petición contiene informaciónsobre su servidor y la compañía que lo hospeda.

3. Send the certificate request, along with documents proving your identity, to a CA. Red Hat doesnot make recommendations on which certificate authority to choose. Your decision may be basedon your past experiences, on the experiences of your friends or colleagues, or purely on monetaryfactors.

Una vez que haya decidido por un CA, necesitará seguir las instrucciones que se le indiquen paraobtener un certificado de ellos.

4. Cuando la AC se encuentra satisfecha con su presumible identidad ellos le proporcionarán uncertificado digital.

5. Instale este certificado en su servidor seguro y comience a manejar transacciones seguras.

Whether you are getting a certificate from a CA or generating your own self-signed certificate, the firststep is to generate a key. Refer to Sección 22.8.5, “Generar una clave” for instructions.

22.8.5. Generar una claveTiene que ser root para generar una clave.

First, use the cd command to change to the /etc/pki/tls/ directory. Remove the fake key andcertificate that were generated during the installation with the following commands:

rm private/server.key

Page 49: 22 http ftp_linux_asoitson

Generar una clave

359

rm certs/server.crt

El paquete crypto-utils contiene la herramienta genkey, la cual se puede utilizar para generarllaves, así como lo implica su nombre. Para crear su propia llave privada asegúrese de que el paquetecrypto-utils se encuentre instalado. Puede encontrar más opciones si escribe man genkeyen su terminal. Asumiendo de que usted quiere generar llaves para www.example.com utilizando laherramienta genkey escriba el siguiente comando en su terminal:

genkey www.example.com

Observe que el proceso basado en make ya no se incluye junto con RHEL 5. Esto iniciará la interfazgráfica de usuario genkey. La figura que se encuentra a continuación ilustra la primera pantalla.Para navegar utilice las flechas y tab. Estas ventanas indican en donde se almacenará su llave y lepreguntará si desea continuar o cancelar la operación. Para proceder al siguiente paso seleccioneSiguiente y oprima la tecla Intro.

Figura 22.11. Keypair generation

La siguiente pantalla le pedirá que seleccione el tamaño de su llave. Como se indicó anteriormenteentre más pequeña sea su llave recibirá más rápido respuesta de su servidor y su nivel de seguridadserá menor. Utilice las flechas para seleccionar el tamaño de la llave y haga clic en Siguiente paraproceder al siguiente paso. La figura a continuación ilustra la pantalla de selección del tamaño de lallave.

Page 50: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

360

Figura 22.12. Choose key size

Al seleccionar el siguiente paso se iniciará el proceso de generación de bits que puede llegar a tomarun poco de tiempo dependiendo del tamaño de la llave que seleccionó. Entre más grande sea su llavemás tiempo se tomará en generarla.

Page 51: 22 http ftp_linux_asoitson

Generar una clave

361

Figura 22.13. Generating random bits

Al generar su llave se le pedirá que envie un Pedido de Certificado a una Autoridad de Certificación(AC).

Figura 22.14. Generate CSR

Selecting Yes will prompt you to select the Certificate Authority you wish to send your request to.Selecting No will allow you to generate a self-signed certificate. The next step for this is illustrated inFigura 22.17, “Generating a self signed certificate for your server”.

Page 52: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

362

Figura 22.15. Choose Certificate Authority (CA)

En Selección de su opción preferida escoja Siguiente para proceder al siguiente paso. La siguientepantalla le permititrá ingresar los detalles de su certificado.

Figura 22.16. Enter details for your certificate

If you prefer to generate a self signed cert key pair, you should not generate a CSR. To do this, selectNo as your preferred option in the Generate CSR screen. This will display the figure below from whichyou can enter your certificate details. Entering your certificate details and pressing the return key will

Page 53: 22 http ftp_linux_asoitson

Generar una clave

363

display the Figura 22.19, “Protecting your private key” from which you can choose to encrypt yourprivate key or not.

Figura 22.17. Generating a self signed certificate for your server

Al ingresar los detalles de su certificado seleccione Siguiente para continuar. La figura que seencuentra a continuación ilustra un ejemplo de la pantalla siguiente que aparecerá después decompletar los detalles para un certificado que se va a enviar a Equifax. Observe que esta pantalla noaparecerá si se encuentra generando una llave auto-firmada para su servidor.

Figura 22.18. Begin certificate request

Page 54: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

364

Al oprimir la tecla intro aparecerá la siguiente pantalla desde la cual puede habilitar o deshabilitar laopción de encriptar la llave privada. Utilice la barra espaciadora para escoger. Cuando se encuentrahabilitada aparecerá un caracter [*]. Al seleccionar su opción preferida seleccione Siguiente paracontinuar al siguiente paso.

Figura 22.19. Protecting your private key

La siguiente pantalla le permitirá configurar la contraseña de la llave.

Page 55: 22 http ftp_linux_asoitson

Generar una clave

365

Figura 22.20. Set passphase

Si trata de ejecutar genkey makeca en un servidor que ya tiene una pareja de llaves existentesaparecerá un mensaje de error como se ilustra a continuación. Necesita borrar su archivo de llaveexistente como se indica para poder generar un nuevo par de llaves.

Figura 22.21. genkey error

Page 56: 22 http ftp_linux_asoitson

Capítulo 22. Apache HTTP Server

366

• http://httpd.apache.org/docs/2.2/ssl/

• http://httpd.apache.org/docs/2.2/vhosts/

22.8.6. Cómo configurar el servidor para utilizar la nueva claveLos pasos para configurar el Servidor HTTP Apache para poder utilizar la nueva llave son lossiguientes:

• Obtenga el certificado firmado del AC después de enviar el CSR.

• Copie el certificado a la ruta, por ejemplo /etc/pki/tls/certs/www.example.com.crt

• Edit /etc/httpd/conf.d/ssl.conf. Change the SSLCertificateFile and SSLCertificateKey linesto be.

SSLCertificateFile /etc/pki/tls/certs/www.example.com.crtSSLCertificateKeyFile /etc/pki/tls/private/www.example.com.key

where the "www.example.com" part should match the argument passed on the genkey command.

22.9. Recursos adicionalesPara mayor información sobre el Servidor HTTP Apache consulte los siguientes recursos:

22.9.1. Sitios Web de utilidad• http://httpd.apache.org/ — El sitio oficial para el Servidor HTTP Apache con documentación sobre

todas las directrices y módulos predeterminados.

• http://www.modssl.org/ — El sitio oficial para mod_ssl.

• http://www.apacheweek.com/ — Información semanal completa sobre todas las cosas de Apache.

Page 57: 22 http ftp_linux_asoitson

367

FTPEl Protocolo de transferencia de archivos (FTP) es uno de los protocolos más viejos y popularesque se encuentran en la Internet hoy día. Su objetivo es el de transmitir archivos exitósamente entremáquinas en una red sin que el usuario tenga que iniciar una sesión en el host remoto o que requieratener conocimientos sobre cómo utilizar el sistema remoto. FTP permite a los usuarios acceder aarchivos en sistemas remotos usando un conjunto de comandos estándar muy simples.

Este capítulo describe los elementos básicos de este protocolo, así como también las opciones deconfiguración para el servidor FTP primario que se entrega con Red Hat Enterprise Linux, vsftpd.

23.1. The File Transfer ProtocolHowever, because FTP is so prevalent on the Internet, it is often required to share files to the public.System administrators, therefore, should be aware of the FTP protocol's unique characteristics.

23.1.1. Puertos múltiples, modos múltiplesA diferencia de la mayoría de los protocolos utilizados en Internet, FTP requiere de múltiples puertosde red para funcionar correctamente. Cuando una aplicación cliente FTP inicia una conexión a unservidor FTP, abre el puerto 21 en el servidor — conocido como el puerto de comandos. Se utilizaeste puerto para arrojar todos los comandos al servidor. Cualquier petición de datos desde el servidorse devuelve al cliente a través del puerto de datos. El número de puerto para las conexiones de datosy la forma en la que las conexiones son inicializadas varía dependiendo de si el cliente solicita losdatos en modo activo o en modo pasivo.

A continuación se describen estos modos:

active modeEl modo activo es el método original utilizado por el protocolo FTP para la transferencia de datosa la aplicación cliente. Cuando el cliente FTP inicia una transferencia de datos, el servidor abreuna conexión desde el puerto 20 en el servidor para la dirección IP y un puerto aleatorio sinprivilegios (mayor que 1024) especificado por el cliente. Este arreglo implica que la máquinacliente debe poder aceptar conexiones en cualquier puerto superior al 1024. Con el crecimientode las redes inseguras, tales como Internet, es muy común el uso de cortafuegos para protegerlas máquinas cliente. Debido a que estos cortafuegos en el lado del cliente normalmenterechazan las conexiones entrantes desde servidores FTP en modo activo, se creó el modopasivo.

passive modeLa aplicación FTP cliente es la que inicia el modo pasivo, de la misma forma que el modo activo.El cliente FTP indica que desea acceder a los datos en modo pasivo y el servidor proporciona ladirección IP y el puerto aleatorio, sin privilegios (mayor que 1024) en el servidor. Luego, el clientese conecta al puerto en el servidor y descarga la información requerida.

While passive mode resolves issues for client-side firewall interference with data connections, itcan complicate administration of the server-side firewall. You can reduce the number of open portson a server by limiting the range of unprivileged ports on the FTP server. This also simplifies theprocess of configuring firewall rules for the server. Refer to Sección 23.5.8, “Opciones de red” formore about limiting passive ports.

23.2. Servidores FTPRed Hat Enterprise Linux se entrega con dos servidores FTP diferentes:

Page 58: 22 http ftp_linux_asoitson

Capítulo 23. FTP

368

• Acelerador de Contenidos Red Hat — Un servidor Web basado en el kernel que ofrece unservidor web y servicios FTP de alto rendimiento. Puesto que la velocidad es su objetivo principalde diseño, su funcionalidad es limitada y solamente se ejecuta como FTP anónimo. Para másinformación sobre la configuración y administración del Acelerador de Contenidos Red Hat,consulte la documentación disponible en línea en http://www.redhat.com/docs/manuals/tux/.

• vsftpd — un demonio FTP rápido y seguro. Este es el preferido en Red Hat Enterprise Linux. Elresto de este capítulo se enfoca en vsftpd.

23.2.1. vsftpdThe Very Secure FTP Daemon (vsftpd) is designed from the ground up to be fast, stable, and, mostimportantly, secure. vsftpd is the only stand-alone FTP server distributed with Red Hat EnterpriseLinux, due to its ability to handle large numbers of connections efficiently and securely.

El modelo de seguridad utilizado por vsftpd tiene tres aspectos principales:

• Clara separación de procesos privilegiados y sin privilegios — Procesos separados manejan tareasdiferentes y cada uno de estos procesos se ejecuta con los privilegios mínimos requeridos para latarea.

• Las tareas que requieren altos privilegios son manejadas por procesos con los mínimos privilegiosnecesarios — Influenciando las compatibilidades encontradas en la biblioteca libcap, las tareasque usualmente requieren privilegios de superusuario se pueden ejecutar de forma más seguradesde un proceso menos privilegiado.

• La mayoría de los procesos se ejecutan enjaulados en un ambiente chroot — Siempre que seaposible, se cambia la raíz de los procesos al directorio compartido; este directorio se consideraluego como la jaula chroot. Por ejemplo, si el directorio /var/ftp/ es el directorio compartidoprincipal, vsftpd reasigna /var/ftp/ al nuevo directorio raíz, conocido como /. Esto previeneactividades maliciosas de cualquier hacker potencial en algún directorio que no estén por debajodel nuevo directorio root.

El uso de estas prácticas de seguridad tiene el efecto siguiente en cómo vsftpd trata con laspeticiones:

• El proceso padre se ejecuta con el mínimo de privilegios requerido — El proceso padre calculadinámicamente el nivel de privilegios requerido para minimizar el nivel de riesgos. Los procesos hijomanejan la interacción directa con los clientes FTP y se ejecutan casi sin ningún privilegio.

• Todas las operaciones que requieren altos privilegios son manejadas por un pequeño procesopadre — Similar a Servidor HTTP Apache, vsftpd lanza procesos hijos sin privilegios paramanejar las conexiones entrantes. Esto permite al proceso padre privilegiado, ser tan pequeñocomo sea posible y manejar relativamente pocas tareas.

• El proceso padre no confia en ninguna de las peticiones desde procesos hijos sin privilegios — Lascomunicaciones con procesos hijos se reciben sobre un socket y la validez de cualquier informacióndesde un proceso hijo es verificada antes de proceder.

• La mayor parte de la interacción con clientes FTP la manejan procesos hijo sin privilegios en unajaula chroot. — Debido a que estos procesos hijo no tienen privilegios y solamente tienen accesoal directorio que está siendo compartido, cualquier proceso fallido solamente permitirá al atacanteacceder a los archivos compartidos.

Page 59: 22 http ftp_linux_asoitson

Archivos instalados con vsftpd

369

23.3. Archivos instalados con vsftpdEl RPM vsftpd instala el demonio (/usr/sbin/vsftpd), su archivo de configuración y otrosarchivos relacionados, así como también los directorios FTP en el sistema. La siguiente es una listade los archivos y directorios considerados más a menudo cuando se configura vsftpd:

• /etc/rc.d/init.d/vsftpd — The initialization script (initscript) used by the /sbin/servicecommand to start, stop, or reload vsftpd. Refer to Sección 23.4, “Iniciar y detener vsftpd” formore information about using this script.

• /etc/vsftpd/vsftpd.conf — The configuration file for vsftpd. Refer to Sección 23.5,“Opciones de configuración vsftpd ” for a list of important options contained within this file.

• /etc/vsftpd.ftpusers — Una lista de los usuarios que no tienen permitido conectarse avsftpd. Por defecto esta lista incluye a los usuarios root, bin y daemon, entre otros.

• /etc/vsftpd.user_list — Este archivo se puede configurar para negar o permitir el accesoa los usuarios listados, dependiendo de si la directriz userlist_deny está configurada a YES(por defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_listpara permitir acceso a los usuarios, los nombres de usuarios listados no deben aparecer en /etc/vsftpd.ftpusers.

• El directorio /var/ftp/ — El directorio que contiene los archivos servidos por vsftpd. Tambiéncontiene el directorio /var/ftp/pub/ para los usuarios anónimos. Ambos directorios estándisponibles para la lectura de todos, pero sólo el superusuario o root puede escribir en el.

23.4. Iniciar y detener vsftpdEl RPM vsftpd instala el script /etc/rc.d/init.d/vsftpd, al cual se puede acceder usando elcomando /sbin/service.

Para iniciar el servidor, escriba como usuario root, lo siguiente:

/sbin/service vsftpd start

Para detener el servidor, como root escriba:

/sbin/service vsftpd stop

La opción restart es un atajo para detener y volver a iniciar vsftpd. Esta es la forma más efectivapara que los cambios de configuración tomen efecto luego de modificar el archivo de configuraciónpara vsftpd.

Para reiniciar el servidor, escriba como root:

/sbin/service vsftpd restart

La opción condrestart (reinicio condicional) solamente arranca vsftpd si está ejecutándose enese momento. Esta opción es muy útil para scripts, puesto que no arranca el demonio si este no seestá ejecutando.

Para reiniciar el servidor de forma condicional, escriba como usuario root:

Page 60: 22 http ftp_linux_asoitson

Capítulo 23. FTP

370

/sbin/service vsftpd condrestart

23.4.1. Iniciar múltiples copias de vsftpdEn ocasiones, se utiliza un computador para servir varios dominios FTP. Esta es una técnica quese conoce como multihoming (multi-anfitrión). Una forma de hacer multihome usando vsftpd esejecutando múltiples copias del demonio, cada uno con su propio archivo de configuración.

To do this, first assign all relevant IP addresses to network devices or alias network devices on thesystem. Refer to Capítulo 15, Configuración de la red for more information about configuring networkdevices and device aliases. Additional information can be found about network configuration scripts inCapítulo 14, Interfaces de red.

Next, the DNS server for the FTP domains must be configured to reference the correct machine.For information about BIND and its configuration files, refer to Capítulo 17, Berkeley Internet NameDomain (BIND).

For vsftpd to answer requests on different IP addresses, multiple copies of the daemon must berunning. The first copy must be run using the vsftpd initscripts, as outlined in Sección 23.4, “Iniciar ydetener vsftpd”. This copy uses the standard configuration file, /etc/vsftpd/vsftpd.conf.

Cada sitio FTP adicional debe tener un archivo de configuración con un nombre único en el directorio/etc/vsftpd/, tal como /etc/vsftpd/vsftpd-site-2.conf. Cada archivo de configuraciónsólo debería de ser legído y escrito por root. Dentro de cada archivo de configuración para cadaservidor FTP que se encuentre escuchando en la red IPv4, la siguiente directriz debe ser única:

listen_address=N.N.N.N

Reemplace N.N.N.N con la única dirección IP para el sitio FTP que está siendo servido. Si el sitio encuestión está utilizando IPv6, utilice la directriz listen_address6.

Una vez que cada servidor adicional tenga su archivo de configuración, el demonio vsftpd se debelanzar desde un indicador de comandos shell usando el comando siguiente:

vsftpd /etc/vsftpd/<configuration-file> [amp ]

In the above command, replace <configuration-file> with the unique name for the server'sconfiguration file, such as /etc/vsftpd/vsftpd-site-2.conf.

Otras directrices que podría considerar modificar en una base de por servidor son:

• anon_root

• local_root

• vsftpd_log_file

• xferlog_file

For a detailed list of directives available within vsftpd's configuration file, refer to Sección 23.5,“Opciones de configuración vsftpd ”.

Para configurar servidores adicionales para que se inicien de forma automática al momento delarranque, añada el comando que se muestra arriba al final del archivo /etc/rc.local.

Page 61: 22 http ftp_linux_asoitson

Opciones de configuración vsftpd

371

23.5. Opciones de configuración vsftpdAlthough vsftpd may not offer the level of customization other widely available FTP servers have, itoffers enough options to fill most administrator's needs. The fact that it is not overly feature-laden limitsconfiguration and programmatic errors.

Toda la configuración de vsftpd es manejada por su archivo de configuración, /etc/vsftpd/vsftpd.conf. Cada directriz está en su propia línea dentro del archivo y sigue el formato siguiente:

<directive>=<value>

For each directive, replace <directive> with a valid directive and <value> with a valid value.

Importante

There must not be any spaces between the <directive>, equal symbol, and the <value> in adirective.

Se debe colocar el símbolo de almohadilla (#) antes de una línea en comentarios. El demonioignorará cualquier línea en comentarios.

Para una lista completa de las directrices disponibles, consulte las páginas man para vsftpd.conf.

The following is a list of some of the more important directives within /etc/vsftpd/vsftpd.conf.All directives not explicitly found within vsftpd's configuration file are set to their default value.

23.5.1. Opciones de demoniosLa lista siguiente presenta las directrices que controlan el comportamiento general del demoniovsftpd.

• listen — Cuando esta directriz está activada vsftpd se ejecuta en modo independiente. RedHat Enterprise Linux establece este valor a YES. Esta directriz no se puede utilizar junto con ladirectriz listen_ipv6.

El valor predeterminado es NO.

• listen_ipv6 — Cuando esta directriz está activada vsftpd se ejecuta en modo independiente,pero solamente escucha a los sockets IPv6. Esta directriz no se puede utilizar junto con la directrizlisten.

El valor predeterminado es NO.

23.5.2. Opciones de conexión y control de accesoLa siguiente es una lista de las directrices que controlan el comportamiento de los inicios de sesión ylos mecanismos de control de acceso.

• anonymous_enable — Al estar activada, se permite que los usuarios anónimos se conecten. Seaceptan los nombres de usuario anonymous y ftp.

El valor por defecto es YES.

Refer to Sección 23.5.3, “Opciones de usuario anónimo” for a list of directives affecting anonymoususers.

Page 62: 22 http ftp_linux_asoitson

Capítulo 23. FTP

372

• banned_email_file — Si la directriz deny_email_enable tiene el valor de YES, entonces estadirectriz especifica el archivo que contiene una lista de contraseñas de correo anónimas que notienen permitido acceder al servidor.

El valor predeterminado es /etc/vsftpd.banned_emails.

• banner_file — Especifica un archivo que contiene el texto que se mostrará cuando se estableceuna conexión con el servidor. Esta opción supersede cualquier texto especificado en la directrizftpd_banner.

Esta directriz no tiene un valor predeterminado.

• cmds_allowed — Especifica una lista delimitada por comas de los comandos FTP que permite elservidor. Se rechaza el resto de los comandos.

Esta directriz no tiene un valor predeterminado.

• deny_email_enable — Si está activada, se le niega el acceso al servidor a cualquier usuarioanónimo que utilice contraseñas de correo especificadas en /etc/vsftpd.banned_emails. Sepuede especificar el nombre del archivo al que esta directriz hace referencia usando la directrizbanned_email_file.

El valor predeterminado es NO.

• ftpd_banner — Si está activada, se muestra la cadena de caracteres especificada en estadirectriz cuando se establece una conexión con el servidor. banner_file puede sobreescribir estaopción.

Por defecto, vsftpd muestra su pancarta estándar.

• local_enable — Al estar activada, los usuarios locales pueden conectarse al sistema.

El valor por defecto es YES.

Refer to Sección 23.5.4, “Opciones del usuario local” for a list of directives affecting local users.

• pam_service_name — Especifica el nombre de servicio PAM para vsftpd.

El valor predeterminado es ftp, sin embargo, bajo Red Hat Enterprise Linux, el valor es vsftpd.

• El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux, el valor estáconfigurado a YES.

• userlist_deny — Cuando se utiliza en combinación con la directriz userlist_enable y conel valor de NO, se les niega el acceso a todos los usuarios locales a menos que sus nombres estenlistados en el archivo especificado por la directriz userlist_file. Puesto que se niega el accesoantes de que se le pida la contraseña al cliente, al configurar esta directriz a NO previene a losusuarios locales a proporcionar contraseñas sin encriptar sobre la red.

El valor por defecto es YES.

• userlist_enable — Cuando está activada, se les niega el acceso a los usuarios listados enel archivo especificado por la directriz userlist_file. Puesto que se niega el acceso al clienteantes de solicitar la contraseña, se previene que los usuarios suministren contraseñas sin encriptarsobre la red.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux el valor estáconfigurado a YES.

Page 63: 22 http ftp_linux_asoitson

Opciones de usuario anónimo

373

• userlist_file — Especifica el archivo al que vsftpd hace referencia cuando la directrizuserlist_enable está activada.

El valor predeterminado es /etc/vsftpd.user_list y es creado durante la instalación.

23.5.3. Opciones de usuario anónimoA continuación, se presenta una lista de las directrices que controlan el acceso de usuarios anónimosal servidor. Para utilizar estas opciones, la directriz anonymous_enable debe tener el valor de YES.

• anon_mkdir_write_enable — Cuando se activa en combinación con la directrizwrite_enable, los usuarios anónimos pueden crear nuevos directorios dentro de un directorioque tiene permisos de escritura.

El valor predeterminado es NO.

• anon_root — Especifica el directorio al cual vsftpd cambia luego que el usuario anónimo seconecta.

Esta directriz no tiene un valor predeterminado.

• anon_upload_enable — Cuando se usa con la directriz write_enable, los usuarios anónimospueden cargar archivos al directorio padre que tiene permisos de escritura.

El valor predeterminado es NO.

• anon_world_readable_only — Si está activada, los usuarios anónimos solamente puedendescargar archivos legibles por todo el mundo.

El valor por defecto es YES.

• ftp_username — Especifica la cuenta del usuario local (listada en /etc/passwd) utilizada porel usuario FTP anónimo. El directorio principal especificado en /etc/passwd para el usuario es eldirectorio raíz del usuario FTP anónimo.

El valor por defecto es ftp.

• no_anon_password — Cuando está activada, no se le pide una contraseña al usuario anónimo.

El valor predeterminado es NO.

• secure_email_list_enable — Cuando está activada, solamente se aceptan una lista decontraseñas especificadas para las conexiones anónimas. Esto es una forma conveniente deofrecer seguridad limitada al contenido público sin la necesidad de usuarios virtuales.

Se previenen las conexiones anónimas a menos que la contraseña suministrada esté listadaen /etc/vsftpd.email_passwords. El formato del archivo es una contraseña por línea, sinespacios al comienzo.

El valor predeterminado es NO.

23.5.4. Opciones del usuario localLa siguiente es una lista de las directrices que caracterizan la forma en que los usuarios localesacceden al servidor. Para utilizar estas opciones, la directriz local_enable debe estar a YES.

• chmod_enable — Cuando está activada, se permite el comando FTP SITE CHMOD para losusuarios locales. Este comando permite que los usuarios cambien los permisos en los archivos.

Page 64: 22 http ftp_linux_asoitson

Capítulo 23. FTP

374

El valor por defecto es YES.

• chroot_list_enable — Cuando está activada, se coloca en una prisión de chroot a losusuarios locales listados en el archivo especificado en la directriz chroot_list_file.

Si se utiliza en combinación con la directriz chroot_local_user, los usuarios locales listados enel archivo especificado en la directriz chroot_list_file, no se colocan en una prisión chrootluego de conectarse.

El valor predeterminado es NO.

• chroot_list_file — Especifica el archivo que contiene una lista de los usuarios locales a losque se hace referencia cuando la directriz chroot_list_enable está en YES.

El valor por defecto es /etc/vsftpd.chroot_list.

• chroot_local_user — Si está activada, a los usuarios locales se les cambia el directorio raíz(se hace un chroot) a su directorio principal luego de la conexión.

El valor predeterminado es NO.

Aviso

Al activar chroot_local_user se abren varios problemas de seguridad, especialmente paralos usuarios con privilegios para hacer cargas. Por este motivo, no se recomienda su uso.

• guest_enable — Al estar activada, todos los usuarios anónimos se conectan como guest, elcual es el usuario local especificado en la directriz guest_username.

El valor predeterminado es NO.

• guest_username — Especifica el nombre de usuario al cual guest está asignado.

El valor por defecto es ftp.

• local_root — Especifica el directorio al cual vsftpd se cambia después de que el usuario seconecta.

Esta directriz no tiene un valor predeterminado.

• local_umask — Specifies the umask value for file creation. Note that the default value is in octalform (a numerical system with a base of eight), which includes a "0" prefix. Otherwise the value istreated as a base-10 integer.

El valor por defecto 022.

• passwd_chroot_enable — Cuando se activa junto con la directriz chroot_local_user,vsftpd cambia la raiz de los usuarios locales basado en la ocurrencia de /./ en el campo deldirectorio principal dentro de /etc/passwd.

El valor predeterminado es NO.

Page 65: 22 http ftp_linux_asoitson

Opciones de directorio

375

• user_config_dir — Specifies the path to a directory containing configuration files bearing thename of local system users that contain specific setting for that user. Any directive in the user'sconfiguration file overrides those found in /etc/vsftpd/vsftpd.conf.

Esta directriz no tiene un valor predeterminado.

23.5.5. Opciones de directorioLa siguiente es una lista de directrices que afectan a los directorios.

• dirlist_enable — Al estar activada, los usuarios pueden ver los listados de directorios.

El valor por defecto es YES.

• dirmessage_enable — Al estar activada, se mostrará un mensaje cada vez que un usuario entraen un directorio con un archivo de mensaje. Este mensaje se encuentra dentro del directorio al quese entra. El nombre de este archivo se especifica en la directriz message_file y por defecto es.message.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux, el valor estáconfigurado a YES.

• force_dot_files — Al estar activada, se listan en los listados de directorios los mensajes quecomienzan con un punto (.), a excepción de los archivos . y ...

El valor predeterminado es NO.

• hide_ids — Cuando está activada, todos los listados de directorios muestran ftp como elusuario y grupo para cada archivo.

El valor predeterminado es NO.

• message_file — Especifica el nombre del archivo de mensaje cuando se utiliza la directrizdirmessage_enable.

El valor predeterminado es .message.

• text_userdb_names — Cuando está activado, se utilizan los nombres de usuarios y gruposen lugar de sus entradas UID o GID. Al activar esta opción puede que reduzca el rendimiento delservidor.

El valor predeterminado es NO.

• use_localtime — Al estar activada, los listados de directorios revelan la hora local para elcomputador en vez de GMT.

El valor predeterminado es NO.

23.5.6. Opciones de transferencia de archivosLa siguiente es una lista de directrices que afectan a los directorios.

• download_enable — Cuando está activada, se permiten las descargas de archivos.

El valor por defecto es YES.

• chown_uploads — Si está activada, todos los archivos cargados por los usuarios anónimospertenecen al usuario especificado en la directriz chown_username.

Page 66: 22 http ftp_linux_asoitson

Capítulo 23. FTP

376

El valor predeterminado es NO.

• chown_username — Especifica la propiedad de los archivos cargados anónimamente si estáactivada la directriz chown_uploads.

El valor predeterminado es root.

• write_enable — Cuando está activada, se permiten los comandos FTP que pueden modificar elsistema de archivos, tales como DELE, RNFR y STOR.

El valor por defecto es YES.

23.5.7. Opciones de conexiónThe following lists directives which affect vsftpd's logging behavior.

• dual_log_enable — Cuando se activa en conjunto con xferlog_enable, vsftpd escribesimultáneamente dos archivos: un registro compatible con wu-ftpd al archivo especificado enla directriz xferlog_file (por defecto /var/log/xferlog) y un archivo de registro estándarvsftpd especificado en la directriz vsftpd_log_file (por defecto /var/log/vsftpd.log).

El valor predeterminado es NO.

• log_ftp_protocol — Cuando está activado en conjunto con xferlog_enable y conxferlog_std_format configurada a NO, se registran todos los comandos y respuestas. Estadirectriz es muy útil para propósitos de depuración.

El valor predeterminado es NO.

• syslog_enable — Cuando se activa en conjunto con xferlog_enable, todos los registrosque normalmente se escriben al archivo estándar vsftpd especificado en la directrizvsftpd_log_file, se envían al registro del sistema bajo la facilidad FTPD.

El valor predeterminado es NO.

• vsftpd_log_file — Especifica el archivo de registro de vsftpd. Para que se utilice estearchivo, xferlog_enable debe estar activado y xferlog_std_format debe ser bien sea NOo, si está en YES, entonces dual_log_enable debe estar activado. Es importante resaltar que sisyslog_enable está en YES, se utiliza el registro del sistema en lugar del archivo especificado enesta directriz.

El valor por defecto es /var/log/vsftpd.log.

• xferlog_enable — Cuando se activa, vsftpd registra las conexiones (solamente formatovsftpd) y la información de transferencia, al archivo de registro especificado en la directrizvsftpd_log_file (por defecto es /var/log/vsftpd.log). Si xferlog_std_format estáconfigurada a YES, se registra la información de transferencia de archivo pero no las conexionesy en su lugar se utiliza el archivo de registro especificado en xferlog_file (por defecto /var/log/xferlog). Es importante observar que se utilizan ambos archivos y formatos de registro sidual_log_enable tiene el valor de YES.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux, el valor estáconfigurado a YES.

Page 67: 22 http ftp_linux_asoitson

Opciones de red

377

• xferlog_file — Especifica el archivo de registro compatible con wu-ftpd. Para que se utiliceeste archivo, xferlog_enable debe estar activado y xferlog_std_format debe tener el valorde YES. También se utiliza si dual_log_enable tiene el valor de YES.

El valor por defecto es /var/log/xferlog.

• xferlog_std_format — Cuando se activa en combinación con xferlog_enable, sólo seescribe un archivo de registro compatible con wu-ftpd al archivo especificado en la directrizxferlog_file (por defecto /var/log/xferlog). Es importante resaltar que este archivosolamente registra transferencias de archivos y no las conexiones al servidor.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux, el valor estáconfigurado a YES.

Importante

Para mantener la compatibilidad con los archivos de registro escritos por el servidor FTPmás antiguo wu-ftpd, se configura la directriz xferlog_std_format a YES bajo Red HatEnterprise Linux. Sin embargo, esta configuración implica que las conexiones al servidor no sonregistradas.

Para registrar ambas conexiones en formato vsftpd y mantener un archivo de registro detransferencia compatible con wu-ftpd, configure dual_log_enable a YES.

Si no es de importancia mantener un archivo de registro de transferencias compatible con wu-ftpd, entonces configure xferlog_std_format a NO, comente la línea con un carácter dealmohadilla (#) o borre completamente la línea.

23.5.8. Opciones de redLo siguiente lista las directrices que afectan cómo vsftpd interactua con la red.

• accept_timeout — Especifica la cantidad de tiempo para un cliente usando el modo pasivo paraestablecer una conexión.

El valor por defecto 60.

• anon_max_rate — Especifica la cantidad máxima de datos transmitidos por usuarios anónimos enbytes por segundo.

El valor por defecto es 0, lo que no limita el ratio de transferencia.

• connect_from_port_20 — Cuando está activada, vsftpd se ejecuta con privilegios suficientespara abrir el puerto 20 en el servidor durante las transferencias de datos en modo activo. Aldesactivar esta opción, se permite que vsftpd se ejecute con menos privilegios, pero puede serincompatible con algunos clientes FTP.

El valor predeterminado es NO, sin embargo, bajo Red Hat Enterprise Linux, el valor estáconfigurado a YES.

• connect_timeout — Especifica la cantidad máxima de tiempo que un cliente usando el modoactivo tiene para responder a una conexión de datos, en segundos.

El valor por defecto 60.

Page 68: 22 http ftp_linux_asoitson

Capítulo 23. FTP

378

• data_connection_timeout — Especifica la cantidad máxima de tiempo que las conexiones sepueden aplazar en segundos. Una vez lanzado, se cierra la conexión con el cliente remoto.

El valor predeterminado es 300.

• ftp_data_port — Especifica el puerto utilizado por las conexiones de datos activas cuandoconnect_from_port_20 está configurado a YES.

El valor predeterminado es 20.

• idle_session_timeout — Especifica la cantidad máxima de tiempo entre comandos desde uncliente remoto. Una vez disparado, se cierra la conexión al cliente remoto.

El valor predeterminado es 300.

• listen_address — Especifica la dirección IP en la cual vsftpd escucha por las conexiones dered.

Esta directriz no tiene un valor predeterminado.

Tip

If running multiple copies of vsftpd serving different IP addresses, the configuration filefor each copy of the vsftpd daemon must have a different value for this directive. Refer toSección 23.4.1, “Iniciar múltiples copias de vsftpd” for more information about multihomedFTP servers.

• listen_address6 — Especifica la dirección IPv6 en la cual vsftpd escucha por conexiones dered cuando listen_ipv6 está configurada a YES.

Esta directriz no tiene un valor predeterminado.

Tip

If running multiple copies of vsftpd serving different IP addresses, the configuration filefor each copy of the vsftpd daemon must have a different value for this directive. Refer toSección 23.4.1, “Iniciar múltiples copias de vsftpd” for more information about multihomedFTP servers.

• listen_port — Especifica el puerto en el cual vsftpd escucha por conexiones de red.

El valor predeterminado es 21.

• local_max_rate — Especifica la taza máxima de transferencia de datos para los usuarios localesconectados en el servidor en bytes de segundo.

El valor por defecto es 0, lo que no limita el ratio de transferencia.

• max_clients — Especifica el número máximo de clientes simultáneos que tienen permitidoconectarse al servidor cuando se ejecuta en modo independiente. Cualquier conexión adicionalresultará en un mensaje de error.

Page 69: 22 http ftp_linux_asoitson

Recursos adicionales

379

El valor predeterminado es 0, lo que no limita las conexiones.

• max_per_ip — Especifica el máximo número de clientes que tienen permitido conectarse desde lamisma dirección IP fuente.

El valor predeterminado es 0, lo que no limita las conexiones.

• pasv_address — Especifica la dirección IP para la IP del lado público del servidor para losservidores detrás de cortafuegos Network Address Translation (NAT). Esto permite que vsftpdentregue la dirección correcta de retorno para las conexiones pasivas.

Esta directriz no tiene un valor predeterminado.

• pasv_enable — Cuando está activa, se permiten conexiones en modo pasivo.

El valor por defecto es YES.

• pasv_max_port — Especifica el puerto más alto posible enviado a los clientes FTP para lasconexiones en modo pasivo. Esta configuración es utilizada para limitar el intervalo de puertos paraque las reglas del cortafuegos sean más fáciles de crear.

El valor predeterminado es 0, lo que no limita el rango de puertos pasivos más alto. El valor nopuede exceder de 65535.

• pasv_min_port — Especifica el puerto más bajo posible para los clientes FTP para lasconexiones en modo pasivo. Esta configuración es utilizada para limitar el intervalo de puertos paraque las reglas del cortafuego sean más fáciles de implementar.

El valor predeterminado es 0, lo que no limita el intervalo de puertos pasivos más bajo. El valor nodebe ser menor que 1024.

• pasv_promiscuous — Cuando está activada, las conexiones de datos no son verificadas paraasegurarse de que se originan desde la misma dirección IP. Este valor solamente es útil paraciertos tipos de tunneling.

Atención

No active esta opción a menos que sea absolutamente necesario ya que desactiva unafuncionalidad de seguridad muy importante la cual verifica que las conexiones en modo pasivopartan desde la misma dirección IP que la conexión de control que inicia la transferencia dedatos.

El valor predeterminado es NO.

• port_enable — Cuando está activada, se permiten las conexiones en modo activo.

El valor por defecto es YES.

23.6. Recursos adicionalesPara más información sobre vsftpd, consulte los recursos siguientes.

Page 70: 22 http ftp_linux_asoitson

Capítulo 23. FTP

380

23.6.1. Documentación instalada• The /usr/share/doc/vsftpd-<version-number>/ directory — Replace <version-number> with the installed version of the vsftpd package. This directory contains a README withbasic information about the software. The TUNING file contains basic performance tuning tips andthe SECURITY/ directory contains information about the security model employed by vsftpd.

• Páginas man relacionadas con vsftpd — Hay varias páginas man para este demonio y losarchivos de configuración. Lo siguiente lista algunas de las más importantes.

Aplicaciones de servidor• man vsftpd — Describe las opciones de línea de comandos disponibles para vsftpd.

Archivos de configuración• man vsftpd.conf — Contiene una lista detallada de las opciones disponibles dentro del

archivo de configuración para vsftpd.

• man 5 hosts_access — Describe el formato y las opciones disponibles dentro de losarchivos de configuración de TCP wrappers: hosts.allow and hosts.deny.

23.6.2. Sitios web de utilidad• http://vsftpd.beasts.org/ — La página del proyecto vsftpd es un excelente lugar para ubicar la

documentación más reciente y para contactar al autor del software.

• http://slacksite.com/other/ftp.html — Este sitio proporciona una explicación completa de lasdiferencias entre el modo activo y pasivo de FTP.

• http://www.ietf.org/rfc/rfc0959.txt — Una lista completa de las Request for Comments (RFCs) delprotocolo FTP desde IETF.