elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  [iptables] No logro sacar los paquetes de la eth1 a la eth0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [iptables] No logro sacar los paquetes de la eth1 a la eth0  (Leído 4,791 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
[iptables] No logro sacar los paquetes de la eth1 a la eth0
« en: 22 Septiembre 2013, 05:08 am »

Buenas.

No logro comunicar mi red con el router ISP, por lo tanto no tengo navegación a Internet. El escenario que tengo es el siguiente:

Servidor con Firewall, DHCP (dnsmasq) y Squid (proxy web).
- eth0 --> con ip:192.168.1.1 conectada al router ISP (192.168.1.254).
- eth1 --> con ip: 10.0.1.1 conectada al switch (red lan).
- todo pasa por este server.
- el Router esta fuera del alcance (de forma directa) ya que los paquetes pasan por el server.
- hasta ahorita NO consigo navegacion en internet.
- para lograr navegar debo poner un cable del el router al switch, pero esto no es optimo no lo que quiero, ya que algun listo puede colocarse un IP estatico con Gateway 192.168.1.254 y se brincaria mi proxy web (squid).

Y la configuración (reglas) de mi firewall son:

Código:
	iptables -F
        iptables -X
        iptables -Z
        iptables -t nat -F

        # politicas por defecto
        iptables -P INPUT ACCEPT                # aceptamos entradas
        iptables -P OUTPUT ACCEPT               # aceptamos salidas
        iptables -P FORWARD ACCEPT              # aceptamos reenvios
        iptables -t nat -P PREROUTING ACCEPT    # aceptamos nat hacia fuera
        iptables -t nat -P POSTROUTING ACCEPT   # aceptamos nat hacia dentro
        echo 1 > /proc/sys/net/ipv4/ip_forward  # habilitamos BIT de reenvios

        iptables -A INPUT -i lo -j ACCEPT # localhost aceptar todo
        iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT                         # ftp y ssh
        iptables -A INPUT -p tcp --dport 80 -j ACCEPT                            # http
        iptables -A INPUT -p tcp --dport 443 -j ACCEPT                           # https
        iptables -A INPUT -p tcp --dport 53 -j ACCEPT                            # dns - dhcp
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 111 -j ACCEPT                           # portmapper/rpcbind
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 137:139 -j ACCEPT                       # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 445 -j ACCEPT                           # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3128 -j ACCEPT                          # squid
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3130 -j ACCEPT                          # squid cache
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 2049 -j ACCEPT                          # nfs
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 5038 -j ACCEPT                          # asterisk
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 1000 -j ACCEPT                          # webmind para LAN

       # forwardnig
        iptables -A FORWARD -p tcp --dport 20:22 -j ACCEPT                       # ftp y ssh
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 53 -j ACCEPT                          # dns - dhcp
        iptables -A FORWARD -s 10.0.1.0/24 -p udp --dport 53 -j ACCEPT                          # dns -dhcp (udp)
        iptables -A FORWARD -p tcp --dport 80 -j ACCEPT                          # http
        iptables -A FORWARD -p tcp --dport 443 -j ACCEPT                         # https
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 111 -j ACCEPT                         # portmapper/rpcbind
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 137:139 -j ACCEPT                     # samba
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 445 -j ACCEPT                         # samba
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 3128 -j ACCEPT                        # squid
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 3130 -j ACCEPT                        # squid cache
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 2049 -j ACCEPT                        # nfs
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 5038 -j ACCEPT                        # asterisk
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 1000 -j ACCEPT                        # webmind para LAN

        iptables -A FORWARD -s 10.0.1.0/24 -d 192.168.1.0/24 -j ACCEPT
        iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.1.0/24 -j ACCEPT

        # enmascaramiento
        iptables -A OUTPUT -j ACCEPT
        iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
        iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j SNAT --to 192.168.1.1
        iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE     # todo lo que salga de la red, se enmascara
        # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -s 10.0.1.0/24 -j REDIRECT --to-port 3128


       # denegaciones
        iptables -A INPUT -p tcp --dport 1000 -j DROP                           # denegar webmind
        iptables -A INPUT -p tcp --dport 1:1024 -j DROP                         # cerrar puertos privados
        iptables -A FORWARD -p tcp --dport 1000 -j DROP                         # denegar webmind
        iptables -A FORWARD -j DROP                                             # degenamos lo demas


« Última modificación: 22 Septiembre 2013, 05:12 am por Diabliyo » En línea

Epzylon

Desconectado Desconectado

Mensajes: 103



Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #1 en: 22 Septiembre 2013, 14:30 pm »

Estoy analizando el problema, y aún no termino,
pero fijate que esta regla nunca se va a cumplir:
 iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE 
Ya que la regla anterior  (la del Source Nat - SNAT) le gana por precedencia.
Sigo analizando, pero mientras fijate ese tema.

post date: Para analizar donde estan pasando tus paquetes, utiliza:
iptables -L -n -v
Esto te muestra la cantidad paquetes y bytes que cada regla procesa, de esa manera podes ir detectando errores.


« Última modificación: 22 Septiembre 2013, 14:34 pm por Epzylon » En línea

Epzylon

Desconectado Desconectado

Mensajes: 103



Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #2 en: 22 Septiembre 2013, 15:04 pm »

Mis comentarios:

Código:
	iptables -F
        iptables -X
        iptables -Z
        iptables -t nat -F

        # politicas por defecto
        iptables -P INPUT ACCEPT                # aceptamos entradas
        iptables -P OUTPUT ACCEPT               # aceptamos salidas
        iptables -P FORWARD ACCEPT              # aceptamos reenvios
        iptables -t nat -P PREROUTING ACCEPT    # aceptamos nat hacia fuera
        iptables -t nat -P POSTROUTING ACCEPT   # aceptamos nat hacia dentro
        echo 1 > /proc/sys/net/ipv4/ip_forward  # habilitamos BIT de reenvios

        iptables -A INPUT -i lo -j ACCEPT # localhost aceptar todo
        iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT                         # ftp y ssh
        iptables -A INPUT -p tcp --dport 80 -j ACCEPT                            # http
        iptables -A INPUT -p tcp --dport 443 -j ACCEPT                           # https
        iptables -A INPUT -p tcp --dport 53 -j ACCEPT                            # dns - dhcp
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 111 -j ACCEPT                           # portmapper/rpcbind
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 137:139 -j ACCEPT                       # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 445 -j ACCEPT                           # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3128 -j ACCEPT                          # squid
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3130 -j ACCEPT                          # squid cache
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 2049 -j ACCEPT                          # nfs
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 5038 -j ACCEPT                          # asterisk
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 1000 -j ACCEPT                          # webmind para LAN

       # forwardnig
        iptables -A FORWARD -p tcp --dport 20:22 -j ACCEPT                       # ftp y ssh
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 53 -j ACCEPT                          # dns - dhcp
        iptables -A FORWARD -s 10.0.1.0/24 -p udp --dport 53 -j ACCEPT                          # dns -dhcp (udp)
        iptables -A FORWARD -p tcp --dport 80 -j ACCEPT                          # http
        iptables -A FORWARD -p tcp --dport 443 -j ACCEPT                         # https
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 111 -j ACCEPT                         # portmapper/rpcbind
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 137:139 -j ACCEPT                     # samba
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 445 -j ACCEPT                         # samba
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 3128 -j ACCEPT                        # squid
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 3130 -j ACCEPT                        # squid cache
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 2049 -j ACCEPT                        # nfs
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 5038 -j ACCEPT                        # asterisk
        iptables -A FORWARD -s 10.0.1.0/24 -p tcp --dport 1000 -j ACCEPT                        # webmind para LAN
Hasta aquí sin dudas.

 Si tu red esta en la 10.0.1.0/24, y has configurado a todas las PCs como puerta de enlace la ip de tu server (192.168.1.1),
deberias borrar las siguientes lineas:
Código:
         iptables -A FORWARD -s 10.0.1.0/24 -d 192.168.1.0/24 -j ACCEPT
         iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.1.0/24 -j ACCEPT

        # enmascaramiento
y agregar la siguiente:
Código:
        iptables -A FORWARD -s 10.0.1.0/24 -d 0.0.0.0/0 -j ACCEPT
Ya que los paquetes irán con IP de destino públicas, no las de tu router.

La siguiente linea esta demás, ya que el policy de OUTPUT es ACCEPT
Código:
        iptables -A OUTPUT -j ACCEPT


Por otro lado esta última parte quedaría mejor así:

Código:

        iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
        iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE     # todo lo que salga de la red, se enmascara

Otas aclaraciones:
- El puerto del webmin es 10000 no 1000, debe ser un error de tipeo seguro
- Conviene que establezcas la policy de FORWARD en DROP y no que utilices una regla al final de todo.
- Si alguien quiere acceder al webmin de algún otro servidor no va a poder por que denegas el forward del puerto 10000 (suponiendo que
es un error de tipeo) y no es necesario hacerlo.
 
Por lo que la siguiente parte yo la dejaría así
Código:
       # denegaciones
        iptables -A INPUT -p tcp --dport 10000 -j DROP                           # denegar webmind
        iptables -A INPUT -p tcp --dport 1:1024 -j DROP                         # cerrar puertos privados
y cambiaria arriba de todo esta policy
Código:
 iptables -P FORWARD DROP              # denegamos reenvios


Espero que me entiendas, y espero que pruebes mis recomendaciones y me digas los resultados.
Por otro lado, si a tu respuesta le agregas la salida de lo siguiente sería fantástico:
Código:
iptables -L -n -v 
iptables -L -n -v -t nat

Saludos

En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #3 en: 22 Septiembre 2013, 17:53 pm »

Yo lo primero que haria es arreglar el script, tienes reglas repetidas, y cosas sin sentido alguno.

Tienes la cadena de INPUT en ACCEPT y las reglas que estableces estan tambien en ACCEPT, eso no tiene mucho sentido no? Y en la denegacion igual del puerto 1 al 1024, no seria mejor poner la politica de INPUT en DROP y abrir lo que quieras?

FORWARD mas de lo mismo.

Y voy al problema, a ver si lo entiendo, tienes las maquinas conectadas en eth1 cierto? lo que quieres es que eth1 pase las conexiones a eth0 el router del ISP no? Y luego todo lo que entre por eth0 lo envie a eth1, no?

Te pongo un ejemplo:

eth0 es la direccion publica, y la eth1 192.168.10.1.

Imaginate que en la red interna tengo una maquina que hace de servidor http.

Código:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.10.45:80

Pretendes algo como eso? Si no explicalo mejor.

Un saludo.
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #4 en: 23 Septiembre 2013, 03:59 am »

Para CPU2....

Tienes razon sobre las reglas INPUT y FORWARD, debo quitar las lineas:

Código:
        iptables -P INPUT ACCEPT                # aceptamos entradas
        iptables -P FORWARD ACCEPT              # aceptamos reenvios

Por estas:

Código:
        iptables -P INPUT DROP               # aceptamos entradas
        iptables -P FORWARD DROP              # aceptamos reenvios

Lo que veo es que usted no ha entendido mi esquema de red.

Mi eth0 tiene ip estatica: 192.168.1.1 y va conectado al router (ip del router 192.168.1.254).
La eth1 tiene ip estatica 10.0.1.1 y como ve es un segmento distinto.

El sever asigna IPs a mi red local (switch) usando el rango: 10.0.1.2 al 10.0.1.254.

Citar
Y voy al problema, a ver si lo entiendo, tienes las maquinas conectadas en eth1 cierto? lo que quieres es que eth1 pase las conexiones a eth0 el router del ISP no? Y luego todo lo que entre por eth0 lo envie a eth1, no?

Asi es, la eth1 recibe los paquetes y debe pasarlo a la eth0 que despues son pasados al router. Despues las respuestas son puestas en eth0 y sacarlas por eth1 al equipo que demanda el servicio.

Checa mis reglas....



Para Epzylon....

Citar
Si tu red esta en la 10.0.1.0/24, y has configurado a todas las PCs como puerta de enlace la ip de tu server (192.168.1.1),

En mi DHCP  (dnsmasq) tengo configurado para que el gateway que se asigne a los equipos sera la IP de la eth1 (10.0.1.1), ya que la eth0 (192.168.1.1) se supone sera inaccesible para el segmento 10.0.1.0/24.

La eth1 (10.0.1.1) va conectada al switch.
La eth0 (192.168.1.1) va conectada al router.
Al router nadie se conecta, solo el Server.
Al switch se conectan todos los equipos y la eth1 del server.

Asumiendo que el gateway de mi equipos de red es la ip 10.0.1.1, deberia eliminar las reglas estas ????:
Código:
         iptables -A FORWARD -s 10.0.1.0/24 -d 192.168.1.0/24 -j ACCEPT
         iptables -A FORWARD -s 192.168.1.0/24 -d 10.0.1.0/24 -j ACCEPT

Y tienes razon sobre webmind,, puse 1000 cuando debe ser 10000... Corregire esto xD

Voy a verificar tus consejos en las reglas del iptables, mas tarde les doy mis resultados !

Saludos !
« Última modificación: 23 Septiembre 2013, 04:31 am por Diabliyo » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #5 en: 23 Septiembre 2013, 23:15 pm »

CPU2 estuve haciendo pruebas y al final veo que no es bueno ponerlas en DROP, porque si ponemos a DROP y despues declaro:

Código:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

Aun asi no tendria conexion a internet, ya que los navegadores cuando se conectan a un puerto 80, usan un puerto de ORIGEN distinto al que se pretenden conectar (Leer NAT y PAT), por lo cual el navegador se queda pensando eternamente.

Es mejor usarlas en ACCEPT, hacer las denegaciones a mano.

Saludos !
En línea

xv0


Desconectado Desconectado

Mensajes: 1.027



Ver Perfil
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #6 en: 24 Septiembre 2013, 00:33 am »

Normal que no funcione, no dejas paso a conexiones ya establecidas y relacionadas.

Código:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Aun asi no tendria conexion a internet, ya que los navegadores cuando se conectan a un puerto 80, usan un puerto de ORIGEN distinto al que se pretenden conectar

Hay tiene el porque de esa regla.

Un saludo.

P.D: Ya solucionaste el problema del NAT, dijiste que verificarias las reglas y aun no dijiste nada.
En línea

Epzylon

Desconectado Desconectado

Mensajes: 103



Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #7 en: 24 Septiembre 2013, 03:27 am »

Si yo tendría que hacer tu script lo haría así:
Código:
	iptables -F
        iptables -X
        iptables -Z
        iptables -t nat -F

        # politicas por defecto
        iptables -P INPUT DROP               
        iptables -P OUTPUT ACCEPT             
        iptables -P FORWARD DROP             
        iptables -t nat -P PREROUTING DROP   
        iptables -t nat -P POSTROUTING DROP   
        echo 1 > /proc/sys/net/ipv4/ip_forward  # habilitamos BIT de reenvios

        iptables -A INPUT -i lo -j ACCEPT # localhost aceptar todo

        iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT                         # ftp y ssh
        iptables -A INPUT -p tcp --dport 80 -j ACCEPT                            # http
        iptables -A INPUT -p tcp --dport 443 -j ACCEPT                           # https
        iptables -A INPUT -p tcp --dport 53 -j ACCEPT                            # dns - dhcp
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 111 -j ACCEPT                           # portmapper/rpcbind
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 137:139 -j ACCEPT                       # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 445 -j ACCEPT                           # samba
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3128 -j ACCEPT                          # squid
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 3130 -j ACCEPT                          # squid cache
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 2049 -j ACCEPT                          # nfs
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 5038 -j ACCEPT                          # asterisk
        iptables -A INPUT -s 10.0.1.0/24 -p tcp --dport 1000 -j ACCEPT                          # webmind para LAN

       # forwarding
       # Podría ser mas restrictivo, pero de principio con esto va a andar mejor
        iptables -A FORWARD -s 10.0.1.0/24 -d 0.0.0.0/0 -j ACCEPT
     

       #NAT
       iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 10.0.1.1:3128 # Aca tenias la ip del router en lugar de la del squid!!!
       iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -d 0.0.0.0/0 -j MASQUERADE     # todo lo que salga de la red, se enmascara
     
       
Post data: no lo probé, pero haceme el favor, debría salir andando!
En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: [iptables] No logro sacar los paquetes de la eth1 a la eth0
« Respuesta #8 en: 24 Septiembre 2013, 16:29 pm »

Estoy pendiente en verificar las reglas NAT y esta que me acaba de mencionar CPU2, ya que anteriormente no tenia ping hacia el router, ni del server ni de cualquier equipo..

Y les comento que el fallo era el cable de red que conectada del server (eth0) al router.....

Ahora que ya tengo el servicio funcionando y el router conectado unicamente a la eth0 del server, estoy por empezar a revisar con lupa las reglas.

Antes me lei un tuto sobre NAT en netfilter porque andaba un poco liado con el SNAT, DNAT, PREROUT y POSTROUT...

Mas tarde les paso mis comentarios y dudas !

Saludos !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no logro sacar las direcciones mac de las ip de mi red lan de area local ......
Hacking
dmx-anonimo 6 8,284 Último mensaje 25 Diciembre 2009, 18:43 pm
por UnknownCnR
LSSR en paquetes salientes con iptables
GNU/Linux
desikoder 5 2,822 Último mensaje 18 Julio 2014, 23:15 pm
por xv0
ARP Spoofing y DROP de paquetes en IPTables.
Redes
SKalextric 5 3,393 Último mensaje 17 Abril 2015, 11:27 am
por Quitisomes
Ayuda con iptables aceptar paquetes de la red lan
GNU/Linux
WIитX 4 2,345 Último mensaje 25 Mayo 2017, 17:20 pm
por dato000
enrutar eth1 y eth0
GNU/Linux
ceibe 3 4,813 Último mensaje 21 Enero 2022, 18:27 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines