crear tunel y navegar a través de el

28
Crear un Túnel y Navegar a través de él Autor: Hevercking 16/04/2010

Upload: hevercking

Post on 19-Jun-2015

1.309 views

Category:

Documents


3 download

DESCRIPTION

instalar Open SSh, configurarlo para hacer tuneles, configurar MSN y Mozilla para navegar a través de éldescargad la version PDF de:http://www.megaupload.com/?d=VTEX2S50http://hotfile.com/dl/38140209/1b0d614/tuneling.pdf.html

TRANSCRIPT

Page 1: Crear tunel y navegar a través de el

Crear un Túnely

Navegar a través de él

Autor: Hevercking 16/04/2010

Page 2: Crear tunel y navegar a través de el

ÍndiceInstalar el servidor Open SSH…………………………………………………Página 3Configurar el servidor Open SSH……………………………………………..Página 3Configurar IP…………………………………………………………………. Página 8Abrir puertos del router………………………………………………………..Página 9Configurar Putty……………………………………………………………….Página 10Navegar a través del túnel con Mozilla Firefox……………………………….Página 14Navegar a través del túnel con Mozilla Firefox des de otro PC de la red……..Página 19Conectarse a Windows Live Messenger……………………………………….Página 21

Page 3: Crear tunel y navegar a través de el

Instalar SSH

Instalar en fedora:

$ Yum install ssh-server

Instalar en Debian:

$ sudo apt-get install ssh-server

Configurar el servidor Open SSHuna vez instalado editamos el siguiente fichero:

$ vi /etc/ssh/ssh_config

Y lo dejamos de la siguiente forma:

Para Fedora:

# $OpenBSD: sshd_config,v 1.75 2007/03/19 01:01:29 djm Exp $

# This is the sshd server system-wide configuration file. See# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with# OpenSSH is to specify options with their default value where# possible, but leave them commented. Uncommented options change a# default value.

Port 443#AddressFamily any#ListenAddress 0.0.0.0#ListenAddress ::

# Disable legacy (protocol version 1) support in the server for new# installations. In future the default will change to require explicit# activation of protocol 1Protocol 2

# HostKey for protocol version 1#HostKey /etc/ssh/ssh_host_key# HostKeys for protocol version 2#HostKey /etc/ssh/ssh_host_rsa_key#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key#KeyRegenerationInterval 1h#ServerKeyBits 768

# Logging# obsoletes QuietMode and FascistLogging#SyslogFacility AUTHSyslogFacility AUTHPRIV#LogLevel INFO

# Authentication:

Page 4: Crear tunel y navegar a través de el

#LoginGraceTime 2m#PermitRootLogin yes#StrictModes yes#MaxAuthTries 6

#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts#RhostsRSAAuthentication no# similar for protocol version 2#HostbasedAuthentication no# Change to yes if you don't trust ~/.ssh/known_hosts for# RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts no# Don't read the user's ~/.rhosts and ~/.shosts files#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes#PermitEmptyPasswords noPasswordAuthentication yes

# Change to no to disable s/key passwords#ChallengeResponseAuthentication yesChallengeResponseAuthentication no

# Kerberos options#KerberosAuthentication no#KerberosOrLocalPasswd yes#KerberosTicketCleanup yes#KerberosGetAFSToken no

# GSSAPI options#GSSAPIAuthentication noGSSAPIAuthentication yes#GSSAPICleanupCredentials yesGSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,# and session processing. If this is enabled, PAM authentication will# be allowed through the ChallengeResponseAuthentication and# PasswordAuthentication. Depending on your PAM configuration,# PAM authentication via ChallengeResponseAuthentication may bypass# the setting of "PermitRootLogin without-password".# If you just want the PAM account and session checks to run without# PAM authentication, then enable this but set PasswordAuthentication# and ChallengeResponseAuthentication to 'no'.#UsePAM noUsePAM yes

# Accept locale-related environment variablesAcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGESAcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENTAcceptEnv LC_IDENTIFICATION LC_ALLAllowTcpForwarding yes#GatewayPorts no#X11Forwarding noX11Forwarding yes#X11DisplayOffset 10#X11UseLocalhost yes#PrintMotd yes#PrintLastLog yes#TCPKeepAlive yes#UseLogin no#UsePrivilegeSeparation yes#PermitUserEnvironment no

Page 5: Crear tunel y navegar a través de el

#Compression delayed#ClientAliveInterval 0#ClientAliveCountMax 3#ShowPatchLevel no#UseDNS yes#PidFile /var/run/sshd.pid#MaxStartups 10PermitTunnel yes

# no default banner path#Banner /some/path

# override default of no subsystemsSubsystem sftp /usr/libexec/openssh/sftp-server

# Example of overriding settings on a per-user basis#Match User anoncvs# X11Forwarding no# AllowTcpForwarding no# ForceCommand cvs server

Para Debian:

# Configurion Personalizada para DeHevernyx# S.O Debian n 5.0

# Este es el archivo de configuración del Servidor Ssh.# Consulte sshd_config(5) para mas informacion.

# Las opciones por defecto en sshd estan desabilitadas como# comentario. Si los descomenta podra canviar las opciones por# defecto.

# Archivo de configuracion de paquetes generados# Mire la pagina (8) del manual de sshd

# Puertos, direcciones IP y protocolos para escuchar.Port 443

# Utilice estas opciones para restringir que las interfaces y# protocolos de sshd se puedan vincular a#ListenAddress ::#ListenAddress 0.0.0.0Protocol 2

# HostKey for protocol version 1#HostKey /etc/ssh/ssh_host_key# HostKeys for protocol version 2#HostKey /etc/ssh/ssh_host_rsa_key#HostKey /etc/ssh/ssh_host_dsa_key

#Separacion de privilegios, se activa por seguridad.#UsePrivilegeSeparation yes

# Tiempo de vida de las clabes y tanyo de la clave.#KeyRegenerationInterval 3600#ServerKeyBits 768

# Logging# Modos QuietMode y FascistLogging anticuados# SyslogFacility AUTHSyslogFacility AUTHPRIV#LogLevel INFO

# Authentication:#LoginGraceTime 120

Page 6: Crear tunel y navegar a través de el

#PermitRootLogin yes#StrictModes yes#MaxAuthTries 6

#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files#IgnoreRhosts yes

# For this to work you will also need host keys in /etc/ssh_known_hosts#RhostsRSAAuthentication no# similar for protocol version 2#HostbasedAuthentication no# Change to yes if you don't trust ~/.ssh/known_hosts for# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication# RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts yes

# To disable tunneled clear text passwords, change to no here!#PasswordAuthentication yes# To enable empty passwords, change to yes (NOT RECOMMENDED)#PermitEmptyPasswords noPasswordAuthentication yes

# Change to yes to enable challenge-response passwords (beware issues with# some PAM modules and threads)# Change to no to disable s/key passwords#ChallengeResponseAuthentication yesChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords#PasswordAuthentication yes

# Kerberos options#KerberosAuthentication no#KerberosGetAFSToken no#KerberosOrLocalPasswd yes#KerberosTicketCleanup yes

# GSSAPI options#GSSAPIAuthentication noGSSAPIAuthentication yes#GSSAPICleanupCredentials yesGSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,# and session processing. If this is enabled, PAM authentication will# be allowed through the ChallengeResponseAuthentication and# PasswordAuthentication. Depending on your PAM configuration,# PAM authentication via ChallengeResponseAuthentication may bypass# the setting of "PermitRootLogin without-password".# If you just want the PAM account and session checks to run without# PAM authentication, then enable this but set PasswordAuthentication# and ChallengeResponseAuthentication to 'no'.#UsePAM noUsePAM yes

# Accept locale-related environment variablesAcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGESAcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENTAcceptEnv LC_IDENTIFICATION LC_ALLAllowTcpForwarding yes#GatewayPorts no#X11Forwarding noX11Forwarding yes#X11DisplayOffset 10

Page 7: Crear tunel y navegar a través de el

#X11UseLocalhost yes#PrintMotd no#PrintLastLog yes#TCPKeepAlive yes#UseLogin no#UsePrivilegeSeparation yes#PermitUserEnvironment no#Compression delayed#ClientAliveInterval 0#ClientAliveCountMax 3#ShowPatchLevel no#UseDNS yes#PidFile /var/run/sshd.pid#MaxStartups 10PermitTunnel yes

#MaxStartups 10:30:60# no default banner pathBanner /etc/ssh/ban

# Allow client to pass locale environment variablesAcceptEnv LANG LC_*

# override default of no subsystemsSubsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

# Example of overriding settings on a per-user basis#Match User anoncvs# X11Forwarding no# AllowTcpForwarding no# ForceCommand cvs server

# Archivo actualizado el 25/04/2009 a las 12:37

Una vez configurado esto editamos el fichero

$ vi /etc/services

Y lo dejamos de la siguiente forma, cambiando los puertos TCP y UDP que por defecto apuntan al 22 por el 443

ssh 443/tcp # SSH Remote Login Protocolssh 443/udp

ahora reiniciaremos el servicio ssh

En fedora:

$ /etc/init.d/sshd stopParando sshd: [ OK ]

Comprobamos si el servicio está corriendo bien

$ ps aux | grep sshd

En caso que no se cerrara bien “Como en este ejemplo” deberíamos matarlo

root 2003 0.0 0.3 5416 884 ? Ss Mar31 0:03 /usr/sbin/sshdroot 9710 0.0 1.1 8448 3024 ? Ss 02:41 0:02 sshd:

Page 8: Crear tunel y navegar a través de el

root@pts/0root 14315 0.0 0.3 3148 772 pts/0 S+ 03:59 0:00 grep sshd

$ kill -9 2003

NOTA! – Fíjate bien cual es el proceso que intentas matar ya que si mataras por ejemplo este: root 9710 0.0 1.1 8448 3024 ? Ss 02:41 0:02

sshd: root@pts/0 lo que estarías haciendo seria desconectar el usuario que esta conectado por ssh “en el caso que lo hubiera” y si intentaras matar root 14315

0.0 0.3 3148 772 pts/0 S+ 03:59 0:00 grep sshd estarías haciendo una tontería ya que este proceso ya no esta en uso, se genera cada vez que ejecutas el grep pero se elimina al segundo de ser ejecutado.

Una vez nos hemos asegurado que el proceso esta muerto lo ejecutamos de nuevo:

$ /etc/init.d/sshd startIniciando sshd: [ OK ]

En Debian:

$ /etc/init.d/ssh stopParando sshd: [ OK ]

Comprobamos si el servicio está corriendo bien

$ ps aux | grep sshd

En caso que no se cerrara bien “Como en este ejemplo” deberíamos matarlo

root 2003 0.0 0.3 5416 884 ? Ss Mar31 0:03 /usr/sbin/sshdroot 9710 0.0 1.1 8448 3024 ? Ss 02:41 0:02 sshd: root@pts/0root 14315 0.0 0.3 3148 772 pts/0 S+ 03:59 0:00 grep ssh

$ kill -9 2003

NOTA! – Fíjate bien cual es el proceso que intentas matar ya que si mataras por ejemplo este: root 9710 0.0 1.1 8448 3024 ? Ss 02:41 0:02

sshd: root@pts/0 lo que estarías haciendo seria desconectar el usuario que esta conectado por ssh “en el caso que lo hubiera” y si intentaras matar root 14315

0.0 0.3 3148 772 pts/0 S+ 03:59 0:00 grep ssh estarías haciendo una tontería ya que este proceso ya no esta en uso, se genera cada vez que ejecutas el grep pero se elimina al segundo de ser ejecutado.

Una vez nos hemos asegurado que el proceso esta muerto lo ejecutamos de nuevo:

$ /etc/init.d/sshd startIniciando ssh: [ OK ]

Configurar IP

Recuerda que la IP de tu PC debería ser estática, si no sabes como configurarla, sigue este procedimiento:

En Debian:

Page 9: Crear tunel y navegar a través de el

Primero editaremos el fichero /etc/network/interfaces

$ nano /etc/network/interfaces

Un ejemplo de cómo podría quedar el fichero es la siguiente:

# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).

# The loopback network interfaceauto loiface lo inet loopback

# configallow-hotplug eth0#iface eth0 inet dhcpauto eth0iface eth0 inet staticaddress 192.168.1.5gateway 192.168.1.1netmask 255.255.255.0network 192.168.1.0broadcast 192.168.1.255

Creo que queda bastante claro la función de cada línea.

Ahora reiniciaremos el servicio

$ /etc/init.d/networking restart

Y ya tendríamos la IP renovada.

En Fedora:

Primero editaremos el fichero /etc/sysconfig/network-scripts/ifcfg-eth0 (puede ser eth1, eth2, etc. Hay un archivo para cada una de las tarjetas.)

$ nano /etc/sysconfig/network-scripts/ifcfg-eth0

Un ejemplo de cómo podría quedar el fichero es la siguiente:

DEVICE=eth0 (la interface)HWADDR=12:34:56:f0:ed:00 (esta es la mac de tu tarjeta. Puedes eliminar esta linea)ONBOOT=yesDHCP_HOSTNAME=hermes2.corporacion.cl (esta linea tambien la puedes eliminar, ya que el hostname esta escrito en otro archivo)IPADDR=192.168.0.22NETMASK=255.255.248.0GATEWAY=192.168.1.1TYPE=Ethernet

Una vez modificado el fichero guardamos y reiniciamos el servicio network$ /etc/init.d/network stop

Abrir los Puertos del router

ahora ya tenemos el servidor ssh preparado para que escuche en ese puerto, he puesto el 443 por una sencilla razón, podéis meter cualquier otro puerto pero pueden cerrártelo y te

Page 10: Crear tunel y navegar a través de el

joderia hasta que no llegases a tu casa para poderlo cambiar, en cambio el 443 es el puerto asociado al protocolo http, y, de este modo si te caparan este puerto te anularían la posibilidad de conectarte a cualquier página web. Y también la ip del servidor SSH de forma estática.

para terminar la configuración del servidor tenemos que ir al router i abrir el puerto mapeandolo hasta el host en el que está el servidor SSH, como esto puede variar en función del router que tengas en casa no lo boy a documentar pero si fuese el caso que no supieras hacerlo puedes mirar cualquiera de estas dos webs donde seguramente encontraras un manual que te explique el procedimiento a realizar para tu modelo concreto:

http://www.adslzone.net/http://www.adslayuda.com/

Conectarse al túnel remotamentePrimero de todo descargaremos el Putty de la web http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

O directamente des de este link: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Una vez descargado lo ejecutaremos haciendo doble clik en:

Un vez lo hemos ejecutado lo que nos aparecerá será algo similar a esto:

Page 11: Crear tunel y navegar a través de el

En Host Name (or IP address) ponemos nuestra IP pública o dominio, si no lo tenemos es conveniente crear uno gratuito des de aquí:

http://www.dyndns.com/http://www.no-ip.com/

ya que es mas fácil recordar un nombre de dominio que tener que mirar cada vez que ip nos a asignado nuestro ISP, la pega es que cada vez que cambie nuestra ip tendremos que cambiarla manualmente tal y como lo tenemos configurado hasta ahora. Tenemos 2 alternativas que yo conozca, des de Linux es instalar un software tipo DDClient que podemos hacer que nos sincronice nuestra ip con cualquiera de los 2 servicios anteriores y des de Windows tenemos la opción del software que nos ofrece dyndns para sincronizarla automáticamente. No se si no-ip dispone de uno, ya que yo solo trabajo con dyndns. Pero en este manual no boy a explicar ni como instalar el sincronizador de dyndns (ya que el software bajo windos es muy intuitivo) ni el DDClient, esto lo contare en otro manual.

En Port ponemos el puerto que configuramos en el archivo /etc/ssh/sshd_config que en nuestro caso seria el 443.

En Connection type: marcamos SSH

Putty nos permite guardar la configuración de la conexión para no tener que repetirla cada vez, si la maquina des de la que os conectáis es de confianza y lo hacéis a menudo os aconsejo que guardéis las opciones básicas de conexión.

Page 12: Crear tunel y navegar a través de el

Ahora desplegamos la subcategoría de la izquierda SSH y vamos al apartado túnel y nos saldrá algo parecido así

Marcamos las opciones Local ports accept connections froms other hosts y Remote ports do the same (SSH-2 only) en

Source port nos inventamos cualquiera que no esté en uso esto conectara el tunel con un puerto de nuestro PC “No importa que no este mapeado en el router ya que la conexión pasara únicamente por dentro del túnel, ningún Proxy podrá espiar en que páginas web te conectas o que te descargas”

En Destination escribimos localhost o 127.0.0.1 o las dos separadas por ; localhost;127.0.0.1

Pulsamos en Add y nos quedara algo así:

Page 13: Crear tunel y navegar a través de el

Marcamos las opciones Dynamic y Auto, Una vez hecho esto podemos guardar la configuración tal y como os a aconsejado antes o si ya estamos le damos a Open

La primera vez nos saldrá un mensaje preguntándonos si queremos guardar la clave RSA, como el que aparece a continuación.

Le damos al YES y a continuación nos aparecerá la pantalla de Login donde introduciremos el Usuario y el password

Page 14: Crear tunel y navegar a través de el

Una vez dentro no debemos cerrar esta ventana bajo ningún motivo, de lo contrario se crearíael túnel, a veces por motivos de configuración se cierra la conexión tras un tiempo de inactividad. Lo que ago es ejecutar una aplicación tipo htop y me olvido de la ventana

Configurar el Mozilla Firefox para navegar a través del túnel.Ahora solo nos queda configurar el navegador Mozilla Firefox. Este procedimiento varia en función de si hacemos tuneling des de Windows o Linux pero podemos hacerlo de la misma forma.

Page 15: Crear tunel y navegar a través de el

Ejecutamos el navegador Firefox

Nos dirigimos a Herramientas >> Opciones…

Ahora pulsamos en Avanzado

Page 16: Crear tunel y navegar a través de el

Nos dirigimos a la pestaña Red

Page 17: Crear tunel y navegar a través de el

Y pulsamos en Configuración…

Marcamos la opción Configuración manual del proxy

Page 18: Crear tunel y navegar a través de el

En Servidor SOCKS escribimos localhost y en puerto 5050 que es el puerto que hemos puesto en la configuración del putty al crear el túnel.

Marcamos SOCKS v4 o SOCKS v5, es cuestión de probar si no funciona uno funcionara el otro, pero el 90% de las veces funcionan los dos.

En No usar Proxy para: ponemos esto: 127.0.0.1;localhost y le damos en Aceptar

Y gualá aquí tienes la prueba des de Chrome en este caso estamos navegando sin el túnel y des del Firefox a través del túnel.

Page 19: Crear tunel y navegar a través de el

Las ventajas de navegar de esta manera es que todo nuestro trafico circula encriptado a través del túnel y en caso de que pusieran un Proxy espiando las conexiones http solo les aparecería una, la primera que es inevitable y necesaria para crear el túnel, las otras pasaran a través de él, el problema es que tu velocidad quedara limitada a la de subida del servidor donde te conectas, así que no te hagas ilusiones pero sirve para salir del paso si solo quieres consultar.

Navegar a través del túnel des de otro pc conectado en la misma red

En algunos casos nos podría interesar que una segunda o una tercera persona navegase a prevés de nuestro túnel, y aunque es posible facilitar los datos de acceso no es muy seguro ni agradable, por esto voy a comentaros como con una simple modificación en el procedimiento anterior se puede convertir tu maquina (la que tiene el Terminal putty abierto) en un servidor SOCKS que proporcione ancho de banda al resto de tus compañeros

Page 20: Crear tunel y navegar a través de el

Como ya sabréis lo primero que necesitamos es saber la dirección IP de nuestra máquina, una vez la sepamos nos dirigimos a la ventana de configuración del Firefox de nuestro compañero y en Servidor SOCKS ponemos la IP de la máquina que tiene el Terminal putty abierto, con el puerto que hemos puesto en la configuración del túnel de putty

Page 21: Crear tunel y navegar a través de el

Es posible que esta maquina tenga 2 túneles creados, y que quieras que unos naveguen a través de uno y los otros a través del otro, solo tendrías de asignar al nuevo túnel un puerto distinto a la hora de abrir el túnel con el putty y ya estaría.

Navegar a través del Túnel con Live Messenger

Puede interesarnos conectarnos al Messenger a través de un túnel,

Page 22: Crear tunel y navegar a través de el

Para ello cuando estemos encima de él pulsamos la tecla ALT izq. Y nos aparecerá el menú convencional de opciones,

Page 23: Crear tunel y navegar a través de el

Nos dirigimos a Herramientas y pulsamos en Opciones…

Page 24: Crear tunel y navegar a través de el

Ahora se nos a abierto la ventana de opciones de Live Messenger

Page 25: Crear tunel y navegar a través de el

Vamos al apartado Conexión

Page 26: Crear tunel y navegar a través de el

Y pulsamos en Configuraciones avanzadas y nos aparecerá esta ventana

Page 27: Crear tunel y navegar a través de el

En SOCKS escribimos localhost y al lado 5050 que es el puerto que hemos configurado en el apartado túnel del putty y le damos a Probar

Page 28: Crear tunel y navegar a través de el

Si todo ha ido OK en el ultimo mensaje nos lo dirá con Puedes conectarte al servicio Windows Live Messenger.

NOTA: Igual que he comentado antes, es posible que otras personas se conecten a través de tu túnel poniendo la IP de la maquina que tiene el Terminal putty abierto “es decir, tiene el túnel creado” y el puerto que en él se a configurado.