Sie sind auf Seite 1von 6

CONFIGURACIN BSICA DE UN SERVIDOR WEB

EL SERVIDOR WEB APACHE Segn las estadsticas de netcraft en http://www.netcraft.com/survey/archive.html , Apache es el software de servidor web utilizado en casi el 70 % de los servidores web del mundo. Los requerimientos de hardware son muy bajos a comparacin de otras soluciones propietarias como el IIS de Microsoft. Permite el uso de CGI's, es modular y existen entre muchos otros: mdulo de autentificacin, mdulo PHP, mdulo de seguridad SSL, etc... Viene instalado en prcticamente todas las distribuciones de Linux INICIAR Y DETENER APACHE Para iniciar el servidor se debe introducir el comando: # /etc/init.d/httpd start Para finalizar el servidor este otro: # /etc/init.d/httpd stop Despus de algn cambio en la configuracin, debemos rearrancarlo mediante. # /etc/init.d/httpd restart Se puede activar en un runlevel para que se ejecute al arrancar. CONFIGURACIN MUY BSICA DE APACHE Los ficheros de configuracin del servidor Apache se encuentran generalmente en /etc/httpd o /etc/httpd/conf Son tres: httpd.conf srm.conf access.conf Actualmente se encuentra toda la configuracin en el fichero httpd.conf, los otros se utilizaban en versiones anteriores. En Apache 1.3 existen unas 193 directivas. El fichero de configuracin de apache se divide en 3 secciones: Seccin global: aqu se situarn las directivas de configuracin que tienen que ver con el rendimiento y configuracin del servicio. Algunas de ellas son: ServerType standalone Indica si el demonio se ejecuta slo o lo ejecuta el inetd. Puede ser standalone o inetd. ServerRoot "/srv/www" Especifica el directorio raiz del servidor Listen 192.168.1.2:80 Especifica la ip y puerto en el que est a la escucha el servidor. Si se omite la ip, escuchar en todas las interfaces de red. Podemos poner varias directivas listen para escuchar en diferentes puertos. User wwwrun Especifica el usuario que ejecuta el demonio httpd. Group nogroup Especifica el grupo al que pertenece el usuario que ejecuta el demonio. KeepAlive on Especifica si el servidor admite conexiones persistentes. LoadModule speling_module modules/mod_speling.so Directiva de carga de mdulos. Se indica el nombre del mdulo y la ubicacin del fichero. Seccin del Servidor principal: aqu se situarn las directivas de configuracin para el servidor principal. Algunas de ellas son: ServerAdmin webmaster@GNUstation.halteruel.org Especifica el email del administrador del servidor ServerName www.halteruel.org Especifica el nombre del servidor DocumentRoot "/srv/www/htdocs" Especifica dnde se almacenan las webs DocumentRoot "/srv/www/htdocs" Especifica dnde se almacenan las webs AccessFileName .htaccess

Especifica cmo se llama el fichero de configuracin particular que se almacenar en un directorio Existe la seccin Directory, en el cual se indican directivas a seguir para directorios. Por defecto, todas las directivas directory que se definan tomarn los valores de la seccin Directory / ejemplo: <Directory /> Options -FollowSymLinks +Multiviews AllowOverride None </Directory> Observamos algunas directivas ms: Options Es una directiva que aade y elimina ciertas opciones de un directorio. Entre algunas de las opciones destacamos: ExecCGI -> permite la ejecucin de cgis en ese directorio FollowSymLinks -> permite el uso de enlaces simblicos Indexes -> permite mostrar un listado de archivos y directorios AllowOverride Especifica qu partes de la configuracin pueden ser omitidas en los archivos .htaccess Ahora un ejemplo de un directorio particular: <Directory "/srv/www/htdocs/myAdmin"> Order deny,allow deny from all allow from 192.168.0.0/16 allow from 127.0.0.1 </Directory> Todas las directivas que se especifiquen dentro de una seccin directory se aplicarn al directorio y subdirectorios, es decir el directorio /srv/www/htdocs/myAdmin/config tendr las mismas directivas. Aqu vemos algunas directivas de seguridad: Order deny allow Especifica el orden en que se toman las directivas allow y deny Deniega la entrada al directorio a determinados hosts Permite la entrada al directorio a determinados hosts

Otro ejemplo de configuracin de directorio, esta vez el htdocs: <Directory "/srv/www/htdocs"> AllowOverride None Order allow,deny Allow from all <Files test.php3> Order deny,allow deny from all allow from localhost </Files> </Directory> Tenemos la seccin Files, que es particular a ficheros, en el ejemplo el fichero test.php3 slo podr ser visto desde localhost. Seccin de virtual hosts: aqu se situarn las directivas de configuracin de los hosts virtuales as como sus secciones. CONFIGURACIN DE DIRECTORIOS VIRTUALES Para definir un directorio virtual se utilizan las directivas: Alias /manual "/srv/www/manual"

)  )  V R ) Q  ) 9 75GFW2HUUTGFSRDPFIH5GF7 2)E5D5$57#C5B7@195746542)10('&$"##! 0  " " 0 ) A 0 )  8 0 )  ) 3 "  ) 3 0 0 )  %  "   

CONFIGURACIN DE LOS LOGS DE APACHE Podemos configurar apache para que siga un seguimiento de las visitas y errores ocurridos en ficheros logs. Para ello se utilizan las siguientes directivas: ErrorLog /var/log/httpd/error_log Especifica el fichero log en el que se lleva el seguimiento de los errores. LogLevel warn Especifica el nivel de log que se registra. A menor nivel ms informacin se registrar. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined Define un formato a un fichero log. CustomLog /var/log/httpd/access_log combined Aplica un formato definido a un fichero log. Trucos: Es recomendable utilizar alguna utilidad al estilo logrotate que haga una rotacin de logs cada cierto tiempo, ya que podemos obtener unos ficheros logs muy grandes. El fichero access_log es el utilizado por herramientas tipo webalizer que realizan estadsiticas para nuestro sitio web. Sera recomendable utilizar un access_log diferente para cada host virtual. CONFIGURACIN DE VIRTUAL HOSTS CON APACHE La utilizacin de virtual hosts permite tener ms de un sitio web dentro de un mismo servidor. Existen distintas maneras de configurar los virtual hosts: Virtual host basado en el puerto: Para ello definiremos varios puertos de escucha con la directiva listen y a continuacin crearemos una seccin VirtualHost para cada puerto. Listen 80 Listen 81 ... <VirtualHost *:80> DocumentRoot "/srv/www/htdocs" </VirtualHost> <VirtualHost *:81> DocumentRoot "/srv/www/servidor81" </VirtualHost> Virtual host basado en la ip: Para ello crearemos una seccin VirtualHost para cada direccin ip. En este ejemplo, para las peticiones a una interfaz externa, se mostrar una web y para las peticiones para la interfaz interna se mostrar otra web especial para la intranet. Listen 80 ... <VirtualHost 80.38.172.227> DocumentRoot "/srv/www/htdocs" </VirtualHost> <VirtualHost 192.168.1.2> DocumentRoot "/srv/www/servidorinterno" </VirtualHost> Virtual host basado en el nombre: Definiremos mediante la directiva NameVirtualHost la ip o ips que contienen hosts virtuales. Despus estableceremos secciones VirtualHost, en la que incluiremos una directiva ServerName que indicar el nombre del servidor. En el ejemplo, tenemos dos servidores virtuales en esa ip, para cualquier otra ip que tengamos apache tomar la configuracin del servidor principal. NameVirtualHost 192.168.1.2 <VirtualHost 192.168.1.2> ServerName www.dominio.com

t )  )  V R ) Q  ) 9  0 f )  ) 0 ) R q  " % R 0 f )   p u5UdF2sHadFsSRB&FIsUdFUE$)EDBdU43adr7F'dUDDBW@HWd R  8 R V   R f  "   8 9 A  "  ) 3 0 0 )  %  "     dDUi@hgWdaeWdaPD5c1bGa5U4$)0`'F"WWYBXDEX@

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

DocumentRoot "/srv/www/htdocs" </VirtualHost> <VirtualHost 192.168.1.2> ServerName www.miotrodominio.com DocumentRoot "/srv/www/otrodominio" </VirtualHost> CONFIGURACIN DE USUARIOS Y GRUPOS CON APACHE htpasswd Crea una base de datos de usuarios de Apache. En este ejemplo se crea un fichero para almacenar los usuarios y se aade el usuario luis. # htpasswd -c /etc/httpd/passwd luis Ahora se aade a la base de datos el usuario fernando. # htpasswd /etc/httpd/passwd fernando Para crear una base de datos de grupos basta con crear un fichero de texto con el siguiente formato: desarrollo: luis fernando diseno: luis Podremos exigir validacin para acceder a un recurso: <Directory /home/usuarios/publico> Options Indexes -FollowSymLinks AuthName "Recurso publico" AuthType Basic AuthUserFile /srv/www/control/usuarios AuthGroupFile /srv/www/control/grupos Require valid-user </Directory> En el ejemplo vemos el uso de nuevas directivas: AuthUserFile /srv/www/control/usuarios Especifica el fichero de contraseas de usuarios AuthGroupFile /srv/www/control/grupos Especifica el fichero de contraseas de grupos AuthName "Recurso publico" Especifica el nombre que aparecer en la ventana de validacin. AuthType Basic Especifica el tipo de autenticacin. Require valid-user Puede acceder al recurso cualquier usuario incluido en el fichero de contraseas de usuarios. Esta directiva admite otros argumentos: Require user luis fernando Tan slo los usuarios llamados luis o fernando podran acceder. Require group desarrollo Tan slo los usuarios que pertenecen al grupo desarrollo pueden acceder.

Vemos el uso de la directiva de contenedor Limit, en este ejemplo tan slo el usuario admin podr realizar mtodos POST, pero cualquier usuario podr realizar otra operacin, por ejemplo GET.

y R )    R f 3 "  0 V 3 p "  U5$%`dPwU&6PGE$"aGTc

y 0 V 3 p " " ) " x ) R " 3 F"a(GEcTPUPw5&rv


<Directory /home/usuarios/admin> Options Indexes -FollowSymLinks <Limit POST> AuthName "Area administracion" AuthType Basic AuthUserFile /srv/www/control/usuarios AuthGroupFile /srv/www/control/grupos Require user admin </Limit> </Directory> <Directory /home/usuarios/admin> Options Indexes -FollowSymLinks

AuthName "Area administracion" AuthType Basic AuthUserFile /srv/www/control/usuarios AuthGroupFile /srv/www/control/grupos Satisfy any allow from 127.0.0.1 Require user admin </Directory> Aqu vemos el uso de la directiva satisfy, admite las opciones any o all. En este ejemplo, podremos acceder al recurso si accedemos desde la ip 127.0.0.1 o si nos validamos como el usuario admin. Ficheros .htaccess Fichero del que se comprueba la existencia en un directorio y contiene configuraciones especficas de dicho directorio. El directorio debe tener la clausula AllowOverrides definida en el fichero de configuracin de apache para permitir el uso de ficheros .htaccess. AllowOverrides admite AuthConfig, FileInfo, Indexes, Limit, All y None. AuthConfig: permite el uso de directivas de autorizacin. FileInfo: permite el uso de directivas que establezcan tipos de documentos. Indexes: permite el uso de directivas que controlen los ndices de directorio generados automticamente. Limit: permite el uso de directivas que controlen el acceso del host (allow, deny y order) Options: permite el uso de directivas que controlen opciones especficas de directorio. All: permite el uso de todas las anteriores. None: no permite el uso de ficheros .htaccess. Otro ejemplo de configuracin de la seccin de un directorio, esta vez de un usuario: <Directory "/home/luis/public_html"> AllowOverrides AuthConfig, Limit Options MultiViews Indexes </Directory> Vemos que en AllowOverride permitimos que si existe en el directorio un fichero .htaccess, permita variar la configuracin del directorio, permitiendo la autentificacin. ejemplo de fichero .htaccess: AuthName "Sitio de Luis" AuthUserFile /home/luis/control/usuarios AuthType Basic Satisfy all require user luis order deny,allow deny from all allow from 192.168.1.0/24 Con este fichero .htaccess en el directorio /home/luis/public_html, se pedir nombre de usuario y contrasea para poder acceder al directorio y deber accederse desde una mquina de la red privada. RECOMENDACIONES DE SEGURIDAD Ejecutar el demonio de apache siempre como un usuario distinto de root. Proteger siempre que sea posible los archivos del servidor con permisos de slo lectura, y si es posible, montar el contenido a servir en una particin de slo lectura. Evitar en lo posible el uso de enlaces simblicos, y si es necesario usar enlaces simblicos usar la opcin Options FollowSymLinksIfOwnerMatch en lugar de Options FollowSymLinks siempre que se pueda. Desactivar siempre que no sea imprescindible la opcin de generar ndices de directorios para cuando no se encuentra un index. Options -Indexes. Desactivar siempre que no sea imprescindible la opcin de ejecucin de cgis. Options -ExecCGI. Utilizar la proteccin basada en direcciones siempre que sea posible mediante las directivas vistas order, allow y deny. Usar la directiva listen junto con la ip en la que desea que escuche el servidor. Utilizar adems otras herramientas de firewall como iptables. No permitir el uso de ficheros .htaccess a no ser que sean absolutamente necesarios. Mantener el software siempre actualizado y estar pendiente de las alertas de seguridad. EJERCICIO PRCTICO

Deberemos configurar un servidor web, este servidor tiene tres interfaces de red: dos pblicas: 155.5.24.1 y 155.5.24.2 y una privada: 192.168.0.1 - Ofreceremos servicio nicamente en la intefaz pblica 155.5.24.1 y en la interfaz privada. En la interfaz privada daremos servicios a nuestra red local: - Serviremos el directorio /var/www/html. Este directorio y subdirectorios debern ser slo accesibles desde nuestra red privada. - Tenemos los usuarios luis, fernando, manolo, pepe y antonia. - luis y pepe pertenecen al grupo de administradores, fernando al grupo dptotecnico y manolo y antonia pertenecen al grupo dptocomercial. - Deberemos crear un directorio virtual llamado /administracion que tendr su ubicacin fsica en /var/www/admin y podrn acceder tan slo los usuarios del grupo administradores. En la interfaz pblica damos hosting a nuestros clientes: - www.hermanosgutierrez.com, cuyo administrador de servidor tiene la direccin gutierrez@hermanosgutierrez.com, y el contenido se albergar en /var/www/gutierrezbros. - www.dinopolas.com, cuyo administrador de servidor tiene la direccin dinos@dinopolas.com, y el contenido se albergar en /var/www/dinopolas. Este cliente exige que l mismo pueda configurarse el acceso de usuarios mediante archivos .htaccess. - A nuestros clientes les proporcionamos unas estadsticas detalladas sobre sus sitios web, por lo que deberemos almacenar sus ficheros access_log por separado.

Das könnte Ihnen auch gefallen