Blog de Daniel Zegarra Rotating Header Image

Linux

Proxy Web sobre SSH

Usando dreamhost.com como proxy

Y bien, volviendo a los temas originales del blog esta vez explicare como usar como un proxy web cualquier servidor al que tengamos acceso via ssh.

Las conexiones ssh son tuneles entre dos computadores (cliente y servidor) que permiten una comunicacion segura entre estas. Yo lo utilizo para configurar remotamente servidores linux y para transferir archivos al servidor de hosting que aloja este blog. Pero el potencial de ssh va mas alla. Lo que vamos a intentar ahora es usar este canal para salir a internet.

Esto es util en los siguientes casos:

  • Te encuentras en una red detras de un proxy y no te deja entrar a… facebook, youtube, etc.
  • Estas conectado a una red wi-fi sin proteccion y quieres proteger tus datos (con ssh todo va encryptado).
  • Deseas tener acceso a contenido que no se encuentra disponible en tu region (pero si en la region donde se encuentra tu servidor ssh).

Para empezar, lo que se necesitas para este experimento es:

  • Un equipo corriendo un servidor ssh que se encuentre en un lugar accesible ( Puede encontrarse en tu misma red o contar con un IP publico para tener acceso a el desde cualquier parte).
  • Tener instalado Putty, si usas Windows o tu cliente ssh si usas Linux.

Nota: Yo tengo un hosting contratado con Dreamhost que me da acceso a mi servidor compartido Linux via ssh. Utilizare este servidor como ejemplo.

En Windows

Ejecutas Putty e ingresas la direccion de tu servidor en el campo Host Name (or IP Address). Asegurate que connection type tenga marcado SSH.

Pantalla inicial de Putty

Pantalla inicial de Putty

Esta primera pantalla es basica. Con llenar esto es suficiente para iniciar la conexion con el servidor pero para lograr lo que queremos hace falta algo mas. En el panel izquierdo ve a Connection > SSH > Tunnels.

En el grupo de campos llamado Add new forwarded port ingresa 8080 en el campo Source port y elije Dynamic de entre los botones de opcion para que quede tal como se ve en la siguiente imagen.

Configurando el nuevo tunel

Configurando el nuevo tunel

Una vez hecho esto dale en el boton Add. Esto ingresara la configuracion dada a la lista de tuneles que deben crearse al conectarse con el servidor. Veras un nuevo elemento con el nombre D8080

Con ayuda del panel izquierdo regresa a la pantalla inicial de Putty (Session) y dale un clic en el boton Open para empezar la conexion con el servidor. Luego de ingresar el nombre de usuario y clave y una vez que el servidor confirme que los datos son correctos Putty redireccionara todos los paquete enviados al puerto 8080 local hacia el servidor.

En Linux

Pues es mas simple. Tan solo corres el siguiente comando:

ssh -D 8080 username@servidor_ssh

Donde el numero seguido de -D es el numero de puerto que se quiere crear, username un nombre de usuario valido y servidor_ssh es la direccion del servidor. Presionas <enter> e ingresas la clave para completar la autenticacion.

Configurar el proxy en el navegador

Yo usare Firefox pero tu puedes usar cualquiera. Te vas al menu Herramientas > Opciones > Avanzado > Red > Conexion > Configuracion y dejas los campos tal como vez en la imagen siguiente.

Configurando un proxy Socket en Firefox

Configurando un proxy Socket en Firefox

Guardas los cambios y firefox saldra a internet por el tunel con tu servidor remoto.

Hacemos la prueba?

Sin el proxy (saliendo a internet con trafafonica)

Salida normal a internet, directamente a traves del router

Salida normal a internet, directamente a traves del router

Y este es el resultado saliendo a traves de xxx.dreamhost.com.

Usando dreamhost.com como proxy

Usando dreamhost.com como proxy

Notas

  • Este proceso redireccionara todo el trafico del browser por este tunel la resolucion de nombre de dominio las seguira haciendo por la via habitual. Si estas detras de un proxy que te bloquea el acceso por el nombre de dominio que utilices necesitas activar la opcion set network.proxy.socks_remote_dns de firefox entrando a about:config para resolver los nombres por el mismo tunel.
  • La version de Putty a la fecha de creacion de este post es la 0.60.

La distribución Linux adecuada

Mi primer contacto con Linux fue gracias una revista de esas que llevan un disco de aplicaciones dentro. Esta era una distribución que se instalaba como una aplicación de Windows y modificaba a voluntad los archivos de arranque de Windows 98 para cargarse. Así que cada vez que querías usar este “Linux” tenias que entrar a Windows y correr esta aplicación la cual te hacia reiniciar la PC con Linux y al próximo reinicio volvías a Windows nuevamente.

En ese entonces mi primer contacto con Linux fue traumático. Encontré que no podía correr los juegos que solía usar y el editor de textos era horrible (incluso comparado con el Ms Word 97 de esos tiempos). No habré ingresado a ese Linux mas de 3 veces cuando lo desinstale para no volver a probar software libre hasta varios años mas tarde.

Ahora Linux es otra cosa. Ha dejado de ser ese sistema operativo con falta de gracia y “solo para servidores” e incluso hasta llegar a usarse en computadoras de escritorio de usuarios nada especializados en informática.

Pero ahora, surge otro problema para los usuarios que quieren aventurarse en Linux:

¿Cual distribución elegir?

Si bien, no todas las distribuciones están pensadas para usarse en una PC de escritorio, muchas de ellas se califican como “perfectas para los usuarios que recién empiezan” o con “tiene todo lo que necesitas para trabajar” lo que hace muy difícil elegir una sin antes probarla.

Lo que sigue es una evaluación de las distribuciones Linux mas populares que pueden usarse en equipos de escritorio:

Mandriva Linux One 2010

Vista miniatura de aplicaciones activas

Mandriva 2010 - Vista miniatura de aplicaciones activas

Si bien el theme por defecto es muy… azul, se puede cambiar al Oxigen que es mas serio.

Hay asistentes de configuración, principalmente en redes, que parecen pensados para hacer las tareas mas comunes (como el compartir el acceso a internet o compartir archivos con equipos Windows) y el manejo de redes 3G es realmente impresionante. Detecto y configuro mi conexión a internet automáticamente al leer el ID de mi operador móvil. Lo hizo tan rápido que me dio la sensación que conectarme a una red Wifi no es tan simple como yo pensaba.

Gestión de adaptadores de red

Mandriva 2010 - Gestión de adaptadores de red

Mandriva 2010 - Centro de control de red

Mandriva 2010 - Centro de control de red

Mandriva 2010 - Centro de compartición

Mandriva 2010 - Centro de compartición

Mandriva 2010 - Escritorio 3D

Mandriva 2010 - Escritorio 3D

Mandriva 2010 - Monitor del sistema

Mandriva 2010 - Monitor del sistema

Su defecto mas grande, creo que el aspecto. Como dije antes, muy azul. Iconos muy coloridos, poco serios, y el lanzador de aplicaciones se lleva la peor parte.

Entre sus características se encuentra:

  • Usa KDE 4
  • Asistentes para la configuración de red y compartición de archivos en la red.
  • Asistente para compartir la conexión a internet.
  • Excelente con las redes 3G. (incluye una base de datos con las configuraciones por defecto de las operadoras)
  • El software incluido para dispositivos Bluetooth  no soporta A2DP.
  • Cubo 3D de escritorio.
  • Flash Player pre-instalado
  • El lanzador de aplicaciones es espantoso
  • Soporte de audio USB
  • Es LiveCD
  • Mapa del hardware
  • OpenOffice pre-instalado
  • Incluye versión en español

Descargar Mandriva One 2010

openSUSE 11.2

Escritorio de openSUSE 11.2

openSUSE 11.2 - Escritorio de usando KDE4

Desarrollado por Novell, es muy conocido por su herramienta de configuración YAST y por ser uno de los mas completos en cuanto a variedad de paquetes se refiere.

Es un sistema operativo robusto usado en muchos casos en servidores. Esta versión cuenta con KDE4 y es capaz de iniciar en modo LiveCD.

Lamentablemente, en mis pruebas, resulto no ser el mas indicado en cuanto a su uso en un computador personal. En donde mas problemas tuvo fue en conectarse a internet usando un modem 3G. No incluye una base de datos con configuraciones por defecto por lo que la configuración de la operadora hay que hacerlo de manera manual (al menos con KDE). En mi caso, luego de configurarlo, conectarlo y obtener correctamente el IP y DNSs de mi operador, no pude tener salida a internet.
En cuanto al soporte para bluetooth, al igual que Mandriva, el software nativo de KDE tampoco soporta A2DP.

Escritorio 3D con openSUSE

openSUSE 11.2 - Escritorio 3D

Lanzador de aplicaciones de openSUSE con KDE4

openSUSE 11.2 - Lanzador de aplicaciones con KDE4

Mi equipo - openSUSE

openSUSE 11.2 - Mi equipo

Parámetros de red correctos pero aun sin salida a internet

openSUSE 11.2 - Parámetros de red correctos pero aun sin salida a internet

De openSUSE se puede destacar:

  • Puedes elegir entre usarlo con KDE, Gnome o en modo consola.
  • Es LiveCD
  • Cuenta con su conocido asistente de configuración YAST
  • Soporte para audio USB
  • El software incluido para dispositivos Bluetooth  no soporta A2DP.
  • Pésimo con los modem 3G
  • OpenOffice pre-instalado
  • Mapa del hardware
  • Cubo 3D de escritorio
  • Incluye versión en español

Descargar openSUSE 11.2

Ubuntu 9.10 Karmic Koala

Mi desktop con Ubuntu Karmic Koala

Ubuntu Karmic Koala - Mi desktop

Es el que mas conozco porque lo llevo usando desde hace algún un tiempo. Es conocido por ser simple e intuitivo, perfecto para usuarios que recién empiezan a usar tecnología libre. La versión 9.10 incluye el “Centro de Software de Ubuntu” que simplifica increíblemente el proceso de buscar e instalar nuevo software. Fue uno de los primeros sistemas operativos que vino en formato LiveCD.

El soporte para redes 3G es amigable. Con elegir el país y proveedor de internet móvil ya tienes configurada tu red 3G.
Si bien el aspecto y efectos gráficos son aceptables no es comparable con la tecnología Aero de Microsoft. Me parece incluso que KDE4 cuenta con un aspecto de trabajo mas llamativo.

Centro de software de Ubuntu Karmic Koala

Ubuntu Karmic Koala - Centro de software

  • No requiere de conocimientos técnicos para leer la documentación integrada (la comunidad de Ubuntu si cuenta con documentación técnica para usuarios mas avanzados)
  • Es LiveCD
  • Usa Gnome como escritorio gráfico
  • Soporte para audio USB
  • El manejador de audio funciona bien pero no es muy intuitivo
  • Preparado para redes 3G. Aunque tiene algunos bugs con algunos modem USB. (incluye una base de datos con las configuraciones por defecto de las operadoras por países).
  • El software incluido para dispositivos Bluetooth  no es bueno con dispositivos A2DP. Se recomiendo usar Blueman (instalable desde del Centro de Software)
  • OpenOffice pre-instalado
  • Incluye versión en español

Descargar Ubuntu 9.10 Karmic Koala

Linux Mint 8 Helena

Escritorio de Linux Mint 8 Helena

Linux Mint 8 Helena - Escritorio

Podría decirse que es un Ubuntu Karmic Koala Unattended. Es una distribución de Ubuntu con Flash Player pre-instalado, codecs propietarios pre-instalados, las mejores aplicaciones sin importar si cuentan con soporte de Canonical (la empresa detrás de Ubuntu) y lo mas importante, con temas gráficos especialmente diseñados para esta edición.

Esta distribución hereda las ventajas de Ubuntu pero pierde el soporte multi-idioma nativo (pero que luego se puede instalar desde internet).

También incluye un Centro de Control que funciona igual que en Ubuntu Karmic pero con un aspecto gráfico muy similar al administrador de paquetes Synaptic.

Muy similar al centro de control de Ubuntu salgo algunas opciones mas

Linux Mint 8 Helena - Muy similar al centro de control de Ubuntu salgo algunas opciones mas

Centro de Software de Linux Mint 8

Linux Mint 8 Helena - Centro de Software

Descargar Linux Mint 8 Helena

Gentoo Linux

Default KDE 4 screen of the Gentoo Linux 10.
Image via Wikipedia

No lo he probado por no tener una versión LiveCD y por ser al parecer una distribución pensada para usuarios mas experimentados. He conocido empresas de hosting que utilizan Gentoo como sistema operativo para sus servidores, asi que puedo suponer que el SO es tan robusto como se comenta.

La interfase gráfica, al menos por los screenshots que he visto en internet, no es uno de sus puntos fuertes aunque eso en realidad depende de el escritorio gráfico que se le instale. Se cuenta como principal ventaja el uso de “Portage”, su instalador de paquetes.

Descargar Gentoo Linux

Yo me decidí por Linux Mint 8 por que ya me he acostumbrado a usar Ubuntu, conozco sus puntos fuertes, sus puntos débiles y ya que con Ubuntu tengo todo lo que necesito se que no me faltara nada con Linux Mint. Empezaré a instalarlo luego de terminar este post ;)

Probando distribuciones de Linux

He estado buscando un sistema operativo ligero para las precarias máquinas de mi amigo Marte. Ya conozco todas las versiones de Windows y la única que recomendaría es el Win7, pero esta no correría en una Pentium II así que es la primera descartada.

Pensando en la plataforma Linux, hay varias distribuciones para elegir:

Ubuntu
Muy conocido y utilizado. Por lo tanto, es probable que si te topas con un problema, en Internet alguien ya haya colgado la solución. No es muy ligero pero si robusto. Su interfaz es simple y facil de comprender. Ademas, el entorno gráfico es muy completo. Casi todas las aplicaciones que necesites las instalarás desde el gestor de aplicaciones.

Ubuntu 9.10

Ubuntu 9.10

Kubuntu
Es la versión de ubuntu con el entorno gráfico KDE en lugar de Gnome. Personalmente KDE me parece mas estilizado pero de acabado tosco, como barato. También creo que requiere de mas recursos gráficos.

Kubuntu 9.10

Kubuntu 9.10

Lubuntu
Una distribución nueva pensaba para equipos de bajo nivel pero aún se encuentra en una versión beta y con hartos bugs.

Lubuntu 9.10 b23

Lubuntu 9.10 b23

Puppy
Otra versión muy ligera pero también recontra fea. No esperes mucho de esta, pero seguro corre sin problemas en una Pentium I.

Puppy 4.1.1

Puppy 4.1.1

Slax
Esta tiene casi las tres B’s. Es ligera, el soporte de su web es bueno, muy personalizable. Las manera de instalar aplicaciones es novedosa y el soporte de estas es constante. Los gráficos tampoco están mal.

Slax 6.1.2

Slax 6.1.2

En conclusión
Depende por supuesto del hardware del equipo. Esto es lo que recomendaría si me encontrara con:
80486 : No te queda otra que Puppy o Windows 95.
Pentium I : Puppy, Windows 98. Si tienes mas de 128MB de RAM entonces podrías probar Windows ME o Slax.
Pentium II : Windows 98/ME/XP (Fenix edition), Slax.
Pentium III o AMD Duron : Windows XP (desactivando servicios inútiles), Slax.
Pentium IV o AMD Athlon: Windowx XP, Ubuntu.
Intel DualCore/Core2Duo, AMD Phenom : Vista/7, Ubuntu, Kubuntu.

Por supuesto que lo que recomiendo para una Pentium II una Pentium IV podría correrlo.

Cuidado con el servicio SSH

Solo en un día, el 2 de enero, mi servidor linux registro 833 intentos de logeo errados. Por supuesto, ninguno intento mio.
Es sorprendente, ni siquiera tengo un dominio propio.

Así que tengan cuidado con la seguridad de su servidor. El protocolo SSH es seguro pero aun hay otras maneras de atacar a tu servidor usando esta herramienta:

  • Usar un nombre de usuario y clave obvio.
  • Permitir a mas de un usuario del sistema logearse remotamente.

Ademas puedes mejorar la seguridad limitando los IPs que pueden tener acceso a tu servidor. Solo agrega las siguientes lineas en los siguientes ficheros.

Fichero /etc/hosts.deny
#Esta linea bloqueara la entrada de cualquier solicitud a cualquier servicio
ALL : ALL

Fichero /etc/hosts.allow
#Esta linea permitira al IP 255.255.255.255 tener acceso al servicio SSH (cambia el IP por el tuyo)
sshd : 255.255.255.255

Los dos cambios provocaran que el servidor ignore todas las peticiones a excepcion de las que vengan del IP permitido solicitando acceso al servicio sshd.

Me llego mi Ubuntu Intrepid Ibex

Por la tarde me lo dejaron sobre mi escritorio. Al igual que las versiones anteriores, viene en un sobre acolchado conteniendo el disco con su respectivo sobre y unos stickers (que esta vez son cuatro).

Unboxing mi Ubuntu Intrepid Ibex (Desktop)

Unboxing mi Ubuntu Intrepid Ibex (Desktop)

Ya lo había bajado de la web hace unas semanas pero no me habia dado el tiempo de probarlo.

No esperen encontrar un cambio extraordinario. Yo lo note casi igual que su predecesor, al menos desde el punto de vista gráfico. Algo que les gustará a los usuarios de laptops es que el soporte para redes inalambricas es mucho mejor (aunque no viene aún con un buscador de redes wifi agradable).

Yo me imaginaba muchas mas mejoras gráficas como publique en un post anterior pero no es el caso. No te entristezcas porque si bien Ubuntu no se ha hecho mas bello tu lo puedes mejorar. En el perfil de willwill100 de deviantArt puedes encontrar screenshots y los archivos necesarios para convertir tu Ubuntu en una envidiable belleza. Lo que no dice es como instalarlos, suerte con eso :P