ಒಂದು LAN ಉಪಜಾಲವನ್ನು OpenVPN ಮೂಲಕ ರೂಟ್ ಮಾಡಿ ಮತ್ತು ಡಿಫಾಲ್ಟ್ ಉಳಿಸಿಕೊಳ್ಳಿ
ಒಂದು ಉಪಜಾಲವು ಸುರಂಗದ ಮೂಲಕ ಹೋಗುವಾಗ LAN ಡಿಫಾಲ್ಟ್ ಉಳಿಸಿಕೊಳ್ಳಿ. ಪಾಲಿಸಿ ಕೋಷ್ಟಕವನ್ನು ಮುಖ್ಯ ಕೋಷ್ಟಕದ ಸಂಪಾದನೆಗಳೊಂದಿಗೆ ಹೋಲಿಸಿ, ನಂತರ NAT ಅಥವಾ ಸರ್ವರ್-ಸೈಡ್ ರೂಟ್ ಆಯ್ಕೆಮಾಡಿ.
LAN ಗಾಗಿ ರೂಟ್ ಮಾಡುವ ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ VPN ಗೆ ಡಯಲ್ ಮಾಡುವ ಬಾಕ್ಸ್ಗಳು ತಮ್ಮೊಂದಿಗೆ ಅದೇ ವಾದದಲ್ಲಿ ಸಿಲುಕುತ್ತವೆ: ಸುರಂಗವು ಡಿಫಾಲ್ಟ್ ರೂಟ್ ಅನ್ನು ಹೊಂದಲು ಬಯಸುತ್ತದೆ, ಮತ್ತು LAN ಅದನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಬೇಕು. OpenVPN ಸಂಪರ್ಕಗೊಂಡಾಗ, ಅದು ಸುರಂಗದ ಮೂಲಕ ಡಿಫಾಲ್ಟ್ ಅಥವಾ ಜೋಡಿ ಅರ್ಧ-ಡಿಫಾಲ್ಟ್ಗಳನ್ನು ಸ್ಥಾಪಿಸಬಹುದು, ಇದು ಲ್ಯಾಪ್ಟಾಪ್ಗೆ ಸರಿ ಮತ್ತು ತನ್ನ LAN ವಿಳಾಸದಿಂದ ಉತ್ತರಗಳನ್ನು ನೆರೆಹೊರೆಯವರು ನಿರೀಕ್ಷಿಸುವ ಗೇಟ್ವೇಗೆ ತಪ್ಪು. ಉತ್ತರ VPN ಬಿಟ್ಟುಬಿಡುವುದಲ್ಲ. ಉತ್ತರ ಎಂದರೆ ಎರಡು ನಿರ್ಧಾರಗಳಿಗೆ ಬೇರೆ ಬೇರೆ ಕೋಷ್ಟಕಗಳನ್ನು ಕೊಡುವುದು.
ಒಂದು ಡಿಫಾಲ್ಟ್ ರೂಟ್, ಇಬ್ಬರು ಮಾಲೀಕರು
ಫಾರ್ವರ್ಡ್ ಆದ ಸಂಚಾರ ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಹುಟ್ಟುವ ಸಂಚಾರ ಒಂದೇ ದಾರಿ ತೆಗೆದುಕೊಳ್ಳಬೇಕಿಲ್ಲ. LAN ಕ್ಲೈಂಟ್ಗಳಿಗೆ ನೀವು ಆಯ್ಕೆಮಾಡಿದ ಗಮ್ಯಸ್ಥಾನಗಳಿಗೆ ಮಾತ್ರ ಸುರಂಗ ಬೇಕು, ಆದರೆ ಹೋಸ್ಟ್ನ ಸ್ವಂತ ನಿರ್ವಹಣಾ ಸೆಷನ್ಗಳಿಗೆ ಮತ್ತು ಆ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಅದರ ಉತ್ತರಗಳಿಗೆ LAN ಡಿಫಾಲ್ಟ್ ಬೇಕು. ಎರಡನ್ನೂ ಮುಖ್ಯ ಕೋಷ್ಟಕದಲ್ಲಿ ಬೆರೆಸಿದರೆ ಎರಡು ಬೇರೆ ಪ್ರಶ್ನೆಗಳಿಗೆ ಒಂದೇ ಉತ್ತರವನ್ನು ಹೇರಲಾಗುತ್ತದೆ.
OpenVPN ನಲ್ಲಿ ಇದಕ್ಕಾಗಿಯೇ ಒಂದು ಸ್ವಿಚ್ ಇದೆ. route-noexec ಕ್ಲೈಂಟ್ ಮುಖ್ಯ ಕೋಷ್ಟಕವನ್ನು ಸ್ಪರ್ಶಿಸದಂತೆ ತಡೆಯುತ್ತದೆ, ಮತ್ತು ಅದು ಬಳಸುತ್ತಿದ್ದ ಮೌಲ್ಯಗಳನ್ನು route-up ಸ್ಕ್ರಿಪ್ಟ್ಗೆ route_vpn_gateway, dev ಮತ್ತು ಇಂಟರ್ಫೇಸ್ ವಿಳಾಸಗಳಾಗಿ ರಫ್ತು ಮಾಡಲಾಗುತ್ತದೆ. ನಂತರ ಯಾವ ಕೋಷ್ಟಕ ಯಾವ ರೂಟ್ ಪಡೆಯುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ನಿರ್ಧರಿಸುತ್ತೀರಿ, ನಂತರ ಓದಬಹುದಾದ ಕೋಡ್ನಲ್ಲಿ.
ಪಾಲಿಸಿ ಕೋಷ್ಟಕ ಬನಾಮು ಮುಖ್ಯ ಕೋಷ್ಟಕವನ್ನು ಮತ್ತೆ ಬರೆಯುವುದು
| Approach | What it buys | What it costs |
|---|---|---|
| Separate table plus source rule | LAN traffic and host traffic keep independent defaults | Every lookup now depends on rule order |
| Editing the main table only | Fewer moving parts on a single-purpose host | One mistake takes the gateway offline entirely |
| Two half-default routes | Works for a full-tunnel client | Ambiguous on a host that must answer on its LAN address |
ಪ್ರತ್ಯೇಕ ಕೋಷ್ಟಕವು ಒಂದು ಉಪಜಾಲವನ್ನು ಮೀರಿ ವಿಸ್ತರಿಸುವ ಏಕೈಕ ಆಯ್ಕೆ. ಅದಕ್ಕೆ ಒಮ್ಮೆ ಹೆಸರು ಕೊಡಿ, ನಂತರ ಹೆಸರಿನಿಂದಲೇ ಉಲ್ಲೇಖಿಸಿ, ಯಾರೂ ಸಂಖ್ಯೆಯನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಬೇಕಾಗಿಲ್ಲ:
echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpnಇಲ್ಲಿನ ವಿಳಾಸಗಳು ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ಗಳು. ಏನನ್ನಾದರೂ ಚಲಾಯಿಸುವ ಮೊದಲು ನಿಮ್ಮ ಸ್ವಂತ ನಿಯೋಜನೆಯಿಂದ LAN ಪ್ರಿಫಿಕ್ಸ್, ಸುರಂಗ ಗೇಟ್ವೇ ಮತ್ತು ಸಾಧನದ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಿ.
ನಿಯಮವು ಹೋಸ್ಟ್ಗೂ ಹೊಂದಬೇಕು
LAN ಪ್ರಿಫಿಕ್ಸ್ಗೆ ಮಾತ್ರ ಹೊಂದುವ ನಿಯಮವು ಫಾರ್ವರ್ಡ್ ಆದ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ. ಅದು ಗೇಟ್ವೇ ಸ್ವತಃ ಸೃಷ್ಟಿಸುವ ಸಂಚಾರವನ್ನು ಒಳಗೊಳ್ಳುವುದಿಲ್ಲ, ಮತ್ತು LAN ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಹಿಂತಿರುಗಿಸುವ, ಮೂಲವಾಗಿ ಗೇಟ್ವೇಯ LAN ವಿಳಾಸವನ್ನು ಹೊತ್ತ ಉತ್ತರಗಳನ್ನೂ ಒಳಗೊಳ್ಳುವುದಿಲ್ಲ. ಆ ಹುಡುಕಾಟಗಳು main ಗೆ ಬೀಳುತ್ತವೆ ಮತ್ತು ಇನ್ನೂ ಸುರಂಗದ ಮೂಲಕ ಹೊರಹೋಗಬಹುದು.
ಗೇಟ್ವೇಯ ಸ್ವಂತ LAN ವಿಳಾಸಕ್ಕೆ ಎರಡನೇ ನಿಯಮ ಸೇರಿಸಿ, ಅಥವಾ ಮೊದಲ ನಿಯಮವನ್ನು ಎರಡನ್ನೂ ಒಳಗೊಳ್ಳುವ ಗುಂಪಿಗೆ ವಿಸ್ತರಿಸಿ. ಕ್ರಮ ಮುಖ್ಯ: ಹೆಚ್ಚು ನಿರ್ದಿಷ್ಟ ನಿಯಮವನ್ನು ಮೊದಲು ಇರಿಸಿ, ಮತ್ತು ಮೂಲವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೆಸರಿಸುವ ಹುಡುಕಾಟದಿಂದ ಫಲಿತಾಂಶವನ್ನು ಪರಿಶೀಲಿಸಿ.
ip route get 203.0.113.9 from 192.168.50.1ಅದು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಯಬೇಕಾದ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಸುರಂಗ ಸಾಧನವನ್ನು ವರದಿ ಮಾಡಿದರೆ, ಕೋಷ್ಟಕದಲ್ಲಿ ಏನಿದ್ದರೂ ನಿಯಮಗಳ ಗುಂಪು ತಪ್ಪು.
NAT ಅಥವಾ ಆಚೆಯ ಬದಿಯಲ್ಲಿ ರೂಟ್
VPN ಸರ್ವರ್ ಸುರಂಗದ ಉಪಜಾಲವನ್ನು ತಿಳಿದಿದೆ, ಬೇರೆ ಏನನ್ನೂ ಅಲ್ಲ. LAN ಮೂಲ ವಿಳಾಸದೊಂದಿಗೆ ಬರುವ ಪ್ಯಾಕೆಟ್ಗಳಿಗೆ ಯಾರಾದರೂ ಒಂದನ್ನು ಒದಗಿಸದಿದ್ದರೆ ಹಿಂತಿರುಗುವ ದಾರಿ ಇರುವುದಿಲ್ಲ, ಮತ್ತು ಅದನ್ನು ಒದಗಿಸಲು ನಿಖರವಾಗಿ ಎರಡು ದಾರಿಗಳಿವೆ. ಸರ್ವರ್ನಲ್ಲಿ LAN ಪ್ರಿಫಿಕ್ಸ್ಗೆ ರೂಟ್ ಸೇರಿಸುವುದು ಮೂಲ ಮೂಲವನ್ನು ತುದಿಯಿಂದ ತುದಿಗೆ ಗೋಚರವಾಗಿ ಇಡುತ್ತದೆ, ಆಡಿಟ್ ಆದ ವಿನ್ಯಾಸ ಸಾಮಾನ್ಯವಾಗಿ ಇದನ್ನೇ ಬಯಸುತ್ತದೆ. ಗೇಟ್ವೇಯಲ್ಲಿ ಮಾಸ್ಕರೇಡ್ ಮಾಡುವುದು ಮೂಲವನ್ನು ಸುರಂಗ ವಿಳಾಸಕ್ಕೆ ಮತ್ತೆ ಬರೆಯುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್ನ ಸಹಕಾರ ಅಗತ್ಯವಿಲ್ಲ.
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADEಸರ್ವರ್ ನಿಯಂತ್ರಿಸದಿದ್ದರೆ ಮತ್ತು ಅಲ್ಲಿ ರೂಟ್ ಸೇರಿಸಲಾಗದಿದ್ದರೆ NAT ಆಯ್ಕೆಮಾಡಿ. ಲಾಗ್ಗಳು, ಪ್ರವೇಶ ನಿಯಂತ್ರಣ ಅಥವಾ ಹಿಂತಿರುಗುವ ದಾರಿಯ ಸಮಮಿತಿ ಮುಖ್ಯವಾದಾಗ ಸರ್ವರ್-ಸೈಡ್ ರೂಟ್ ಆಯ್ಕೆಮಾಡಿ, ಏಕೆಂದರೆ ಮಾಸ್ಕರೇಡ್ ಮೂಲ ವಿಳಾಸವನ್ನು ಆಚೆಯ ಬದಿ ದಾಖಲಿಸುವ ಎಲ್ಲದರಿಂದ ಅಳಿಸುತ್ತದೆ.
ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ ಫಾರ್ವರ್ಡಿಂಗ್ ಸಕ್ರಿಯವಾಗಿರಬೇಕು, ಮತ್ತು ಕಟ್ಟುನಿಟ್ಟಿನ ರಿವರ್ಸ್-ಪಾತ್ ಫಿಲ್ಟರಿಂಗ್ main ಆ ಮೂಲಕ್ಕೆ ಸುರಂಗವನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತಿರಲಿಲ್ಲ ಎಂಬಾಗ ಉತ್ತರವನ್ನು ಬೀಳಿಸಬಹುದು. ಸುರಂಗವನ್ನು ದೂಷಿಸುವ ಮೊದಲು ಪರಿಣಾಮಕಾರಿ ಮೌಲ್ಯವನ್ನು ಪರಿಶೀಲಿಸಿ.
ಮರುಸಂಪರ್ಕದ ನಂತರವೂ ವಿಭಜನೆ ಉಳಿಯುವಂತೆ ಮಾಡಿ
ಕೈಯಿಂದ ಸೇರಿಸಿದ ನಿಯಮಗಳು ಮತ್ತು ರೂಟ್ಗಳು ಇಂಟರ್ಫೇಸ್ ಮತ್ತೆ ರಚಿಸಲ್ಪಟ್ಟಾಗ ಮಾಯವಾಗುತ್ತವೆ, ಮತ್ತು ಹಳೆಯ ಕೋಷ್ಟಕ ನಮೂದು ಅದನ್ನು ಸಮರ್ಥಿಸಿದ ಸೆಷನ್ಗಿಂತ ಹೆಚ್ಚು ಕಾಲ ಉಳಿಯಬಹುದು. ಕೋಷ್ಟಕದ ನಿಯಮ, ಸುರಂಗದ ರೂಟ್ ಮತ್ತು ಮಾಸ್ಕರೇಡ್ ನಮೂದನ್ನು ಕ್ಲೈಂಟ್ನ route-up ಸ್ಕ್ರಿಪ್ಟ್ನೊಳಗೆ ಇರಿಸಿ, ಮತ್ತು ಸ್ಕ್ರಿಪ್ಟ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಕೋಷ್ಟಕವನ್ನು ಖಾಲಿ ಮಾಡಿ, ಹಳೆಯ ಗೇಟ್ವೇ ಹೊಸ ಸೆಷನ್ಗೆ ಉಳಿಯದಂತೆ.
ಎರಡೂ ತುದಿಗಳಿಂದ ಪರಿಶೀಲಿಸಿ: ಗೇಟ್ವೇಯಲ್ಲಿ LAN ಮೂಲದೊಂದಿಗೆ ಹುಡುಕಾಟ, ಮತ್ತು LAN ಕ್ಲೈಂಟ್ನಿಂದ ಸುರಂಗದ ಮೂಲಕ ಹೋಗಬೇಕಾದ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ನಿಜವಾದ ವಿನಂತಿ. ಇರುವ ಆದರೆ ಎಂದಿಗೂ ಆಯ್ಕೆಯಾಗದ ರೂಟ್, ಕೌಂಟರ್ಗಳನ್ನು ಓದುವವರೆಗೆ ಸಂಪೂರ್ಣವಾಗಿ ರೂಟ್ ಇಲ್ಲದಂತೆಯೇ ವರ್ತಿಸುತ್ತದೆ.