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.
- 564 megtekintés
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!
- A hozzászóláshoz be kell jelentkezni