[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rango de direccions ipchains



El Fri, Nov 09, 2001 at 05:22:35PM -0600, Lemus Moreno Jose A dijo:

> 
> Saludos, con otra duda.
> 
> Como puedo hacer para dar un rango de ip con ipchains, esto es si yo
> quiero denegar o aceptar por ejemplo de la xxx.xxx.xxx.1 a la
> xxx.xxx.xxx.153, o este tipo de manipulacion es con la mascara nada mas.
> 
> Para ser mas claro yo dijo
> 
> ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.1 -p TCP -j REJECT

Ante todo una pregunta: ¿por qué 192.168.1.0/0? 
¿Qué rango de ips quieres capturar aquí? 
x.x.x.x/0 es equivalente a poner 0/0, o sea, cualquier ip. 
Si quisieras capturar los paquetes que provengan de tu LAN, definida, supongamos, como de clase de C (255.255.255.0 de máscara de red), la expresión que deberías utilizar sería 192.168.1.0/24.

> 
> ahi es donde no se como decirle que quiero desde la 1 hasta la 153 puesto
> que no se que mascara tenga el rango de ips que quiero denegar o aceptar
> sea el caso.
> 

No te basta con una sola regla, que case con el rango que tú quieres, necesitas ir separando usando potencias de 2.

Utilizando la herramienta netmask:

netman@apolo:~$ netmask 10.10.10.1:10.10.10.153
     10.10.10.1/32
     10.10.10.2/31
     10.10.10.4/30
     10.10.10.8/29
     10.10.10.16/28
     10.10.10.32/27
     10.10.10.64/26
     10.10.10.128/28
     10.10.10.144/29
     10.10.10.152/31
			
Serían 10 reglas REJECT, como la que escribes arriba.Pero tengo otra sugerencia:

	ACCEPT	10.10.10.0/32
	REJECT	10.10.10.1/25
	REJECT	10.10.10.128/28
	REJECT	10.10.10.144/29
	REJECT	10.10.10.152/31

Con lo que bastarían 5 reglas. 

En lo que sigue hasta el final, trato de explicar cómo calculo yo a mano estos valores:

ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.0/32 -p tcp -j ACCEPT 

Supongo que las que no rechazas las aceptarías... De todas formas me queda la duda: ¿por qué sí aceptas la x.x.x.0 y no las otras? Un host no puede tener una dirección de red.

ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.1/25 -p tcp -j REJECT 
Rechaza desde la 1 hasta la 127. La ip xxx.xxx.xxx.0 no entraría aquí, porque se aceptaría usando la regla anterior. 
¿Por qué /25? Con /24 pillarías desde la 0 hasta la 255, 256 ips; al añadir un bit más, lo que haces es obtener un rango de la mitad de ips, 128, concretamente desde la 0 hasta la (255+1) /2 - 1 = 127.

ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.128/28 -p tcp -j REJECT 
Rechaza desde la 128 hasta la 143, un total de 16 ips.
¿Por qué /28? Con /26 obtendrías 64 ips; con /27, 32 ips; y por fin, con /28, la ventana de 16 ips.

ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.144/29 -p tcp -j REJECT 
Esto rechaza desde la 144 hasta la 144+7=151, 8 ips en total.

Y por último:

ipchains -A input -s 192.168.1.0/0 -d xxx.xxx.xxx.152/31 -p tcp -j REJECT 
rechaza tanto la xxx.xxx.xxx.152 como la xxx.xxx.xxx.153.

Espero que te haya quedado más o menos claro; me resulta mucho más fácil calcularlo que explicar cómo lo he hecho.

Salu2, Miguel aka Netman.

-- 
Un fracasado es un hombre que ha cometido un error pero que no es capaz de
convertirlo en experiencia.
                -- Elbert Hubbard. (1856-1915) Ensayista estadounidense.
		
Powered by Debian GNU/LiNUX sid, potato - Kernels 2.4.14, 2.2.20



Reply to: