AddThis Feed Button
AddThis Social Bookmark Button
IMGP1165
IMGP1166
IMGP1143
IMGP1144
IMGP1145
IMGP1146
IMGP1147
IMGP1148
IMGP1149
IMGP1150
Categories

This Month Last Year

Julio 2008
L M X J V S D
« Jun «-»  
 123456
78910111213
14151617181920
21222324252627
28293031  
links
28
Sep

Como crear una red privada virtual (VPN). Parte II.

Creando un cliente para la VPN

Para empezar Abrimos la carpeta de “Conexiones de red” y en el men&úacute; Archivo seleccionamos “Nueva conexión”. En el asistente para conexión nueva seleccionamos “Conectarse a la red de mi lugar de trabajo”, y pulsamos siguiente. Esto lo digo de carrerilla por que es igual que la parte del servidor, así que repasar la parte I si no os aclaráis.

 

Seleccionamos “Conexión de red privada virtual”, y pulsamos siguiente.

 

vpnc_014.png

 

 

En el siguiente Menu seleccionamos “Conexión de red privada virtual”, y pulsamos siguiente.

vpnc_024.png

 

Lo siguiente que nos preguntara es un nombre descriptivo para darle a nuestra conexión (para que recordemos cual es, aquí a gusto del consumidor xD

vpnc_034.png

 

 

Y ahora empieza lo más complicado del cliente. Nos pide una IP o DNS, la cual tiene que ser la IP/DNS que usa el servidor que hemos creado en la parte I. Si la IP es dinámica (cambia cada cierto tiempo o cada vez que nos conectamos) deberemos cambiar las propiedades de la conexión cada vez que ese valor cambie, por ello es recomendable siempre que se pueda usar una DNS de alg&úacute;n servicio como DynDNs, no-IP u otros que nos permitan no tener que estar cambiando cada poco las opciones.

vpnc_044.png

 

 

Y con esto ya tenemos nuestra conexión creada, al terminar nos da la opción de crear un icono en el escritorio para que sea más fácil encontrar la conexión. Si no tendremos que ir a “Conexiones de Red” y buscar nuestra conexión (tendrá el nombre que le hemos puesto así como un iconillo en forma de nube)

vpnc_054.png

 

 

Y con esto nuestra conexión ya esta creada. Después para acceder a ella solo tenemos que hacer doble clic en el icono de la conexión y nos aparecerá una ventana de login en la conexión que nos pedirá un usuario y clave (si recordáis en la Parte I asignábamos unos permisos a algunos usuarios para conectarse). También tenéis un botón donde si sois un poco mas duchos podréis cambiar las opciones de seguridad, la dirección del servidor, poner que conecte un MODEM antes de iniciar la VPN, etc.

Conectarse a Mi conexion VPN

 

 

Bueno con esto ya esta todo, si tenéis alguna duda o comentario pues eso, a los comentarios xD.

Nota: Este post esta hecho con Windows Live! Writer, para probar nuevas funcionalidades del blog, asi como de algunos plugins que estoy montando para el editor. En futuros post ya pondré algo de cómo crear un plugin para Windows Live! Writer.


20
Sep

Como crear una red privada virtual (VPN). (Parte I)

¿Qué es una VPN?
Una VPN (Virtual Private Nertwork) es una red virtual que se crea dentro de otra red, como Internet. Nos permitirá trabajar como si estuviésemos en la red local, es totalmente transparente para el usuario. Una vez establecida la conexión de la red privada virtual los datos viajan encriptados. Para poder realizar una VPN se necesita un servidor que espera conexiones entrantes, y uno o varios clientes, que se conectan al servidor para formar la red.

 

¿Cómo funciona una VPN?
Funciona igual que cualquier otra conexión de red, dentro de la VPN cada equipo tendrá una IP, todas las conexiones usando ese rango de IPs estarán funcionando dentro de la VPN y serán encriptadas.
Para la encriptacion hay dos protocolos muy utilizados para crear VPN's: PPTP y L2TP.

  • PPTP (Point to Point Tunneling Protocol)
    PPTP es un protocolo desarrollado por Microsoft. Ofrece menor seguridad que L2TP.  También es posible EAP-TLS para soportar certificados de seguridad sobre PPTP.
  • L2TP (Layer Two Tunneling Protocol)
    Se trata de un estándar abierto, disponible en la mayoría de plataformas. Se implementa sobre IPSec y proporciona altos niveles de seguridad. Se pueden usar certificados de seguridad de clave pública para cifrar los datos y garantizar la identidad de los usuarios..

 

 

Creando un Servidor VPN

 Vamos al Panel de control, Abrimos la carpeta de "Conexiones de red" y seleccionamos "Crear una nueva conexión" en "Tareas de red".

Conexiones de red

 

 

 

Ahora estamos en el "Asistente para conexión nueva". Pulsamos en el botón "Siguiente" para continuar

Asistente de nueva conexion

 

 

 

Seleccionamos "Configurar una conexión avanzada", y pulsamos en "Siguiente".

Configurar conexion

 

 

Ahora seleccionamos "Aceptar conexiones entrantes" y pulsamos "Siguiente" para continuar.

Aceptar conexiones entrantes

 

 

En la pantalla "Dispositivos de conexiones entrantes" no seleccionamos ninguno, pues no queremos que se conecten a este equipo usando un MODEM mediante llamada, usando el puerto paralelo, Si no mediante nuestra conexión a Internet . Pulsamos en "Siguiente"

Dispositivos de conexion entrantes

 

 

 

En la pantalla "Conexión de red privada virtual (VPN) entrante" seleccionamos "Permitir conexiones virtuales privadas" para habilitar el acceso a la VPN. Pulsamos en "Siguiente".

Aceptar conexiones entrantes

 

 

En la pantalla "Permisos de usuarios" seleccionamos los usuarios que podrán conectarse a nuestro equipo usando la VPN o crear usuarios nuevos. Los usuarios que no tengan una contraseña o las cuentas deshabilitadas no podrán conectase a la VPN . Pulsamos en "Siguiente".

Permisos de usuarios

 

 

Ahora debemos seleccionar los protocolos que habilitaremos en la VPN. Si queremos compartir ficheros e impresoras marcaremos "Compartir impresoras y archivos para redes Microsoft". Como mínimo deberemos marcar usar  "Protocolo Internet (TCP/IP)" para que se puedan comunicar los equipos.  Podremos agregar los protocolos que queramos usando el botón Instalar. Seleccionamos el protocolo "Protocolo Internet (TCP/IP)" y pulsamos en el botón Propiedades para proceder a configurarlo.

Software de Red

 

 

Aquí podemos configurar las propiedades del protocolo TCP/IP. Si queremos que los clientes que se conectan a nosotros puedan acceder a la red local en la que tenemos nuestro servidor deberemos activar la primera casilla. Además podemos dejar que el servidor asigne las IPs de los clientes o establecer un intervalo de IPs, o incluso permitir que los clientes especifiquen su IP. Si queremos que todos los equipos de la VPN se puedan ver en un mismo grupo de trabajo lo mejor seria no dejar que el cliente pueda especificar su IP, para que todos los PCS se encuentren en un mismo rango de IPS. Si queremos ser mas precisos deberemos especificar el rango de IPS. 

 

Propiedades TCPIP

 

Guardamos la configuración de TCP/IP y pulsamos en el botón siguiente del asistente y ya habremos terminado. 

 

Podemos ver la nueva conexión como una conexión con un icono como una nube. Y por cada cliente que se conecte al servidor aparecerá una conexión con el nombre del usuario que se conecta asi como sus detalles de conexión.

 

Y en el próximo articulo el cliente. Que si no se me hacen muy largos estos artículos jeje. 


18
Sep

Haciendo pings a webs

Algunas páginas soportan el envío de “pings”. ¿Qué es un ping?, en este caso se trata de un sistema mediante llamadas XML-RPC que permite decirle a un sitio Web que hemos actualizado alguna clase de contenido en nuestra pagina y por lo tanto debe prestarle atención.

Una llamada Ping tiene un funcionamiento similar al que ya vimos en los Trackbacks. Solo que aquí no se trata de indicar que un contenido concreto se cita en la pagina de destino, si no de informar que se ha actualizado el sitio a una pagina que lo procese, por ejemplo a Technorati para que actualice los posts que hemos publicado y con ello los posibles links.

En Technorati encontramos un ejemplo de cómo hacer una llamada ping .

Esta se compone de una cabecera http y una estructura XML siguiendo el estándar de XML-RPC donde le pasamos como valores el nombre de nuestro blog y su URL absoluta.

Cabecera HTTP
  1. POST /rpc/ping HTTP/1.0
  2. User-Agent: YOUR AGENT HERE
  3. Host: rpc.technorati.com
  4. Content-Type: text/xml
  5. Content-length: 250

 

Cuerpo del mensaje
  1. <?xml version="1.0"?>
  2. <methodCall>
  3. <methodName>weblogUpdates.ping</methodName>
  4. <params>
  5. <param>
  6. <value>El cajon Desastre</value>
  7. </param>
  8. <param>
  9. <value>http://www.dubasdey.com/</value>
  10. </param>
  11. </params>
  12. </methodCall>

 

 Como ya hable en el artículo sobre Trackbacks , cada línea de la cabecera debe ir separada por un salto de línea y para separar la cabecera del cuerpo se añade otro salto de línea adicional. Por lo demás simplemente es el envío de estos datos como “texto” al host y puerto requerido, en este caso rpc.technorati.com con el puerto http por defecto (80)

 

 

Código PHP de una petición ping
  1. $xmlSend = "<?xml version=\"1.0\"?".">\r\n";
  2. $xmlSend .= "<methodCall>\r\n";
  3. $xmlSend .= " <methodName>weblogUpdates.ping</methodName>\r\n";
  4. $xmlSend .= " <params>\r\n";
  5. $xmlSend .= " <param>\r\n";
  6. $xmlSend .= " <value>$BlogName</value>\r\n";
  7. $xmlSend .= " </param>\r\n";
  8. $xmlSend .= " <param>\r\n";
  9. $xmlSend .= " <value>$BlogUrl</value>\r\n";
  10. $xmlSend .= " </param>\r\n";
  11. $xmlSend .= " </params>\r\n";
  12. $xmlSend .= "</methodCall>\r\n";
  13.  
  14. $http_request = "POST ".$ping_path.$ping_query." HTTP/1.0\r\n";
  15. $http_request .= "Host: ".$ping_host."\r\n";
  16. $http_request .= "User-Agent: ".$agent."/".$version."\r\n";
  17. $http_request .= "Content-Type: text/xml;\r\n";
  18. $http_request .= "Content-Length: ".strlen($xmlSend)."\r\n";
  19. $http_request .= "\r\n";
  20. $http_request .= "$xmlSend";
  21.  
  22. $response="";
  23. $fs = @fsockopen($ping_host, $ping_port, $errno, $errstr);
  24. if (is_resource($fs)){
  25. @fwrite($fs, $http_request);
  26. while (!feof($fs)) {$response.= @fgets($fs, 2048);}
  27. @fclose($fs);
  28. }

 

En este ejemplo podemos ver como primero se crea el la estructura XML de la llamada XML-RPC y se le añaden los datos, este paso lo realizo antes para poder determinar el tamaño de los datos a enviar, ya que este dato aparece en la cabecera.
Después se crea la cabecera, usando diferentes variables para los campos requeridos como en el ejemplo anteriormente visto de cabecera.
Y finalmente abro un socket con fsockopen, y envío la cadena.

En este ejemplo después de enviar los datos no cierro el socket y espero para ver si se me da alguna respuesta que capturo en la variable $response, esto puede ser muy util sobretodo para depuración.

Otras función que os puede ser útil para esta operación es parse_url que resuelve una cadena url y nos devuelve cada una de sus partes

 

Uso de parse_url
  1. $pinguri_parts = parse_url($url);
  2. $ping_host = $pinguri_parts['host'];
  3. $ping_port = strlen($pinguri_parts['port'])>0?$pinguri_parts['port']:80;
  4. $ping_path = $pinguri_parts['path'];
  5. $ping_query = strlen($pinguri_parts['query'])>0?"?".$pinguri_parts['query']:"";

 

Y con esto creo que ya esta indicado lo básico de los pings a webs. Por supuesto siempre podéis dejar comentarios.
Y preguntas o sugerencias  a contacto@dubasdey.com

 

 


16
Sep

Secretos del Autorun.inf

Todos somos conscientes de esos CDS que nada mas meterlos en la Unidad de CD inician automáticamente alguna aplicación. Pero ¿Cómo lo hacen? He aquí la respuesta, el archivo “Autorun.inf”

El archivo en cuestión es un archivo de texto en el raíz del disco (también se puede usar para lápices USB, discos duros etc). Dentro de esta archivo de texto hay unas instrucciones que usa el Windows (desde Windows 95) para hacer lo que le digamos.
La primera línea del archivo contiene el texto “[Autorun]” que define una sección del archivo. Para aquellos que sepan un poco, tiene la misma estructura que los típicos archivos ini, donde por cada línea tenemos un par “Clave=valor” y que se pueden dividir en secciones de claves  y valores con una línea “[NombreSeccion]”

Bien empecemos a ver los diferentes elementos que podemos tener, los dos mas típicos son “Icon” y “Open”.

La clave “Icon” indica la ruta al icono que aparecerá en lugar del típico icono de CD al insertarlo en la unidad, por supuesto la ruta al icono ha de ser relativa al lugar donde se encuentra el Archivo “Autorun.inf” puesto que no sabemos en que letra de unidad estará en CD en otros equipos. El Valor de la clave Icon puede ser un icono suelto, Ej.: “Icon=carpeta\miicono.ico”, o un icono dentro de un ejecutable, para ello después de la ruta al ejecutable especificaremos el icono que queremos usar, ya que un ejecutable puede contener mas de un icono, empezando por el 0 para el primer icono, Ej.: “Icon=carpeta\miexe.exe,0” esto especificaría el primer icono contenido dentro del ejecutable (0 es el icono por defecto).

La clave “open” es mas simple aun, y con las mismas condiciones de ruta que la "Icon" especifica la ruta a el ejecutable que queremos que se inicie al insertar el disco, Este ha de ser un ejecutable (exe, com, bat, hta, cmd,…)

Bueno y ahora empezamos con las claves menos conocidas, no la voy a poner todas pero si las que puedan ser mas útiles.

“UseAutoPlay”, sobre esta clave no he encontrado demasiada información para complementar, solo decir q toma los valores 0 o 1 y solo se reconoce en Windows XP o superior. Si se establece a 1, se usan las opciones de Autoplay V2, si es 0 no se usan tales opciones. No he encontrado mucha documentación sobre el tema, pero según la MSDN (que dice mas bien poco) tiene que ver con las nuevas opciones de auto detección de Windows XP (eso que te escanea el disco y escoge con que abrirlo o te muestra una lista)
 

“Shell” esta parámetro es un poco mas complicado, se trata de un sistema para establecer Verbos en el menú contextual del Disco (ya había hablado en un post anterior sobre los Verbos). Su primer uso es “Shell=Verbo” para establecer el Verbo por defecto del menú contextual.
Pero además podemos definir nuestros propios verbos, para definir los verbos tendremos que usar 2 líneas, una para definir la etiqueta asociada al Verbo en el menú contextual y otra para el comando que ejecutara dicho verbo. Para definir el Verbo se hará de la forma “Shell\NombreVerbo”, el nombre del verbo ha de ser único (no podemos tener 2 verbos iguales)  y no puede contener espacios, acentos, ni otros caracteres especiales.

 

Ej:
Shell\AbrirNotepad=Abrir con el Notepad
Shell\AbrirNotepad\command=Notepad mitexto.txt

En estas líneas vemos que primero definimos el nombre que tendrá en el menú contextual y después con el añadido “\command” especificamos el comando a ejecutar para ese verbo. Podemos usar “&” para definir una tecla para el menú contextual (la típica letra subrayada de los menús a la que podemos acceder con ALT+<letra>). Para ello solo debemos poner “&” delante de la letra de la etiqueta que queramos usar.

 

Ej
Shell\AbrirNotepad=A&brir con el Notepad

Esto hará que ALT+b  ejecute la operación de abrir con el Notepad.

Y por ultimo tenemos una Sección nueva, solo soportada por Windows XP o superiores.
Se trata de la sección “[DeviceInstall]” , esta nos permitirá especificar carpetas en las cuales se encuentran Drivers dentro de nuestro CD, de forma que el método “Buscar en unidades” del asistente búsqueda de nuevo hardware solo buscara en las carpetas que definamos, ignorando carpetas que sabemos que no contienen archivos útiles para la herramienta y haciendo la búsqueda mas rápida. Su uso es muy simple, solo hemos de poner un par clave=valor con la Clave “DriverPath” y como valor la ruta relativa en el CD para cada carpeta que queremos que examine.
Si no existe la sección DeviceInstall, el Asistente de hardware buscara en todo el disco, lo que puede ralentizar mucho en unidades con estructuras complejas (muchas carpetas y archivos)


14
Sep

Aplicaciones HTML (HTA)

¿Qué es una aplicación HTML?
Una aplicación HTML no es más que un archivo HTML que se visualiza como si fuera una aplicación con unas propiedades especiales en el HEAD que permiten especificar su nombre, tamaño, botones de Ventana….

Estas aplicaciones son interpretadas sobre Windows como si de ejecutables se tratase, para crear una aplicación HTA solo debemos renombrar una archivo HTML a HTA y añadir en el HEAD la etiqueta “<HTA:APPLICATION>” que contiene diversos atributos que podreis ver a fondo en el MSDN , algunos de estos atributos son por ejemplo “WindowsState” que indica si se inicia normal, maximizada o minimizada, “Icon” que especifica un icono de aplicación,  “Showintaskbar” que indica si se puede visualizar en la barra de tareas o no. Todos estos atributos hacen relación simplemente a la apariencia de la aplicación.

Ejemplo:

   <HTA:APPLICATION ID="oHTA"
     APPLICATIONNAME="myApp"
     BORDER="thin"
     BORDERSTYLE="normal"
     CAPTION="yes"
     ICON=""
     MAXIMIZEBUTTON="yes"
     MINIMIZEBUTTON="yes"
     SHOWINTASKBAR="no"
     SINGLEINSTANCE="no"
     SYSMENU="yes"
     VERSION="1.0"
     WINDOWSTATE="maximize"/

Problemas de seguridad.
Las aplicaciones HTA se ejecutan como aplicaciones locales, lo que permite ejecutar javascript, aplicaciones JAVA, ActiveX sin ninguna restricción en la maquina local.

Las aplicaciones HTA no dan información a los marcos o marcos flotantes que se ejecutan en su interior (no da el referer, ni dejan acceso al objeto window de  javascript) pero esta limitación se puede eliminar en los iframes añadiendo el atributo application=”yes”

Por ultimo, los archivos solo funcionan en OS que tengan Internet Explorer 5.0 o superior (en el MSDN pone y solo en Sistemas Windows 32bits, pero también funciona en otras plataformas Windows como Windows 64 bits).

La referencia completa de las Aplicaciones HTML en el MSDN


Entradas siguientes »