GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración de un servidor proxy que utiliza una conexión vpn

Seis años después, llegué a esta pregunta y casi la decepcioné según la respuesta aceptada. A partir de hoy, no es complicado, utilizando el enrutamiento de políticas. Todos los detalles están disponibles en este mismo sitio, en https://serverfault.com/a/389004/70774.

En mi caso, primero tenía que asegurarme de que la vpn no fuera la ruta predeterminada. La forma en que lo logrará depende del tipo de administrador de conexión que esté utilizando.

El proxy (tinyproxy) se ejecuta con su propio usuario, por lo que marco todos los paquetes que provienen de este usuario con el comando

iptables -t mangle -A OUTPUT -m owner --uid-owner 125 -j MARK --set-mark 2

donde 125 es el uid del usuario tinyproxy y 2 es un número arbitrario, para ser emparejado más tarde.

Luego indico al sistema de enrutamiento que use una tabla específica para enrutar todas las solicitudes marcadas con 2 .

ip rule add fwmark 2 table 3

De nuevo, el 3 es sólo un número arbitrario. Solo pida atención para elegir una mesa sin usar (solo vea si hay algo en la mesa con lo que elija con ip route list table 3 ).

Luego relleno la tabla 3 con mi ruta por defecto:

ip route add default dev ppp0 via proto static scope link metric 1024

El último paso fue hacer una regla de enmascaramiento, de la cual no entiendo completamente la necesidad:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

¡Et voilá!


Linux
  1. OpenVPN - Asegure la administración de su servidor con conexión VPN multiplataforma

  2. Servidor proxy de calamar

  3. Configuración VPN IPsec

  4. Servidor VPN PPTP

  5. Configuración de un servidor FTP con vsFTPd en Raspberry Pi

Configuración del servidor VPN SoftEther en Ubuntu 16.04 Xenial Xerus Linux

Configuración de la partición LVM en el servidor Linux

Conexión a un servidor proxy - Parte 2

Conexión a un servidor proxy - Parte 1

Solución de problemas:errores de conexión del servidor

¿Cómo conectarse a Internet a través de un servidor remoto a través de una conexión Ssh?