# [SOLUCIONADO] Iptables + Squid... algo me falla, ayuda

## Diabliyo

Hola:

Tengo un cybercafe con 10 PCs cliente y 1 PC Servidor, todos los equipos de la red usan Gentoo.

La estructuracion de la red es la siguiente:

Las 10PCs del cyber, se conectan via red a un switch, las PCs usan una IP estatica asi:

PC1

IP: 192.168.2.2

Netmask: 255.255.255.0

Gateway: 192.168.2.1

El PC Servidor posee dos interfaces de red:

eth0, esta interface se conecta al Router (internet).

IP: 192.168.1.1

Netmask: 255.255.255.0

Gateway: 192.168.1.254

eth1, esta interface se conecta al sqitch (red lan).

IP: 192.168.2.1

Netmask: 255.255.255.0

Esto es lo que uso en mi configuracion de la red dentro del sistema gentoo de mi servidor.

```
shell# cat /etc/conf.d/net

modules=("ifconfig")

config_eth0=( "192.168.1.1 netmask 255.255.255.0" )

routes_eth0=( "default via 192.168.1.254" )

config_eth1=( "192.168.2.1 netmask 255.255.255.0" )

shell# ls -l /etc/init.d/ |grep net

net.lo

net.eth0 -> net.lo

net.eth1 -> net.lo

```

La configuracion de los /etc/resolv.conf[/n] de clientes y servidor.

```
//en todos los clientes esta asi:

shell# cat /etc/resolv.conf

nameserver 192.168.2.1

//en el servidor

shell# cat /etc/resolv.conf

nameserver 192.168.1.254
```

De esta forma mis tarjetas de red obtienen IP al iniciar el sistema... Hasta qui [b]todo OK.

El Squid

El squid lo utilizo para delimitar el consumod el ancho de banda, accesos a sitios y limitar descargas. Utilizo el siguiente script:

```
shell# cat /etc/squid/squid.conf

#Lista de Control de acceso

acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

acl inocentes url_regex "/etc/squid/sitios_inocentes"

acl listaextenciones urlpath_regex "/etc/squid/listaextenciones"

acl all src 0.0.0.0/0.0.0.0

acl sie_center src 192.168.1.1 192.168.2.0/255.255.255.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl to_localhost dst 127.0.0.0/255.255.255.0

acl SSL_ports port 443

acl Safe_ports port 80      # http

acl Safe_ports port 20      # ftp

acl Safe_ports port 21      # ftp

acl Safe_ports port 22      # ssh

acl Safe_ports port 53      # domain

acl Safe_ports port 443      # https

acl Safe_ports port 2049   # nfs

acl Safe_ports port 3130   # squid cache

acl Safe_ports port 3128   # squid

acl CONNECT method CONNECT

#Acceso http

http_access allow manager localhost

http_access allow sie_center !sitiosdenegados !listaextenciones

http_access allow all inocentes

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny all

icp_access allow all

# Puerto de Squid

http_port 3128 transparent

#Delay pools

delay_pools 1

delay_class 1 1

delay_parameters 1 20480/65000 20480/65000 20480/65000

acl formatos urlpath_regex "/etc/squid/listaextenciones2"

acl sitios_limitados url_regex "/etc/squid/sitios_limitados"

delay_access 1 allow sie_center formatos sitios_limitados

#We recommend you to use at least the following line.

hierarchy_stoplist cgi-bin ?

#Dimencion memoria cache y directorio

cache_mem 256 MB

cache_dir ufs /mnt/squid 700 16 256

cache_mgr darkdiabliyo@gmail.com

#Squid Log

access_log /var/log/squid/access.log squid

#Cache Log

cache_log /var/log/squid/cache.log

#Opciones de Tuenleo de Cache

acl QUERY urlpath_regex cgi-bin \?

cache deny QUERY

refresh_pattern ^ftp:      1440   20%   10080

refresh_pattern ^gopher:   1440   0%   1440

refresh_pattern .      0   20%   4320

#Apache service

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

#Puerto de Cache

icp_port 3130

#Error direcotry

error_directory /usr/share/squid/errors/Spanish

#Core Log

coredump_dir /var/cache/squid/
```

Firewall

Para sacar la informacion que provenga hacia y de mi interface eth1 (red lan), tambien para redirigir la informacion que provenga por el puerto 80 hacia el puerto del squid, por lo tanto utilizo el siguiente script:

```
shell# cat /etc/init.d/firewall

#!/bin/sh

# Script para firewall

# Coder: Diabliyo <darkdiabliyo@gmail.com>

# Date 20-11-08

#start firewall

firewall_start()

   {

   iptables -F   #limpiamos reglas

   iptables -Z   #limpiamos reglas de zero

   iptables -X   #limpiamos reglas individuales

   iptables -t nat -F   #limpiamos reglas de nateo

   iptables -P INPUT ACCEPT   #politica de aceptar entradas

   iptables -P OUTPUT ACCEPT   #politica de aceptar salida

   iptables -P FORWARD ACCEPT   #politica de aceptar re-envios

   iptables -t nat -P PREROUTING ACCEPT   #politica de acceptas envio de nat (entrada y salida)

   iptables -t nat -P POSTROUTING ACCEPT   #politica de aceptar re-envio de nat (entrada y salida)

   iptables -t nat -P OUTPUT ACCEPT #politica de salida de nat

   echo 1 > /proc/sys/net/ipv4/ip_forward   #habilitamos forward en el sistema

   #regla para localhost

   iptables -A INPUT -i lo -j ACCEPT

   #reglas de puertos para interfaces eth0

   iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT #http

   iptables -A INPUT -i eth0 -p udp --dport 80 -j ACCEPT #http

   iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT #squid

   iptables -A INPUT -i eth0 -p udp --dport 3128 -j ACCEPT #squid

   iptables -A INPUT -i eth0 -p tcp --dport 3130 -j ACCEPT #squid cache

   iptables -A INPUT -i eth0 -p udp --dport 3130 -j ACCEPT #squid cache

   iptables -A INPUT -i eth0 -p tcp --dport 1:1024 -j DROP #cerramos puertos privados que no tengan regla o politica

   #reglas de puertos para interfaces eth1

   iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT #http

   iptables -A INPUT -i eth1 -p udp --dport 80 -j ACCEPT #http

   iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT #squid

   iptables -A INPUT -i eth1 -p udp --dport 3128 -j ACCEPT #squi

   iptables -A INPUT -i eth1 -p tcp --dport 3130 -j ACCEPT #squid cache

   iptables -A INPUT -i eth1 -p udp --dport 3130 -j ACCEPT #squid cache

   iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP #cerramos puertos privados

   iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE   #enmascaramos eth0

   iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE   #enmascaramos eth1

   #lo que venga por eth1 al 80 se pasa al eth0 por 3128 (squid)

   iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128

   #lo que venga por el eth0 (internet) por el 80, se redirecciona al 3128

   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

   iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

   iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

   iptables -A INPUT -i eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

   iptables -A INPUT -i eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

   iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT

   iptables -A OUTPUT -o eth1 -p tcp --sport 3128 -j ACCEPT

   iptables -A OUTPUT -o eth0 -j ACCEPT

   iptables -A OUTPUT -o eth1 -j ACCEPT

   #accesos indeseados

   #iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP

   #iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP

   

   echo "[IPTABLES] Firewall Iniciado..."

   }

#stop firewall

firewall_stop()

   {

   iptables -F   #limpiamos reglas

   iptables -Z   #limpiamos reglas de zero

   iptables -X   #limpiamos reglas individuales

   iptables -t nat -F   #limpiamos reglas de nateo

   echo 0 > /proc/sys/net/ipv4/ip_forward

   echo "[IPTABLES] Firewall Detenido..."

   }

#restart firewall

firewall_restart()

   {

   firewall_stop

   sleep 1

   firewall_start

   }

case "$1" in

'start')

   firewall_start

   ;;

'stop')

   firewall_stop

   ;;

'restart')

   firewall_restart

   ;;

*)

echo "Uso: $0 start|stop|restart"

esac
```

El Problema es que mis equipos cliente no acceden a internet, bueno, mas especificamente realize las siguientes pruebas, por favor observen los resultados.

1- En mi servidor realize ping a google.com para identificar el ip de la pagina de google.

```
shell# ping google.com

PING google.com (74.125.45.100) 56(84) bytes of data.

64 bytes from yx-in-f100.google.com (74.125.45.100): icmp_seq=1 ttl=240 time=101 ms
```

2- Me posicione en un PC conectado al switch (red lan) abri el navegador y escribi: google.com y se queda waiting....

3- Dentro del mismo navegador, escribi en la barra de direcciones: http://74.125.45.100 y aparecio google  :Very Happy: .

Por lo tanto asumo que mi servidor no puede resolver el IP a un nombre de dominio (pagina web) que a intentado consultar un equipo cliente (red lan). Esto me ayudo a deducirlo el tcpdump (ya que de momento no tengo instalado wireshark  :Sad: ), y obtuve lo siguiente en el tcpdump.

```
shell# tcpdump -i eth1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes

20:51:04.682091 IP 192.168.2.2.45365 > 192.168.2.1.domain: 40422+ A? google.com. (28)

20:51:04.682129 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 64

20:51:04.682263 IP 192.168.2.2.59290 > 192.168.2.1.domain: 40422+ A? google.com. (28)

20:51:04.682282 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 64

20:51:04.682410 IP 192.168.2.2.38992 > 192.168.2.1.domain: 23737+ A? google.com. (28)

20:51:04.682426 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 64

20:51:04.682537 IP 192.168.2.2.55413 > 192.168.2.1.domain: 23737+ A? google.com. (28)

20:51:04.682553 IP 192.168.2.1 > 192.168.2.2: ICMP 192.168.2.1 udp port domain unreachable, length 64

```

Paso a explicar lo que entiendo segun la captura. El equipo cliente (192.168.2.2) envia una solicitud de DNS (puerto 53) para resolver la direccion ip de google.com, por lo tanto el servidor (192.168.2.1) en via un paquete ICMP al equipos clientr con el contenido "destino inalcanzable", vaya no resolvio el nombre google.com.

Evidentemente, en mi script firewall iptables no tengo explicitamente abierto el puerto 53 (dns o domain), pero ya lo modifique, abri el puerto 53 en ambas interfaces del servidor y el prblema persistio..... Aqui dejo las 2 lineas extras que agrege al script, para ver si se solucionaba  :Sad: .

```
iptables -A INPUT -i eth0 -p tcp --dport 53 -j ACCEPT #domain

iptables -A INPUT -i eth1 -p tcp --dport 53 -j ACCEPT #domain 
```

Ayuda por favor, Cual sera el problema ??

bye byeLast edited by Diabliyo on Wed Apr 22, 2009 9:38 pm; edited 3 times in total

----------

## Txema

No sé mucho del tema pero con las políticas por defecto en ACCEPT eso no es un firewall, es un colador.

En cuanto al problema, no veo por ningún lado la configuración de servidores DNS ni de los equipos cliente ni del servidor, esa info vendría muy bien  :Wink: 

Saludos

P.D: usa esta web para hacer un scan de tus puertos a ver si realmente están bien cerrados https://www.grc.com/x/ne.dll?bh0bkyd2

----------

## Diabliyo

 *Txema wrote:*   

> No sé mucho del tema pero con las políticas por defecto en ACCEPT eso no es un firewall, es un colador.
> 
> En cuanto al problema, no veo por ningún lado la configuración de servidores DNS ni de los equipos cliente ni del servidor, esa info vendría muy bien 
> 
> Saludos
> ...

 

Me disculpas amigo, pero es un firewall, ya que esta regla explicitamente cierra todos los puertos a los que no se les haya asignado una regla o politica:

```
iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP #cerramos puertos 

iptables -A INPUT -i eth0 -p tcp --dport 1:1024 -j DROP #cerramos puertos 
```

Y sobre colador, no se si asi te refieras tu, pero de cierta manera el firewall a parte de prevenir el acceso a puertos o servicios no disponibles para el exterior (internet), permite hacer redirecciones (a lo que tu llamas colador) para permitir que por medio de un servidor principal se acceda a informacion de otros servidores (de una forma muy abierta).

Servidor DNS ???... De echo no tengo levantado ningun Servidor DNS en el Equipo Servidor de mi red, y la verdad no creo que sea necesario (corrijanme si es necesario...), ya que se "supone" que el firewall deberia redireccionar los paquetes, y sobre el servicio de domain (dns) deberia resolverse el dns automaticamente, no ??...

En fin... les comento por si las dudas... Anteriormente tenia toda esta configuracion trabajando perfectamente en una distribucion GNU/Linux Slackware, pero hace 1 semana formatie el Servidor e instale Gentoo, por que me gusta mucho  :Very Happy: . Antes de dar formato, respalde los archivos que les he mencionado (squid.conf, firewall, etc...), y todo ha funcionado perfectamente, menos el servicio de internet de paginas web  :Sad: ...

Les adelanto esta informacion que no puse al principio y creo que puede ser importante:

Configuracion de /etc/resolv.conf en cliente y servidor.

```
//en todos los clientes esta asi:

shell# cat /etc/resolv.conf

nameserver 192.168.2.1

//en el servidor

shell# cat /etc/resolv.conf

nameserver 192.168.1.254
```

Post Principal editado y agregada la info tambien !!

bye bye

----------

## Txema

A ver, repito que no sé mucho del tema eh.

Lo del firewall lo decía porque según esto --dport 1:1024 bloqueas del 1 al 1024, muy bien, ¿y los más de 65000 puertos restantes? como los famosos 4661 del emule o 6667 del IRC... quizás tengo un fallo de concepto y resulta que hay menos puertos, pero como yo suelo usar puertos muy "altos" (en el rango de 20000 o 50000) pues me ha parecido raro que dejes tantísimos puertos extraños, pero recalco que este tema se me escapa un poco.

En cuanto a lo del servidor DNS te has contradicho, primero dices que no has configurado ninguno, y luego muestras en /etc/resolv.conf que sí lo has hecho... así que tienes dos opciones, o en /etc/resolv.conf configurar los DNS de tu operadora u otros que te funcionen, o si vas a montarte un servidor de nombres tú mismo, tendrás que instalar y levantar los servicios adecuados como dnsmasq por ejemplo que es el que uso yo, aunque si no me equivoco necesitas indicarle a tu servidor un DNS válido ( http://bandaancha.eu/analizador-dns ) y no 192.168.1.254 que es la dirección de broadcast.

Saludos.

P.D: me he hecho un pequeño lio, quería decir DHCP, es que, como uso el dnsmasq tanto para servir direcciones de DHCP, como para ofrecer un servicio de DNS a mi LAN, me he liado. Pero si dices que usas IP estática entonces no te hace falta, pero lo de que el DNS no puede ser el que has puesto sí es verdad (192.168.1.254 no es un DNS válido), prueba alguno de la web que te he puesto.

P.D.2: por si no lo has hecho todavía, échale un vistazo a esta guía http://www.gentoo.org/doc/en/home-router-howto.xml lo explica todo  :Wink: 

----------

## opotonil

Por lo que entiendo el servidor DNS esta en la IP 192.168.1.254 ya que es la que esta configurada en el servidor y funciona. Pero a los clientes les estas diciendo que hagan las peticiones a la IP 192.168.2.1 que es el servidor donde dices que no tienes ningun servidor DNS instalado ¿quien quieres que resuelva dicha peticion?

 *Quote:*   

> 
> 
> 192.168.1.254 no es un DNS válido
> 
> 

 

@Txema porque dices que no es un servidor valido ¿?, si es por el broadcast seria el 192.168.1.255 pero por la configuaracion que pone del servidor 192.168.1.1 y suponiendo que cuando dice "En mi servidor realize ping a google.com" se refiere a este servidor, parace estar funcionando correctamente...

En principio imagino que tienes tres posibilidades:

- Instalar un servidor DNS en el servidor 192.168.2.1

- configurar en los clientes el nameserver 192.168.1.254 con lo que, si no me equivoco, entraria en juego el forward de "-i eth1" a "-o eth0".

- Hacer prerouting del puerto 53 ya sea para pasar la peticion a la IP 192.168.1.254 o para pasarsela al proxy donde parece que algo sobre el tema hay configurado

```

acl Safe_ports port 53      # domain

```

Salu2.

PD: no he mirado demasiado las reglas iptables pero hay cosas a las que no veo mucha logica. Para que haces:

```

iptables -A OUTPUT -o eth1 -p tcp --sport 3128 -j ACCEPT

```

si dos linea mas abajo lo vas a permitir igualmente e independientemente de que el protocolo sea tcp y de que venga por el puerto 3128 ¿?

```

iptables -A OUTPUT -o eth1 -j ACCEPT

```

Y coincido con @Txema mucho mejor una politica DROP por defecto que ese drop de tan solo los primeros 1024 puertos...

----------

## cpasoft

A ver... así a bote pronto veo:

- Los resolv.conf de los clientes no tienen sentido, en tanto en cuanto en el servidor principal no tienes montado un dns. Por tanto, deberías especificar en los clientes un servidor DNS válido. Asumo que tu router (192.168.1.254) realiza las funciones de relay, por lo que esta podría ser una opción de servidor DNS válido.

- Estoy de acuerdo con los comentarios de los compañeros del tema del firewall. No le he echado un vistazo a fondo, pero no parece un script demasiado "cerrado"...

Evidentemente, si quieres que los clientes sean capaces de consultar tu dns en la otra red (y por tanto, atravesar tu servidor) deberás de aceptar el ip forward en el mismo...

----------

## Diabliyo

 *opotonil wrote:*   

> Por lo que entiendo el servidor DNS esta en la IP 192.168.1.254 ya que es la que esta configurada en el servidor y funciona. Pero a los clientes les estas diciendo que hagan las peticiones a la IP 192.168.2.1 que es el servidor donde dices que no tienes ningun servidor DNS instalado ¿quien quieres que resuelva dicha peticion?
> 
>  *Quote:*   
> 
> 192.168.1.254 no es un DNS válido
> ...

 

Aleluya...!!! y entender de que estoy hablando.....

Al fin alguien que tiene la precaucion de leer bien el post  :Very Happy: ...

Txema creo que tienes un serio problema de entendimiento de redes :S... en fin, posiblemente tambien no has leido bien le post, lo cual no me parece bien ya que esto es perdida de tiempo :S.....

Te corrigo de paso:

192.168.1.254 no es un broadcast, el bloq de difucion se situa en la ultima IP que se tiene como rango, todo dependiendo la mascara... No se si sabes de segmentacion IP (veo que no mucho), pero asumiendo que mi mascara es 255.255.255.0 (la menciono al inicio del post), es logico que se manejan 255 direcciones IPs en donde la ultima direccion IP (192.168.1.255) es el boradcast  :Very Happy: ....

192.168.1.254 se refiere a la direccion del Router que me proporciona internet, vaya, el aparato que me dio mi ISP !!....

Sobre los puerto publicos 1025 al 65535, no los puedo tapar (bueno, si puedo..) pero seria torpe hacerlo, ya que las aplicaciones utilizan puertos publicos para abrir un socket de comunicaciones, te invito a que cierres los puertos del 1025 al 65535 de tu computadora y veras que por ejemplo: firefox, jamas te desplegara paginas  :Very Happy:  !!.....

Respecto a aplicaciones P2P, eso depende mucho de que si el administrador de la red (osea yo), instalase un P2P para los clientes, seria algo estresante debido al alto consumo del ancho de banda, por lo cual no brindo este servicio en mi red  :Very Happy: .

[hr]

opotonil gracias por tu atencion, te comento lo siguiente...

Actualmente no tengo montado un Servidor DNS en mi Equipo Servidor, solamente utilizo la resolucion de nombre mediante mi router, es por eso que en mi Equipo Servidor configura el /etc/resolv.conf hacia el router (nameserver 192.168.1.254), con esto, en mi Equipo Servidor no presento problema alguno en desplegar paginas (vaya, resolver nombres...).

En mi red lan, mis equipos clientes tiene configurado su /etc/resolv.conf hacia el Equipo Servidor (name server 192.168.2.1), ya que oviamente (como lo mencionaste tu) deseo que mi Equipo Servidor resuelva lo del domain (resolucion de nombres) para los equipos de la red, pero evidnetemente esto no esta funcionando y no consigo desplegar paginas  :Sad: .....

Por otro lado, no puedo configurar el /etc/resolv.conf de mi equipos clientes como: nameserver 192.168.1.254, ya que el segmento de red: 192.168.2.* es independiente del segmento 192.168.1.*, como puedes ver, mi Servidor posee dos tarjetas de red con la cual eth0 se conecta al router y trabaja sobre el segmento de rd 192.168.1.*, y la tarjeta de red eth1 se conecta al segmento de red 192.168.2.*.

La unica manera de que mis equipos clientes funcionen utilizando un dns como nameserver 192.168.1.254 seria editando mi script de firewall y haciendo forwarding, pero es algo que de momento no tengo mucho tiempo de hacer, ya que como anteriormente comentaba, estos mismos scripts los tenia funcionando sin problema alguno  :Sad: ...

Cual sera la solucion ??

----------

## esteban_conde

El tema pasa por entrar al router ya que es ahí a donde van a preguntar los hosts de la red, o instalar bind en el host que hace de servidor, si entras al router supongo que tendrá DNS dinamica o estatica, las dos son buenas opciones, pero la estatica necesita que pongas IP a los DNS que sean reales y operativas, tu ISP deberia dartelas.

----------

## Txema

Sin ánimo de crear polémica pero creo que no iba yo muy desencaminado, simplemente confundí un 254 por un 255, lo admito, fallo mío, pero el resto es cierto, el problema no es el firewall, que como he dicho es MUY inseguro, yo tengo absolutamente todos los puertos cerrados salvo unos 10 que he elegido al azar y creeme, firefox (y todo lo demás) funciona a las mil maravillas y la páginade GRC que he puesto antes me da un resultado perfecto en todos los test (pruebala); El problema radica, como indicamos todos, en el servidor de DNS, que según veo yo se resolvería fácilmente instalando dnsmasq, es la aplicación más sencilla y simple que hay para esto, en la guía que he puesto antes indica como configurarlo, son dos líneas y ya está.

Y por favor, no seas tan raudo en desacreditar a aquellos que intentamos ayudar.

Saludos.

----------

## Diabliyo

 *Txema wrote:*   

> Sin ánimo de crear polémica pero creo que no iba yo muy desencaminado, simplemente confundí un 254 por un 255, lo admito, fallo mío, pero el resto es cierto, el problema no es el firewall, que como he dicho es MUY inseguro, yo tengo absolutamente todos los puertos cerrados salvo unos 10 que he elegido al azar y creeme, firefox (y todo lo demás) funciona a las mil maravillas y la páginade GRC que he puesto antes me da un resultado perfecto en todos los test (pruebala); El problema radica, como indicamos todos, en el servidor de DNS, que según veo yo se resolvería fácilmente instalando dnsmasq, es la aplicación más sencilla y simple que hay para esto, en la guía que he puesto antes indica como configurarlo, son dos líneas y ya está.
> 
> Y por favor, no seas tan raudo en desacreditar a aquellos que intentamos ayudar.
> 
> Saludos.

 

Lo que mas me carcome es que, como es posible que los scripts funcionaban en Slackware ??... era que Slackware estaria levantando bind o dnsmaq sin darme cuenta ??, ya que es hay donde me queda el gran problema :S !!...

Vaya, por que antes de formatear me asegure de respaldar toda mi configuracion y evitarme perder tiempo en volver a redactar las reglas en cada archivo de configuracion, es por eso que cuando levante todo y vi que mi red lan no tenia servicio de paginas web, casi me da un infarto !!.... En ese momento no alcanzaba a entender porque antes si funcionaba y ahora no :S !!... Si solo cambie de distribucion !!...

Bueno, entonces a como veo (y me han dicho ustedes), la solucion va en instalar bind o bien dnsmasq.

Txema me ha indicado que con dnsmaqs bastaria y que no seria mucho show la configuracion.

Por otro lado esteban_conde me propone bind, pero, seria mucho show la configuracion ???...

Me gustaria obtener primero sus opiniones y comentarios para lanzarme a hacer una cosa u otra....

Gracias por su tiempo y atencion !!

P.D: disculpa si me he pasado Txema, es que he perdido mas de 2 dias con este baile y mi tiempo no me alcanza de mucho para meterme de lleno a investigar sobre el dnsmasq o bind, de modo que opte por platicarles todo el baile en el foro y ver otras opiniones.

bye bye

----------

## Diabliyo

dnsmasq fue mi solucion rapida  :Very Happy: ...

Solo instale dnsmasq, edite el archivo /etc/dnsmasq.conf y descomente 2 lineas dejandolas asi:

```
shell# nano /etc/dnsmasq.conf

interfaces= eth1 #interface de mi red lan

listen-address= 127.0.0.1

shell# rc-update add dnsmasq default

shell# /etc/init.d/dnsmasq start
```

Primero intente con el bind, despue active el servicio /etc/init.d/named start, pero vi que era mas simple el dnsmasq asi que opte por el otro  :Very Happy: .

Una pregunta extra...

Cual es la diferencia entra dnsmasq y bind ??

----------

## cpasoft

 *Diabliyo wrote:*   

> Cual es la diferencia entra dnsmasq y bind ??

 

Dnsmasq no es más que un Relay de DNS o un Forwardeador de DNS.... joer, que difícil hispanizar esto jajaja...

Básicamente lo que hace es enrutar las peticiones DNS de un lado de la red hacia otro.

Bind, sin embargo, es un servidor DNS en toda regla. De hecho, es el servidor más usado y extendido en todo el mundo. Te sirve para levantar todo un sistema de resolución de nombres, tanto a nivel local, como a nivel global (para internet y/o para tu lan).

Por otro lado, y también sin entrar en polémicas, volviendo a la famosa regla de:

iptables -A INPUT -i eth1 -p tcp --dport 1:1024 -j DROP #cerramos puertos privados

Evidentemente muchos programas necesitan tener una serie de puertos (superiores al 1024) abiertos. Generalmente lo que se hace es abrirlos a esprofeso, y no se deja todo el rango superior abierto. A demás, los puertos de conexión dinámicos se gestionan automáticamente. Supongamos que un cliente de tu red local hace una petición a internet a una página web, asumamos también que no hay squid/proxy para no liar la madeja, por lo que la petición sale directamente de dicha máquina. Evidentemente la respuesta deberá venir por un puerto superior al 1024, pero el propio conntracking del iproute ya lo sabe, y dejará abierto el puerto de respuesta y sólo para la máquina destino, para que la respuesta atraviese el firewall correctamente, siempre que usemos la regla adecuada, evidentemente..., algo como:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Por lo tanto, los firewalls más comunes usan la politica de dropar todo (denegar todo) e ir abriendo exclusivamente lo que se necesita... Una lectura ideal y muy interesante es el manual/tutorial de iptables del amigo Oskar Andreasson.

Saludotessss....

P.D.: Otra cosa que no entiendo es... ¿por qué abres los puertos del squid/cache al interface de internet?... Porque te lo cortará el router que tengas después, sino ahí tendrías un "problemilla"...   :Rolling Eyes: 

----------

## opotonil

Ando un poco a carreras para mirarlo bien, pero:

 *Quote:*   

> 
> 
> La unica manera de que mis equipos clientes funcionen utilizando un dns como nameserver 192.168.1.254 seria editando mi script de firewall y haciendo forwarding, pero es algo que de momento no tengo mucho tiempo de hacer, ya que como anteriormente comentaba, estos mismos scripts los tenia funcionando sin problema alguno
> 
> 

 

Ya tienes hecho el forwarding ¿no?

```

iptables -A FORWARD -i eth0 -o eth1 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT 

```

¿Puede ser que te falle la memoria y en Slackware tuvieras configurados los clientes con "nameserver 192.168.1.254"?

Anque si ya lo tienes solucionado... pues nada.

Salu2.

----------

## Txema

[OFFTOPIC]

 *cpasoft wrote:*   

> [...] Generalmente lo que se hace es abrirlos a esprofeso, y no se deja todo el rango superior abierto.[...]

 

Un apunte literario, la frase correcta sería:

 *cpasoft wrote:*   

> [...] Generalmente lo que se hace es abrirlos ex profeso, y no se deja todo el rango superior abierto.[...]

 

Ex profeso es una palabra cuyo origen es el latín, y significa con intención, adrede, apropósito, por lo que, además de escribirse separada, no se usa artículo alguno para introducirla (a ex profeso), sino que se coloca directamente.

[/OFFTOPIC]

Saludos  :Wink: 

----------

## cpasoft

 *Txema wrote:*   

> 
> 
> Ex profeso es una palabra cuyo origen es el latín, y significa con intención, adrede, apropósito, por lo que, además de escribirse separada, no se usa artículo alguno para introducirla (a ex profeso), sino que se coloca directamente.
> 
> 

 

Ah!!!... perfecto!!!...  :Very Happy: . Me sonaba un poco raro con "ese", pero lo del "a" no lo sabía... La próxima vez ya se cómo hay que ponerlo...

Graciassss...   :Wink: 

----------

## Diabliyo

 *opotonil wrote:*   

> Ando un poco a carreras para mirarlo bien, pero:
> 
>  *Quote:*   
> 
> La unica manera de que mis equipos clientes funcionen utilizando un dns como nameserver 192.168.1.254 seria editando mi script de firewall y haciendo forwarding, pero es algo que de momento no tengo mucho tiempo de hacer, ya que como anteriormente comentaba, estos mismos scripts los tenia funcionando sin problema alguno
> ...

 

Mis clientes tenian la misma configuracion cuando tenia Slack....

Por otro lado, para quitarme la duda, instale Slackware con VirtualBox en Gentoo, y veo que Automaticamente Slackware levanta BIND y lo configura como DNS, al estilo dnsmasq.... De echo, Slackware levanta un montononon de deamons y por si fera poco siempre me causaba un doloron de cabeza con eso de tener que cambiar las glibc por cuestiones personales de aplicaciones que uso, por lo cual emerge me salvo la vida  :Very Happy:  jojojo

----------

## Eleazar Anzola

todo esto lo resuelves facíl con una simple lectura y puesta en marcha del paso a paso de la Guía de enrutamiento doméstico que te lo explica detalladito y muy simple. Es decir toda una guia para copiar y pegar (Por no decir lo que estoy pensando ja ja ja ja ).

----------

