
Sé cómo funcionan los servidores proxy por dentro y por fuera en teoría, pero la práctica me está superando.
Necesito configurar un proxy SOCKS dentro de la misma red que mi IP de administración para que permanezca alejado de los usuarios. Tengo un clúster de vCenter en el que puedo implementar cualquier sistema operativo recomendado, pero para simplificar, aquí está la configuración:
- IP de gestión del sistema de almacenamiento = 10.244.244.15
- IP de la máquina virtual SUSE11 = 10.244.244.10
- IP de Windows XP = 10.244.244.5
En el sistema SUSE, ejecuté ssh -ND 1080 <user>@<storage mgmt ip>
, pero eso no resultó en conectividad de extremo a extremo.
Estaba ejecutando un tcpdump
en el mismo puerto en ese momento y vi un intento de tráfico:
17:42:26.669953 IP 10.x.x.x.54214 > x.x.com.socks: S 3287828135:3287828135(0) win 5840 <mss 1460,sackOK,timestamp 6708230 0,nop,wscale 6>
17:42:26.669968 IP x.x.com.socks > 10.x.x.x.54214: R 0:0(0) ack 3287828136 win 0
Preguntas generales:
- Menos importante, ¿qué hice arriba?
- Más importante aún, ¿cómo puedo configurar un proxy SOCKS en este entorno?
Respuesta1
La conexión SSH probablemente solo esté escuchando en la interfaz loopback (127.0.0.1) debido a la configuración de GatewayPorts en la configuración SSHD. Su comando funcionará si GatewayPorts está configurado en sí.
netstat -an | grep LISTEN
le mostrará si está escuchando en la interfaz pública. Puedes forzarlo a escuchar en la interfaz pública con
ssh -ND <ip address>:<port> <user>:<host>
pero sólo si GatewayPorts le permite hacerlo.
GatewayPorts
Specifies whether remote hosts are allowed to connect to ports
forwarded for the client. By default, sshd binds remote port
forwardings to the loopback address. This prevents other remote
hosts from connecting to forwarded ports. GatewayPorts can be
used to specify that sshd should allow remote port forwardings to
bind to non-loopback addresses, thus allowing other hosts to con-
nect. The argument may be "no" to force remote port forwardings
to be available to the local host only, "yes" to force remote
port forwardings to bind to the wildcard address, or
"clientspecified" to allow the client to select the address to
which the forwarding is bound. The default is "no".
Supongo que GatewayPorts está configurado con el valor predeterminado no. Cámbielo a sí (en /etc/ssh/sshd_config
), y luego su comando ssh debería funcionar sin cambios, pero puede usar la dirección IP de la interfaz para ser específico por si acaso.
NB: Además de esto, debes comprobar que no tienes reglas de iptables que bloqueen las conexiones entrantes.
Un proxy ssh como funcionará, pero puede ser bastante lento (sobrecarga de cifrado). Es posible que desees consultar un proxy de calcetines dedicado, comocalcetines.