Alcance Libre - Configuración básica de Apache2

6

Click here to load reader

Transcript of Alcance Libre - Configuración básica de Apache2

Page 1: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 7/18

service shorewall restart

Procedimientos.

Archivos de configuración.

Cualquier ajuste que se requiera realizar, ya sea para configurar anfitriones virtuales, u otrafuncionalidad 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-8UTF-8 es un método de codificación de ASCII para Unicode (ISO-10646), elConjunto de Caracteres Universal o UCS. éste codifica la mayoría de lossistemas de escritura del mundo en un único conjunto de caracteres,permitiendo la mezcla de lenguajes y guiones en un mismo documento sin lanecesidad 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, uotras tablas de caracteres, utilizando métodos similares el siguiente:

cd /var/www/html/for f in *.htmldovi -c ":wq! ++enc=utf8" $fdone

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 elarchivo /etc/httpd/conf/httpd.conf:

vim /etc/httpd/conf/httpd.conf

Page 2: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 8/18

Localice lo siguiente:

AddDefaultCharset UTF-8

Cambie UTF-8 por Off:

AddDefaultCharset 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/ejemplochcon -r object_r /var/contenidos/ejemplochcon -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.

service httpd reload

Asumiendo que realizará la prueba desde el mismo anfitrión local, visualice este nuevo directorio

Page 3: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 9/18

virtual, con cualquier navegador, a través de http://127.0.0.1/ejemplo/. Se mostrará que eldirectorio 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 unarchivo í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:

service httpd reload

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ásopciones, 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:

Page 4: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 10/18

La opción FollowSymLinks habilita el uso de enlaces simbólicos dentro del

directorio. Sólo utilice ésta si necesita acceder a contenidos fuera deldirectorio 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 oprograma 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:

service httpd reload

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ólohacia ciertas direcciones IP o bloques de red, defina algo como lo mostrado en el siguienteejemplo:

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 dedenegació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:

Page 5: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 11/18

service httpd reload

sumiendo que realizará la prueba desde el mismo anfitrión local, acceda haciahttp://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 deacceso, que también puede combinarse con el acceso por dirección IP, se realiza a través de lasiguiente sintaxis:

AuthName "Acceso sólo para usuarios autorizados"AuthType BasicRequire valid-userAuthUserFile /cualquier/ruta/hacia/archivo/de/claves

Lo anterior puede ser incluido en la configuración existente para cualquier directorio o bien enarchivo .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>

Page 6: Alcance Libre - Configuración básica de Apache2

30/04/13 Alcance Libre - Configuración básica de Apache.

www.alcancelibre.org/staticpages/index.php/como-apache/print 12/18

Para que surtan efecto los cambios hechos a la configuración, recargue el servicio httpd:

service httpd reload

Genere el archivo /var/www/privado/.htaccess.

vim /var/www/privado/.htaccess

Agregue el siguiente contenido:

AuthName "Sólo usuarios autorizados"AuthType BasicRequire valid-userAuthUserFile /var/www/claves

Genere el archivo de claves de acceso como /var/www/claves, ejecutando el siguiente

procedimiento:

touch /var/www/claves

Cambie los permisos de sólo lectura y escritura para usuario y cambie la propiedad al usuario ygrupo apache:

chmod 600 /var/www/claveschown apache:apache /var/www/claves

Agregue algunos usuarios virtuales al archivo de claves, /var/www/claves, ejecutando elmandato htpasswd, usando como argumentos la ruta del archivo de claves de acceso y nombredel usuario a añadir o modificar:

htpasswd /var/www/claves fulanohtpasswd /var/www/claves menganohtpasswd /var/www/claves perenganohtpasswd /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.