Cada vez que uso Internet desde una ubicación insegura (como wifi público), me gusta usar un túnel ssh ( ssh -D port host
) para garantizar que mi tráfico no pueda ser rastreado. Desafortunadamente, parece que hay muchas aplicaciones que no proporcionan una forma de especificar un proxy (Flash es un ejemplo importante).
Parece que debería haber alguna forma de usar un túnel para todo el tráfico de red desde mi computadora, pero soy completamente ignorante de cómo hacerlo. Cualquier ayuda sería muy apreciada.
Respuestas:
Para hacer lo que quieres, te recomiendo sshuttle .
Lo usas así:
Hará un túnel de todo su tráfico TCP automáticamente para usted. Puede agregar el
--dns
argumento para que también haga un túnel en su tráfico DNS. El servidor remoto solo necesita tener Python instalado.Si solo desea hacer un túnel de programas específicos, recomendaría proxychains .
Una vez que esté instalado, inicie su proxy ssh socks de esta manera:
Esto iniciará un proxy "SOCKS" escuchando en <puerto local>.
Luego edite /etc/proxychains.conf para apuntar al mismo puerto que <puerto local>.
Finalmente, inicie su programa que desea proxy-ed así:
Simplemente debería funcionar. Sin embargo, algunos programas tendrán problemas para trabajar con Proxy Chains. También tenga en cuenta que con Firefox, debe cambiar elementos adicionales en about: config para forzarlo a realizar búsquedas de DNS a través del proxy en lugar de omitirlo.
Como nota adicional, en los navegadores web. Si admiten proxies de calcetines, no necesita hacer nada adicional para que usen el túnel ssh mencionado anteriormente, solo ingrese 127.0.0.1 para el servidor proxy SOCKS y el <puerto local> para el puerto proxy.
EDITAR 29/03/16
Dado que esta publicación todavía está viendo algunos votos positivos, pensé en actualizarla. Proxychains todavía está en la mayoría de los repositorios de Linux y aún funciona en Linux. Sin embargo, el proyecto se abandona efectivamente y no funciona en OSX. Para Linux u OSX, recomiendo actualizar a una bifurcación aún mantenida: proxychains-ng: https://github.com/rofl0r/proxychains-ng
Además de trabajar tanto en Linux como en OSX, es fácil de compilar y también tiene un soporte mucho mejor para el túnel DNS.
También debería mencionar otra opción, que son los redsocks. Funciona de manera similar a proxychains (-ng) y también es probable en su repositorio dist: https://github.com/darkk/redsocks
fuente
sshuttle -r root@host -x host 0/0
man ssh
da un ejemplo de exactamente esto. Un vpn basado en ssh:~~ recortar ~~
Una vez que tenga esa nueva interfaz activada, solo tendrá que convertirla en la ruta predeterminada, que es una pregunta diferente.
fuente
Busque la opción "Túnel" en ssh. Esto crea un dispositivo de túnel al que puede asignar una dirección IP y luego cambia la ruta predeterminada para usar ese túnel.
fuente
He desarrollado un software que le permite reenviar todo TCP y opcionalmente UDP a través de un proxy SOCKS5, en todo el sistema.
http://code.google.com/p/badvpn/wiki/tun2socks
Incluso se puede instalar en un enrutador para reenviar todas las conexiones desde computadoras en la LAN.
fuente
REDES PRIVADAS VIRTUALES BASADAS EN SSH ssh contiene soporte para túneles de Red Privada Virtual (VPN) utilizando el pseudodispositivo de red tun (4), permitiendo que dos redes se unan de forma segura. La opción de configuración sshd_config (5) PermitTunnel controla si el servidor lo admite y a qué nivel (capa 2 o 3 tráfico).
fuente
Solo quería aclarar que (ssh -D port host) no es una forma 100% segura para que el tráfico no sea rastreado. Agregar (ssh -D -c blowfish port host) sería una mejor opción porque al menos está agregando cifrado a su sesión. Puede agregar más opciones, pero es bastante fácil escribir "man ssh" en su terminal o Google para obtener una lista completa.
La opción que creo que está buscando es configurar una VPN (red privada virtual)
Eche un vistazo a este artículo para comprender la diferencia entre los dos ( SSH vs. VPN ) o una buena versión resumida , antes de comenzar a configurar su propia VPN. Si decide ir a la ruta VPN, le recomiendo OpenVPN , es gratis y tiene mucha documentación y soporte.
fuente
ssh -2 -C -D [...]
(forzar SSH2, usar compresión) y soltar el-c
. de acuerdo conman ssh
la lista de cifrado de mi sistema en SSH2 por defectoaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. mi punto es que si solicita-c blowfish
puede terminar con SSH1, que es mucho menos seguro que SSH2.Use estos ejemplos:
Reenvíe el puerto 80 desde un host remoto a 8888 en su host local
Use esto para acceder a servicios en un host remoto que solo están disponibles allí
Reenvíe el puerto 80 desde yourlocalhost a 8888 en un host remoto
Use esto para permitir que otros usuarios accedan a sus servicios: servidor web o lo que sea.
¡Salud! :)
fuente