Kliens forgalom továbbítása VPN interfészre - OpenWRT routeren

Sziasztok!

Adott egy OpenWrt router amin fut egy openvpn kliens, amely egy távoli, nem általam menedzselt szerverhez csatlakozik. Azt szeretném elérni, hogy a LAN hálózatban futó 1-2 kliens forgalma (pl. SmartTV) ne a router WAN interfészére, hanem a VPN-re essen és úgy menjen ki internet felé.

Ábra:
+------------+ +-------------+ +---------------+ +-----------------+
| Kliens +---->| Router +----->| VPN +----->| internet |
+------------+ +-------------+ +---------------+ +-----------------+

Próbáltam Policy Based Routing-al megvalósítani, de sajnos nem jött össze (ip rule létrehozva, külön routing tábla elkészítve, mark szabályok kialakítva).

Hogyan lehetne ezt iptables-el megvalósítani?

Eddig ezeket próbáltam:

1. - forward szabály létrehozva, engedje át a br-lan --> tun0 , illetve a tun0 --> br-lan irányt is a router.
- NAT tábla prerouting láncánál megadtam az alábbit: iptables -t nat -I PREROUING 1 -p tcp -s 192.168.1.10 -j DNAT --to-destination 10.10.0.5:1196 --> ugyanez udp-vel is
- iptables -t nat -I POSTROUTING 1 -o tun0 -j MASQUERADE

A fentieknél sajnos nem igazán volt a kliensnél netkapcsolat, halott ötlet. Próbáltam debuggolni a LOG lánccal, de nem sok sikerrel.

Nem vagyok túl nagy iptables guru, ezért kellene egy kis segítség, hogy megértsem hol rontom el.

Hozzászólások

A probléma megoldódott; a gond az volt, hogy a "vpn"-es routing táblába nem volt felvéve a 192.168.1.0/24 tartomány, csak a vpn interfészének /24-es címe. Ezzel a javítással működik a policy based routing is.

Nem tudom mennyire okés, de az alábbi szabályok készültek:

iptables -I PREROUTING 1 -s 192.168.1.10 -j MARK --set-mark 3
iptables -I POSTROUTING 1 -s 192.168.1.10 -o tun0 -j MASQUERADE
iptables -I FORWARD 1 -o tun0 -i br-lan -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 1 -o br-lan -i tun0 -j ACCEPT

Ennyi elég volt a boldogsághoz.

--

Warning! Use ANY version of Windows at your own risk!