Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

Instalación y configuración de un servidor ssh en Debian

Posted by fortress On febrero - 14 - 2010

Una de las herramientas indispensables para administrar los servidores es a través de SSH (Secure SHell). Pero antes, un poco de teoría.

Definición

“SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la maquina mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH” (Wikipedia).

Funcionamiento

El cliente inicia la conexión hacia un puerto predeterminado del servidor, en este caso el puerto reservado número 22. Establecida la conexión TCP los extremos se envían, en texto plano, sus identificadores de versión, para ver si la comunicación es posible entre ellos. De ser compatibles entre sí cambian a un modo de transferencia binaria durante el cual se identifican los interlocutores y se negocian los protocolos de cifrado y firma que se usarán.

Esta negociación de protocolos se lleva a cabo de tal manera que la información intercambiada entre cliente y servidor sólo puede ser descifrada por el destinatario legítimo de la misma, y sólo por él. Para ello al principio de esta fase el servidor envía al cliente su clave pública, para que el cliente la use para cifrar todos los mensajes siguientes hacia el servidor, haciéndolos sólo legibles para el propio servidor. Entonces el cliente genera una clave de cifrado para la sesión en curso, que envía cifrada al servidor junto con el algoritmo seleccionado, y a partir de este momento todo el tráfico entre cliente y servidor viaja cifrado y seguro.

Llegados a este punto el cliente y el servidor se han puesto de acuerdo en un cierto algoritmo de cifrado, han acordado una clave para su sesión, y el servidor se ha identificado ante el cliente con su clave pública RSA (u opcionalmente DSA, en la versión 2 del protocolo). Pero aún falta que el cliente se identifique ante el servidor, que deberá decidir entonces si deja o no acceder al cliente remoto. La identificación del cliente podrá ser mediante pareja de usuario y contraseña, rhost, rhost más identificación de máquina mediante clave RSA o simplemente mediante claves RSA o DSA.

De todos los mecanismos sólo nos interesan el primero y el último. En el primero, el servidor nos dará acceso siempre y cuando la pareja de usuario y contraseña introducida por el cliente sean los de un usuario válido en el sistema operativo del servidor, salvo restricciones adicionales. En la identificación por claves el cliente dispone, al igual que el servidor, de su propia pareja de claves, que envía al servidor durante la identificación. Si el servidor confía en el usuario cuya clave ha recibido, entonces le dará permiso de acceso.

A grandes rasgos el mecanismo de conexión y de identificación del protocolo SSH es sencillo, aunque conviene destacar un par de aspectos relevantes de cara al uso y configuración de los programas relacionados:

  • Las conexiones las inicia siempre el cliente hacia el puerto TCP número 22 del servidor.
  • Las versiones de los protocolos soportados por cliente y servidor deben coincidir, o la conexión no se llevará a cabo.
  • El servidor siempre necesita disponer de una pareja de claves, puesto que usa la clave pública para establecer la conexión segura con el cliente. El tipo de clave tiene que estar soportado en el cliente.
  • El cliente y el servidor deben tener algún algoritmo de cifrado en común, o la conexión no se establecerá.
  • Dependiendo de los mecanismos de identificación soportados por ambas partes, o exigidos por el servidor, la identificación podrá o no fallar.
  • Aún cuando haya un mecanismo de identificación soportado por ambas partes, el cliente deberá proporcionar credenciales válidas al servidor, bien sea una pareja de usuario y contraseña, bien una clave pública.

Al margen de todo lo anterior, el servidor del protocolo SSH, sshd podrá implementar restricciones adicionales de acceso, así como el propio sistema operativo donde ejecuta. Por ejemplo, no es infrecuente que sshd esté compilado con soporte de TCP-wrappers, que esté configurado para aceptar o rechazar el acceso a determinados usuarios o máquinas cliente, o simplemente que algún intermedio no permita establecer la conexión.

Instalación y configuración inicial

1.-Abrir una terminal como root y escribir:

# -get install openssh-server

2.-Cuando se termina de instalar viene con una configuración por default que debemos cambiar para tener una mejor seguridad para esto nos vamos al archivo /etc/ssh/sshd_config

# Vim /etc/ssh/sshd_config

El archivo es algo extenso solo se mencionaran las secciones que son de gran importancia:

El servicio SSH por default trabaja sobre el puerto 22 pero se puede cambiar:

Port 22 ## PUERTO POR DEFAULT

El parámetro ListenAddress especifica las direcciones de las interfaces de donde se van a recibir peticiones OJO con esta sección si vamos a accesar desde una red externa como la casa entonces dejarlo como esta sino pues hay que especificar la red:

ListenAddress 0.0.0.0 ## IP por Default para acceder desde cualquier red

Esta es la sección critica a mi manera de ver porque indicamos si el usuario ROOT puede acceder vía ssh yo en lo personal lo deshabilito y entro con un usuario del sistema diferente a root

PermitRootLogin no

También podemos especificar si se va a ejecutar aplicaciones graficas mediante SSH por ejemplo podemos usar VLC a través de SSH por si no son muy dados a usar comandos yo lo dejo como esta:

X11Forwarding no

Otra opción es permitir el acceso a ciertos usuarios de la siguiente manera:

AllowUsers tusuario, miotrousuario, uncolado

En fin son muchas las opciones que trae el archivo seria bueno que le echaran un vistazo y modifiquen lo que mejor crean ustedes que es para su servidor pero siempre pensando en la seguridad y los riesgos que conlleva hacer una mala configuración.

Por último reiniciamos el servicio:

# /etc/init.d/ssh restart

NOTA: Si están detrás de un tienen que abrir el puerto que han especificado pero si están en DMZ pues les recomiendo que pongan reglas IPTABLE por seguridad.

Ahora a hacer un test desde un cliente usando el terminal:

# Ssh usuario@midominio

Cuando se logueen verán lo siguiente:

Cuando se loguea

También se pueden conectar desde un Windows utilizando la herramienta Putty

Loguearse usando Putty

Mas info sobre configuración: Aquí

Fuente: Aquí

Descargar el Putty: Aqui

Como dividir un archivo de texto demasiado grande

Posted by Epsilon On enero - 11 - 2010

Algunas veces resulta muy molesto trabajar con archivos  de texto  demasiado grandes, ya que para visualizarlos el sistema debe cargar  el archivo completo en la memoria de nuestra maquina,  si estamos trabajando con archivos  de 10 millones de lineas en adelante,  al abrirlo este consumira demasiada memoria y hará que nuestro sistema colapse por completo.

Para solucionar este incomodo problema, los entornos unix traen una utilidad llamada split, la cual nos ayuda como su nombre lo indica a dividir o partir un archivo de texto el cual sea demasiado grande.

La sintaxis de split es:

split [parámetros opcionales] [archivo de entrada] [archivo de salida]

Entre los parámetros tenemos:

  • -l -> numero de lineas en las que se va a dividir o partir el archivo por defecto son 1000
  • -b -> divide el archivo no por lineas, sino por tamaño (expresado en bits)
  • -b k n -> divide el archivo no por lineas, sino por tamaño (donde n es un multiplo de 1024 bytes)

Después de los parámetros,  le damos el archivo de entrada y un nombre de salida,  hay que aclarar que el archivo de salida tendrá la siguiente notación:

nombrea nombreb nombrec nombred nombree nombref etc……

Algunos ejemplos:

split -l 5000 diccionario.txt parte-

Esta sentencia me arrojara  lo siguiente:

parte-a parte-b parte-c  hasta que el archivo quede completamente dividido-

Algo muy sencillo pero util,  trabajar con backups o archivos de textos que este en el orden de los millones. Por ultimo si alguien posteriormente desea  pegar las partes lo puede hacer muy facilmente usando cat.

cat parte-a parte-b parte-c > todocompleto.txt

Uzbl: Un navegador web liviano, minimalista y muy personalizable

Posted by Epsilon On diciembre - 29 - 2009

Si estas cansado de el amplio consumo de CPU y memoria de tu navegador preferido (ya sea Firefox, opera, chromium, etc..) te presento  UZBL un navegador web de código abierto  muy minimalista,  que cumple con la filosofia Unix:

Escribir programas que hacen una cosa y la hacen bien. Escribir programas para trabajar juntos. Escribir programas para manejar flujos de texto, ya que es una interface universal

Antes de empezar con el proceso de instalación hay que aclara que si eres de los usuarios que te gusta que tu navegador tenga un sin fin de addons y servicios adicionales, este no es el navegador para ti, por el contrario si eres un usuario el cual solo le interesa que tu navegador sirva para lo que fue diseñado (abrir paginas web), esta aplicacion sera perfecta para ti.

Ventajas de Uzbl

  • 100%  Personalizable (editar menús, cambiar colores, atajos)
  • rápido
  • soporta flash player
  • Soporta pestañas
  • Al ser tan minimalista no quiere decir que no tenga, marcadores, historiales.
  • navegacion con el teclado.

Instalación de UZBL

Ya que este proyecto es demasiado nuevo ( marzo de 2009 ) solo se encuentra en los repositorios de archlinux, gentoo, ubuntu, la versión testing de debian (squeeze)  y por supuesto en la versión inestable (sid),  para los usuarios de estas versiónes, pueden instalar uzbl de esta forma:

-get install uzbl

Sin embargo para lo usuarios de otras distribuciones, las cuales no tengan uzbl en sus repositorios, necesitaran hacer lo siguiente:

-get install git-core git-arch git-cvs git-daemon-run git-doc git-email git-gui git-svn gitk gitweb libwebkit-dev

Ahora descargamos las fuentes desde la pagina web oficial:

git clone git://github.com/Dieterbe/uzbl.git

Siguiente punto compilar:

make
make install-uzbl-core
make install-uzbl-browser
make install-uzbl-tabbed

Por ultimo debemos copiar el archivo de configuracion tomando como base un ejemplo, para esto hacemos lo siguiente:

cp /usr/local/share/uzbl/examples/config/uzbl/config /home/tu_usuario/.config/uzbl/config
nota: si la carpeta .config o uzbl no se encuentran en tu home, debes crearlas.

Es importante tener en cuenta que este archivo es parte fundamental del navegador, en el se encuentra toda la configuracion  y es alli donde debemos modificar lo que deseamos, desde la apariencia hasta los atajos del teclado.

Usando el navegador web uzbl

Despues de tenerlo instalado solo basta ejecutarlo, dependendiendo de lo que queramos ejecutamos:

uzbl-tabbed -> navegacion con pestañas
uzbl-brower -> navegador simple

algunos atajos de teclado son (recuerda que puedes cambiarlos a tu antojo):

j -> baja la pagina
k -> Sube pagina
h -> corre hacia la izquierda
l ->  corre hacia la derecha
b -> Pagina atras
m -> pagina adelante
o  -> abrir pagina (despues de presionar o digita la url)
r -> actualizar

Aunque llevo poco probandolo  me parece muy bueno, sencillo  y agradable (nada de molestas barras), y me gusto mucho por lo configurable, cada uno puede  adecuarlo a su gusto, por ultimo dejo un screenshot del menu de click derecho que configure.

Free Image Hosting at www.ImageShack.us

No soy un guru manejando este navegador, pero seria bueno ir probandolo a fondo y conociendo sus otras caracteristicas que deben ser muchas mas, esto es simplemente un abrebocas a que se animen a probarlo  y nos cuenten sus experiencias.

Lock Picking: El arte de abrir una cerradura sin la llave

Posted by Epsilon On noviembre - 22 - 2009

Lock Picking es un arte que muy pocos saben practicar,   pero que a muchos otros les interesaría aprender, por que: ¿a quien no le gustaría abrir cualquier puerta  sin tener la llave? Para los puristas  una definición mas completa:

Es la habilidad de abrir una cerradura  mediante el análisis y la manipulación de los componentes del dispositivo de bloqueo, sin la llave original. Aunque la recolección de bloqueo se puede asociar con una intención criminal, Es una habilidad esencial para un cerrajero.La recolección de bloqueo es la manera ideal de abrir una cerradura sin la llave correcta, obviamente sin   dañar la cerradura, permitiendo que sea nuevamente programada para su uso posterior, que es especialmente importante con las cerraduras antiguas que sería imposible de reemplazar si se utilizaron métodos de entrada destructiva.

Algunas herramientas usadas para lock picking son de esta forma:

800pxlockpickingtools Lock Picking: El arte de abrir una cerradura sin la llave

locksmithslimlimelockpi Lock Picking: El arte de abrir una cerradura sin la llave

En los grandes eventos de seguridad informatica como Blackhat o Defcon, suelen realizar competencias de lock picking, las cuales consiste en abrir cerraduras de todo tipo (incluyendo cajas fuertes) en el menor tiempo posible.

En internet hay mucha información sobre este  interesante tema, hay desde vídeos hasta manuales de como crear nuestras propias herramientas, no soy un experto en el tema, pero siempre me ha inquietado este arte. El motivo de esta entrada simplemente es invitarlos a que  se inmersen un poco en este mundo y  por que no quizás mas adelante podamos crear nuestras propias competencias y vídeos.

Dejo algunos vídeos interesantes:

Abriendo y editado archivos de Excel 2007 desde internet

Posted by SpiderM@N On octubre - 29 - 2009

sheetster

Cuantas veces nos ha sucedido que estamos esperando un informe o un documento y cuando por fin recibimos el archivo sucede que este llega en un formato de esos raros…para ser más exacto en un formato XLSX esos formatos que Microsoft pone de moda haciendo lo que quiere con los estándares.

Supongamos que no tenemos como abrir este archivo o que simplemente nos encontramos en un computador que no es el nuestro y no queremos dejar muchos rastros al respecto de lo que hacemos con determinados archivos ¿Cómo lo modificamos?

Bueno pues para este tipo de cosas nació Sheetster es una aplicación WEB Gratis Y LIBRE para editar “rápidamente” archivos con este tipo de formatos y hojas de cálculo en general.

Para trabajar se basa en JAVA (así que se requiere el JRE) y por lo mismo tiene unos efectos visuales bastante interesantes, pero que probablemente con el tiempo se vuelvan cosa del montón.

Igualmente me pareció interesante que desde la página oficial promocionen la versión Servidor local de esta aplicación, debo confesar que no la he probado pero suena bastante interesante.

Página Oficial.

Hace ya varios días mi profesor de bases de datos, dejo en Internet una base de datos para hacer un taller. (Hasta ahí todo normal) Pero cuando descargue el archivo resulta que dicho archivo tenía extensión .mdb (Archivo de access). Lo primero que pensé fue listo debe haber algo con lo que se pueda abrir esta cosa en mi Debian. Basto con buscar en Google y en 5 minutos encontré esta aplicación MDBTools gracias a la cual pude terminar mi tarea XD.

MDBTools es una herramienta que nos permite exportar datos y esquemas desde archivos producidos por MS Access 97/2000/XP/2003.

mdbtools1 MDBTools: herramienta para visualizar bases de datos access en GNU/Linux

Para instalar:

# aptitude install mdbtools

Si prefieres descargar las fuentes acá.

El modo de uso es muy sencillo, simplemente abres el archivo .mdb y te mostrará algo como la imagen de arriba (Muestra las tablas de la base de datos).

Definition: Permite ver la definición de la tabla (Nombres de campos, tipo de datos, tamaño y las keys).

Data: Muestra las tablas con los datos.

Export: Con esta opción podemos exportar los datos de las tablas a un archivo de texto.

Adicional a estas opciones hay otra que nos permite hacer Queries. (A la cual accedemos dando click en el icono de los dos engranajes)

mdbtools2 MDBTools: herramienta para visualizar bases de datos access en GNU/Linux

Con respecto a esta última opción tengo para decir que no me han funcionado consultas más estructuradas, solamente las simples.

No es más espero que sea de utilidad para alguien . Hasta la próxima!!.

Diferencia entre Xploits y Exploits

Posted by Epsilon On octubre - 23 - 2009

Mucha gente tiende a confundir los términos exploits y xploits o  creen que significan lo mismo, sin embargo,   aunque se escriban casi de la misma forma tienen grandes diferencias de carácter conceptual. En esta oportunidad quiero explicarles desde mi punto de vista: que es un y un Xploit, para que podamos ver claramente las diferencias que hay entre ellos y de esta forma no volver a confundirlos.

¿Que es Xploit?

Un Xploit son  las conocidas  y famosas postales de gusanito falsas, que su función es  crear una pagina idéntica a la de hotmail,gmail, yahoo, facebook, etc,  para que los usuarios  digiten allí su password. El procedimiento es sencillo. A la víctima le llega un correo diciendo que alguna persona (puede ser conocida o no) le mando una tarjeta postal, la víctima  por curiosidad abre el correo y este dice que para abrir la postal debe dar click en un enlace, sin embargo este enlace es falso y lo que hace es abrir el formulario idéntico de hotmail (o de otro servicio de correo)  creado por el atacante. Estando allí, la víctima simplemente cree que se le cerro hotmail y vuelve a escribir la contraseña sin saber que ese formulario es falso.

¿Que es ?

Un es un programa que logra explotar  un bug o fallo de algún programa o hardware, causando que este funcione de tal forma que no fue pensado en un comienzo,  Dichos programas son hechos generalmente en C, perl, python, ruby, php y su función generalmente es violar las medidas de seguridad para poder acceder al mismo de forma no autorizada y emplearlo en beneficio propio o como origen de otros ataques a terceros.

Espero que haya quedado un poco mas claro las diferencias que hay entre,  un termino y el otro,  y  si alguien no esta de acuerdo con lo expuesto, con gusto lo invito a que me  diga desde su punto de vista  cual es la diferencia entre estos dos términos.

SSH Tunneling – Saltandose el servidor Proxy [Parte II]

Posted by Epsilon On septiembre - 26 - 2009

En la entrada anterior, aprendimos a conectarnos a cualquier puerto desde una red interna gracias al http tunneling, con esa tecnica es posible evadir cualquier y  conectarse a cualquier servidor externo, ya sea: FTP, SSH, IRC, TELNET, MESSENGER, ETC. ¿ Pero que pasaria si lo que necesitamos es saltarnos las reglas que tenga implementadas el servidor proxy? Es decir, navegar sin restriccion alguna, descargar torrents, abrir el facebook, hi5, hotmail, p0rn, etc. La respuesta a esa pregunta, es este articulo, si tenemos una cuenta SSH en un servidor externo, podemos hacer un tunel para salir atraves de ese equipo  a la internet.

En teoria vamos hacer lo siguiente, conectarnos a un servidor proxy externo, gratuito y sin restricciones, y le diremos a nuestro navegador que saldremos a la red externa a traves de este. Suena sencillo, pero pueden haber problemas que nos dificulten un poco el proceso (pero nada que no se pueda resolver), asi que tratare de abordar las diferentes situaciones que se pueden presentar dependiendo del escenario.

Antes de entrar materia, debo decir que este procedimiento es alternativo a muchos otros, es decir,  existen varios metodos mas sencillos para evitar las reglas de un servidor proxy, sin embargo este es el mas seguro  y confiable, debido a que los otros tienden a ser inservibles en muchos escenarios y situaciones, por varios motivos, DNS,  puertos cerrados, etc.

¿Que necesitamos?

  • Un servidor SSH
  • Una cuenta en este servidor SSH
  • Un servidor proxy, gratuito y sin restricciones lo pueden conseguir aca

nota:  Lo adecuado es que tuvieras un servidor  con los dos servicios, SSH y proxy, de esta forma te ahorrarias un paso,  de serlo asi, ya no necesitas un servidor proxy, puesto que  lo tienes en el mismo SSH.

Y arrancamos!!

Al igual que la primera parte, el procedimiento es diferente  para cada situacion, dependiendo si  en tu red interna tienen el puerto 22 abierto o no,  para aquellos que no tengan el puerto 22 abierto necesitan un poco mas de trabajo para realizar la conexion.

Con Puerto SSH abierto

Para estos privilegiados el procedimiento es muy sencillo, solo basta con lanzar la conexion a SSH con estos parametros:

ssh -L puerto_local:server_destino:puerto_destino -l usuario_ssh -N servidor_casa

Donde:

Puerto_local: El puerto que estara a la escucha en nuestra maquina
server_destino: Direccion del servidor proxy
Puerto_destino:  Puerto del servidor proxy
Usuario_ssh: Bastante obvio
Servidor_casa: Direccion del servidor SSH que esta en el exterior

Un ejemplo

ssh -L 2525:190.97.144.194:6588 -l usuario_ssh -N direccion ip server.

Por ultimo nos queda ir a la configuracion de nuestro navegador ir a la pestaña de red, y donde dice proxy, ponemos los siguientes datos:

servidor: localhost
puerto:2525

proxy SSH Tunneling   Saltandose  el servidor Proxy [Parte II]

Con puerto SSH Cerrado.

Para aquellos que  su escenario es un poco mas complicado y que no tiene  el puerto SSH abierto, deben utilizar la herramienta que conocimos en la primera parte de este articulo:

proxytunnel -a 1000 -p ip_proxy:puerto -d ip_servidor-SSH:22 -v -q

Ahora nos conectamos al SSH de la misma forma que lo hicimos anteriormente, pero teniendo en cuenta, los nuevos parametros:

ssh -p 1000 -L  puerto_local:server_destino:puerto_destino -l usuario_ssh -N localhost

Ahora un ejemplo:

ssh -p 1000 -L 2525:190.97.144.194:6588 -l usuario_ssh -N localhost

Configuramos nuestro navegador y  ponemos los mismos valores, y listo tendremos nuestro proxy sin restricciones.

Algunas anotaciones

  • Deben tener en cuenta, que la conexion sera un poco lenta, debido a los saltos que debe dar.
  • Muy importante es probar los proxys, antes de asignarlos, ya que algunos dejan de estar online, pueden probar simplemente con un ping.
  • Lo ideal seria tener un servidor en nuestro hogar, con SSH y un Squid corriendo, para ahorrarnos muchas cosas.
  • Por ultimo, no sobra decir que existen muchas maneras de evadir proxys, esta es solo una de tantas.

HTTP Tunneling – Evadiendo los Firewall [Parte I]

Posted by Epsilon On septiembre - 23 - 2009

Generalmente los sysadmin, ya sea por seguridad o  diversas politicas, restringen el uso de servicios como:  FTP, IRC, SSH,  entre otros, dentro de la red privada la cual es de su responsabilidad.  En algunas empresas y universidades se puede observar  este tipo de limitaciones,  que sumadas con la implementacion de un Servidor Proxy, hacen que el usuario final, solo pueda navegar en la red.

Una imagen vale mas que mil palabras:

300pxgatewayfirewallsvg HTTP Tunneling   Evadiendo los Firewall [Parte I]

Sin embargo, hay ocasiones en las cuales necesitamos hacer uso de algun puerto o servicio dentro de una red privada. Para poder conectarse de forma correcta, debemos encapsular todo el trafico de determinado protocolo  a traves del unico servicio el cual no esta filtrado: el servicio web, a este concepto es a lo que se denomina http tunneling:

HTTP Tunneling is a technique by which communications performed using various network protocols are encapsulated using the HTTP protocol, the network protocols in question usually belonging to the TCP/IP family of protocols. The HTTP protocol therefore acts as a wrapper for a covert channel that the network protocol being tunneled uses to communicate.

HTTP Tunnel software consists of client-server HTTP Tunneling applications that integrate with existing application software, permitting them to be used in conditions of restricted network connectivity including firewalled networks, networks behind proxy servers, and NATs.

The HTTP stream with its covert channel is termed an HTTP Tunnel.

Teniendo claro el concepto de HTTP Tunneling, podemos ir a la practica, para aplicar esta tecnica de evasion, necesitamos  un software que se encargue de hacer todo el proceso, por fortuna, existe una aplicacion libre que nos hace este trabajo,  los usuarios de Debian y Ubuntu pueden descargarlo desde los repositorios y para  las demas distribuciones pueden descargar las fuentes haciendo click aqui

-get install proxytunnel

Despues de instalar nuestra aplicacion, procederemos usarlo, siempre es recomendable leer el manual de cada aplicacion para conocer sus todas opciones, parametros  y modo de uso, de esta forma  evitaremos posibles errores “tontos” de sintaxis.

El modo de uso es el siguiente:

Proxytunnel -a puerto -p proxy:puerto -d host:puerto -v
Donde:
-a -> Indica que puerto quedara a la escucha de conexiones.
-p -> debemos poner alli la direccion del proxy con su respectivo puerto
-d -> Aqui ponemos el servidor y puerto de destino
-v -> Modo verbose

Ahora un ejemplo claro, supongamos que deseamos ingresar al irc de la comunidad DragonJAR, como todos saben el IRC trabaja en el puerto 6667, debido al de la red interna no podemos acceder de forma normal, pero si lo podemos hacer, con ayuda de nuestra aplicacion asi:

Proxytunnel -a 2525 -p ip_proxy:puerto -d irc.chatx.net:6667 -v

Eso es todo, si queremos ahora solo tendremos que conectarnos al irc, con los siguientes datos:

servidor: localhost
puerto:2525

Despues de esto, muchos de ustedes estaran pensando, como podemos abrir el msn o mejor aun, como podemos hacer que todo el trafico pase por otra maquina y podamos navegar sin restricciones?? La respuesta a esta pregunta es,  todo esto se puede hacer siempre y cuando dispongamos de un servidor SSH(obviamente con cuenta en el)  afuera de nuestra red, en teoria, debemos conectarnos al servidor SSH y decirle  que sirva de pasarela, es decir, que a traves de el, pase todo  el trafico. ¿Y como lo hacemos?

  1. SSH: En este paso es donde puede variar mucho la situacion dependiendo de las restricciones que tenga la red interna de tu trabajo o universidad, si el puerto 22 no esta bloqueado, estas hecho puedes saltar al paso numero 2. Pero no te preocupes si en tu red privada esta bloqueado el puerto del SSH podemos hacer uso de nuestra herramienta proxytunnel:
  2. proxytunnel -a 1000 -p ip_proxy:puerto -d ip_servidor-SSH:22 -v -q
    Con esto ya podemos conectarnos al SSH.

  3. Ya estamos seguros  de que podemos conectarnos al servidor SSH, ya sea de forma directa o haciendo el tunel, ahora debemos conectarnos al SSH e indicarle que servira como pasarela
  4. Para aquellos que no necesitaron tunnel

    ssh usuario@ip_Server -D 2000
    Donde el 2000 es el puerto que hara el tunel SSH.

    Para los que necesitaron del tunel para poder conectarse al servidor

    ssh -p 1000 usuario@localhost -D 2000
    Hay que tener en cuenta que el 1000 se refiere al puerto del tunel, y el 2000 es el puerto que hara el tunnel SSH

  5. Con esto debemos tener nuestra configuracion y pasarela de forma correcta, lo unico que nos queda es ir a nuestras aplicaciones (msn, pidgin, thunderbird) y configurarlas para que usen el proxy con los datos:
  6. direccion_proxy= localhost
    puerto= 2000
    socks5

Con esta tecnica podemos evadir muchas restricciones, pero no las restricciones web, es decir, no  podemos navegar libremente, ya que estaremos condicionados a las reglas del proxy, si estabas pensando implementar esta tecnica para poder abrir el facebook, youtube, hi5,  o lo que sea desde tu trabajo o universidad, ps debo decirte que no servira de mucho. Pero tranquilos no se alarmen, para todo hay solucion, en la segunda parte de este articulo, les mostrare como podemos  saltar las reglas del proxy y navegar libremente sin restricciones.