Estoy tratando de lograr algo fácil pero aparentemente me falta algo.
En mi caja tengo un cliente VPN ejecutándose que creó una tun0
interfaz. La caja tiene tráfico externo proveniente del eth0
.
Me gustaría reenviar el tráfico de eth0
a tun0
. Ejecuto los siguientes comandos:
iptables -A FORWARD -i eth0 -o tun0 -s 192.168.100.0/28 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.100.0/28 -o tun0 -j MASQUERADE
Tenga en cuenta que selecciono el rango de IP de origen porque quiero reenviar solo cierto rango.
Al ejecutar tcpdump
la eth0
interfaz, puedo ver el tráfico que ingresa desde una máquina en el rango, 192.168.100.0/28
pero no puedo ver el tráfico que ingresa tun0
.
El reenvío de IP está activado de forma natural.
No estoy seguro de lo que realmente me estoy perdiendo aquí.
Configuración IP de eth0
es 192.168.10.93/24
mientras tun0
es10.8.8.15/24
➜ ~ ip r
default via 192.168.10.1 dev eth0 metric 100
10.8.8.0/24 dev tun0 scope link src 10.8.8.15
172.17.0.0/16 dev docker0 scope link src 172.17.0.1
172.30.32.0/23 dev hassio scope link src 172.30.32.1
192.168.10.0/24 dev eth0 scope link src 192.168.10.93 metric 100
Respuesta1
Dado que al final esto podría tratarse de que el tráfico 192.168.100.0/28
salga, tun0
esto podría resolverse con algo como:
ip rule add from 192.168.100.0/28 lookup 10000
ip route add default via ${tun0gwip} table 10000
También conserve iptables MASQUERADE, que es necesario a menos que tun0 gw pueda enrutarse de regreso a su otra red.
Respuesta2
Esta es la combinación exacta de comandos que resolvió el problema:
Cree una nueva tabla de rutas denominada vpn
en
➜ ~ cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 vpn
y luego ejecuta:
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o tun0 -s 192.168.100.0/28 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
ip route add default dev tun0 table vpn
ip route add 192.168.100.0/28 dev eth0 table vpn
ip rule add from 192.168.100.0/28 table vpn