Linux Fu: VPN gratis con SSH

Si ve muchos anuncios publicitarios en algunos sitios web, sabe que sin una red privada virtual (VPN), los piratas informáticos destruirán rápidamente su computadora y quemarán su casa. Bueno, eso parece ser lo que implican. Sin embargo, hay dos razones principales por las que es posible que desee una conexión VPN. Puede pagar por un servicio, por supuesto, pero si tiene acceso simple a una computadora en algún lugar de la Internet pública, puede configurar su propio servicio VPN sin costo adicional.

La idea básica es que te conectes a una computadora remota en otra red y parezca que todo el tráfico de tu red local es local para esa red. El primer caso para esto es evitar o mejorar la seguridad. Por ejemplo, es posible que desee imprimir en una impresora en línea sin exponer esa impresora a la Internet pública. Mientras estás en la cafetería, puedes usar una VPN en tu red e imprimir como si estuvieras a un metro de la impresora en tu escritorio. Su tráfico en el WiFi de la tienda también estará encriptado.

La segunda razón es ocultar su ubicación contra el espionaje. Por ejemplo, si le gusta ver videos de la BBC pero vive en Ecuador, es posible que desee una VPN a una red en el Reino Unido para que los videos no se bloqueen. Si sus autoridades locales controlan y censuran su Internet, es posible que también desee que su tráfico provenga de otra ubicación.

El uso de SSH para VPN funcionará en ambos casos, aunque si está más interesado en el primer caso, probablemente estará más satisfecho con un enrutador dedicado o una computadora pequeña como Raspberry Pi dedicada a la tarea. Sin embargo, si alquila un servidor en algún lugar, esa opción no le funcionará.

Prerrequisitos

Todo lo que realmente necesita es acceso de root tanto a la máquina como a un servidor SSH en la máquina remota junto con el cliente SSH. Hay algunos ajustes necesarios en ambos lados. Utilizo KDE, así que utilicé NetworkManager para configurar las cosas, aunque eso no es necesario. Simplemente facilita las cosas.

El servidor necesita que se configuren algunos elementos especiales, pero es posible que esos elementos ya estén presentes. En /etc/ssh/sshd_config Vas a PermitTunnel=yes y es posible que deba configurar AllowTCPForwarding a sí también. El cortafuegos también puede necesitar algunos cambios. La configuración del complemento NetworkManager será útil incluso si no desea utilizarlo.

Lado del cliente

Si está utilizando NetworkManager, necesitará el complemento. Para Neon y otras distribuciones de tipo Debian, puede encontrar el network-manager-ssh un paquete y eso es todo lo que necesita. Si no desea usarlo, puede usar esta línea del blog del autor del complemento:

ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 [email protected]_SSH_SERVER 
'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && 
/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1

Deberá estar enraizado en ambos extremos mientras crea un dispositivo de túnel. Esto causa algunos problemas, incluso si está utilizando el complemento. Obviamente, no desea que SSH lo engañe para que ingrese contraseñas y controles de claves de alojamiento, pero si configura la VPN manualmente, podría manejar eso.

Problemas

Sin embargo, la mayoría de los sistemas modernos no permiten el inicio de sesión de root con una contraseña, o no permiten en absoluto. Entonces tienes que arreglar eso primero. Además, cuando NetworkManager está ejecutando SSH, buscará claves de host y, por ejemplo, root, no como su usuario. Si no puede encontrar cosas, simplemente morirá. Por lo tanto, debe asegurarse de que root pueda iniciar sesión sin intervención.

Para permitir inicios de sesión de root en el servidor, debe editar /etc/ssh/sshd_config y cambio PermitRootLogin a sí. Le sugiero que haga esto el tiempo suficiente para realizar los siguientes pasos. Tendrá que reiniciar el sshd servidor, que significa algo como:

systemctl restart sshd

o

/etc/init.d/ssh restart

Luego, inicie sesión como su usuario normal en su máquina local, use ssh-copy-id para instalar su certificado en la computadora host. Tan pronto como funcione, tienes que volver atrás y cambiar /etc/ssh/sshd_config usar "PermitRootLogin prohibit-password. "De esta forma puede iniciar sesión como root con un certificado, pero no con una contraseña.

Si alguna vez ha iniciado sesión desde su cuenta raíz, SSH probablemente le haya preguntado si desea aceptar la clave del servidor. Si no es así, será un problema. Si puede, inicie sesión y responda que sí, para que deje de preguntar. Sin embargo, si no puede, también podemos desactivarlo. StrictHostKeyChecking.

En teoría, puede transferir opciones ssh adicionales al complemento NetworkManager, pero por alguna razón eso no funciona en la versión de los repositorios. Si comienza manualmente, por supuesto, puede agregar lo que quiera. Sin embargo, también es posible establecer la configuración SSH de root en /root/.ssh/configo el escenario global en /etc/ssh/ssh_config.

Si cambia el global, considere usar /etc/ssh/ssh_config.d si su sistema lo admite. Esto le permite insertar fragmentos de un host en particular que no se escribirán sobre las actualizaciones del sistema. Por ejemplo, puede crear un archivo en esa carpeta con el nombre la-tecnologia.conf:

Host *.la-tecnologia.com la-tecnologia.com
StrictHostKeyChecking no
Tunnel yes

Nuevamente, si se opone al control de la clave de alojamiento, simplemente inicie sesión desde su cuenta raíz una vez y acepte manualmente la clave remota. O, si eres valiente, edita a mano /root/.ssh/known_hosts.

Prosperar

Eso tiene que hacerse. Si está utilizando el complemento NetworkManager, simplemente cree una nueva conexión. Desde allí, seleccione la sección sobre conexiones VPN y seleccione SSH.

Deberá ingresar una serie de parámetros, incluido el certificado que desea usar para iniciar sesión en la computadora remota:

Una vez que mantenga la conexión, puede activarla, como lo haría con cualquier otra interfaz web. Si desea ver si funciona, solicite su dirección IP a su sitio web. Luego activa la VPN y hazlo de nuevo. Si tiene problemas para conectar la VPN, puede consultar el protocolo del sistema para averiguar qué errores arroja SSH.

Por supuesto

Existen otras soluciones VPN. Sin embargo, dado que es casi seguro que tu computadora remota tenga un servidor SSH, es muy simple de configurar con muy poca planificación.

Puede hacer mucho con SSH si conoce los trucos. Nos gusta especialmente usarlo para montar archivos.

  • Kryptylomese dice:

    “Sshuttle” es una alternativa basada en SSH, que aunque no es una VPN completa, debido a que no transmite UDP más que DNS, es mucho más fácil de configurar.

    Sin embargo, SSH no afecta el ancho de banda, por lo que optaría por WireGuard, que es una VPN completa y es fácil de configurar y muy rápida (más rápida que cualquier otra VPN que yo sepa) y muy segura.

    • John dice:

      +1 para sshuttle, especialmente porque no necesitas acceso de root en la máquina remota, esto lo hace mucho más versátil y, como dijiste, muy fácil (solo una línea) para obtener una conexión vpn "casi completa".

      • IDENTIFICACIÓN dice:

        ssh no necesita acceso de root en la máquina remota más allá de lo que necesita sshuttle: la habilitación de sshd.

        • John dice:

          Ah, de hecho, mal, leí el artículo demasiado rápido.

  • James Knott dice:

    Otra cosa es que TCP sobre TCP es una mala idea porque luego tiene dos ejemplos de control de flujo que pueden causar problemas. Las VPN con UPN adecuadas evitan esto porque el comportamiento de UDP es el mismo que el de Ethernet.

    • zombi dice:

      ++!

      ¿Por qué es esto nuevo para muchos?

      • Ø dice:

        No muchos se preocupan por ethernet étnico

    • IDENTIFICACIÓN dice:

      "El comportamiento de UDP es el mismo que el de Eternal". (sic)

      Oh hombre, estás en el mar por esto. ¿Quizás aprender las 7 capas del modelo OSI? Ethernet es la capa 1, UDP es la capa 4. Su comportamiento ni siquiera es comparable, mucho menos el mismo.

      • Cogidubnus Rex dice:

        ¡Señor, vuelve al mar!

        Claramente, estamos hablando del elemento específico del control de la congestión.

        UDP: está enviando un datagrama. La mayoría de las veces logra su objetivo. Si no, a UDP no le importa.
        Ethernet: envía una trama en el Ether. La mayoría de las veces logra su objetivo. Si no, a Ethernet no le importa.
        TCP: envías datos en segmentos. La mayoría de las veces logran su objetivo. De lo contrario, TCP retransmitirá los segmentos que no llegaron (además de reducir su ventana de congestión, limitando así la velocidad de transmisión - AKA control de congestión).

        Por lo tanto, UDP huele sorprendentemente similar a Ethernet en este contexto.

      • gato negro17 dice:

        Los estándares de Ethernet abarcan la capa 1 (aspectos físicos y métodos de codificación de bits) y la capa 2 (capa de enlace de datos, es decir, incrustación y MAC).

  • Bob A. dice:

    Honestamente, esto es un poco extravagante. La razón principal por la que uso una VPN es para evitar problemas de enrutamiento en la red rural de AT&T en el norte de California. Por ejemplo, npm no se puede utilizar debido a pausas a menos que pase por mi VPN. Utilizo PIA, pero realmente no "confiaría" en ellos (ni en ningún otro proveedor de VPN) si intentara ocultar o mantener algo seguro.

    • Foldi-One dice:

      La confianza es algo difícil de encontrar en un servicio por el que paga: ¿por qué deberían preocuparse de que no lo hagan lo suficientemente infeliz como para usar a otra persona para que no obtengan más de su dinero o hagan trampa para que pueda enviar abogados a ellos? y sacar mucho dinero ...
      Si realmente necesita confiar en él, será mejor que lo ejecute usted mismo, con el código que haya verificado o escrito personalmente ... Lo cual es casi imposible.

  • Beto dice:

    "Si ve muchos anuncios de banner en algunos sitios web ..." No veo anuncios. Utilizo un bloqueador de anuncios. Internet básicamente sería inútil para mí sin él. Si un sitio web requiere que lo desactive o tenga anuncios autohospedados, voy a otro lado. No usaré ropa con un emblema. Rechazo absolutamente la publicidad de la cosmovisión. Descubra una forma diferente de financiar su sitio.

    • Seba dice:

      +1

    • Foldi-One dice:

      Entonces, ¿cuánto de su dinero gasta para respaldar los sitios web que usa directamente?
      Los anuncios hechos correctamente son inconvenientes menores en general y, a veces, realmente muy útiles: ese anuncio para productos específicos como esa placa de desarrollo IC-FPGA que no sabías que realmente era adecuado para tus necesidades, elegido porque coincide con la audiencia de un sitio web como que. Aquellos que probablemente estén interesados ​​en conocer los productos de todos modos ...

      No puedo decir que sea un fanático de las ubicaciones cada vez más repugnantes y de los sitios web cargados de anuncios cada vez más frecuentes, pero tienen que ser financiados de alguna manera y muchos de ellos no pudieron atraer suficientes patrocinadores. Elimina los anuncios de Internet y casi todo lo que quedará son sitios web que son básicamente anuncios en su totalidad, siendo un sitio web de empresa x para sus productos.

      • NiHaoMike dice:

        Adblock Plus tiene la opción de no bloquear "anuncios aceptables" si lo desea. Algunos dicen que proporcionar un incentivo para hacer que los anuncios sean menos molestos reduce la necesidad de bloquear los anuncios primero.

        • Bonzadog dice:

          Los anuncios son una molestia en las regiones holandesas ... no solo los anuncios, sino también las recopilaciones de datos. Afortunadamente, la UE tiene una mejor protección de datos. Empeora durante el "Black Friday" y el "Cyber ​​Monday": uno puede vivir realmente sin todo.

          • Beto dice:

            Y afortunadamente, fanboy tiene una lista de bloqueo completa de cookies de gdpr, por lo que no tiene que soportar grandes pancartas y mensajes de advertencia en cada sitio que visite.

      • no spam dice:

        Intente reubicarse en un tercer mundo en línea como Canadá, donde paga $ 1000 por GB de datos en algunos lugares, o descubra que sus datos se están reduciendo a velocidades inferiores a la marca. Con los sonidos de las cosas, el acceso telefónico es una palabra extranjera para ti, pero una realidad para muchas personas que no viven dentro de los límites de la ciudad inmediata. No estoy hablando de horas de distancia, estoy hablando de límites de la ciudad aquí. Puedo ver fibra en mi casa, pero no puedo obtenerla, ni siquiera puedo obtener DSL si pagara $ 1 millón al monopolio telefónico local para cortar una línea de 1 km.

        Administro un proxy transparente con envenenamiento de caché de DNS. Milagrosamente, el 25-30% de mi tráfico en línea es para "pequeños inconvenientes" inútiles de datos, javascript, seguimiento, videos y anuncios emergentes con imágenes. Ya pago un brazo y una pierna por mi Internet, no quiero pagar por spam y publicidad fraudulenta.

        • Bonzadog dice:

          Canadá está lejos de ser un país del tercer mundo. Veo en Internet que hay proveedores mucho más baratos ..... ¿Qué intentas demostrar?

  • John C. Reid dice:

    Esto parece una gran cantidad de configuración para duplicar básicamente lo que WireGuard hace por usted. Además, WireGuard está integrado en el kernel de Linux y SSH todavía necesita un demonio. Básicamente, usa un caso de uso para configurar su propia VPN WireGuard e instalar el túnel SSH de acuerdo con la factura. WireGuard es solo otra interfaz web y, como tal, es mucho menos complicado que cualquier otra solución VPN. Esto es lo que lo convierte en el espacio del kernel de Linux.

  • TerryMatthews dice:

    Yeaaaaah no. Entiendo el concepto de esto, pero probablemente será diferente.

  • 2bithacker dice:

    SSH es un poco bueno, pero si usa mucho la VPN, le recomiendo configurar algo con WireGuard. Recomiendo encarecidamente Algo de https://github.com/trailofbits/algo, que facilita la configuración de un servidor VPN basado en WireGuard u OpenVPN en algunos proveedores de la nube. Los clientes de WireGuard también están disponibles para la mayoría de los sistemas.

  • Chris dice:

    Los usuarios de Windows pueden simplemente configurar masilla para que actúe como un proxy local. Es suficiente para muchos casos de uso.

    • Cogidubnus Rex dice:

      Los usuarios de Linux también.

      ssh -D

      abre un proxy SOCKS en el puerto local.

      • Cogidubnus Rex dice:

        Aparentemente, los soportes de las esquinas comen aquí para el desayuno. Eso debería ser

        ssh -D host puerto_socks

        abre un proxy SOCKS en el puerto local socks_port.

    • Michel Banguerski dice:

      +1
      Si es solo para navegar, el reenvío dinámico de puertos es definitivamente el camino a seguir.

      También es extremadamente útil si necesita administrar varios hosts ssh detrás de un host de salto (pero dependiendo de por qué se organizó el host de salto (es decir, monitoreo de sesión para el cumplimiento normativo), puede terminar con el objetivo)

  • Bonzadog dice:

    Acerca de la BBC: la BBC "ve" que se está utilizando una VPN y bloquea el acceso. Me pregunto si una VPN también podría ocultarse.

    • Cogidubnus Rex dice:

      No lo "ve" usando una VPN, solo lo ve proveniente de una dirección IP asociada con un proveedor de VPN. Si un proveedor recibe un nuevo rango de IP, aunque la BBC no sabrá que esas IP pertenecen a una VPN, no mostrarán el mensaje "VPN detectada". Luego, después de un tiempo, supongo que la BBC advierte patrones de tráfico inusuales de un rango estrecho de IP y lo marca como un proveedor de VPN.

      • Bonzadog dice:

        Puede que tengas razón, pero la BBC dice:
        Hay varias razones por las que BBC iPlayer cree que se encuentra fuera del Reino Unido; los más comunes son:

        Su dirección IP, que es la dirección que utilizan los sitios web para determinar dónde se encuentra en el mundo, no está registrada en el Reino Unido.
        Está utilizando una VPN (red privada virtual), un proxy o un servicio similar que enmascara su dirección IP.

        Usé diferentes navegadores, vacié las cookies cada vez, usé diferentes ciudades para lanzar la VPN.
        Todavía me pregunto si de alguna manera detectan una VPN ... ¿Quizás usando datos del navegador?

        • Cogidubnus Rex dice:

          No, como dije, solo tienen una lista de IP que conocen. Utilizo una VPN de países extranjeros a una conexión de banda ancha privada en el Reino Unido y funciona bien. +1 usuario en IP no marcará nada, si ven tal vez 50 usuarios de una IP, entonces suena. CG-NAT también daría la misma imagen, pero esperaría que Beeb supiera que los proveedores de banda ancha domésticos usan CG-NAT.

          • Bonzadog dice:

            De acuerdo, pero también uso VPN (acceso privado a Internet (PIA) desde un país extranjero y todavía no funciona. No depende de la ciudad que use. También escribí a PIA. ¿Qué proveedor de VPN estás usando? ?)
            #

          • Cogidubnus Rex dice:

            Te perdiste una parte cuando dije "conexión de banda ancha privada", no un servicio comercial. Tu PIA es un servicio comercial, sí tienen varias ciudades, pero el Beeb ya ha marcado sus IP. Es un juego del gato y el ratón, y con la falta de direcciones IPv4 será difícil ganar. ¿IPlayer funciona con IPv6? 😉

      • Beto dice:

        ¿Alguna idea de cómo netflix y amazon detectan el uso de VPN? A veces recibo alertas de vpn / proxy con estos servicios (uso speedify vpn para iniciar un enlace de canal en tarjetas SIM duales 4G), pero cuando lo hago, puedo eliminar la aplicación en mi escudo nvidia, volver a abrirla y funciona bien. No voy a cambiar una dirección IP

  • Foldi-One dice:

    De hecho, la mayoría de los anunciantes parecen tener algún tipo de control. Así que trato de configurarlo para que no bloquee cosas en los sitios que realmente "necesito", porque quiero que obtengan suficiente financiamiento para quedarse (aunque la mayoría de los sitios que frecuentan no se anuncian mucho, si es que tienen) anuncios que merecen recibir algo por el trabajo que realizan).

    Si bien no diré que está equivocado, podría resultar en anuncios menos repugnantes al final, por ahora diría que la creciente frecuencia de bloqueadores de anuncios ha llevado a más anuncios, más anuncios desagradables y más anuncios autohospedados. . los bloqueadores no atraparán. Lo cual realmente noto cada vez que uso una computadora que no está arreglada de la forma habitual.

  • Johan Gerhard van der Hoven dice:

    Hola a todos, disfruté leyendo esta discusión. Tengo un usuario que usa Anydesk para controlar una computadora remota, pero necesita imprimir en su impresora local, como está configurado en su computadora local. Anydesk / Teamviewer, etc. no ofrece esta capacidad (¿por qué no?) ¿Alguien sabe de una solución similar, o más en el contexto de esta discusión, cómo podría usar el túnel SSH para lograr esto?

    • Johan Gerhard van der Hoven dice:

      Lo sentimos, hay un entorno Linux Ubuntu 18.04.

  • MattEJ dice:

    ssh -D 8118 -f -C -q -N [email protected]

    Firefox: Propiedades -> Configuración de red

    seleccione un Manual de configuración de proxy

    dejar todo en blanco Sock Host

    Host de calcetines: 127.0.0.1 Puerto 8118

    Sock5 Elegido

    Sin proxy para: 127.0.0.1,192.168.1.1 / 24 (la red se adaptaría a su red local)

    Seleccionado: DNS proxy al usar SOCKS v5

    Habilite DNS sobre HTTPS: Cloudflare (o su proveedor de DNS elegido)

    ahora podrá navegar por el enlace ssh

  • Thomas Weeks dice:

    Sí ... +1 solo para ejecutar calcetines de túnel proxy5. No solo canaliza un navegador a su nodo de salida remoto, sino que también puede compartir cualquier aplicación a través de socks5 al vincular el túnel junto con cadenas de proxy, lo que le permite ejecutar diferentes VPN para diferentes programas.

    Incluso escribí un pequeño script de calcetines que puedes insertar en tu ~ / bin / dir y tener otro archivo cfg para cada túnel de calcetines:
    https://github.com/Tweeks-va/homedir-utils/blob/master/bin/socksit

    T. Semanas

  • Bart dice:

    El hecho de que tantos estadounidenses parezcan "necesitar" un servicio VPN muestra cuán rota y atrasada está la infraestructura de EE. UU. Y la desconfianza loca del gobierno votaron por ellos mismos.

    Vivo en los Paises Bajos. Tengo una velocidad de 500 Mbps (no es la opción más rápida que es 1000 Mbps) y no tengo límites de datos ni filtrado sobre los servicios específicos que utilizo. Tenemos una ley para evitar que los proveedores ralenticen los protocolos que no les gustan o con los que no compiten (neutralidad de la red). La velocidad suele ser la prometida. Hoy hago muchas conferencias telefónicas excelentes con un excelente equipo y funciona bien. La ISO de Linux se carga en segundos.

    La única razón que queda para una VPN es ocultar mi ubicación a netflix o algo así. No hago esto (no siento la necesidad) y también me opongo a las reglas de Netflix y otros servicios de transmisión. Entiendo que la gente los usa para ese propósito. Y creo que las barreras geográficas en Internet son estúpidas. Pero cuando una empresa de VPN anuncia este uso, se les aconseja romper un término de usuario, lo cual es extraño.

    Me gusta la comunicación segura, pero para eso se utilizan SSL, TLS y demás y vienen gratis con el navegador.

    En general, a menos que viva en una dictadura, los servicios de VPN para la mayoría de los usos son completamente inútiles en los países avanzados del primer mundo. Todo da miedo.

    • Bonzadog dice:

      No del todo correcto https://uk.pcmag.com/features/88655/what-is-a-vpn-and-why-you-need-one

    • MattEJ dice:

      Hola Bart, para mí, las VPN se tratan de un salto limpio a redes remotas, digamos, por ejemplo, que desea buscar dispositivos en línea dentro de su hogar desde una ubicación remota y solo desea abrir un puerto en el firewall de su hogar: solo uno de muchos ejemplos de la utilidad de VPN. Con el proveedor de pago, VPN como Nord es principalmente para que los usuarios parezcan provenir de otra fuente local en la que puedo ver su objetivo, pero ese es solo un pequeño ejemplo del propósito de una VPN.

    • D dice:

      Creo que la mayoría de los estadounidenses con VPN que saben lo que están haciendo con ellas (es decir, que no están convencidos de la publicidad de mierda) la utilizan principalmente para disfrazar el tráfico de torrents que infringe los derechos de autor para no meterse en problemas.

  • Grackle dice:

    Considere usar StrongSwan IPSec en lugar de rough VPN ssh. El proyecto tiene recetas para la mayoría de los anfitriones. Wireguard, aunque inteligente, tiene algunas limitaciones importantes, aunque es "más limpio" que IPSec o ssh-VPN. Hay algunas formas de hacer buenos calcetines, como se describió anteriormente, pero tenga cuidado con las soluciones simples. Al final (perdón por el juego de palabras), su nodo de salida todavía tiene una dirección estática si intenta falsificar su ubicación. Es posible que deba comprender cómo funciona TOR (y cómo mantenerlo seguro) para enmascarar realmente su ubicación, aunque ahora también se conocen los nodos de salida de TOR. Gato y ratón.

    Y considere mejorar su detección de IPtables con fail2ban.

Alana Herrero
Alana Herrero

Deja una respuesta

Tu dirección de correo electrónico no será publicada.