Autor Tema: Cómo se construyen los rangos de ips significado de /32 /24 CIDR y htaccess deny  (Leído 14194 veces)

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Hola a todos!! :)

Tengo una duda, me gustaría que alguien me dijera sobre estos baneos por ejemplo:

deny from 24.232.0.0/16
deny from 31.187.67.128/27
deny from 32.104.16.0/24
deny from 32.105.57.0/24
deny from 32.105.63.0/24
deny from 46.36.197.201/32
deny from 46.233.68.0/28
deny from 57.74.128.0/19
deny from 64.76.0.0/19
deny from 64.76.32.0/20
deny from 64.76.120.0/21
deny from 64.116.226.0/23
deny from 64.116.231.0/24
deny from 64.215.200.0/24
deny from 65.38.180.0/24
deny from 66.60.0.0/18

esas IPs pueden ser baneadas desde el archivo .htaccess, lo que no entiendo y no sé que significa es esto


/16
/27
/24
/32
/28

etc...

alguien me podría explicar que es eso? no entiendo esa barra y luego esos 2 números, entiendo sobre rangos enteros y rangos desde inicio a fin, pero esto que pregunto siempre tube la duda ya que no se que significa.

Por favor me pueden explicar lo más entendible posible y si ponen algún ejemplo, mejor.

Muchas gracias!!! :D :)
« Última modificación: 28 de Agosto 2022, 13:02 por César Krall »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Hola! La explicación técnica es compleja pero la menos técnica es que las ips que identifican a cada servidor en la red se identifican en rangos.  por ejemplo el rango 184.22.55.0 hasta 184.22.55.255, después del 255 seguiría con 184.22.56.0 y así sucesivamente

De cada bloque de números, sólo 2 pueden asignarse a un servidor. El primero y último quedan reservados para comunicaciones de red, lo que significa que dos números por bloque no se corresponden con un computador. Los bloques los asigna la autoridad de internet. Por ejemplo, supongamos que la autoridad de internet asigna un bloque de 16 ips al Hospital de La Fe en Caracas.

Para expresar bloques se usa el /xx de modo que:

Un bloque de 16 empezaría y se escribiría como  148.20.57.0/28

Aquí 148.20.57.0/28 significa que nos referimos a un bloque compuesto por las 16 ips siguientes: 148.20.57.0, 148.20.57.1, 148.20.57.2, 148.20.57.3, 148.20.57.4, ..., 148.20.57.15 (con esto termina el bloque, de los cuales la primera ip y la última no se pueden asignar a computadores)

Un bloque de 32 empezaría y se escribiría como  148.20.57.0/27.

Un bloque de 64 empezaría y se escribiría como  148.20.57.0/26.

Un bloque de 128 empezaría y se escribiría como  148.20.57.0/25.

Un bloque de 256 empezaría y se escribiría como  148.20.57.0/24


Supón que tienes 64.76.120.0/21 ¿qué direcciones comprende? Hacemos el cálculo por proporcionalidad

32   27
64   26
128   25
256   24
512   23
1024   22
2048   21

Comprende 2048 direcciones. Desde 64.76.120.0 hasta 64.76.120.255 tenemos 256 direcciones. Para llegar a 2048 necesitamos recorrer 8 rangos como este, por tanto comprende desde 64.76.120.0 hasta 64.76.127.255, donde el primer y el último no son computadores

Esto lo puedes hacer más fácil yendo a una web como http://jodies.de/ipcalc  e introduce los datos, en este caso introduce el 21 donde dice Network prefix length

Salu2!

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Hola amigo Ogramar!! :)

Excelente tu explicación y ejemplos, ahora una pregunta, por ejemplo si yo quisiera banear el rango 181.118.69.*, desde 181.118.69.0 hasta 181.118.69.255 debería poner así en el .htaccess?:

deny from 181.118.69.0/28

lo que yo entiendo es que cuando se usa el 28 es para banear por ejemplo como puse arriba, si pusiera 27, creo que banearía así:

deny from 181.118.69.0/27

sería igual a:

181.118.68.0 - 181.118.69.255

o quizás así:

181.118.68.1 - 181.118.69.254

es correcto lo que entendí?

lo único que veo de diferencia de usar el IP - IP, es que el /xx exceptúa la primer y última IP y además de que no va a ser necesario que tenga que poner por ejemplo así:

deny from 181.118.68.0 - 181.118.68.255
deny from 181.118.69.0 - 181.118.69.255

pero bien podría usar:

deny from 181.118.68.0 - 181.118.69.255

que sería igual.

es medio complejo entenderlo a primera.
aunque para mí es más fácil usar esto por ejemplo:

deny from 181.118.69.0 - 181.118.69.255

Muchas gracias por tu explicación y espero haberlo entendido!!! :) :)



Estoy probando formas de bloquear Proxys anónimos desde mi hosting, acabo de encontrar esto:

135.deny from .amazonaws.com #23.21.138.178

esto es válido?, si es así, buenísimo!!!, no sabía que de esa forma se podían banear hostnames, porque yo tenía pensado usar una función en PHP para hacer un DNS y poder saber el hostname de una IP usando este método:

Código: (PHP) [Seleccionar]
$Hostname = gethostbyaddr($IP);
pero me imaginé que eso podía consumir algunos recursos innecesarios.
Pero si me das OK de que eso es válido, entónces voy a banear esos host, por ejemplo este:

hosted-by.leaseweb.com

y simplemente lo dejo así:

deny from .leaseweb.com

ahora habría que ver, ya que yo en mi Log de apache solo veo las IPs numéricas y no con host resueltos, quizás haya que activar eso para que funcione en el .htaccess lo de banear a los hostnames, habría que probar...

Saludos y un gran abrazo mi estimado!!! :D
« Última modificación: 07 de Mayo 2015, 16:40 por Príncipe_Azul »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Hola, si quieres bloquear las 256 ips desde 181.118.69.0 hasta 181.118.69.255

puedes escribirlo de cualquiera de estas maneras:

Order Allow,Deny
Deny from 181.118.69.0/24
Allow from all


Order Allow,Deny
Deny from 181.118.69.
Allow from all

Sobre la primera y última ip, también quedan bloquedadas, no se debe prestar atención al detalle de primera y última ip, eso era solo para tener una idea de cómo funcionan los rangos.

No se recomienda hacer grandes bloqueos de ips desde htaccess, bloquea sólo lo que sea estrictamente preciso. Si bloqueas muchas ips puedes estar impidiendo el acceso a personas que quieran ver tu web, no sólo a los indeseables

Salu2

Príncipe_Azul

  • Principiante
  • **
  • Mensajes: 71
    • Ver Perfil
    • Foro ArgentinaIRC - Ayuda de Programación General, IRC y mIRC Scripting!
Muchas gracias amigo!!

He probado a banear un hostname desde htaccess, pero no me ha funcionado, leyendo he visto que parece que debo tener instalado y cargado el módulo mod_authz_host, pero no lo voy a poner, ya que no tengo ataques en mi VPS ni tampoco lo veo muy necesario, trato siempre de tener todo seguro para evitar entradas masivas, hasta ahora tengo muchísimas IPs maliciosas baneadas de forma automática y realmente son bots spammers y proxys.

:) Saludos y tendré en cuenta lo que me has indicado, gracias hermano! :)

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".