Beta, como Goooogle
10 abr
En mi trabajo usan un servidor proxy para salir a Internet. Con este controlan que páginas no podemos ver y que servicios no podemos usar (streaming, Messenger…). Solo me permiten salir al exterior a través del proxy y con destino el puerto 80 (HTTP) o 443 (HTTPS).
En una tarde de aburrimiento decidí “investigar” como burlar el proxy. La cosa es bastante fácil si tenemos todo lo necesario.
Necesitamos:
Lo fácil seria conectarnos a una maquina del exterior a través de SSH y hacer que esta haga de proxy para darnos salida a Internet. Como ha he dicho solo puedo salir por el proxy así que necesito crear una sesión SSH a través de proxy, para eso usaremos Corkscrew. Si nuestra maquina del trabajo es Linux debemos instalar Corkscrew, si usamos Windows podemos usar Cygwin e instalar Corkscrew. Creamos el script y lo guardamos en $HOME/.ssh/ConexionServidorCasa:
# Linea para arrancar Corkscrew cuando uso ssh
ProxyCommand /usr/bin/corkscrew <IP PROXY> <PUERTO PROXY> %h %p
Si el proxy requiere usuario:
# Linea para arrancar Corkscrew cuando uso ssh
ProxyCommand /usr/bin/corkscrew <IP PROXY> <PUERTO PROXY> %h %p usuario:password
Otra limitación son los puertos, debemos configurar el servidor SSH para escuchar el puerto 443 (u 80). También podemos usar una regla PREROUTING de IPTables para redirigir el puerto y no tocar el servidor SSH. Sería algo así:
# Permitimos el trafico de entrada por el puerto 443
iptables -A INPUT -i eth0 -p tcp –dport 443 -j ACCEPT
# Redirigimos el trafico del puerto 443 al 22
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 443 -j REDIRECT –to-port 22
Si hemos configurado todo correctamente podremos establecer la conexión SSH.
ssh -p 443 -F $HOME/.ssh/ConexionServidorCasa user@IP_servidor_exterior
Ahora estaremos conectados al servidor pero aún nos falta el último paso. Para poder usar el proxy del servidor vamos a crear un túnel a través de la conexión SSH. Con esto configuraremos nuestro navegador para usar el proxy localhost:3128, que se “encapsulará” a través de la conexión y acabara en el servidor, que lo redirigirá a su proxy y podremos salir a Internet sin restricciones. El comando, considerando que el proxy externo escucha el puerto 3128, es:
ssh -p 443 -F $HOME/.ssh/ConexionServidorCasa user@IP_servidor_exterior -L 3128:localhost:3128
Si alguien revisara los logs del proxy solo vería una conexión hacia nuestro servidor, nada más. Aunque si pusiera la IP en un navegador aparecería algo así:
SSH-2.0-OpenSSH_5.1p1 Debian-5
Lo que daría a entender al administrador que le estamos tomando el pelo, pero nunca podría ver el trafico, ni peticiones ni webs visitadas.
11 ene
Hemos ensanchado un poquito la web, ya que en resoluciones 1024×768 o superiores sobraba mucho espacio. Al ensanchar la web, teníamos el típico problema de que no se iba a ver bien a resoluciones inferiores (800×600). Aunque esta resolución se utiliza cada vez menos, aún hay una cantidad significativa de usuarios que navega en esta resolución. Para averiguarlo he mirado las estadísticas de W3Schools entre otras (con esta búsqueda te salen unas cuantas) y la conclusión es que los usuarios de 800×600 gira entre el 10 y 20%. Aunque en otros paises menos desarrollados este porcentaje sube.
Cabe destacar también que el uso la resolución 1280×1024, la que se suele utilizar en pantallas TFT de 19 pulgadas está creciendo y ya supera en muchos casos al de 800×600.
Por eso, hemos decidido mantener la compatibilidad con resoluciones inferiores, utilizando simplemente medidas en porcentajes, en vez de píxeles.