21 de set. 2009

Tuneles ssh en windows.

Posiblemente muchos de los lectores de este blog han usado alguna vez una de las características más interesantes del SSH que es el tunneling (túneles SSH) desde PC con distintos sistemas operativos (aunque es más habitual usarlos en SO like unix).

1. ¿que demonios es eso del SSH y tunneling?

Empezemos por explicar lo que es cada cosa para los lectores que estaban despistados y no lo conocian.

SSH son las siglas de Secure Shell. Es un protocolo de red que permite el intercambio de datos entre dos ordenadores a traves de un canal de comunicaciones encriptado. SSH normalmente se usa para conectarse a un ordenador remoto y ejecutar comandos en el.

Otra de las características interesantes de SSH es el X forwarding que permite ejecutar un programa gráfico en remoto pero verlo en el ordenador local siempre y cuando este disponga de un servidor X (X11 o Xorg para sistemas like unix o port del mismo como el Xming para sistemas Win32. Esta característica yo personalmente la uso mucho para ejecutar programas con gui en mis servidores linux que no tienen entorno gráfico desde otros pc con linux (no necesito nada al tener ya el servidor X) o windows (iniciando primero el servidor X Xming)

Otra de las caracteríticas interesantes de SSH es el tunneling que es de lo que trata esto. El tunneling lo que hace es encapsular un protocolo de red dentro de otro a traves de un túnel seguro entre el ordenador local y el remoto (por ejemplo, enviar tráfico ftp a traves de tráfico http). Para ello se se hace un mapeado de un puerto remoto a uno local.

2. ¿Para que nos sirve eso del SSH y tunneling?

Ahora os preguntareis para que demonios nos sirve estas cosas tan raras. Pués para muchas cosas, por ejemplo, hacer seguros protocolos que de por si son inseguros (pop, smtp, http, …..), si tenemos un firewall que solo nos permite conexiones http, podremos saltarlo haciendo un túnel y encapsulando otro protocolo dentro de http (es lo que hacen muchas aplicaciones de control remoto de equipos que son capaces de saltarse los firewall corporativos).

Por ejemplo, yo lo uso para poder administrar mis router o la Via Epia que uso 24/365 como server, todo ello via web desde cualquier sitio.

Para ello uso el PuTTY que lo teneis tanto para Win32 como para linux, unix, …..

En este caso configuro que el puerto local 8080 se corresponda al puerto 80 de mi router ADSL y el 8081 local se corresponda al router Linksys WRT54GL.

Desde el Putty hago la conexión contra mi server ssh y a partir de ese momento tengo un túnel seguro desde el ordenador local contra el interfaz web de mis routers. Solo tengo que usar http://localhost:8080 para acceder a la configuración web de mi router adsl y http://localhost:8081 para acceder al interfaz web del WRT54GL.

Como es evidente, para hacer túneles ssh necesitais por un lado poder crear un túnel via Putty, ssh en consola, …., y por otro un servidor ssh. En mi caso la Via Epia que tengo montada como server ya me hace esas funciones. Los que posean un router neutro como el Linksys WRT54GL si usan firmwares alternativos como el Tomato o DD-WRT pueden hacer lo mismo ya que tiene ssh (esto se puede aplicar a cualquier router que tenga ssh).

En el caso de que usemos un SO like unix y tengamos instalado el cliente de ssh solo tendremos que teclear en una consola:

ssh -P – L 8080:tu_ip:80

ssh -P -L 8081:tu_ip:80

También lo podemos hacer desde windows si tenemos el port del cliente de SSH para win32.

Yo personalmente uso este último sistema a traves de scripts que me automatizan la conexión. También uso el putty en ordenadores que no tienen el cliente de ssh instalado. El putty es una de las herramientas que llevo siempre conmigo en un pendrive.

Como configurar servidor Punto Multipunto con OpenVPN y cliente en Windows ó Linux.

OpenVPN es un software basado en la filosofía de software libre, que permite crear conexiones VPN entre equipos Linux, Windows, MacOSX, *BSD, *nix y Dispositivos móviles como Windows Mobile a traves de redes inseguras como internet o redes inalámbricas.

OpenVPN puede funcionar de varias maneras una de ellas de punto a punto, punto a multipunto y en modo bridge.

  • Punto a Punto: solo realiza una conexión segura entre 2 equipos, esta conexión puede usarse para compartir archivos entre 2 equipos en internet.
  • Punto a multipunto: Permite conectar a diversos dispositivos a un servidor OpenVPN el cuál permitirá redigir las peticiones remotas a una red interna a traves de una red como internet. El uso de este modo es factible para dar acceso a aplicaciones dentro de una red local a equipos que se encuentran en alguna parte de internet.
  • Modo Bridge: OpenVPN permite crear conexiones entre 2 redes remotas, de tal forma que OpenVPN funciona como gateway de un punto y otro para poder unificar las redes, esto es muy factible cuándo se tienen oficinas remotas y se desea unificarlas, una de sus ventajas se da para las aplicaciones de Voz sobre IP, Bases de Datos, etc.Nuestro caso: Punto a Mutipunto.

    Este tipo de modo de OpenVPN en mi caso es el que más uso, ya que me dedico a desarrollar aplicaciones para dispositivos móviles los cuáles se conectan a internet a traves de conexiones GPRS(Movistar y Telcel en México), de tal forma que les instalo un cliente OpenVPN a los móviles y de esta forma se conectan a un servidor OpenVPN, esto para poder acceder a las bases de datos, a los web services, servidores FTP, etc., de una forma muy segura sin comprometer la información en redes públicas.

    Para comenzar con OpenVPN necesitamos descargar el instalador para Windows de OpenVPN, el cuál puede obtenerse de la siguiente URL:

    http://openvpn.net/release/openvpn-2.0.9-install.exe

    Esto probablemente nos instale el software de OpenVPN en el siguiente directorio: C:\Archivos de Programa\OpenVPN

    Abrir la consola de Windows Inicio->Ejecutar->CMD

    Ya en la consola de Windows ir al directorio easy-rsa de OpenVPN cd C:\Archivos de Programa\OpenVPN\easy-rsa\

    Lo primero que se hará es crear un Certificado de Autoridad (CA) Ejecutar : #Inicia el proceso
    init-config

    #Aqui pedirá valores como Pais, Estado, Ciudad, Organización, Depto, Nombre del Servidor y Correo, todos estos valores se repetirán a excepción del nombre del host que en la parte de configuración de las llaves del cliente en la parte última.
    vars
    clean-all
    build-ca

    #Al finalizar esta parte se crearán varios archivos en directorio
    C:\Archivos de Programa\OpenVPN\easy-rsa\keys

    #Copiar el archivo keys\ca.crt al directorio
    C:\Archivos de Programa\OpenVPN\config
    copy keys\ca.crt ..\config\

    Con lo anterior habremos creado el Certificado de Autoridad.

    El siguiente paso es crear la llave privada y certificado del servidor.

    Ejecutar en el directorio easy-rsa el siguiente comando
    vars
    build-key-server phylevn.mexrom.net

    #dónde phylevn.mexrom.net es el nombre del servidor dónde se está instalando OpenVPN.

    #Aquí de igual pedirá datos, los cuáles deben ser los mismos introducidos anteriormente, también pedirá un password, este mismo password debe ser usado cuándo se creen las llave de los clientes.

    #Luego ejecutar el siguiente comando

    build-dh

    #Con esto se habrán creado otros archivos en el directorio keys.

    #Copiar los siguientes archivos del directorio easy-rsa\keys a ..config\
    C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.crt ..\config\
    C:\Program Files\OpenVPN\easy-rsa> copy keys\phylevn.mexrom.net.key ..\config\
    C:\Program Files\OpenVPN\easy-rsa> copy keys\dh1024.pem ..\config\

    #Ahora hay que configurar el servidor para luego iniciarlo.

    #Dentro del archivo de configuración de OpenVPN
    C:\Program Files\OpenVPN\config

    #Crear un archivo llamado server.ovpn y dentro de ese archivo introducir lo siguiente

    port 1194 proto udp dev tun ca “C:\Archivos de programa\OpenVPN\config\ca.crt” cert “C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.crt” key “C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.key” # Este archivo debe mantenerse en secreto dh “C:\Archivos de programa\OpenVPN\config\dh1024.pem” server 192.168.20.0 255.255.255.0 #Segmento de red que tomarán los clientes remotos ifconfig-pool-persist ipp.txt push “dhcp-option DNS 208.67.222.222″ push “dhcp-option WINS 192.168.20.1″ tongue.png ush “route-gateway 192.168.20.1″ client-to-client push “route 192.168.1.0 255.255.255.0″ #Segmento de la red local interna duplicate-cn #Con esta opción no es necesario crear una llave por cada cliente comp-lzo #Comprime los datos envíados y recibidos max-clients 60 persist-key persist-tun verb 3 status openvpn-status.log keepalive 10 120 suppress-timestamps route-delay 10 10

    #Ya con la configuración realizada solo basta darle click con el botón derecho del mouse al archivo server.ovpn y seleccionar la opción de Start with OpenVPN.

    #Pero antes de lo anterior hay que editar el registro de windows en la siguiente llave y reiniciar Windows. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    #Y en la opción de IPEnableRouter configurarlo a 1, esto para que se le permita a OpenVPN hacer el ruteo del segmento de la red privada a la red local interna.

    #Ahora si iniciar el servidor de OpenVPN

    #Si todo salió bien se abrirá una ventana de comandos y al final indicará
    Initialization Sequence completed

    #Con esto ya tenemos el servidor de OpenVPN echado andara, ahora falta crear las llaves de los clientes, para esto realizar lo siguiente

    #En la consola de comandos ir a :
    C:\Archivos de programa\OpenVPN\easy-rsa

    #Introducir los siguientes comandos
    vars
    build-key phylevn

    #dónde cliente es el nombre del cliente remoto, debe cambiar por cada cliente remoto configurado en caso de que se creen múltiples llaves.

    #Al momento de ejecutar build-key hay que repetir la información anteriormente capturada a excepción del nombre del host que debe ser el nombre del equipo cliente, también en password debe ponerse el password que se dió al crear la llave privada y certificado del servidor de OpenVPN.

    #En seguida hay que crear los archivos al directorio config del servidor OpenVPN
    copy keys\phylevn.crt ..\config
    copy keys\phylevn.key ..\config

    #Y también estos archivo hay que pasarlos a la máquina remota, solo hay que tener un modo seguro para envío de estas llaves a las máquinas remotas, los arhivos que debe tener la máquina remota deben ser los siguientes
    ca.crt
    phylevn.crt
    phylevn.key

    Dónde phylevn es el nombre de la llave para el host especificado, en caso de que se permita la duplicación de llaves, no importaría el nombre del archivo cliente que se pase en caso de que se tengan varios.

    #Ahora en las máquinas clientes también hay que tener instalado el software OpenVPN

    #Y se debe crear un archivo de configuracion llamado cliente.ovpn en el directorio config de OpenVPN
    C:\Archivos de programa\OpenVPN\config\

    #El archivo cliente.ovpn debe contener lo siguiente:

    client proto udp dev tun remote 201.123.42.174 1194 #Dirección IP Pública del servidor OpenVPN resolv-retry infinite nobind persist-key persist-tun ca “C:\Archivos de programa\OpenVPN\config\ca.crt” cert “C:\Archivos de programa\OpenVPN\config\phylevn.crt” key “C:\Archivos de programa\OpenVPN\config\phylevn.key” comp-lzo verb 3

    #Ya que esté guardado el archivo, solo basta presionar el botón derecho del mouse y presionar Start With OpenVPN, con esto el cliente se intentará validar con el servidor remoto, si todo salió bien, entonces el cliente tendra una nueva interfaz de red y le será asignada una IP en el segmento 192.168.20.x, con esto ya podrá hacer ping al servidor remoto, de igual forma a las IPs del segmento de la red local interna dónde se encuentra el servidor de OpenVPN.

    #Con Linux son los mismos pasos, a excepto de las rutas, pero el proceso es el mismo, solo se excluye la parte del registro de windows y se activa el IP Forwarding.

    Fuente | Mexrom

  • Crear un túnel en SSH para escritorio remoto


    Categorizado en Windows, seguridad

    El escritorio remoto de Windows es una herramienta muy interesante para acceder a tu ordenador desde cualquier lado. Supongamos que necesitas conectarte al ordenador del trabajo a través de Escritorio remoto,pero tu empresa ha configurado el router/firewall para bloquear todas las conexiones remotas excepto las seguras (ej. SSH). En tal una opción sería hacer un túnel del escritorio remoto sobre SSH.

    En esta entrega, te mostraremos como crear un túnel para aceptar conexiones al escritorio remoto en SSH, y como conectarse remotamente a cualquier ordenador interno haciendo un túnel al escritorio remoto por la puerta principal.

    En nuestros ejemplos, usaremos Plink, una interface de comandos que se conecta al PuTTY.

    Primer ejemplo: SSH y escritorio remoto en el mismo ordenador. La idea es que te conectes al servidor SSH en tu ordenador y crear un túnel donde tu ordenador escuchara en un puerto local y lo pasara por el túnel a través del servidor SSH, y luego se conectara al ordenador remoto local.

    Asumiendo que tenes el escritorio remoto habilitado y el SSH funcionando en el ordenador remoto, ejecuta el siguiente comando:

    plink.exe -ssh -2 -batch -v -L 3390:127.0.0.1:3389 -pw PASSWORD USER@REMOTE_IP

    Esto configura un túnel en el puerto 3390 de tu ordenador este en túnel con el a través de SSH en el puerto 3389 en el ordenador remoto (El servidor de escritorio remoto). Ahora, podes abrir el escritorio remoto y escribir: localhost:3390. Deberías de poder conectarte al ordenador de tu casa/trabajo.


    Ejemplo 2: Haciendo túnel a traves de la puerta principal.

    Supongamos que llevas una empresa pequeña (o tienes muchos ordenadores en casa), y un escritorio remoto esta habilitado en todos los ordenadores. No deberías tener tantos ordenadores expuestos a Internet directamente.

    Entonces, como hacemos para transmitir el Escritorio remoto a traves de la puerta principal? Usando dos túneles. La idea es decirle a tu cliente SSH que mapee el puerto 3390 en tu ordenador, a través de la puerta principal, al puerto 3389 en el ordenador remoto detras de la red. Escribe el siguiente comando para hacer un túnel doble:

    plink.exe -ssh -2 -batch -v -L 127.0.0.1:3390:REMOTE_WORKSTATION_IP:3389 -pw PASSWORD USER@SSH_SSHSERVER

    Una vez logueado al SSH, abres el cliente de escritorio remoto y escribes: localhost:3390, Deberías de poder conectarte al ordenador de tu casa/trabajo.

    18 de set. 2009

    Borrar paperera en debian como root

    rm -rf /home/user/.local/share/Trash/files/*

    Saltar squid y firewalls

    http://www.ecualug.org/2009/07/07/forums/saltar_squid_y_firewalls_an%C3%A1lisis?page=1


    y el mejor de todos, testeado

    http://www.ultrareach.com/download_en.htm

    Consulta de ficheros inscritos

    https://www.agpd.es/portalweb/ficheros_inscritos/index-ides-idphp.php

    Infomarcion de Que distribucion de linux estoy usando?

    Normalmente, el "uname-r" debe decirle qué sistema operativo se está ejecutando.
    Otra forma fácil será "dmesg | head -10". Generalmente se le dice lo suficiente información sobre el sistema operativo y la máquina que usted está utilizando.

    17 de set. 2009

    Convertir de fat a ntfs sin formatear.

    Cuando estés preparado debes pulsar el botón Inicio -> Ejecutar, a continuación escribes cmd y pulsas el botón Aceptar.

    Entonces se abrirá una ventana MS-DOS, luego escribes esto: convert c: /fs:ntfs (siendo c: la letra de la unidad que quieras convertir).

    MAC os x86 10.4.5 [tiger] [megaupload] + tema Window

    http://www.solovagos.com/foro/apple-macintosh/6327-mac-os-x86-10-4-5-%5Btiger%5D-%5Bmegaupload%5D-tema-window.html