{"id":79,"date":"2007-01-05T20:19:28","date_gmt":"2007-01-06T01:19:28","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=79"},"modified":"2007-01-05T20:19:28","modified_gmt":"2007-01-06T01:19:28","slug":"anti-dos-y-ddos","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=79","title":{"rendered":"Anti DoS y DDoS"},"content":{"rendered":"<p>Uno de los ataques m&aacute;s cobardes y sucios que hay por los<br \/>\nsupuestos&nbsp; hackers es el ataque DoS (Denial of Service) o el peor<br \/>\nde todos el DDoS (Distributed Denial of Service)<\/p>\n<p>No hay nada de hacker en el asunto de hecho cualquiera que lo use deja<br \/>\npatente que no tiene mayores conocimientos. El Ataque DOS<br \/>\nb&aacute;sicamente es lanzar m&aacute;s conexiones a un servidor, mas<br \/>\nde las que pueda soportar. Para los servidores con ancho de banda<br \/>\nsobrados se usa DDoS que es igual pero con la ayuda de m&aacute;s<br \/>\ncomputadoras, siempre se busca saturar la capacidad de servir del<br \/>\nservidor<\/p>\n<p>Para resistir un ataque tan cobarde solo propio de los que<br \/>\ndespectivamente reciben el nombre de lamers; se ha intentado<br \/>\ndesarrollar soluciones de lo m&aacute;s variadas.<\/p>\n<p>Lo que normalmente se hace cuando se recibe un ataque es apagar el<br \/>\nservicio, pero si usamos un poco de l&oacute;gica eso es todo menos una<br \/>\nsoluci&oacute;n, tomando en cuenta que el prop&oacute;sito de un DoS es<br \/>\nuna \u201cNEGACION DE SERVICIO?? al apagar el servicio atacado estamos<br \/>\nrealmente contribuyendo a que el ataque sea exitoso. Por lo que se debe<br \/>\nencontrar otras soluciones y que el servicio se mantenga en<br \/>\nl&iacute;nea a pesar del DoS<\/p>\n<p>Una de las soluciones mas vers&aacute;tiles es mod_evasive y es que<br \/>\neste es un modulo instalable en el apache que puede filtrar con su<br \/>\npropia tabla de ips ataques DoS y si el ataque se vuelve muy pesado y<br \/>\nagresivo como un DDoS puede lanzar comandos iptables para filtrar las<br \/>\nips a nivel Kernel, de esta manera bloquea a los que atacan al servidor<br \/>\npero sigue en l&iacute;nea y sirviendo a los clientes leg&iacute;timos.<br \/>\n<br \/>\nmod_evasive se puede descargar de:<br \/>\nhttp:\/\/www.zdziarski.com\/projects\/mod_evasive\/mod_evasive_1.10.1.tar.gz<\/p>\n<p>\nDentro viene instrucciones para instalarlo y un script de prueba.<\/p>\n<p>A continuaci&oacute;n un ejemplo y su explicaci&oacute;n para la<br \/>\nconfiguraci&oacute;n de apache en el httpd.conf y adem&aacute;s un<br \/>\nvideo que muestra el funcionamiento de este modulo:<\/p>\n<p>&lt;IfModule mod_evasive20.c&gt;<br \/>\nDOSHashTableSize 3097<br \/>\nDOSPageCount 2<br \/>\nDOSSiteCount 50<br \/>\nDOSPageInterval 1<br \/>\nDOSSiteInterval 1<br \/>\nDOSBlockingPeriod 10<br \/>\n&lt;\/IfModule&gt;<\/p>\n<p>Repasemos alguno de los par&aacute;metros m&aacute;s importantes que<br \/>\npodemos incluir en la directiva:<\/p>\n<p>&nbsp;&nbsp;&nbsp; * DOSHashTableSize &lt;valor&gt; &#8211; Establece el<br \/>\nn&uacute;mero de nodos a almacenar para cada proceso de peticiones de<br \/>\nla tabla hash (contenedor asociativo de recuperaci&oacute;n de<br \/>\npeticiones por medio de claves que agiliza las respuestas del<br \/>\nservidor). Si aplicamos un n&uacute;mero alto a este par&aacute;metro<br \/>\nobtendremos un rendimiento mayor, ya que las iteraciones necesarias<br \/>\npara obtener un registro de la tabla son menores. Por contra, y de<br \/>\nforma evidente, aumenta el consumo de memoria necesario para el<br \/>\nalmacenamiento de una tabla mayor. Se hace necesario incrementar este<br \/>\npar&aacute;metro si el servidor atiende un n&uacute;mero abultado de<br \/>\npeticiones, aunque puede no servir de nada si la memoria de la<br \/>\nm&aacute;quina es escasa.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSPageCount &lt;valor&gt; &#8211; Indica el valor del<br \/>\numbral para el n&uacute;mero de peticiones de una misma p&aacute;gina<br \/>\n(o URI) dentro del intervalo definido en DOSPageInterval. Cuando el<br \/>\nvalor del par&aacute;metro es excedido, la IP del cliente se<br \/>\na&ntilde;ade a la lista de bloqueos.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSSiteCount &lt;valor&gt; &#8211; Cuenta cu&aacute;ntas<br \/>\npeticiones de cualquier tipo puede hacer un cliente dentro del<br \/>\nintervalo definido en DOSSiteInterval. Si se excede dicho valor, el<br \/>\ncliente queda a&ntilde;adido a la lista de bloqueos.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSPageInterval &lt;valor&gt; &#8211; El intervalo, en<br \/>\nsegundos, para el umbral de petici&oacute;n de p&aacute;ginas.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSSiteInterval &lt;valor&gt; &#8211; El intervalo, en<br \/>\nsegundos, para el umbral de petici&oacute;n de objetos de cualquier<br \/>\ntipo.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSBlockingPeriod &lt;valor&gt; &#8211; Establece el<br \/>\ntiempo, en segundos, que un cliente queda bloqueado una vez que ha sido<br \/>\na&ntilde;adido a la lista de bloqueos. Como ya se indic&oacute; unas<br \/>\nl&iacute;neas atr&aacute;s, todo cliente bloqueado recibir&aacute; una<br \/>\nrespuesta del tipo 403 (Forbidden) a cualquier petici&oacute;n que<br \/>\nrealice durante este periodo.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSEmailNotify &lt;e-mail&gt; &#8211; Un e-mail<br \/>\nser&aacute; enviado a la direcci&oacute;n especificada cuando una<br \/>\ndirecci&oacute;n IP quede bloqueada. La configuraci&oacute;n del<br \/>\nproceso de env&iacute;o se establece en el fichero mod_evasive.c de la<br \/>\nforma \/bin\/mail -t %s, siendo %s el par&aacute;metro que queda<br \/>\nconfigurado en este par&aacute;metro. Ser&aacute; necesario cambiar el<br \/>\nproceso si usamos un m&eacute;todo diferente de env&iacute;o de e-mails<br \/>\ny volver a compilar el m&oacute;dulo con apxs (por ejemplo, la<br \/>\nopci&oacute;n t ha quedado obsoleta en las &uacute;ltimas versiones del<br \/>\ncomando).<br \/>\n&nbsp;&nbsp;&nbsp; * DOSSystemCommand &lt;comando&gt; &#8211; El comando<br \/>\nreflejado se ejecutar&aacute; cuando una direcci&oacute;n IP quede<br \/>\nbloqueada. Se hace muy &uacute;til en llamadas a herramientas de<br \/>\nfiltrado o firewalls. Usaremos %s para especificar la direcci&oacute;n<br \/>\nIP implicada. Por ejemplo, podemos establecer su uso con iptables de la<br \/>\nforma siguiente:<\/p>\n<p>DOSSystemCommand \u201c\/sbin\/iptables \u2013I INPUT \u2013p tcp \u2013dport 80 \u2013s %s \u2013j<br \/>\nDROP??<\/p>\n<p>&nbsp;&nbsp;&nbsp; * DOSLogDir &lt;ruta&gt; &#8211; Establece una ruta para<br \/>\nel directorio temporal. Por defecto, dicha ruta queda establecida en<br \/>\n\/tmp, lo cual puede originar algunos agujeros de seguridad si el<br \/>\nsistema resulta violado.<br \/>\n&nbsp;&nbsp;&nbsp; * DOSWhitelist &lt;IP&gt; &#8211; La direcci&oacute;n IP<br \/>\nindicada como valor del par&aacute;metro no ser&aacute; tenida en<br \/>\ncuenta por el m&oacute;dulo en ning&uacute;n caso. Para cada<br \/>\ndirecci&oacute;n IP a excluir ha de a&ntilde;adirse una nueva<br \/>\nl&iacute;nea con el par&aacute;metro. Por ejemplo, dejaremos fuera del<br \/>\nchequeo del m&oacute;dulo a un posible bot que use los siguientes<br \/>\nrangos de direcciones:<\/p>\n<p><object width=\"425\" height=\"350\"><param name=\"movie\" value=\"http:\/\/www.youtube.com\/v\/NqMoNGufHRM\"><\/param><embed src=\"http:\/\/www.youtube.com\/v\/NqMoNGufHRM\" type=\"application\/x-shockwave-flash\" width=\"425\" height=\"350\"><\/embed><\/object><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uno de los ataques m&aacute;s cobardes y sucios que hay por los supuestos&nbsp; hackers es el ataque DoS (Denial of Service) o el peor de todos el DDoS (Distributed Denial of Service) No hay nada de hacker en el asunto de hecho cualquiera que lo use deja patente que no tiene mayores conocimientos. El Ataque&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-79","post","type-post","status-publish","format-standard","hentry","category-consultoria-y-manuales"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/79","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=79"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/79\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=79"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=79"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=79"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}