Acerca del protocolo HTTP.
HTTP (
Hypertext Transfer Protocol
o Protocolo de Trasferencia de Hipertexto) es el método utilizado para
transferir o transportar información a través de Internet y (WWW,
World Wide Web). Su propósito original fue el proveer una forma de publicar y recuperar documentos en formato HTML.
El desarrollo del protocolo fue coordinado por
World Wide Web Consortium y la
IETF (
Internet Engineering Task Force o
Fuerza de Trabajo en Ingeniería de Internet), culminando con la publicación de varios RFC (
Request For Comments), de entre los que destaca el
RFC 2616, mismo que define la versión 1.1 del protocolo, que es el utilizado hoy en día.
HTTP es un protocolo de solicitud y respuesta a través de
TCP,
entre agentes de usuario (Navegadores, motores de índice y otras
herramientas) y servidores, regularmente utilizando el puerto 80. Entre
la comunicación entre éstos puede intervenir otros tipos de
implementaciones, como serían servidores Intermediarios (
Proxies), puertas de enlace y túneles.
URL:
http://tools.ietf.org/html/rfc2616
Acerca de Apache.
Apache es un servidor HTTP de código fuente abierto y licenciamiento
libre que funciona en Linux, sistemas operativos derivados de Unix™,
Windows™, Novell™ Netware y otras plataformas. Ha desempeñado un papel
muy importante en el crecimiento de Internet y continua siendo el
servidor HTTP más utilizado, siendo además el servidor
de facto
contra el cual se realizan las pruebas comparativas y de desempeño para
otros productos competidores. Es desarrollado y mantenido por una
comunidad de desarrolladores auspiciada por
Apache Software Foundation.
URL:
http://www.apache.org/
Equipamiento lógico necesario.
En CentOS, Fedora™ y Red Hat™ Enterprise Linux.
Ejecute lo siguiente:
Si se desea incluir soporte para
PHP/
MySQL,
Perl,
Python y
SSL/
TLS, ejecute lo siguiente:
yum -y install php php-mysql mod_perl mod_wsgi mod_ssl
|
Nota. |
En CentOS 6, Fedora™ y Red Hat™ Enterprise Linux 6, el soporte para Python se incluye con el paquete mod_wsgi. En CentOS 5 y Red Hat™ Enterprise Linux 5, el soporte para Python se incluye con el paquete mod_python.
yum -y install mod_python
|
|
Para poder realizar pruebas desde el mismo anfitrión local, puede
utilizar cualquier navegador, como serían Firefox y Google Chrome. A fin
de poder prescindir del uso del modo gráfico y poder trabajar desde una
terminal de texto, sugerimos instalar y utilizar el navegador Lynx.
Iniciar servicio y añadir el servicio al arranque del sistema.
Para añadir el servicio al arranque del sistema, ejecute:
Para iniciar el servicio ejecute:
Para reiniciar el servicio interrumpiendo todas las conexiones establecidas en ese momento, ejecute:
Para cargar los cambios en la configuración sin interrumpir el
servicio y con ésto mantener activas las conexiones establecidas,
ejecute
Para detener el servicio, ejecute:
SELinux y Apache.
En
CentOS,
Fedora™ y
Red Hat™ Enterprise Linux, de modo predeterminado SELinux viene activo en modo obligatorio (
enforcing).
Éste añade seguridad y protección adicional a Apache. Sin embargo
algunas opciones impedirán utilizar ciertas funciones en Apache, como
directorios virtuales fuera del directorio /var/www, directorios
~/public_html, el envío de correo electrónico desde aplicaciones basadas
sobre HTTP, etc.
Para permitir a Apache poder enviar correo electrónico desde alguna aplicación, ejecute:
setsebool -P httpd_can_sendmail 1
|
Para permitir que Apache pueda leer contenidos localizados en los directorios de inicio de los usuarios locales, ejecute:
setsebool -P httpd_read_user_content 1
|
Nota. |
Estas últimas dos políticas son indispensables
para el funcionamiento de cualquier cliente de correo electrónico
basados sobre HTTP (Webmails).
|
Para permitir a Apache poder ejecutar guiones CGI, ejecute:
setsebool -P httpd_enable_cgi 1
|
Para permitir las inclusiones del lado del servidor (
SSI,
Server
Side
Includes), ejecute:
setsebool -P httpd_ssi_exec 1
|
Para permitir que Apache se pueda conectar a un base de datos localizada en otro servidor, ejecute:
setsebool -P httpd_can_network_connect_db 1
|
Para permitir a Apache realizar conexiones de red hacia otro servidor, ejecute:
setsebool -P httpd_can_network_connect 1
|
Para permitir que los usuarios locales puedan utilizar un directorio público (
public_html), ejecute:
setsebool -P httpd_enable_homedirs 1
|
Nota. |
Esta última política es indispensable para el
funcionamiento de anfitriones virtuales asignados a usuarios locales,
pues permite utilizar los directorios ~/public_html.
|
Para permitir administrar a través de FTP o FTPS cualquier directorio
gestionado por Apache o bien permitir a Apache funcionar como un
servidor FTP escuchando peticiones a través del puerto de FTP, ejecute
el siguiente mandato:
setsebool -P httpd_enable_ftp_server 1
|
Para
desactivar la ejecución de PHP y otros lenguajes de programación para HTTP a través de Apache, ejecute el siguiente mandato:
setsebool -P httpd_builtin_scripting 0
|
Para consultar todas políticas disponibles que existen para Apache, ejecute:
Para consultar todas políticas disponibles que existen para Apache, junto con una breve descripción, ejecute:
semanage boolean -l |grep httpd
|
Para definir que un directorio fuera de
/var/www, como por ejemplo
/sitios/dominio.tld/html, pueda ser utilizado por Apache, se le debe asignar el contexto
httpd_sys_content_t. Éste puede asignarse a través del mandato
chcon, como se muestra en el siguiente ejemplo:
chcon -t httpd_sys_content_t /sitios/dominio.tld/html
|
Cualquier contenido que sea
copiado o
transferido dentro de
/var/www automáticamente adquiere el contexto
httpd_sys_content_t.
Para definir que se permite ejecutar un guión CGI en particular, como por ejemplo
/sitios/dominio/cgi-bin/formulario.pl, se utiliza el siguiente mandato:
chcon -t httpd_sys_script_exec_t /sitios/dominio/cgi-bin/formulario.pl
|
Cualquier contenido que sea
copiado o
transferido dentro de cualquier sub-directorio de
/var/www que se denomine
cgi-bin, automáticamente adquiere el contexto
httpd_sys_script_exec_t.
Para definir que, por ejemplo,
/var/www/dominio/public_html/escribir.php pueda realizar procedimientos de sólo lectura de datos fuera del directorio
/var/www, ejecute el siguiente mandato:
chcon -t httpd_sys_script_ro_t /var/www/dominio/public_html/leer.php
|
Para definir que, por ejemplo,
/var/www/dominio/public_html/escribir.php pueda realizar procedimientos de lectura y escritura de datos fuera del directorio
/var/www, ejecute el siguiente mandato:
chcon -t httpd_sys_script_rw_t /var/www/dominio/public_html/leer.php
|
Modificaciones necesarias en el muro cortafuegos.
Es necesario abrir el puerto 80 por TCP (
HTTP).
Servicio iptables.
Puede utilizar
iptables, ejecutando lo siguiente:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
service iptables save
|
O bien edite el archivo
/etc/sysconfig/iptables:
vim /etc/sysconfig/iptables
|
Y añada el siguiente contenido:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
|
Y reinicie el servicio
iptables:
Shorewall.
Edite el archivo
/etc/shorewall/rules:
Las reglas corresponderían a algo similar a lo siguiente, permitiendo
el acceso hacia el servicio HTTP desde cualquier zona del muro
cortafuegos:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT all fw tcp 80
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
|
Para aplicar los cambios en Shorewall, ejecute lo siguiente:
service shorewall restart
|
Procedimientos.
Archivos de configuración.
Cualquier ajuste que se requiera realizar, ya sea para configurar
anfitriones virtuales, u otra funcionalidad adicional, se puede realizar
sin tocar el archivo principal de configuración (
/etc/httpd/conf/httpd.conf), utilizando cualquier archivo con extensión
*.conf dentro del directorio
/etc/httpd/conf.d/.
UTF-8 y codificación de documentos.
- UTF-8
- UTF-8 es un método de codificación de ASCII para Unicode
(ISO-10646), el Conjunto de Caracteres Universal o UCS. éste codifica la
mayoría de los sistemas de escritura del mundo en un único conjunto de
caracteres, permitiendo la mezcla de lenguajes y guiones en un mismo
documento sin la necesidad de ajustes para realizar los cambios de
conjuntos de caracteres.
|
Debido a su conveniencia actualmente se está adoptando UTF-8 como
codificación para todo, sin embargo aún hay mucho material codificado
en, por ejemplo, ISO-8859-1.
Lo correcto es cambiar a en UTF-8 la codificación de los documentos
que están en ISO8859-1, u otras tablas de caracteres, utilizando métodos
similares el siguiente:
cd /var/www/html/
for f in *.html
do
vi -c ":wq! ++enc=utf8" $f
done
|
Lo anterior sólo tendría sentido si dentro del directorio
/var/www/html hubiera documentos HTML codificados en ISO8859-1.
Si desea continuar
viviendo en el pasado
y no aceptar el nuevo estándar, también puede desactivar la función en
Apache que establece UTF-8 como codificación predefinida. Edite el
archivo
/etc/httpd/conf/httpd.conf:
vim /etc/httpd/conf/httpd.conf
|
Localice lo siguiente:
Cambie
UTF-8 por
Off:
Directorios virtuales.
Si, por ejemplo, se quisiera añadir el alias para un directorio localizado en
/var/contenidos/ejemplo/ y el cual queremos visualizar como el directorio
/ejemplo/ en Apache, lo primero será crear el directorio:
mkdir -p /var/contenidos/ejemplo
|
Cambie los contextos de SELinux de este directorio, con la finalidad de que tenga rol de objeto (
object_r), creado por usuario de sistema (
system_u) y tipo
httpd_sys_content_t:
chcon -u system_u /var/contenidos/ejemplo
chcon -r object_r /var/contenidos/ejemplo
chcon -t httpd_sys_content_t /var/contenidos/ejemplo
|
Genere el archivo
/etc/httpd/conf.d/ejemplos.conf:
vim /etc/httpd/conf.d/ejemplos.conf
|
Añada el siguiente contenido:
Alias /ejemplo /var/contenidos/ejemplo
|
Guarde y cierre el archivo.
Recargue el servicio httpd.
Asumiendo que realizará la prueba desde el mismo anfitrión local,
visualice este nuevo directorio virtual, con cualquier navegador, a
través de
http://127.0.0.1/ejemplo/. Se mostrará que el directorio existe, pero el acceso a éste está denegado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
|
Lo anterior deberá mostrar un error 403 (acceso denegado), pues el
directorio carece de un archivo índice. Para poder acceder deberá haber
un documento índice en el interior (index.html, index.php, etc) o bien
que dicho directorio sea configurado para mostrar el contenido.
Edite de nuevo el archivo
/etc/httpd/conf.d/ejemplos.conf:
vim /etc/httpd/conf.d/ejemplos.conf
|
Modifique el contenido para que quede del siguiente modo:
Alias /ejemplo /var/contenidos/ejemplo
<Directory "/var/contenidos/ejemplo">
Options Indexes
</Directory>
|
La opción
Indexes indica que se deberá mostrar el índice de contenido del directorio.
Recargue el servicio
httpd para aplicar la configuración:
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda hacia
http://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si se requiere que este directorio tenga aún mayor funcionalidad, se pueden añadir más opciones, como por ejemplo
AllowOverride, Includes y FollowSymLinks, como se muestra en el siguiente ejemplo:
Alias /ejemplo /var/contenidos/ejemplo
<Directory "/var/contenidos/ejemplo">
Options Indexes Includes FollowSymLinks
AllowOverride all
</Directory>
|
En el ejemplo anterior:
- La opción FollowSymLinks
habilita el uso de enlaces simbólicos dentro del directorio. Sólo
utilice ésta si necesita acceder a contenidos fuera del directorio a
utilizar.
- La opción Includes especifica que se permite la utilización de los SSI (Server Side Includes). Sólo utilice ésta si así lo requiere la aplicación o programa utilizado dentro este directorio.
- La opción AllowOverride, con el valor all posibilita utilizar archivos .htaccess,
los cuales a su vez permiten aplicar opciones de directorio al vuelo,
sin necesidad de modificar otros archivos de configuración.
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda hacia
http://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
|
Limitar el acceso a directorios por dirección IP.
Si se requiere limitar el acceso de un directorio en particular, para
que éste esté disponible sólo hacia ciertas direcciones IP o bloques de
red, defina algo como lo mostrado en el siguiente ejemplo:
Alias /ejemplo /var/contenidos/ejemplo
<Directory "/var/contenidos/ejemplo">
Order deny,allow
Deny from all
Allow from 127.0.0.0/8 192.168.70.0/25
Options Indexes
AllowOverride all
</Directory>
|
El ejemplo anterior establece que el orden de acceso, donde primero
se aplicarán las reglas de denegación y luego las que permitirán el
acceso y que se denegará el acceso a todo el mundo, permitiendo el
acceso sólo desde
127.0.0.0/8 y
192.168.70.0/25.
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
sumiendo que realizará la prueba desde el mismo anfitrión local, acceda hacia
http://127.0.0.1/ejemplo/ con cualquier navegador y visualice el resultado.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/ejemplo/
|
Limitar el acceso por usuario y contraseña.
La autenticación para directorios, contra un archivo que incluya
nombres de usuario y claves de acceso, que también puede combinarse con
el acceso por dirección IP, se realiza a través de la siguiente
sintaxis:
AuthName "Acceso sólo para usuarios autorizados"
AuthType Basic
Require valid-user
AuthUserFile /cualquier/ruta/hacia/archivo/de/claves
|
Lo anterior puede ser incluido en la configuración existente para cualquier directorio o bien en archivo
.htaccess.
Genere el directorio
/var/www/privado/ ejecutando lo siguiente:
mkdir -p /var/www/privado
|
Genere un archivo denominado arbitrariamente
/etc/httpd/conf.d/ejemplo-autenticar.conf:
vim /etc/httpd/conf.d/ejemplo-autenticar.conf
|
Añada con el siguiente contenido:
Alias /privado /var/www/privado
<Directory "/var/www/privado">
Options Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
|
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Genere el archivo
/var/www/privado/.htaccess.
vim /var/www/privado/.htaccess
|
Agregue el siguiente contenido:
AuthName "Sólo usuarios autorizados"
AuthType Basic
Require valid-user
AuthUserFile /var/www/claves
|
Genere el archivo de claves de acceso como
/var/www/claves, ejecutando el siguiente procedimiento:
Cambie los permisos de sólo lectura y escritura para usuario y cambie la propiedad al usuario y grupo
apache:
chmod 600 /var/www/claves
chown apache:apache /var/www/claves
|
Agregue algunos
usuarios virtuales al archivo de claves,
/var/www/claves, ejecutando el mandato
htpasswd, usando como argumentos la ruta del archivo de claves de acceso y nombre del usuario a añadir o modificar:
htpasswd /var/www/claves fulano
htpasswd /var/www/claves mengano
htpasswd /var/www/claves perengano
htpasswd /var/www/claves zutano
|
Asumiendo que realizará la prueba desde el mismo anfitrión local, acceda con cualquier navegador hacia
http://127.0.0.1/privado/
y compruebe que funciona el acceso con autenticación, utilizando
cualquiera de los dos usuarios virtuales que generó con el mandato
htpasswd, es decir fulano o mengano.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/privado/
|
Asignación de directivas para PHP.
Suelen darse los casos donde una aplicación, escrita en
PHP, requiere algunas directivas de
PHP
en particular. En muchos casos se llegan a necesitar variables que
pueden comprometer la seguridad de otras aplicaciones hospedadas en el
servidor. Para tal fin es que se puede evitar modificar el archivo
/etc/php.ini utilizando el parámetro
php_flag en un archivo
.htaccess. La siguiente sintaxis es la siguiente:
php_flag directiva_php valor
|
Ejemplo
Se procederá a asignar las directivas
register_globals,
magic_quotes_runtime,
magic_quotes_gpc y
upload_max_filesize al directorio en la ruta
/var/www/aplicacion, mismo que será visualizado desde Apache como
http://127.0.0.1/aplicacion/. El valor para
register_globals será
On (requerido sólo por aplicaciones PHP muy antiguas o muy mal escritas), el valor para
magic_quotes_runtime será
On, el valor para
magic_quotes_gpc será
On y el valor para
upload_max_filesize será
8M.
Genere el directorio
/var/www/aplicacion ejecutando lo siguiente:
mkdir /var/www/aplicacion
|
Genere el archivo
/etc/httpd/conf.d/ejemplo-directivas-php.conf ejecutando lo siguiente:
vim /etc/httpd/conf.d/ejemplo-directivas-php.conf
|
Añada el siguiente contenido:
Alias /aplicacion /var/www/aplicacion
<Directory "/var/www/aplicacion">
AllowOverride All
</Directory>
|
Genere el archivo
/var/www/aplicacion/.htaccess realizando lo siguiente:
touch /var/www/aplicacion/.htaccess
|
Edite el archivo
/var/www/aplicacion/.htaccess y agregue el siguiente contenido:
php_flag register_globals On
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime On
php_value upload_max_filesize 8M
|
Genere el archivo
/var/www/aplicacion/info.php, una función que muestra toda la información acerca de
PHP en el servidor, a fin de corroborar los valores de las directivas de
PHP en relación al directorio, con el siguiente contenido:
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Acceda con cualquier navegador de red hacia
http://127.0.0.1/aplicacion/info.php.
Si desea realizar las comprobaciones desde el mismo anfitrión, puede utilizar el navegador Lynx.
lynx http://127.0.0.1/aplicacion/info.php
|
Corrobore que los valores para las variables de
PHP para el directorio involucrado realmente han sido asignadas. En la sub-sección
PHP Core de la sección
Configuration, hay tres columnas. La primera,
Directive, corresponde a la directivas
PHP. La segunda,
Local Value, corresponde a los valores de las directivas de
PHP para el directorio actual. La tercera,
Master Value, corresponde a los valores de las directivas predeterminadas que están definidas en el archivo
/etc/php.ini.
Directive | Local Value | Master Value |
magic_quotes_gpc |
On |
Off |
magic_quotes_runtime |
On |
Off |
register_globals |
On |
Off |
upload_max_filesize |
8M |
2M |
Re-dirección de directorios.
Cuando sea necesario, es posible configurar un directorio en
particular para Apache redirija éste de modo transparente hacia
cualquier otra dirección.
Genere el archivo denominado arbitrariamente como
/etc/httpd/conf.d/ejemplo-redireccion.conf, reemplazando
http://mail.docminio.tld/ por cualquier dirección válida.
vim /etc/httpd/conf.d/ejemplo-redireccion.conf
|
Añada el siguiente contenido:
Redirect 301 /webmail http://mail.dominio.tld/
|
Guarde el archivo y regrese al intérprete de mandatos.
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
En el ejemplo anterior, se indica que si se trata de acceder hacia el sub-directorio
/webmail en el servidor, Apache deberá redirigir hacia
http://mail.dominio.tld/.
El número 301 corresponde al mensaje del protocolo HTTP para indicar
que la re-dirección es permanente. Si por ejemplo hubiese un objeto en
/webmail, como por ejemplo
/webmail/estadisticas/estadisticas.php, Apache realizaría el re-direccionamiento transparente hacia
http://mail.dominio.tld/estadisticas/estadisticas.php.
Tipos de MIME.
Para añadir cualquier tipo de extensión y tipo MIME, como por ejemplo
Ogg, definiendo además una descripción e icono, genere un archivo que
denominado
/etc/httpd/conf.d/mimes.conf:
vim /etc/httpd/conf.d/mimes.conf
|
Añada el siguiente contenido:
AddType application/ogg .ogg
AddDescription "Ogg Vorbis Audio" .ogg
AddIcon /icons/sound2.png .ogg
|
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Copie o transfiera cualquier archivo de audio Ogg Vorbis a cualquier
directorio compartido a través de Apache que permita ver el índice de
éste y visualice el resultado.
Impedir enlace remoto de imágenes.
Suele ocurrir que los administradores de algunos sitios encuentran
fácil utilizar imágenes y otros tipos de contenido, vinculando desde sus
documentos hacia los objetos en el servidor. Ésto representa un consumo
ancho de banda adicional para el servidor, que sólo genera tráfico
inútil y por lo tanto es considerado una práctica poco ética. En el
siguiente ejemplo se desea proteger un directorio para que sólo se
permita utilizar su contenido si es referido desde el mismo servidor.
Genere el directivo
/var/www/imagenes ejecutando lo siguiente:
Copie o transfiera archivos de imágenes dentro de este directorio.
cp /usr/share/pixmaps/*.png /var/www/imagenes
|
Genere el archivo
/etc/httpd/conf.d/imagenes.conf ejecutando lo siguiente:
vim /etc/httpd/conf.d/imagenes.conf
|
Añada el siguiente contenido:
# Se permite acceder directamente a la imagen o bien si se omite
# en el navegador la información del referente.
SetEnvIfNoCase Referer "^$" local_referal=1
# Se permite al propio servidor
SetEnvIfNoCase Referer "^http://127.0.0.1" local_referal=1
SetEnvIfNoCase Referer "^http://localhost" local_referal=1
SetEnvIfNoCase Referer "^http://localhost.localdomain" local_referal=1
SetEnvIfNoCase Referer "^http://192.168.70.50" local_referal=1
SetEnvIfNoCase Referer "^http://m50.alcancelibre.org.mx" local_referal=1
SetEnvIfNoCase Referer "^http://(www.)?midominio.org" local_referal=1
# Se permite utilizar las imágenes a otro servidor
SetEnvIfNoCase Referer "^http://(www.)?sitio-amigo.org" local_referal=1
Alias /imagenes /var/www/imagenes
<Directory "/var/www/imagenes">
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory>
|
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Pruebe la configuración creando un documento HTML en el anfitrión
local y en un anfitrión remoto, el cual enlace hacia imágenes hospedadas
en el directorio
/var/www/imagenes del servidor recién configurado, y compare resultados.
En lugar de lo anterior, puede utilizarse también un archivo
.htaccess. Edite el archivo
/etc/httpd/conf.d/imagenes.conf ejecutando lo siguiente:
vim /etc/httpd/conf.d/imagenes.conf
|
Reemplace el contenido existente por lo siguiente:
Alias /imagenes /var/www/imagenes
<Directory "/var/www/imagenes">
AllowOverride all
</Directory>
|
Para que surtan efecto los cambios hechos a la configuración, recargue el servicio
httpd:
Genere el archivo
/var/www/imagenes/.htaccess:
vim /var/www/imagenes/.htaccess
|
Añada el siguiente contenido:
# Se permite acceder directamente a la imagen o bien si se omite
# en el navegador la información del referente.
SetEnvIfNoCase Referer "^$" local_referal=1
# Se permite al propio servidor
SetEnvIfNoCase Referer "^http://127.0.0.1" local_referal=1
SetEnvIfNoCase Referer "^http://localhost" local_referal=1
SetEnvIfNoCase Referer "^http://localhost.localdomain" local_referal=1
SetEnvIfNoCase Referer "^http://192.168.70.50" local_referal=1
SetEnvIfNoCase Referer "^http://m50.alcancelibre.org.mx" local_referal=1
SetEnvIfNoCase Referer "^http://(www.)?midominio.org" local_referal=1
# Se permite utilizar las imágenes a otro servidor
SetEnvIfNoCase Referer "^http://(www.)?sitio-amigo.com" local_referal=1
Order Deny,Allow
Deny from all
Allow from env=local_referal
|
Pruebe la configuración creando un documento HTML en el anfitrión
local y en un anfitrión remoto, el cual enlace hacia imágenes hospedadas
en el directorio
/var/www/imagenes del servidor recién configurado, y compare resultados.
Fuente: http://www.alcancelibre.org/staticpages/index.php/como-apache?query=servidor+http
No hay comentarios:
Publicar un comentario