snat / dnat vagymi ?

Sziasztok!
Adott egy router amin belso halon log 2 vagy tobb gep, es egy kapcsolatom az internet fele + egy vpn.
Azt szeretnem, hogy mac adress alapjan, csak az egyik gep menjen a vpn kapcsolaton keresztul a tobbi ne, azok az interneten a modem ipjevel latszodjanak!
No a kerdes az, hogy sztem ezt a dnattal lehetne megoldani, de a kerdes az, hogy igen, es ha nem akkor mivel ?

szerk:
van 2 pc(a, b) + 1 router(openwrt) es a pcken nem szeretnek konfiguralni azok dhcpvel kapnak akar static ipt mac address alapjan

a router az internet eleres mellett nyit egy vpn kapcsolatot
azt szeretnem, hogy az "a" PC csak a vpn-n keresztul tudjon menni a "b" PC pedig ne menjen at a vpn kapcsolaton.
illetve, ha egy ujabb pc kerul a korbe wirelessel az se hasznalja a vpn-t, tehat csak az "a" PC tudja a vpnt hasznalni a tobbi pedig enelkul menjen ki a netre.

igy erthetobb voltam ?
annyi meg, hogy en ugy probalkoztam, hogy egy static routot csinaltam a vpnre, tehat azt kellene megmondani, hogy ami errol a mac addressrol jon az erre az eszkozre vagy atjarora menjen ... (ez igy lehet hulyeseg)

szep napokat
zsomi

Hozzászólások

Ha a router egy PC, ha azon Linux fut, a belső hálózat: NAT, az internet: NET, akkor iptables. (Ha jól értem a kérdést)

- ip_forwardot bekapcsolod
- policyt beállítod (pl. minden drop és csak azt engeded amit akarsz)
- IP masquerading-ot megcsinálod
- established,relatedet nem felejted ki

- Végül megcsinálod amit szeretnél a FORWARD láncban:
iptables -A FORWARD -i $LAN -o $NET -m mac --mac-source $A_GEPED_MAC_CIME -p tcp --dport $VPN_PORT -j ACCEPT
iptables -A FORWARD -i $LAN -o $NET -m mac --mac-source $A_GEPED_MAC_CIME -j DROP

Így a VPN megy, minden más nem megy az adott MAC című gépen. Szerintem

Szerk:
A kliensen pedig beállítod a VPN csatlakozást.

Szerk2:
Az utánam következők megoldása is nagyon jónak tűnik, kiváncsi vagyok melyik lesz a jó.

Hogy ki merre menjen, az routing. A NAT iptables-ben vagy SNAT, ha fix az IP-d, vagy MASQUERADE, ha nem.

--

Kicsit összetettebb a játék

0.) Rakd fel az iproute csomagot
1.) A mangle tábla PREROUTNG láncán megjelölöd a csomagot ha illeszkedik a mac
2.) A nat tábla PREROUTING láncán csinálj SNAT-ot
3.) Csinálj egy második routing-táblát amiben a VPN a default gateway
4.) Csinálj egy ip rule -t, ami a megjelölt csomagokat a második tábla szerint route-olja.

5.) A 3. és 4. pontokat integráld az ifup/ifdown scriptekbe, hogy az újraindítás se legyen gond.

Akkor egy kicsit pontositsunk. Milyen VPN? Kell-e a VPN kimeno forgalmat NATolni egyaltalan?

Amugy a kovetkezo megoldas tunik turhetonek:
ip rule add fwmark 65 table vpn
ip route add default via dev table vpn
iptables -t mangle -A PREROUTING -s 192.168.0.10 --mac-source -j MARK --set-mark 65

Persze ha kell natolni akkor meg az nat output tablebe kell rakni egy SNAT/MASQUERADE rulet.

Annyit sikerult nezni a hetvegen, hogy nekem a mangle tabla kellene es a ROUTE lanc, viszont ez openwrtben nekem nincs! Nagyon kedvem sincs buildelni, viszont van TEE azzal probalom megoldani!

LAN -> TEE ------> WAN
L> PPTP ----^

Ha jol gondolom, akkor:
- PPTP re static route, mert a default maradna a WAN ipre
- TEEnel megadom, hogy a PPTPs ip legyen a gateway

es ez sztem nem eleg, meg kene egy dnat, hogy a csomagban az utvonal a PPTPre mutasson ... ???

Ide kene egy kis segitseg ha a tobbi jo!

szép napokat
zsömi

ha jol ertem akkor a tee az duplikalja a forgalmat, tehat nem ez kell neked.
DNAT-nal pedig a masik oldalon vissza kellene valtoztatni a destination IP cimet.

Nincs most elottem ddwrt szoval nem tudom, hogy tudja-e a kovetkezoket, de valahogy biztos ra lehet eroszakolni a dolgot.
Kell letrehozni egy route-ot ami lehetoleg nem a fo routing tablaban van. Ebbe a routing tablaba be kell tenni egy default route-ot ami a pptp remoteIPre mutat. Ezek utan mar csak mac cim alapjan kell a csomagokat a megfelelo routing tablara iranyitani.