PreguntasLinux

Versión Completa: Ayuda Con DNS y VPN (solucionado)
Actualmente estas viendo una versión simplificada de nuestro contenido. Para ver la versión completa en el formato correcto, dale click aquí
Hola Gentes, necesito una manito con un problemita que necesito resolver.
Es con un DNS en un Red Hat 9. Les comento un poquito como es el tema y los pasos que tengo que seguir.
Este Red Hat 9 es un Server VPN y DNS tambien.
Tengo varios puestos a lo largo del pais que se conectan a este Servidor VPN. Uno de estos puestos, tiene una conexion de Arnet, el cual nos brinda una ip publica pero dinamica con lo cual cada ves que reinicio la pc, cambia la ip.
Lo que necesito es lo siguiente:
que cuando se conecte este puesto a nuestro servidor VPN, obtener la ip publica que tomo ese puesto y asignarla en el DNS a un nombre, y de alguna manera refrescar el dns cosa que si hago un --- ping nombre ---- me devuelva la ip que tomo ese puesto con arnet, cuando este se conecto a la vpn. esto seria barbaro si puedo hacerlo sin reiniciar el servicio DNS.
Si puedo lograr esto, voy a poder hacer que cada puesto con arnet pueda ser un server vpn, y otros puestos que necesiten establecer conexion con el puesto de arnet, se conecten al mio averiguen la ip de este puesto de arnet y luego se conecten a el, con lo cual disminuyo considerablemente el trafico de paquetes, y muchas otras cositas mas....
Si no se entiende pregunten que los guio un poquito mas.....
chas gracias
salu2
Bueno, veo que podemos hacer algo interesante con esto. Voy a comentar un poquito mas la idea.

Preguntabas - ¿Arnet no te da una IP fija?

* - Arnet nos da ip dinamica con lo cual cada ves que inicio pc, cambia la ip.

Preguntabas - ¿Es solo para vpn (usuarios privados)?

* - Si esto es solo para usuario privados.

Preguntabas - ¿El tuyo (RH9) tiene IP fija?
* - Si, el Server VPN es un RH9 y tiene una ip fija.

en cuanto al refresco del dns, seria automatico, por que no necesito que refresque en todo internet por la red publica ya que lo resuelvo en la red privada...

Voy a tratar de dibujar un poquito, lo que quiero resolver y la solucion que necesito implementar, es 100% dentro de la VPN.

Haciendo el siguiente supuesto
Puesto-A -- Servidor VPN (RH9), ip publica y fija - Servidor DNS
Puesto-B -- Router (RH9), IP publica pero dinamica (Arnet)
Puesto-C -- Windows XP, con ip interna de un proveedor local.

Detras del puesto-b y el puesto-a, hay una red local.
El puesto-b se conecta al puesto-a con un cliente vpn, eso ya esta logrado.
Lo que necesito es que el puesto-c se conecte al puesto-b, para que trabajen entre ellos.

La solucion mas oportuna que quiero implementar es esta.
el puesto-c se conecta a la ip del puesto-a, y establece una conexion vpn con la cual ahi ya esta en condiciones de trabajar con el puesto-b, pero pasando a traves del puesto-a. Entonces lo que quiero hacer es lo siguiente, que el puesto-c se conecte al puesto-a, y una ves conectado el puesto-c se conecte a un nombreficticio, este nombreficticio va a devolver la IP publica que tomo el puesto-b. Esta IP publica la puedo obtener cuando el puesto-b se conecto anteriormente a la VPN.

Una ves que establezca la conexion entre el puesto-c y el puesto-b, armo las rutas como para que los paquetes pasen entre ellos y no pasen por el puesto-a.

Es complicado de entenderlo?, tal ves no me explico muy bien.... si lo vamos tratando les voy sacando algunas dudas.


Pasos a Solucionar...
*- Cuando el puesto-b se conecta, a la VPN obtener la ip publica
*- Modificar el Archivo local.zone
* buscar la linea  "nombreficticio     ip_publica_anterior"
* cambiarla por la linea "nombreficticio     ip_publica_nueva"
* buscar la linea  "fechaderefresco_vieja"
* cambairla por la linea  "fechaderefresco_nueva"
*- Si es necesario reinicar el servicio dns.

una ves solucionado esto, cuando puesto-c este conectado al puesto-a, e intente conectarse al nombreficticio, se estara conectando al puesto-b. y logrado esto armo todas las rutas para que el puesto-a quede fuera de ese trafico de paquetes.

Logrando todo esto, lo implemento en muchos puestos y disminuyo considerablemente el trafico de el server vpn central



chasssss graciasss
A ver, si no entendi mal lo que queres es que el puesto C (con salida a internet) se comunique con el puesto B (que tiene IP publica y dinamica) sin que los paquetes pasen por el puesto A (con IP publica y fija), es decir que A no haga de router...

Dame mas datos:
- Por lo que lei, el puesto A siempre conoce la IP del puesto B, no?...
- De que manera se establece la VPN?.. porque si los puestos tienen IP publica no veo el problema de poner un DNS en A y B respectivamente y hacer una transferencia de zona (B --> A), de manera que C consulte los DNS de A. De esta manera el trafico sigue siendo minimo.


Salu2!!.. 1-wink
bien, parece que nos vamos entendiendo, eso es lo que quiero hacer. Que el puesto c le solicite la ip del puesto b al puesto a y luego se conecte directamente al puesto b, dejando de lado el puesto a.
el puesto a conoce la ip del puesto b, la pregunta, de que manera la obtengo. Tambien necesitaria algunos pasitos o algunas lineas como para modificar el archivo zona.

La VPN se establece, el puesto-a tiene una ip publica y fija, y todos los puestos se conectan a esta formando una estrella, el puesto-b es un cliente vpn que se conecta al puesto-a, y a su ves quiero que sea un servidor vpn el cual forma otra estrella. El puesto-c necesito que se conecte al puesto-b, pero para eso primero se conecta al puesto-a, averigua la ip del puesto-b a traves del nombreficticio y luego se conecta al puesto-b

Tengo conceptos basicos sobre el manejo de DNS. Para hacer el refresco del dns necesito reiniciarlo o cambiando el nº serial ya lo tendria que tomar al cambio?

que pasos sigo para crear una zona.?
Amigo neopel, es bastante extenso el tema como para explicarlo en este post, lo que te sugiero es que leas algunos de los manuales de Redes-Linux que aparte de estar en castellano estan muy bien explicados...

Todo lo que necesitas seguro lo vas a encontrar ahi, si hay algo que no puedas configurar estamos aca para darte una mano W00t


Espero que te sirva, saludos!!.. 1-wink
Bueno, viendo extenso del tema, decidi implementar otra posibilidad mas sensilla.
pero lo que me falta resolver solamente. El poder obtener la ip publica, del cliente cuando se conecta al servidor vpn
suponiento que la ip interna de la lan, del cliente es 192.168.13.107. Alguien me puede guiar un poquito para ver como obtenerla publica de ese cliente y como copiarla en un archivo?
Hola, podes hacerlo asi:

Primero: genera un archivo nuevo en el equipo que posee la IP publica dinamica (ponele el nombre que quieras), abrilo con el editor de textos que mas te guste y pega los siguiente:

- - - - - - cortar y pegar de aca - - - - - - -

#!/bin/bash
#By ..::Hermes::..

#El nombre de la interface de la que queres saber su IP

INT=eth0


# Ejecutamos los comandos necesarios y vamos armando el archivo
# del cual vamos a leer despues;
# en mi caso se llama ip y lo ubique dentro de /root,
# pero puede ser lo que quieras...

echo -n 'IP=' > /root/ip


# presta atencion a las comillas simples invertidas!!

IP=`ifconfig $INT | grep inet | cut -d : -f 2 | cut -d ' ' -f 1`

echo $IP >> /root/ip

- - - - - - - -  hasta aca - - - - - - -


por medio de cron o al iniciar el equipo ejecutalo (rc.local)...

lo que hace basicamente este script es armar un archivo de texto con la siguiente linea: IP=xxx.xxx.xxx.xxx y cada vez que lo ejecutes va a  actualizar la ip segun lea desde la placa...


Segundo: ahora desde el otro equipo repeti los pasos para generar un archivo nuevo y pega el siguiente codigo:

- - - - - - cortar y pegar de aca - - - - - - -

#!/bin/bash
#By ..::Hermes::..

# Leo la ip desde el archivo...
# de mas esta decir que en /mnt/remoto tenes que montar
# el directorio remoto donde se encuentra el archivo ip, no?...


. /mnt/remoto/ip

echo
if [ ${IP} != " " ]; then
   echo '****************************************'
   echo '* ATENCION: LA IP ES '${IP} '      *'
   echo '****************************************'
   echo
fi

- - - - - - - -  hasta aca - - - - - - -



Este es solo un ejemplo, ahora depende de vos adaptarlo a lo que necesites... 1-winking

Mas ayuda:
man grep
man cut
man ifconfig
man echo
man bash
San Google!



Espero que te sirva...
Saludos!!.. 1-wink
Bueno encontre una solucion, viendo varias cositas y tomando algunas recomendaciones arme algo sencillo y que por ahora funciona.
Lo que implemente es un web service, por asi llamarlo.
En el server vpn que tiene la ip fija, tambien es servidor web, en el cual implemente una pagina

php con este codigo

<?php
$arch = 'ip.txt';
$ip = '';
//Obtener ip que se recibe
if (isset($_GET['ip'])) {
$ip = $_GET['ip'];
}
//Resguardar ip que se recibe
if ($ip!='') {
$p = fopen($arch,'w');
fwrite($p,$ip);
fclose($p);
}
//Tomar ultima ip recibida
if ($ip=='') {
$vip = readfile($arch);
$ip = $vip[0];
}
//informar ip
echo $ip;
?>

y un archivo ip.txt que tiene permiso de escritura. La pagina php puede o no recibir por variable la ip, si la recibe la graba en el ip.txt y luego la muestra el contenido de ip.txt, si no la recibe, muestra el contenido de ip.txt.

En la maquina que es, Cliente VPN, y al mismo tiempo Server VPN, la que tiene ip publica pero dinamica, cuando se conecta a Arnet ejecuta un script que obtiene la ip publica y se lo pasa por

url al otro server vpn.
el script tiene estas lineas

INT=ppp0
IP=`ifconfig $INT | grep inet | cut -d : -f 2 | cut -d ' ' -f 1`
wget http://www.direccionservervpn.com.ar/ip.php?ip=$IP


Por último en la ultima pc que tiene windows xp, hice varios pasos.
primero cree una conexion vpn, con nombre clientevpn, la configure y lo unico que no le puse fue la ip a la cual se tiene que conectar.
segundo baje el curl.exe y lo copie en c:\windows
tercero dentro de una carpeta cree un archivo llamdo set.txt con este contenido   set var_ip=
por ultimo cree un bat con este contenido

curl http://www.direccionservervpn.com.ar/ip.php > ip_con.txt
copy set.txt+ip_con.txt ip.bat
call ip.bat
rasdial clientevpn usuario_vpn pas_vpn /phone:%var_ip%
route add 192.168.7.0 mask 255.255.255.0 192.168.11.117



con lo cual cuando el puesto-b se conecto a arnet, le informa la ip al puesto-a, y el puesto-c ya

esta en condiciones de conectarse al puesto-b

la solucion que me pasate anteriormente, esta muy buena tambien. pero implementando esto no

necesito que el puesto-b se conecte al puesto-a para obtener la ip y que el puesto-c se conecte

al puesto-b


Si no se entendio, preguntenme y los oriento un poquito mas.
Gracias por la ayuda. me sirvio de mucho e implemente algunos de sus consejos.
Gracias
Neopel
Muy buena la solucion!, lo unico que te sugiero (mas que nada porque soy un enfermito con el tema de seguridad Biggrinjester ) es que valides la longitud y el tipo de datos que lees y trates de implementar la solucion via https para evitar ataKes del tipo man in the middle.. alguien podria setearte alguna otra IP y podrias terminar bajando algun troyano, generar un DoS o simplemente hacer Cross Site Scripting...

No estas convencido?.. oki, como ejemplo te dejo lo siguiente y despues contanos (lamentablemente no pude probarlo con IE por razones obvias, pero funciona a la perfeccion con Firefox y Opera):

a la url de tu sitio http://www.direccionservervpn.com.ar/ip.php?ip= pasale esto como parametro:

Código:
%3Chtml%3E%3Chead%3E%3Ctitle%3EHacked_By_Hermes!%3C/title%3E%3C/head%3E%3Cbody%3E%3Cp%3E%3Ca%20href=http://www.playboy.com%3EVer%20tu%20IP%3C/a%3E%3C/body%3E%3C/html%3E



Saludos!!.. 1-wink

¿Que tal Hermes, un miembro de lujo, no?
Estaba por saludarlo al amigo Neopel pero me detuve, tenía la certeza que ibas a cercar la seguridad.

Gracias amigos, así PL vale!
URLs de Referencia