¿Cómo enruto mi internet a través de un túnel SSH?

24

Viejo P ¿Cómo configuro un servidor OpenVPN sin privilegios de root?

¿Hay alguna manera de configurar un servidor OpenVPN sin privilegios de root? Por ejemplo, con archivos de configuración en mi directorio de inicio? En caso afirmativo, ¿cómo lo configuro?

Estoy tratando de introducir SSH en un sistema y configurar un servidor OpenVPN para uso personal.

EDITAR

Como es evidente que OpenVPN necesita privilegios de root, estoy cambiando la pregunta para enrutar mi Internet usando SSH, que puedo configurar fácilmente.

Oxwivi
fuente
Por "espacio de usuario", ¿quiere decir en una carpeta de inicio sin permisos de root? Por lo general, "espacio de usuario" se usa como lo contrario de "espacio de kernel".
Lekensteyn
@Lekensteyn, sí, sin permiso de root, no sabía que el espacio de usuario se refería a otra cosa. Por favor, siéntase libre de editar mi pregunta en algo apropiado. Estaba pensando en esa respuesta también, pero no sé cómo configurar las cosas sin privilegios de root.
Oxwivi

Respuestas:

32

sshuttle es un servidor proxy transparente que reenvía a través de una conexión SSH y configura un proxy ejecutando scripts Python en el servidor remoto. sshuttlese puede ejecutar en las siguientes condiciones:

  • La máquina o enrutador cliente está basado en Linux, FreeBSD o Mac OS
  • privilegios administrativos en el cliente
  • acceso a la red remota a través de SSH
  • sin privilegios de administrador en la red remota
  • disponibilidad de Python en servidor remoto

Instale sshuttleingrese la descripción de la imagen aquí desde el Centro de software o la Terminal:

sudo apt-get install sshuttle

El comando básico para ejecutar sshuttle con enrutamiento de todo el tráfico es:

sshuttle -r username@sshserver:port 0/0

Tras la ejecución del comando, sudoaparecerá una solicitud de contraseña y, posteriormente, la contraseña de la cuenta SSH. No aparecerán otros detalles, excepto un breve mensaje y volver al shell en caso de falla. Para obtener más mensajes de estado, ejecute sshuttleen modo detallado con la -vbandera.

En este ejemplo, todo el tráfico de Internet, excepto DNS, se enruta a través de la VPN. -rEl indicador indica el nombre de host remoto y el nombre de usuario y el puerto opcionales que siguen en el ejemplo anterior. 0/0es la abreviatura de 0.0.0.0/0que representa las subredes para enrutar a través de la VPN. El uso de 0/0enruta todo el tráfico excepto las solicitudes de DNS al servidor remoto. La tunelización de DNS es posible con el uso de -Hflag.

Lea la página de manual ( man sshuttle) para obtener detalles sobre las opciones y modos bajo los cuales sshuttlepuede ejecutarse. Para obtener información sobre el concepto y más ejemplos, consulte la página del proyecto .

André Paramés
fuente
también vale la pena considerar las medias rojas ; mismas características, ejecución ligeramente diferente
sanmai
17

No puede configurar OpenVPN sin privilegios de root porque ciertas operaciones lo requieren.

  • Requisitos previos: debe habilitar el reenvío de paquetes en su firewall (¿iptables?)
  • Agregar dispositivos en funcionamiento: se debe agregar un dispositivo virtual especial usando ifconfig. De lo contrario, no es posible la comunicación entre el servidor y el cliente.

Dependiendo de sus necesidades, hay otras soluciones disponibles. Para navegar a través de su servidor, puede configurar un servidor SOCKS.

SOCKS proxy

Configurar un proxy SOCKS no es difícil: está integrado en OpenSSH. Para habilitar el servidor SOCKS, ejecute el siguiente comando en una terminal :

ssh user@host -D1234

Reemplace 1234 por su puerto preferido. En su navegador, puede ingresar localhostcomo host y 1234como puerto en el servidor SOCKS4 / 5.

A continuación se muestra un ejemplo en el navegador Firefox:

  1. Vaya a Editar -> Preferencias
  2. Abra la sección avanzada
  3. Vaya a la pestaña Red
  4. Presione Configuración
  5. Seleccione la configuración manual del proxy
  6. Ingrese localhostcomo anfitrión de SOCKS
  7. Ingrese 1234como puerto (el mismo puerto especificado en el comando SSH)
  8. Presione OK y Cerrar para cerrar los cuadros de diálogo de preferencias.

Ejemplo de configuración de Firefox

Lekensteyn
fuente
1
Quiero enrutar mi Internet a través del sistema en el que quiero configurar VPN.
Oxwivi
Desafortunadamente, no puede cambiar las reglas de enrutamiento en el servidor sin privilegios de root. Una solución que proporciona al menos una solución segura para navegar es mediante el uso de un proxy SOCKS como se describe en la respuesta.
Lekensteyn
1
Logré enrutar mi Internet a través del túnel SSH. ¿Debo editar su respuesta para referirme específicamente a eso mientras edito la pregunta? ¿O lo harás?
Oxwivi
@Oxwivi: lo volveré a ordenar y agregué un ejemplo para Firefox.
Lekensteyn
-1

Si solo desea hacer un túnel en el tráfico TCP de su sistema, le recomiendo usar un programa llamado tun2socks. Si también desea tunelizar el tráfico UDP, debe instalar udpgw en su servidor.

Aquí hay un tutorial sobre cómo instalar y usar estos programas: http://board.nwrk.biz/viewtopic.php?id=3

giri
fuente
44
¿Podría actualizar su respuesta y explicar los pasos más importantes de su enlace aquí? De esta manera, esta respuesta seguirá siendo útil incluso si el sitio se habrá ido.
Louis Matthijssen