Instalar un servidor proxy SOCKS en un VPS

En Desarrollo, Software, Tutoriales y Guías por

Algún usuario ha hecho esta petición pues no le llegaba con la creación de un túnel SSH, así que escribiré como instalar un servidor proxy SOCKS en un VPS de forma permanente y poder usarlo cuando queramos sin tener que configurar nada.

Instalar un Servidor Proxy

Eligiendo el software adecuado de servidor SOCKS 5

Existen multitud de servidores SOCKS5 opensource para distribuciones Linux, el inconveniente es que la gran mayoría son complejos a la hora de configurar y requieren conocimientos de redes. Como nuestro objetivo es simple, consiste en tener un proxy SOCKS5 para navegar y poco más, no necesitamos entrar en configuraciones complejas, por eso he elegido tres servidores proxy livianos y fáciles de instalar que hacen su cometido a la perfección. También os dejaré una lista con diversos programas de servidores proxy SOCKS que he descartado pro ser complejos para un tutorial rápido, pero que quizás alguien quiera lidiar con ellos.

Los servidores elegidos han sido MOCKS (My Own soCKs Server), 3proxy  y Srelay.

Debo decir que todos han sido probados en Ubuntu 12.10 x64 y funcionaron sin problemas.

Preparando el VPS para instalar un servidor proxy SOCKS

Antes de instalar un servidor proxy SOCKS vamos a proceder a actualizar el sistema operativo, para ello ejecutamos los comandos:

apt-get update
apt-get upgrade

El siguiente paso será instalar las herramientas básicas de compilación con el siguiente comando:

apt-get install build-essential

Este comando nos instalará el compilador GCC y varias librerías entre otras cosas. También recomiendo instalar las librerías OpenSSL, que si mal no recuerdo, son necesarias para compilar algún plugin de 3proxy y no está de más tenerlas, ya que muchas aplicaciones hacen uso de ellas. Para instalar esta librería ejecutamos el siguiente comando:

apt-get install libssl-dev

Instalación y configuración de MOCKS (My Own soCKs Server)

Primero nos descargamos el archivo de mocks en el siguiente enlace: http://sourceforge.net/projects/mocks/files/

Como podemos ver lleva tiempo sin actualizarse, desde el 2004, pero es tan liviano y sencillo que es mi favorito.

Una vez tenemos el archivo tar.gz descargado, los descomprimimos:

tar xvzf mocks-0.0.2.tar.gz

Una vez tenemos los archivos descomprimidos, lo compilamos:

cd mocks-0.0.2
./build

MOCKS se compilará aunque nos mostrará varios mensajes de advertencia al compilar.

Una vez compilado, podemos ajustar las opciones editando el archivo mocks.conf (aunque no es necesario), yo voy a comentar sólo un par de opciones

Para ajustar el puerto del servidor SOCKS5, modificamos el valor:

PORT = 10080 # Port MOCKS is to listen to

Aquí ajustamos la IP interna del servidor proxy, si ponemos la IP 0.0.0.0 se asocia con todas las direcciones IP de la máquina, por lo que funcionará siempre:

MOCKS_ADDR = 0.0.0.0 # IP adress MOCKS is to bind to

Aqui ajustamos el archivo donde se registra la actividad:

LOG_FILE = mocks.log # MOCKS log file

Recomiendo leer el archivo README para configuraciones avanzadas.

Para iniciar MOCKS usamos el comando:

./mocks start

Para detener MOCKS usamos:

./mocks shutdown

Instalación y configuración de Srelay (the SOCKS proxy and Relay)

Este ya se ha actualizado en marzo de 2013. Es más completo que MOCKS y su instalación sigue siendo sencilla.
Descargamos Srelay del enlace http://sourceforge.net/projects/socks-relay/files/ y descomprimimos el archivo tar.gz con el comando:

tar xvzf srelay-0.4.8b6.tar.gz

Una vez descomprimidos los archivos los compilamos:

cd srelay-0.4.8b6
./configure
make

En este caso el archivo de configuración se llama srelay.conf y podéis editarlo con vuestras preferencias, aunque por defecto funciona correctamente. Recomiendo leer http://socks-relay.sourceforge.net/samples.html

Para iniciar Srelay usamos el comando:

./srelay

Para detener Srealy usamos:

pidof srelay

Este comando nos dará el número de PID del proceso Srealy, con el cual después empleamos el comando:

kill -SIGTERM número_PID

Y con esto terminaremos el proceso Srelay.

Instalación y configuración de 3proxy (tiny free proxy server)

Este es sin duda el más completo de todos y tiene bastante buena fama. Tiene muchos años de desarrollo detrás y en el pasado (y seguramente hoy en día) era el SOCKS proxy más usado por los hackers, de ahí que algún antivirus muestre algún tipo de advertencia, pero no hay nada que temer. Este software ofrece diferentes binarios para distintos tipos de servidores proxy (ftp, http, smtp, etc) pero nosotros nos centraremos en el binario socks que es el que nos interesa.

Descargamos 3proxy del siguiente enlace http://3proxy.ru/current/3proxy-0.7-devel.tgz

Una vez tenemos el archivo tar.gz descargado, los descomprimimos:

tar xvzf 3proxy-0.7-devel.tgz

Una vez tenemos los archivos descomprimidos, lo compilamos:

cd 3proxy-0.7-devel
make -f Makefile.Linux

Los binarios compilados de los diferentes proxies los encontramos dentro de la carpeta src, por lo que ejecutamos el comando:

cd src

Como sólo nos interesa el proxy SOCKS, nos llega con usar el binario socks.

Para iniciar 3proxy como servidor SOCKS usamos el comando:

./socks -i0.0.0.0 -p1080

Con la opción -i0.0.0.0 le indicamos que es la interfaz interna de red. Con la opción -p1080 le indicamos que el puerto sea el 1080.

Al ejecutar el proxy de este modo la consola se bloquea, por lo que no podremos usarla mientras está activo el proxy SOCKS. Para parar la ejecución del servidor pulsamos la combinación de teclas CTRL+C.

De todas formas podemos ejecutar el servidor como demonio y no nos bloqueará la consola, para ello ejecutamos el comando de antes pero con el modificador -d, de forma que quede tal que así:

./socks -i0.0.0.0 -p1080 -d

Para pararlo cuando funciona en modo demonio, hacemos lo siguiente:

pidof socks

Este comando nos dará el número de PID del proceso socks, con el cual después empleamos el comando:

kill -SIGTERM número_PID

Y con esto terminaremos el proceso socks.

Conclusiones finales

Muchos os estaréis preguntando cual es mejor de los tres, y la verdad es que depende de vuestras necesidades. Por ejemplo 3proxy es el más completo, pero si sólo necesitamos instalar un servidor proxy SOCKS entonces MOCKS cumple con su cometido a la perfección. Así que elegid en función de vuestras necesidades.

Os dejo una lista con otros servidores SOCKS, que algunos por ser complejos otros por no haber conseguido compilarlos correctamente, no llegaron a formar parte del tutorial, pero quizás a alguien le sea de ayuda:

Comentarios (2)

Muy interesante. Un pequeño combo para la línea del cerrar…
$ kill -9 `pidof socks`;
o también;
$ kill -9 $(pidof socks);

Respecto al modo demonio -d, no se si hace algo a mayores que desbloquear la consola y añadirle nohup.
En cualquier caso, para lanzarlo y usar la misma consola podemos lanzarlo con:
$ nohup ./socks -i0.0.0.0 -p1080 &

Y por último, saber cual te parece de verda mejor. A mí que el 3proxy lo usen hackers y mierdas así no me dice nada, sólo me dice entre quién es popular. Si Srelay hace lo que promete y no trae más mierda que el binario socks creo que es lo que busco.

Luego, para navegar y tal (sin complicarse) es mucho más útil instalar un proxy que soporte también http para usarlo con el navegador, como squid.

Saludos.

Esto lo hacen pequeños programas en c++. Pero mi pregunta es como puedo hacer para hacer un socks al exterior. Es decir yo puedo hacer un socks5 con mi ip local y mi ip del ordenador localhost. Pero para hacer un socks5 al exterior necesito un vps como dice el tutorial? Y un vps es dificil encontrar uno gratuito en condiciones… En mi caso yo tengo un problema porque yo estoy usando un protocolo para un chat llamado XMPP este protocolo bloquea muchas veces la transferencia de datos un ejemplo entonces me vendría muy bien usar SOCKS5. Pero mi problema es que necesito que el SOCKS5 este en internet no en mi Red creo. Bueno gracias por este gran blog que es una pasada.

Deja un comentario: