Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
10Activity
0 of .
Results for:
No results containing your search query
P. 1
Proteccion Del Servidor Apache_Jose Ignacio Ruiz de Alegria_Linux Plus Magazine

Proteccion Del Servidor Apache_Jose Ignacio Ruiz de Alegria_Linux Plus Magazine

Ratings: (0)|Views: 290|Likes:
Published by hexram

More info:

Published by: hexram on May 07, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/11/2014

pdf

text

original

 
seguridad
Protección de servidor 
40
Linux+ 1/2007
     l     i    n    u    x     @    s    o     f     t    w    a    r    e .    c    o    m .    p     l
Protección delservidor Apache
Cuando hablamos de Internet debemos hablar del servidor Apache, ya que es gracias a esteservidor web por el que podemos publicar en Internet, así como podemos recibir la opiniónde los internautas que han visitado nuestro sitio web, podemos colgar grácos, fotos, bannerscon efectos ash, música, video, etc.
Jose Ignacio Ruiz de Alegría
E
l servidor Apache, tanto la versión 1.3.x comola versión 2, se ha convertido en un servidorweb de referencia para todo diseñador depáginas web, webmaster, etc. Aunque es unode los más estables que hay actualmente en el mercado,debemos de recordar también que dicho servidor se en-cuentra constantemente sometido a ataques a través deInternet o de la web, los dos más comunes son el ataquea través de la instrucción POST. Dicha instrucción esampliamente utilizada en Internet porque va unida alenvio de información a través de Internet, por el cualun cracker intenta enviar información maliciosa a tra-vés de la red con la intención de perjudicar al servidoro provocar una negación de servicios. Como veremosmás adelante hay una forma de evitar o de ltrar la in-formación que se envía vía POST entre el servidor weby el cliente. Otro de los ataques más comunes que seproducen a través del servidor Apache son los llamadosDdos Attack o Negación de servicios y como el mismonombre lo indica, la nalidad de estos ataques es hacerque el servidor Apache se bloquee, lo que traerá comoconsecuencia la pérdida de servicio. Quién no ha escu-chado decir que el servidor está caído y que por ese mo-tivo sus paginas web no son accesibles a través de Inter-net.Para evitar o mitigar en lo más posible esta clase deataques, existen en el mercado dos módulos, ambos gra-tuitos, que permiten solucionar este tipo de problemas.Sus nombres son: mod_security y mod_evasive. Debidoa que el 70 por ciento de los ataques son llevados a travésde las aplicaciones web, debemos considerar aplicar uncortafuegos,
 frewall
o ltro, que bloquee las solicitudesque proceden de los clientes hacia el servidor. Esa esla función principal del
mod_security
. Lo primero quetenemos que hacer es descargarnos el
mod_security
: des-cargamos el
mod_security
desde
http://www.modsecurity.org/.
Descomprimimos el chero:
tar –xzf modsecurity-Apache-1.9.2.tar.gz
Accedemos al directorio:
cd modsecurity*
 
seguridad
Protección de servidor 
41
www.lpmagazine.org
Aquí necesitamos saber para qué versión deApache lo vamos a instalar, pudiendo ser laversión 2.* o la 1.3.*. Si utilizamos la versiónde Apache 1.3.* debemos de hacer:
cd Apache1
Antes de instalar el módulo es convenientehacer una copia de seguridad del archivo deconguración del servidor, por lo tanto hare-mos lo siguiente:
cp /usr/local/Apache/conf/httpd.conf/usr/local/Apache/conf/httpd.conf.back
Instalamos el
mod_security
:
/usr/local/Apache/bin/apxs –ciamod_security.c
Aquí debemos editar el chero de congura-ción del Apache (
httpd.conf
), en dicho cherodebemos poder ver las siguientes instruccio-nes, indicadas abajo:
LoadModule security_modulelibexec/mod_security.soAddModule mod_security.c
Señal inequívoca que el módulo se ha instala-do correctamente, es ahora cuando podemosempezar a añadir las directivas de nuestroltro o
 frewall.
Para empezar a escribir las directivas den-tro del chero de conguración del Apache de-bemos hacer lo siguiente: editamos el
httpd.conf
, podemos elegir el editor que más nosguste en nuestro caso nano –
f httpd.conf
la denición de la directiva del modse-curity será, la siguiente
<IfModules mod_se-curity.c>.
Activamos el ltro:
SecFilterEngine On
Activamos el chequeo del url, Post:
SecFilterCheckURLEncoding On
Para evitar que interera con las aplicacionesweb:
SecFilterCheckUnicodeEncoding Off
Rango de Bytes:
SecFilterForceByteRange 0 255
No permitir guardar un chero en el direc-torio
/tmp:SecUploadDir /tmpSecUploadLeepFiles Off
Sólo audita los intentos de violación del ser-vidor, con dicha opción activada, nos dejaráen el chero
audit._log
, del directorio
/usr/local/Apache/logs
. Dicho chero es muyútil para buscar desde qué dominio nos hanintentado atacar:
SecAuditEngine RelevantOnlySecAuditLog logs/audit._log
Denición de los cheros LOGS, el nivel cero(
Level 0
) es entorno de producción:
SecFilterDebugLog logs/modesec_debug_logSecFilterDebugLevel 0
Escaneo de las solicitudes POST:
SecFilterSacnPost On
Listado 1.
Comienzo de las reglas de ltrado
SecFilterSelective THE-REQUESTwget SecFilterSelective THE-REQUESTlynx SecFilterSelective THE-REQUESTtelnet SecFilterSelective THE-REQUESTssh SecFilterSelective THE_REQUEST "scp " SecFilterSelective THE_REQUEST "rcp " SecFilterSelective THE_REQUEST "curl " SecFilterSelective THE-REQUESTcd/tmp SecFilterSelective THE-REQUESTcd/var/tmp SecFilterSelective THE-REQUESTcd/dev/shm SecFilterSelective THE_REQUEST "/../../ " SecFilterSelective POST_PAYLOADSubject\:chain SecFilterSelective ARG_Bcc”.\@” </ifModule>
Figura 1.
mod_security
 
42
seguridad
Protección de servidor 
Linux+ 1/2007
Acción por defecto en caso de ltrado, niega,escribe en el log, muestra status:403:
SecFilterDefaultAction “deny, log,status:403”
Comienzo de las reglas de ltrado (ver Lis-tado 1).
SecFilterEngine
Esta directiva nos da la posibilidad de activary desactivar el ltro on/off.
SecFilterSacnPost On
Con esta directiva podemos chequear las soli-citudes POST, viene desactivado por defecto,por consiguiente la activamos.
SecFilterDefaultAction
Esta directiva sirve para denir qué acciónqueremos que se ejecute una vez que el ltroque hemos denido detecta que ha llegadouna solicitud que lo cumple.Deny : Interrumpe todos los procesos, delas solicitudes que cumple con nuestro ltro.Log : Suma una entrada en el error_log.Status:403 : Muestra la pagina 403.
SecFilterForceByteRange
Esta directriz consiste en limitar el rango deBytes de las solicitudes que se hacen a travésdel servidor Apache. La intención de esta limi-tación consiste en limitar los ataques overowattacks, por defecto todo los rangos de bytesson permitidos.
SecAuditEngine RelevantOnly
La directiva
SecAuditEngine
junto con
relevant-Only
signica que incluye sólo las solicitudesque cumplen con las condiciones de nuestroltro.
SecAuditLog
Suma una entrada en el chero logs/ audit._ log cuando se cumpla una de las condicionesdel ltro, dicha acción es muy útil para poderanalizar a través de quien nos ha venido elataque.Con la directiva
SecFilterSelective LocationKeywords
[
 Action
].Le permitirá elegir exactamente dóndese utilizará o aplicará el ltro, aquí nosotrospodremos elegir entre todas las variables delos CGI, como se puede ver en nuestro casocualquier petición que contenga las palabraswget, lynx, telnet, etc será automáticamenteltrada. Ver abajo el juego completo de ins-trucciones.Cabe especial mención a la instrucción dePOST_PAYLOAD.El signicado es la de aplicar el ltro enla localización del cuerpo de los peticionesPOST. con respecto a la instrucción Chain.El signicado es el de encadenar dos ins-trucciones, véase el ejemplo de arriba.
Reiniciamos el Apache
Una vez que hemos reiniciado el Apache yatenemos en funcionamiento nuestro ltro,dicho ltro nos protegerá de ciertos ataquesy nos permitirá saber a través de cual usua-rio se está cometiendo el ataque. Pero comohemos dicho al principio, otro de los ataquemás comunes que afectan al servidor Apa-che es el Ddos attack o negación de servi-cios, quien no ha oído hablar de que el servi-dor Apache está caído y que esa es la causade que no se vean las páginas web. El Ddosattack se produce de la siguiente manera:cuando alguien introduce el nombre de susitio web en Mozilla Firefox o en InternetExplorer y comienza a ver su página web,el servidor Apache debe abrir un procesopara atender a esa demanda, dicho procesolleva por consiguiente un uso de la CPU yde memoria del sistema. El ataque consisteen hacer muchas peticiones sobre la mismapágina durante un tiempo muy corto, lo queobligará al servidor Apache a abrir innume-rables procesos con la intención de atendera la demanda de peticiones que ha recibidodicho proceso lo que conllevará un mayorconsumo de CPU y de memoria del sistema,llegando a colapsar el servidor, una vez lle-gado a este punto, la nalidad de este ataquese ha completado, ya que se ha producidouna carencia del servicio.La manera de defenderse de esa clasede ataques sería la de crear una lista negra(“blacklist”) o tabla en la cual se guardarápor un tiempo prudencial de unos 10 segun-dos, dicha cantidad es congurable, y compa-rar si dichas IPs se encuentran en la lista negrao blacklist con las IPs de acceso. Si una vezcomparadas las IPs resulta que ya se encuentraen su Blacklist le deberá de negar el acceso alservidor Apache o si alguien intenta abrir in-numerables procesos haciendo muchas soli-citudes a la vez en un tiempo, pongamos de1 segundo, el sistema lo debería de incluir ensu blacklist y negarle el acceso también. Debe-mos mencionar otra forma de ser incluido enla blacklist, que es hacer más de 50 peticio-nes en el mismo proceso por segundo.Pues bien esta herramienta ya existe, elmódulo que lo hace posible es mod_evasive.Esta herramienta es muy útil y frena los in-tentos de ataque al servidor mediante el Ddosattack. Los pasos son los siguientes:Descargamos el mod_evasive desde
http:// www.zdziarski.com/projects/mod_evasive/ 
y des-comprimimos el chero:
tar –xzf mod_evasive
Antes de instalar el módulo es convenientehacer una copia de seguridad del archivo deconguración del servidor, por consiguienteharemos lo siguiente:
cp /usr/local/Apache/conf/httpd.conf.../usr/local/Apache/conf/httpd.conf.back
Accedemos al directorio:
cd mod_evasive*
Instalamos el mod_evasive:
/usr/local/Apache/bin/apxs –ciamod_evasive.c
Aquí debemos de editar el chero de con-guración del Apache (httpd.conf), en dichochero debemos de poder ver las siguientesinstrucciones, ver abajo:
Listado 2.
Juego completo de instrucciones
REMOTE_ADDR,REMOTE_HOST,REMOTE_USER,REMOTE_IDENT,REQUEST_METHOD, SCRIPT_FILENAME,PATH_INFO,QUERY_STRING,AUTH_TYPE,DOCUMENT_ROOT, SERVER_ADMIN,SERVER_NAME,SERVER_ADDR,SERVER_PORT,SERVER_PROTOCOL, SERVER_SOFTWARE,TIME_YEAR,TIME_MON,TIME_DAY,TIME_HOUR,TIME_MIN, TIME_SEC,TIME_WDAY,TIME,API_VERSION,THE_REQUEST,REQUEST_URI,REQUEST_ FILENAME,REQUEST_BASENAME,IS_SUBREQ
Figura 2.
mod_evasive

Activity (10)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
mdiazw1 liked this
mdiazw1 liked this
robertoangel80 liked this
robertoangel80 liked this
Gerita Fdc liked this
Jimmy Alejandro liked this
@leph liked this
rhinthra liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->