Evadiendo restricciones con proxytunnel y ssh

En articulo anteriores intentamos dar algunos ejemplos para saltarnos las restricciones de firewalls corporativos y bloqueadores de contenidos, con algunas buenas herramientas:

Para escaparnos, lo primero que necesitamos saber es ¿donde están las salidas? para ello lo mejor es dedicarse unos días a estudiar la red en la que estamos y sus restricciones, pero normalmente siempre hay unas reglas comunes:

  • Se bloquea todo el trafico que no sea web via proxy
  • No se permiten conexiones por puertos que no sean 80 y 443
  • Se bloquean todas las conexiones por otros puertos y protocolos.

Ahora que tenemos claro que la salida tiene que ser vía web, ya podemos empezar a planear nuestra ruta de escape, para ello necesitamos:

  • Un Servidor apache(para montar nuestro proxy http)
  • Un DNS accesible que esta bajo nuestro control(para apuntar el apache hacia alli)
  • Un Tunnel desde nuestra maquina local, hacia un servidor ssh, usando proxytunnel.

La idea es que el servidor apache nos haga de puente entre nuestra conexion ssh y el proxy-web de la red en la que estemos, para ello configuramos apache como proxy.

Instalando configurando apache apt-get install apache2

Creamos nuestro sitio

vim /etc/apache2/sites-availabl/proxy_ssh.conf

Habilitamos mod_proxy_http, mod_proxy_connect

 a2enmod proxy_http
 a2enmod proxy_connect

<VirtualHost *:80>
    ServerAdmin 
    ServerName tudominio
    ErrorLog /var/log/apache2/error_log
    TransferLog /var/log/apache2/access_log

    # Allow proxy connect (forward-proxy) to servers only on port 80 (http) and 42 (at my box SSH)
    ProxyRequests On
    AllowConnect 80 22
    # Deny all proxying by default...
    <Proxy *>
        Order deny,allow
        Deny from all
    </Proxy>
    # This directive defines which servers can be connected to.
    # Access is controlled here via standard Apache user authentication.
    <ProxyMatch (IP|tudominio|)>
        Order deny,allow
        Allow from all

        #You should replace the above two rules with something like this:
        # Deny from all
        # Allow from <some_host>
        # Allow from <some_host>
    </ProxyMatch>
</VirtualHost>

Instalando configurando proxytunnel

apt-get install proxytunnel

Ahora editamos nuestro fichero de configuración ssh para indicarle que use proxytunnel

vim ~/.ssh/config
Host IP  tudomino 
        DynamicForward 1080
        ProxyCommand proxytunnel -v -p IPFIREWALL:PUERTO -r IPAPACHE:80 \
               -d %h:%p -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)\n"
        ServerAliveInterval 30

Ahora solo nos queda lanzan el tunnel desde nuestra maquina local

ssh -l proxy -p 22 IPSERVIDORSSH

Happy hacking ;)

Compartir

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax