# [Internet] IP dinamica y Servidor web (abierto)

## navegante

Estoy tratando de hacer funcionar el Servidor Publico de Archivos de KDE (applet), tengo una conexión ADSL con IP dinámica, así que me registre en www.no-ip.com, hice un emerge noip-updater, inicie el servicio con mis datos, y actualizo correctamente porque cuando revise en la pagina de no-ip reconocí la IP que tengo en este momento (la comprobé con varios servicios online). Sin embargo cuando trato de acceder a la pagina desde mi navegador no me da un error 503, tengo shorewall pero adapte las reglas para permitir el servicio, incluso lo detuve, pero nada. Desde 127.0.0.1 si puedo acceder, pero no desde la IP dinámica. ¿Configure algo mal, o que otra posibilidad hay?, saludos y gracias de antemano.

----------

## navegante

Otra cosa, revisando con netstat --all las conexiones de red, me he dado cuenta que le tengo 2 nombres para localhost, me explico, al principio elegí el nombre XXXXX para mi ordenador, como no me gusto lo cambie por YYYYY, en bash se noto el cambio, incluso al inicio de la maquina, sin embargo con netstat me muestra conexiones con el viejo nombre, ¿alguna explicación?

----------

## erflako

No se que decire.

Tuve el mismo problema y no supe solucionarlo. Ahora utilizo dyndns.

Puedes intentar cambiar el puerto de apache y redireccionar desde no-ip. A ti a lo mejor te sirve. 

Si utilizas router, mirale el firewall.

Y¿ que es error 503?

Saludos.

----------

## lanshor

Es normal que no puedas acceder con la ip publica a tu web a traves de la red (o a traves del mismo ordenador que hace de servidor). No tiene nada que ver con el servicio no-ip, puesto que si lo pruebas antes de instalarlo tampoco podras acceder.

REsumiendo, no hay ninguna forma posible de acceder a tu web desde tu red local (al menos que yo sepa), para eso debes introducir la ip privada del servidor en cualquier ordenador de la red, o tambien la de localhost, como tu dices.

----------

## lanshor

Rectifico, hay una forma que supongo que funcionaria, copio de una lista de correo:

 *Quote:*   

> Se me ocurre una solución, pero solo funcionará si tu servidor con apache hace 
> 
> de router para la red interna, es decir, que sea tu gateway para la red 
> 
> local, y que él envíe los paquetes hacia el router adsl.
> ...

 

si quieres la url es: http://lists.debian.org/debian-user-spanish/2004/01/msg01033.html

----------

## focahclero

 *navegante wrote:*   

> Desde 127.0.0.1 si puedo acceder, pero no desde la IP dinámica. ¿Configure algo mal, o que otra posibilidad hay?

 

En definitiva, tienes tres direcciones para acceder al apache en tu máquina local:

- loopback, 127.0.0.1

- ip local, por ejemplo 192.168.0.xxx

- ip pública (la que recibe el router ADSL y que has dado de alta en el DNS dinámico de no-ip)

Entonces, desde la máquina donde está el servidor apache

- http://127.0.0.1 --> ok

- http://192.168.0.xxx -->  ¿ok?

- http://ip_publica --> no ok

¿Es así? 

Por mi experiencia, te debería funcionar en los tres casos en la mayor parte de los casos. Si te falla sólo en el último puede ser debido:

a) el router ADSL no "hace NAT" hacia tu red interna cuando te conectas desde su interface "lan" a su ip pública (¡vaya lío!) 

b) o lo más probable: ¡revisa el NAT!

Además el caso a) tiene una solución muy fácil: das de alta en /etc/host una entrada del tipo:

192.168.0.xxx      nombre_host    www.dominio.internet

y ya está.

Y si dices que ya has revisado el cortafuegos y que no es ese el problema (por cierto, supongo que tienes más que claro que shorewall stop no quita las restricciones de acceso, sino shorewall clear) yo me inclinaría por revisar el NAT que has creado en el router ADSL.

Y podrías probar desde un equipo externo (en Internet) a ver qué ocurre.

Saludos,

----------

## navegante

Gracias a todos, ya cheque las opciones que me dan, antes que nada no es Apache el servidor, es un miniservidor web que trae kde, conecta en los puertos 8001-8010, el cortafiegos del modem lo cheque en principio creí que era ese el problema porque tenía ese puerto abierto pero el puerto al que redireccionaba era otro, lo corregí pero nada, lo de shorewall clear tambien ya lo sabía, al final creo que es algo de shorewall, de las reglas, me explico:

Tengo en /etc/shorewall/zones:

```
#ZONE                   DISPLAY         COMMENTS

net                     Internet        La red de redes
```

en /etc/shorewall/interfaces:

```
#ZONE    INTERFACE      BROADCAST       OPTIONS

#

net     eth0            detect          norfc1918,routefilter,dhcp,tcpflags
```

en /etc/shorewall/policy

```
#SOURCE         DEST            POLICY          LOG             LIMIT:BURST

#                                               LEVEL

fw              net             ACCEPT

net             all             DROP            info

all             all             REJECT          info
```

y finalmente en /etc/shorewall/rules:

```
#ACTION  SOURCE         DEST            PROTO   DEST    SOURCE     ORIGINAL    RATE             USER/

#                                               PORT    PORT(S)    DEST        LIMIT            GROUP

ACCEPT   fw             net             tcp     80 #http

ACCEPT   fw             net             udp     80 #http

ACCEPT   fw             net             tcp     443 #https

ACCEPT   fw             net             udp     443 #https

ACCEPT   fw             net             tcp     21 #ftp

ACCEPT   fw             net             tcp     53 #DNS

ACCEPT   fw             net             udp     53 #DNS

ACCEPT   fw             net             tcp     110 #unsecure Pop3

ACCEPT   fw             net             tcp     995 #Secure Pop3

ACCEPT   fw             net             tcp     873 #rsync

ACCEPT   fw             net             tcp     25 #unsecure SMTP

ACCEPT   fw             net             tcp     465 #SMTP over SSL

ACCEPT   net            fw              tcp     8001 #Esta es la regla para el servidor
```

Lo del segundo problema, segundo post alguna idea?

----------

## Stolz

Se me ocurren dos motivos:

1-El servidor web no está escuchando en las direcciones adecuadas

2-Estas intentando acceder desde la red interna con un nombre externo.

Para lo primero, en Apache no tiene mas que usar las directivas BindAddress y Listen. Mas informacion en http://httpd.apache.org/docs/bind.html pero como dices que estás usando un servidor web de KDE, no se si tiene algo equivalente.

Lo segundo es lo que ya te han comentado, no puedes (en principio  :Wink: ) consultar tu servidor con una direccion externa desde una maquina interna. Haz la prueba con tracepath y veras que si haces esto no estás saliendo de tu red, por lo que usar el nombre externo no tiene sentido.

Si solo tienes unos pocos ordenadores en la red local, puedes solucionarlo añadiendo el nombre publico en el archivo /etc/hosts de cada ordenador. Pero cuando el numero de ordenadores es grande o variable (mi caso), yo lo he solucionando de uan forma mas sencilla, creandome lo que se llama una vista en mi servidor DNS (Bind). De esta forma, cuando consulto www.midominio.foo desde la red ineterna me lo traduce a 192.168.0.X y cuando alguien lo hacen desde el exterior me lo traduce a 217.127.X.X ( mi IP publica). Asi consigues un fncionamiento totalmente transparaente, no importa donde esté, siempre me muestra bien mi página, con www.midominio.foo en la barra de direcciones del navegador.

Pongo aqui la parte interesante de mi named.conf

```
// Vista Interna para la red local

view "internal" {

        match-clients { 192.168.0.0/24; 127.0.0.0/24; };

        [...]

        zone "midominio.foo" {

             type master;

             file "pri/midominio.foo.internal.zone";

        };

        [...]

}

//Vista externa

view "external" {

        [...]

        zone "midominio.foo" {

             type master;

             file "pri/midominio.foo.zone";

        };

        [...]

}
```

 Como se ve, para las maquinas de mi red local (192.168.0.0/24; 127.0.0.0/24) el servidor DNS usa para resolver midominio.foo el archivo "pri/midominio.foo.internal.zone" que apunta a la IP privada de mi servidor. Para el resto de maquinas del mundo (toda internet) se usa el archivo "pri/midominio.foo.zone" que apunta a mi IP publica.

Navegante, esto no es del todo aplicable a las IP dinamicas porque no usan un servidor DNS estricto, sino el servicio de no-ip, pero al menos para lanshor le será util y de paso ayudo a responder las dudas de focahclero.

Saludozzzzz

----------

## navegante

Ya lo he revisado todo, tarde mucho, y al final resulto ser una tontería, la versión de shorewall que tengo al parecer tiene problemas con los espacios, usa tabs, para la separación de los campos en rules  :Confused: . Cambie eso y listo, aunque al principio eran 2 bloqueos uno el del "firewall" del modem como comente antes, y luego lo de los tabs estos. A esto solo me quedan 2 preguntas:

¿Por que netstat (como comente antes) sigue "recordando" el antiguo hostaname?

El firewall del modem cierra los puertos para conexiones entrantes, pero no los oculta, con el shorewall si aparecen "stealth" y no "closed" como con el modem (según pruebas en diversos tests), entonces desactivo el "firewall" del modem y filtro con el shorewall/iptables? o ¿lo dejo activado y quito el shorewall/iptables? Saludos.

----------

## jhigueros

Ya cambiaste el hostname de la maquina y si ya cambiaste el ip asociado con el hostname??????

----------

## gringo

 *Quote:*   

> ¿Por que netstat (como comente antes) sigue "recordando" el antiguo hostaname? 

 

mira lo que te dice jhigueros, parece que es eso.

 *Quote:*   

> entonces desactivo el "firewall" del modem y filtro con el shorewall/iptables? o ¿lo dejo activado y quito el shorewall/iptables?

 

Hablas de un firewall en el modem ??? O es un router monopuesto de éstos ?

Sino, personalmente me fio mas de un cortafuegos que de un modem  :Wink: 

saluetes

----------

## navegante

No entiendo lo que dice jhigueros, se refiere al fichero hosts??? el nombre del host lo tengo relacionacionado con localhost, pues es un sistema solo, no red, la ip es dinamica así que el hostname no tiene asociada la ip publica al nombre, es eso o estoy errando?

El modem ADSL filtra los paquetes (modem, router-monopuesto), es un poco limitado pero se pede filtrar bien, pero teniendo iptables preguntaba, que por cierto shorewalll no lee mi regla de nuevo y no se porque, quería usarlo porqu no es mi máquina y es más facil de entender para la persona que se lo voy a dejar, pero viendo que no funciona como debe (o más bien no lo configuro bien, aunque ya le di mil vueltas y funciono un rato como comente antes pero ahora no,  :Confused: ), optare por iptables, pero cada que le falle algo voy a tener que visitarlo  :Crying or Very sad: .

----------

## gringo

 *Quote:*   

> el nombre del host lo tengo relacionacionado con localhost, pues es un sistema solo, no red, la ip es dinamica así que el hostname no tiene asociada la ip publica al nombre, es eso o estoy errando? 

 

en /etc/conf.d/hostname debe aparecer tb. tu nombre de host, está bien puesto ahi ?

Al arrancar el sistema, cuando pone algo como "setting hostname" , que te dice ?

Si tienes un router es una pena que no lo aproveches mas; quiero decir, ponlo en multipuesto ( si se puede), monta un red local entre el router y tu equipo, y usa el router para cortar tráfico. Siempre es mejor tener hardware que software, aunque hablemos de iptables. Si despues aún buscas un extra de seguridad puedes montar un iptables que solo filtre el tráfico que llegue a tu máquina.

Yo lo haría asi almenos, aunque solo tengas un equipo  :Wink: 

saluetes

----------

## navegante

Mira mis ficheros de configuración:

/etc/conf.d/hostname

```

# /etc/conf.d/hostname

# $Header: /var/cvsroot/gentoo-src/rc-scripts/etc/conf.d/hostname,v 1.2.4.1 2005/02/19 02:13:53 vapier Exp $

# Set to the hostname of this machine

HOSTNAME="tux"

```

/etc/conf.d/domainname

```

# /etc/conf.d/domainname

# $Header: /var/cvsroot/gentoo-src/rc-scripts/etc/conf.d/domainname,v 1.1.4.1 2005/02/19 02:13:53 vapier Exp $

# When setting up resolv.conf, what should take precedence?

# If you wish to always override DHCP/whatever, set this to 1.

OVERRIDE=1

# To have a proper FQDN, you need to setup /etc/hosts and /etc/resolv.conf

# properly (domain entry in /etc/resolv.conf, and FQDN in /etc/hosts).

#

DNSDOMAIN="redlocal"

# This only set what /bin/hostname returns.  If you need to setup NIS, meaning

# what /bin/domainname returns, please see:

#

#   http://www.linux-nis.org/nis-howto/HOWTO/

#

#NISDOMAIN=""

```

/etc/hosts

```
cat 

# /etc/hosts:  This file describes a number of hostname-to-address

#              mappings for the TCP/IP subsystem.  It is mostly

#              used at boot time, when no name servers are running.

#              On small systems, this file can be used instead of a

#              "named" name server.  Just add the names, addresses

#              and any aliases to this file...

# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/hosts,v 1.8 2003/08/04 20:12:25 azarah Exp $

#

127.0.0.1       localhost       tux

64.27.65.115 mirror.datapipe.net

```

En setting hostname como se espera es tux (que original, no?), pero checa esta salida de netstat:

```
XXXX@tux ~ $ netstat

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 COMPAQ:45856               baym-cs186.msgr.ho:1863 ESTABLISHED

tcp        0      0 COMPAQ:43124               205.150.219.38:5223     ESTABLISHED

tcp        0      0 localhost:8118          localhost:52471         TIME_WAIT
```

COMPAQ era el hostname anterior.

----------

## gringo

mmmm, que rarito el tema, si haces un ping a tux y otro ping a Compaq hay respuesta y cuál es ??? la misma ip ?

 *Quote:*   

> 127.0.0.1       localhost       tux

 

ésta línea está mal, localhost debe ser siempre localhost, borra lo de tux.

Que tienes en tu /etc/nwswitch.conf ??? Usas nscd ??? Si es asi reinicia el servicio para borrar la cache y a ver que pasa.

Glibc puede joder la resolución de nombres, que versión tienes y desde cuando te pasa ?

saluetes

----------

## navegante

En principió estaría mal la línea que comentas, sin embargo es un sistema solo, "standalone", por eso debe estar así, enl caso de no ponerlo así no pasaría nada, porque con /etc/hostaname sabría el nombre, sin embargo algunos programas como KDE buscan esa información ahí, si no la tienes así kde da unos lags de muerte. No uso nscd, ni nwswitch, podría ser algún archivo que haya tomado el antiguo nombre y ahora no tome el nuevo?

Sobre el ping me responde solo por tux, no por COMPAQ, ahí esta mi dilema, al parecer solo usa ese nombre con las conexiones de mi usuario, porque con root usa localhost.

----------

## gringo

 *Quote:*   

> En principió estaría mal la línea que comentas, sin embargo es un sistema solo, "standalone", por eso debe estar así, enl caso de no ponerlo así no pasaría nada, porque con /etc/hostaname sabría el nombre, sin embargo algunos programas como KDE buscan esa información ahí, si no la tienes así kde da unos lags de muerte

 

la verdad hace mucho tiempo que no estoy delante de una máquina que no esté conectada a una red, pero no recuerdo haber puesto nunca nada de eso ... no soy usuario de kde tampoco.

 *Quote:*   

> Sobre el ping me responde solo por tux, no por COMPAQ, ahí esta mi dilema, al parecer solo usa ese nombre con las conexiones de mi usuario, porque con root usa localhost.

 

igual es alguna cache de algún programa ? ...

 *Quote:*   

> tcp        0      0 COMPAQ:45856               baym-cs186.msgr.ho:1863 ESTABLISHED
> 
> tcp        0      0 COMPAQ:43124               205.150.219.38:5223     ESTABLISHED 

 

que programa lanza esta conexión (netstat -pontau)??? navegador cliente de correo, im ?

saluetes

----------

