Cómo configurar un proxy SOCKS5 en un Servidor Virtual (VPS)

Cómo configurar un proxy SOCKS5 en un Servidor Virtual (VPS)

30.11.2022
Autor: HostZealot Team
2 min.
1985

Aunque los servidores proxy son muy similares en su función a la VPN, tienen una diferencia significativa: el tráfico no está encriptado, es decir, el nivel de seguridad será mucho menor que cuando se utilizan redes privadas virtuales. A pesar de ello, los servidores proxy se utilizan activamente porque este método permite:

  • ocultar su dirección IP durante la comprobación básica;
  • ocultar su ubicación real: los sitios que visita sólo registran la región donde se encuentra el servidor proxy;
  • proteger su dispositivo de sitios no deseados, bloqueando aquellos sitios que se garantiza que son peligrosos, contienen malware, etc.

Pero debe entender que un servidor proxy no puede protegerle de métodos de detección avanzados, no cifra el tráfico y puede recoger datos sobre los usuarios. Si estos datos serán compartidos con terceros es una cuestión abierta, así que utilice sólo servidores proxy de confianza.

El siguiente artículo le dirá cómo configurar un proxy SOCKS5 en un servidor privado virtual, así como lo que existen variaciones de esta tecnología.

Qué tipos de proxies hay disponibles

Hay cinco tipos básicos de proxies:

  1. Proxies FTP - se utilizan para descargar datos en servidores FTP.
  2. CGI (anonimizadores) - por regla general, son sitios web a través de los cuales se puede acceder a cualquier otro sitio bloqueado. Es decir, si quieres, por ejemplo, visitar un sitio que está bloqueado en tu país, sólo tienes que ir al anonimizador del sitio, e introducir la URL deseada en el campo de la dirección. No es necesario instalar nada en tu ordenador, todo se hace a través de la nube. El único inconveniente es que puede costar dinero.
  3. SMTP, POP3 e IMAP son tecnologías utilizadas para enviar y recibir correo electrónico.
  4. Los proxies HTTP y HTTPS son necesarios para la navegación web.
  5. SOCKS5: es un servicio que redirige el tráfico saliente y entrante de Internet a través de un servidor proxy remoto. Enmascara su dirección IP real, oculta la geolocalización y evita las filtraciones accidentales de información confidencial: la opción óptima para eludir la censura regional para VPS.

La tecnología más avanzada y masiva es SOCKS5, y también es la más adecuada para utilizarla junto con VPS.

Cómo configurar un proxy SOCKS5 en un servidor virtual con Ubuntu 18 y superior

Reconozcámoslo, no va a ser rápido ni fácil. Pero si sigue nuestras instrucciones claramente, no le llevará mucho tiempo ni esfuerzo.

En primer lugar, alquila un VPS basado en Ubuntu 18.04.4 LTS (https://www.hostzealot.com/vps/os-ubuntu ). Es fácil: póngase en contacto con su proveedor de alojamiento y dígale qué plan le interesa. Ellos le ayudarán a encontrar el mejor VPS o VDS para usted individualmente.

A continuación, conéctese al servidor como administrador y actualice los paquetes:

 

apt update
apt full-upgrade


Descubra lo que es la versión del paquete del servidor Dante SOCKS en sus repositorios:

apt search dante-server
 
dante-server/jammy 1.4.2+dfsg-7build4 amd64
  SOCKS (v4 and v5) proxy daemon (danted)


Ahora instale Dante:

apt install dante-server


Y pongalo en el arranque automático:

systemctl is-enabled danted
enabled


Ahora abra el archivo de configuración /etc/danted.conf en modo de edición y escriba allí los parámetros necesarios. Ejemplo de contenido:

logoutput: syslog stdout /var/log/sockd.log
#logoutput: stderr
 
internal: ens3 port = 1080
external: ens3
 
socksmethod: username
#socksmethod: username none
 
user.privileged: root
user.unprivileged: nobody
user.libwrap: nobody
 
client pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
client block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error
}
 
socks pass {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: error connect disconnect
}
 
socks block {
        from: 0.0.0.0/0 to: 0.0.0.0/0
        log: connect error

}


Hay que aclararlo un poco:

  • logoutput - define el mecanismo de registro de las conexiones (en nuestro ejemplo, todo pasará por el registro estándar del sistema).
  • user.privived - otorga derechos de root al servidor para comprobar los permisos.
  • user.uncitationd - necesario para bloquear la ejecución del servidor como un usuario sin privilegios.
  • internal - especifica el puerto en el que se ejecuta el servicio, así como las direcciones IP que pueden conectarse.
  • external - define la interfaz de red para las conexiones salientes.

Ahora vamos a crear el usuario que utilizará nuestro servidor SOCKS5. Hay que añadirlo al grupo de proxy:

useradd -s /bin/false proxyuser && sudo passwd proxyuser
usermod -aG proxy proxyuser


A continuación, en el firewall, permitimos que el puerto TCP 1080 se conecte a los clientes:

sudo ufw allow 1080/tcp


Esto completa la configuración del proxy SOCKS5 en el VPS. Después de eso comprueba la conexión a través de Dante - utiliza algún navegador gratuito antidetección con soporte SOCKS5: por ejemplo, Dolphin Anty o cualquier otro similar.

cómo configurar un proxy socks5 en un servidor virtual (vps)

Instalación del servidor SOCKS Dante en Ubuntu 16.04

En versiones tan antiguas de Ubuntu, la versión por defecto de Dante Server 1.1.19 está desfasada y no funciona con login y password. Es decir, el acceso al proxy se regula únicamente modificando las reglas iptables. Por lo tanto, en primer lugar, tenemos que instalar y configurar el conjunto necesario de software y dependencias:

apt-get install -y autoconf automake libtool pkg-config checkinstall libwrap0 libwrap0-dev libpam0g-dev


A continuación, creamos un directorio para seguir trabajando y nos dirigimos a él:

mkdir dante && cd ~/dante


Ahora ve al sitio oficial de los desarrolladores y descarga la última versión de Dante. También puede hacerlo a través de la línea de comandos:

wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz


Descomprima y navegue hasta el directorio correspondiente:

tar -zxvf dante-1.4.2.tar.gz
cd dante-1.4.2


Establezca la configuración del montaje:

./configure --prefix=/etc/dante


Debería terminar con algo así:

Configure status:
Client:        	 Enabled
Server:        	Enabled
Preloading:	Enabled
Libwrap:     	Enabled
BSD Auth:   	Disabled, usable bsd_auth.h not found
PAM:           	Enabled
GSSAPI:       	Not found/disabled
KRB5:          	 Not found/disabled
SASL:          	  Not found/disabled
UPNP:          	Not found/disabled
Compatability: 	issetugid setproctitle strlcpy strvis
Modules:
redirect:      	Not found
bandwidth: 	Not found
ldap:         	    Not found


El siguiente paso es compilar las fuentes:

make


Ahora puede instalar el servidor construido. La mejor manera de hacerlo es a través de checkinstall:

checkinstall
# Нажмите y, затем Enter для создания каталога с документацией.
The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs?  [y]: y

Preparing package documentation...OK

# Описание можно не прописывать, везде жмите Enter
Please write a description for the package.
End your description with an empty line or EOF.

>> 


Cuando la instalación haya terminado, se creará un paquete deb (dante_1.4.2-1_amd64.deb), que puede ser instalado en otra máquina virtual en cualquier momento, pero ahora ya no es necesario preconfigurar ni ensamblar.

Si necesita eliminar un paquete instalado, utilice el comando

dpkg -r dante


Cómo configurar la ejecución automática de un servidor

Vaya a /etc/init.d/ y cree un script llamado sockd:

nano /etc/init.d/sockd


Su contenido debería ser el siguiente:

#! /bin/sh
### BEGIN INIT INFO
# Provides:      	sockd
# Required-Start:	$remote_fs $syslog
# Required-Stop: 	$remote_fs $syslog
# Default-Start: 	2 3 4 5
# Default-Stop:  	0 1 6
# Short-Description: Start the dante SOCKS server.
# Description:   	SOCKS (v4 and v5) proxy server daemon (sockd).
#                	This server allows clients to connect to it and
#                    request proxying of TCP or UDP network traffic
#                	with extensive configuration possibilities.
### END INIT INFO
#
# dante SOCKS server init.d file. Based on /etc/init.d/skeleton:
# Version:  @(#)skeleton  1.8  03-Mar-1998  miquels@cistron.nl
# Via: https://gitorious.org/dante/pkg-debian
PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=sockd
DAEMON=/etc/dante/sbin/$NAME
DAEMON_ARGS="-D"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DESC="Dante SOCKS daemon"
CONFFILE=/etc/$NAME.conf
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
set -e
# This function makes sure that the Dante server can write to the pid-file.
touch_pidfile ()
{
  if [ -r $CONFFILE ]; then
    uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' $CONFFILE`"
	if [ -n "$uid" ]; then
      touch $PIDFILE
      chown $uid $PIDFILE
	fi
  fi
}
case "$1" in
  start)
	if ! egrep -cve '^ *(#|$)' \
        -e '^(logoutput|user\.((not)?privileged|libwrap)):' \
        $CONFFILE > /dev/null
	then
        echo "Not starting $DESC: not configured."
        exit 0
	fi
	echo -n "Starting $DESC: "
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
        $DAEMON_ARGS \
        || return 2
	echo "$NAME."
	;;
  stop)
	echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
    start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2
	echo "$NAME."
	;;
  reload|force-reload)
	#
    #   If the daemon can reload its config files on the fly
    #   for example by sending it SIGHUP, do it here.
	#
    #   Make this a do-nothing entry, if the daemon responds to changes in its config file
    #   directly anyway.
	#
 	echo "Reloading $DESC configuration files."
     start-stop-daemon --stop --signal 1 --quiet --pidfile \
        $PIDFILE --exec $DAEMON -- -D
  ;;
  restart)
	#
    #   If the "reload" option is implemented, move the "force-reload"
    #   option to the "reload" entry above. If not, "force-reload" is
    #   just the same as "restart".
	#
	echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
	sleep 1
    touch_pidfile
    start-stop-daemon --start --quiet --pidfile $PIDFILE \
      --exec $DAEMON -- -D
	echo "$NAME."
	;;
  status)
    status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
	;;
  *)
    N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|status|force-reload}" >&2
	exit 1
	;;
esac

exit 0


Guarde los cambios y no olvide hacer que este script sea ejecutable:

chmod +x /etc/init.d/sockd


Recarga todos los demons:

systemctl daemon-reload


Y puede añadir sockd a la ejecución automática:

systemctl enable sockd
systemctl start sockd


Y por último, comprueba todo:

systemctl status sockd


A partir de ahora puede gestionar el servidor proxy SOCKS con los comandos estándar de systemctl.

Conclusión

Por supuesto, los métodos descritos no son los más fáciles de llevar a cabo, aquí se necesita cierta comprensión de los principios de las utilidades y protocolos descritos. Como alternativa, puedes utilizar una VPN de pago: le ahorrará muchos dolores de cabeza y le permitirá eludir los bloqueos regionales de forma segura, manteniendo el anonimato y la privacidad totales.

Artículos Relacionados