Inicio > Gestión de red > ssh-socks

ssh-socks: Configuración de proxy SOCKS

ssh-socks es un concepto o script que configura un servidor proxy SOCKS local a través de una conexión SSH. Esto permite tunelizar de forma segura el tráfico de red de aplicaciones locales a través de un servidor remoto. Se utiliza principalmente para eludir firewalls, mejorar la seguridad y acceder a entornos de red específicos.

Descripción general

ssh-socks utiliza la función de reenvío dinámico de puertos (-D option) de SSH para crear un proxy SOCKS en la máquina local. A través de este proxy, el tráfico de navegadores web u otras aplicaciones se puede dirigir a Internet a través del servidor SSH remoto. Esto tiene el efecto de acceder a Internet desde el servidor remoto.

Casos de uso principales

  • Acceso a contenido con restricciones geográficas
  • Mejora de la seguridad en Wi-Fi público
  • Acceso a recursos de red interna de la empresa
  • Elusión de firewalls

Opciones principales

ssh-socks utiliza principalmente las opciones del comando 'ssh'. A continuación se muestran las opciones de 'ssh' que se utilizan con frecuencia al configurar un proxy SOCKS.

Configuración del proxy

Comando generado:

Combina los comandos.

Descripción:

`ssh-socks` Ejecutando el comando.

Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.

Ejemplos de uso

Ejemplos de uso comunes de ssh-socks. [user] y [remote_host] deben reemplazarse por el nombre de usuario real y la dirección del servidor remoto.

Configuración básica de proxy SOCKS

ssh -D 8080 user@remote_host

Configura un proxy SOCKS en el puerto local 8080 y se conecta al servidor remoto. Este comando ocupará la terminal.

Ejecución de proxy SOCKS en segundo plano

ssh -fN -D 8080 user@remote_host

Ejecuta el proxy en segundo plano para poder seguir utilizando la terminal. -N evita la ejecución de comandos remotos y -f lo envía a segundo plano.

Acceso a páginas web a través del proxy (curl)

curl --socks5-hostname localhost:8080 http://example.com

Utiliza el proxy SOCKS configurado anteriormente (localhost:8080) para acceder a una página web con el comando curl.

Acceso a páginas web a través del proxy (wget)

wget -e use_proxy=yes -e http_proxy=socks5://localhost:8080 http://example.com

Utiliza el proxy SOCKS configurado anteriormente (localhost:8080) para acceder a una página web con el comando wget.

Instalación

ssh-socks generalmente no es un comando independiente que requiera una instalación separada. En su lugar, puede configurarlo directamente utilizando la funcionalidad del comando 'ssh', o para mayor comodidad, puede crear un alias de shell o un script simple para usarlo.

Configuración como alias de shell

alias ssh-socks='ssh -fN -D 8080'

Puede definir el comando 'ssh-socks' agregando la siguiente línea a su archivo ~/.bashrc o ~/.zshrc. Después de realizar el cambio, debe aplicarlo ejecutando 'source ~/.bashrc' o 'source ~/.zshrc'.

Cómo usar

Después de configurar el alias, puede usarlo como 'ssh-socks user@remote_host'. Si desea cambiar el número de puerto, deberá modificar la definición del alias.

Configuración como script simple

#!/bin/bash

PORT=${1:-8080}
HOST=$2

if [ -z "$HOST" ]; then
  echo "Uso: ssh-socks [puerto] user@remote_host"
  echo "Puerto por defecto: 8080"
  exit 1
fi

shift
if [ $# -eq 1 ]; then
  HOST=$1
else
  HOST=$2
fi

ssh -fN -D $PORT "$HOST"

echo "El proxy SOCKS se está ejecutando en localhost:$PORT. (PID: $(pgrep -f "ssh -fN -D $PORT $HOST"))"

Puede crear un script ejecutable en una ruta como /usr/local/bin/ssh-socks. Este método permite pasar puertos u otras opciones como argumentos de manera más flexible.

Cómo usar el script

Después de crear el script, otorgue permisos de ejecución con 'chmod +x /usr/local/bin/ssh-socks' y úselo como 'ssh-socks user@remote_host' o 'ssh-socks 9000 user@remote_host'.

Consejos y precauciones

Aquí hay algunos consejos útiles y precauciones al usar ssh-socks.

Configuración del navegador web

La mayoría de los navegadores web admiten la configuración de proxy SOCKS. En la configuración de red del navegador, especifique 'SOCKS Host' como 'localhost' y 'Port' como el puerto configurado (por ejemplo, 8080).

  • Firefox: Configuración -> Configuración de red -> Configuración manual de proxy -> Host SOCKS
  • Chrome/Edge: Usar configuración de proxy del sistema (varía según la configuración del SO)

Uso del archivo de configuración SSH (~/.ssh/config)

Puede hacer que los comandos sean más concisos definiendo previamente la configuración del host remoto en el archivo ~/.ssh/config.

  • Host myproxy Hostname remote_host User user DynamicForward 8080 ExitOnForwardFailure yes ServerAliveInterval 60 ServerAliveCountMax 3

Ejemplo de uso del archivo de configuración SSH

ssh -fN myproxy

Después de configurar como se describe anteriormente, puede ejecutar el proxy con el comando 'ssh -fN myproxy'.

Finalizar el proxy

Para finalizar un proxy SSH SOCKS que se ejecuta en segundo plano, debe encontrar el proceso SSH correspondiente y matarlo.

  • ps aux | grep 'ssh -fN -D 8080' (verificar ID del proceso)
  • kill [PID]

Consideraciones de seguridad

Dado que todo el tráfico pasa a través del servidor remoto a través del proxy SOCKS, es importante verificar la seguridad y confiabilidad de ese servidor. El uso de un proxy a través de un servidor no confiable conlleva el riesgo de que los datos sean interceptados o manipulados.


Comandos de la misma categoría