Enrutar el tráfico a algún host en Internet a través del servidor VPN

Enrutar el tráfico a algún host en Internet a través del servidor VPN

Necesito enrutar el tráfico a algún host en Internet a través del servidor VPN.

Configuración:

Computadora: ubuntu-12.04

eth0 - xxxx/24

tun0 - dirección inet:10.8.0.6 PtP:10.8.0.5 Máscara:255.255.255.255

Hay un servidor OpenVPN (Amazon):

ubuntu-12.04

eth0 - aaaa/24

tun0 - dirección inet:10.8.0.1 PtP:10.8.0.2 Máscara:255.255.255.255

Hay un host en la IP de Internet: qqqq

Quiero realizar tráfico a qqqq y fui al servidor OpenVPN. Para esto hago:

iptables:

Marco paquetes en la tabla mangle:

sudo iptables -t mangle -A OUTPUT -d q.q.q.q -j MARK --set-mark 2

Envío tráfico a qqqq lanza tun0:

sudo iptables -t nat -A POSTROUTING -d q.q.q.q -j SNAT --to-source 10.8.0.6

iproute2:

Hago la tabla "100" en /etc/iproute2/rt_tables

sudo ip rule add fwmark 2 table 100
sudo ip route add default via 10.8.0.5 table 100

tcpdump en la primera computadora:

14:22:04.554399 IP 10.8.0.6 > qqqq.clodo.ru: solicitud de eco ICMP, id 11717, secuencia 1, longitud 64

14:22:04.681918 IP qqqq.clodo.ru > 10.8.0.6: respuesta de eco ICMP, id 11717, secuencia 1, longitud 64

14:22:05.562577 IP 10.8.0.6 > qqqq.clodo.ru: solicitud de eco ICMP, id 11717, secuencia 2, longitud 64

14:22:05.690240 IP qqqq.clodo.ru > 10.8.0.6: respuesta de eco ICMP, id 11717, secuencia 2, longitud 64

Pero no hay ping. 2 paquetes transmitidos, 0 recibidos, 100% de pérdida de paquetes.

Respuesta1

No es necesario marcar los paquetes. Para hacer lo que está planeando, necesita lo siguiente

en el archivo de configuración del servidor agregue lo siguiente:

"push route q.q.q.q 255.255.255.255"

Lo anterior impulsará la ruta al lado del cliente para que todo el tráfico enviado desde el cliente a esa IP se envíe a través del túnel openvpn.

También en el lado del servidor necesita aceptar el tráfico entrante del cliente, puede aceptar todo el tráfico proveniente de la subred del cliente de la siguiente manera

iptables -A INPUT -s 10.8.0.0/24 -j ACCEPT

es posible que también necesites esto, no estoy seguro:

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT

Necesita capturar el tráfico entrante del lado del cliente al servidor [haga esto en el lado del servidor]

iptables -t nat -A POSTROUTING -d q.q.q.q -j SNAT --to-source PUBLIC_IP_OR_YOUR_VPN_SERVER

Y no necesitas iproute2 o mangle table.

El orden de las reglas es importante, así que complazcalos antes de eliminar una regla coincidente.

información relacionada