¿Cómo creo una conexión VPN usando solo el terminal (SSH)?

13

Estoy tratando de crear una conexión VPN para que la use mi máquina Ubuntu Server. Solo tengo acceso a través de la sesión de terminal ssh.

He visto muchos artículos que detallan cómo conectarse a una conexión existente, pero ninguno sobre la creación de una nueva conexión.

Estoy usando Ubuntu Server 12.x

Dve
fuente
Así que supongo que quieres instalar un servidor VPN en tu máquina, ¿verdad?
Laurent
No lo creo (a menos que esté malentendido). Quiero que mi servidor se conecte a VPN, no sea un servidor VPN
Dve
SSH es realmente poderoso. Puede conectarse usando $ ssh -X <host> -u <usuario>. De esta manera, tendrá una conexión con el reenvío X, por lo que puede usar aplicaciones X desde su máquina remota. Esto puede ser útil si siente que usar X es más cómodo que simplemente usar una consola simple.
jap1968
otra opción es usar shadowsocks + proxychains en lugar de VPN
elprup

Respuestas:

7

Como no entendí lo que necesitas hacer exactamente, déjame explicarte cómo funciona VPN:

Para tener una VPN, necesita un Servidor VPN (donde se conecta) y un Cliente VPN (la máquina que usa para conectarse al Servidor). No puede crear una conexión sin un servidor VPN. Tenemos 3 posibilidades aquí:

  • Desea que su servidor se conecte a otro (un servidor VPN). En este caso, necesita un cliente y, dado que existen diferentes tipos de VPN, debe seguir las instrucciones del administrador del servidor VPN.

  • Desea conectarse a su servidor desde otra máquina (su máquina local probablemente) y en este caso necesita instalar un servidor VPN en su servidor y un cliente en su máquina. Para eso uso OpenVPN desde hace muchos años y funciona muy bien con clientes Windows y Ubuntu

  • Desea conectar ambas máquinas a un servidor VPN alojado de un tercero y, en este caso, dado que hay muchos tipos de VPN diferentes, debe seguir las instrucciones del administrador externo.

Si solo desea una conexión "privada / encriptada" a su servidor, ya tiene SSH y no tendrá mucho más con una VPN. Una VPN es útil para conectarse a una red como si fuera una máquina local en la red y no es tan útil para conectarse a una sola máquina donde puede usar conexiones SSH para terminales (y redirigir la salida gráfica a su pantalla si el servidor tiene gráficos escritorio) y túneles SSH para acceder a otros puertos. Por ejemplo, tunelizar con SSH un puerto local en su máquina al puerto 3306 en el servidor remoto para administrar MySQL con una conexión 100% encriptada en lugar de usar phpmyadmin enviando su contraseña de raíz DB a través de http.

Actualización PPTP:

Para el cliente PPTP a través de la línea de comando, puede usar el cliente pptp-linux:

sudo apt-get install pptp-linux

Hay muchos tutoriales sobre cómo configurarlo:

Editado después de los comentarios de OP: el sitio de ayuda de la comunidad de Ubuntu funcionó.

Otros están disponibles como el cliente PPTP Linux . El tutorial es para el cliente de línea de comandos o el cliente GUI, así que solo instale pptp-linuxy nonetwork-manager-pptp

Las instrucciones del sitio pptp-linux para Debian también se detallan para la línea de comandos y deberían funcionar sin problemas en Ubuntu.

Laurent
fuente
1
Sí, lo entiendo. Estoy tratando de hacer lo que has enumerado en el primer punto: conectarme a otro servidor VPN, desde mi servidor. Conozco todos los detalles de la conexión, estoy conectado a la terminal de mi servidor (a través de ssh). Estoy tratando de averiguar cómo configurar la conexión vpn a través de esta sesión de terminal.
Dve
Entonces, ¿cuáles son los detalles de conexión? (tipo de VPN del servidor y parámetros requeridos si los hay - no hay necesidad de la contraseña o IP real si corresponde). ¿No tiene instrucciones para configurar el cliente desde el administrador del servidor VPN?
Laurent
1
Estoy preguntando el tipo de VPN porque cada protocolo VPN necesita un cliente diferente. Puede encontrar instrucciones para algunos de ellos en help.ubuntu.com/community/VPNClient
laurent
Es una conexión PPTP, el enlace que publicó parece pero no detalla los pasos para crear una nueva conexión PPTP (por lo que puedo ver). Sería genial si pudiera iniciar el administrador de red a través del reenvío ssh X11, pero no quiero instalar gdm solo para hacerlo
Dve
respuesta actualizada para PPTP
laurent
0

use el 'pppd' para lograrlo:

sudo pppd nodetach defaultroute replacedefaultroute persist password mypassword file myvpn

reemplace "mypassword" con la contraseña de su cuenta pptp. el "myvpn" es un archivo de configuración, formateado como:

linkname myvpn 
ipparam myvpn 
pty "pptp server_address --nolaunchpppd " 
name myaccount 
usepeerdns 
require-mppe 
refuse-eap noauth

# adopt defaults from the pptp-linux package 
file /etc/ppp/options.pptp

Este formato de archivo de configuración se menciona aquí: https://help.ubuntu.com/community/VPNClient

Y, "nodetach", o "defaultroute" son opciones para pppd, descritas aquí: http://manpages.ubuntu.com/manpages/hardy/man8/pppd.8.html

He usado este método en Java para configurar una conexión vpn de cliente pptp, sí, funciona.

El archivo pid, está en /var/run/ppp-xxx.pid, el "xxx" es su nombre de enlace que está en su archivo de configuración. Puede leer el pid de pppd desde este archivo pid enviando una señal al pppd, por ejemplo, "sudo kill -s SIGTERM pid_of_pppd", para apagar el pppd.

Guohua Lin
fuente