ಎರಡು ಗೇಟ್ವೇ, ಒಂದು VPN: OpenVPN ಏಕೆ ತಪ್ಪು ಅಪ್ಲಿಂಕ್ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ
ಸುರಂಗ ಸರಿಯಾಗಿದೆ; ಸಾಕೆಟ್ ತಪ್ಪು WAN ಮೂಲಕ ಹೊರಹೋಗುತ್ತಿದೆ. ಜೀವಂತ ಪೀರ್ ವಿಳಾಸ ಓದಿ, ಹೋಸ್ಟ್ ರೂಟ್ ಪಿನ್ ಮಾಡಿ ಮತ್ತು ಮೊದಲು ನೀತಿ ನಿಯಮಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
ಎರಡು ಅಪ್ಲಿಂಕ್, ಒಂದು ಸುರಂಗ, ಮತ್ತು ಸಂಚಾರ ನೀವು ಆಯ್ಕೆ ಮಾಡದ ಮಾರ್ಗದಿಂದ ಹೊರಹೋಗುತ್ತಿದೆ. ಖಾಸಗಿ ಉಪಜಾಲಗಳು ತಲುಪಬಹುದಾದವು, ಲಾಗ್ ಯಶಸ್ವಿ ಸಂಪರ್ಕವನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಅಳತೆ ಮಾಡಿದ ಲಿಂಕ್ ಅದನ್ನು ಸಾಗಿಸುತ್ತಿದೆ. OpenVPN ಯ ಔಟ್ಪುಟ್ನಲ್ಲಿ ಗೇಟ್ವೇ ಉಲ್ಲೇಖವಿಲ್ಲ, ಏಕೆಂದರೆ ಕ್ಲೈಂಟ್ ಎಂದೂ ಒಂದನ್ನು ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ. ಅದು ದೂರದ ವಿಳಾಸಕ್ಕೆ ಸಾಕೆಟ್ ತೆರೆದು ಆ ವಿಳಾಸವನ್ನು ತಲುಪುವ ಬಗ್ಗೆ ಕರ್ನಲ್ಗೆ ನಿರ್ಧರಿಸಲು ಬಿಟ್ಟಿತು.
ಸುರಂಗದ ವಿಳಾಸ ಅಂತಿಮ ಬಿಂದುವಲ್ಲ
ಪ್ರತಿ ಅವಧಿಯಲ್ಲಿ ಎರಡು ವಿಭಿನ್ನ ಮಾರ್ಗಗಳಿವೆ. ಹೊರ ಮಾರ್ಗ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಸಾಗಣೆಯನ್ನು ಸರ್ವರ್ನ ಸಾರ್ವಜನಿಕ ವಿಳಾಸಕ್ಕೆ ಒಯ್ಯುತ್ತದೆ. ಒಳ ಮಾರ್ಗ ಸರ್ವರ್ ಸುರಂಗಕ್ಕೆ ತಳ್ಳುವ ಎಲ್ಲವನ್ನೂ ಸಾಗಿಸುತ್ತದೆ, ಮತ್ತು ಒಂದರ ರೂಟಿಂಗ್ ನಿಯಮಗಳು ಇನ್ನೊಂದಕ್ಕೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ.
ಪ್ರೊಫೈಲ್ನ remote ನಮೂದು ಹೊರ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಹೆಸರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದೇ ವಿಳಾಸವನ್ನು ಪಿನ್ ಮಾಡಬೇಕು. ಹೋಸ್ಟ್ನಾಮ್ ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಪರಿಹರಿಸಲ್ಪಟ್ಟಾಗ ಅಥವಾ ಪ್ರೊಫೈಲ್ ಹಲವು remote ಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿದಾಗ ಬದಲಾಗುವ ಮೌಲ್ಯ ಕೂಡ ಅದೇ.
ಕ್ಲೈಂಟ್ ನಿಜವಾಗಿ ಡಯಲ್ ಮಾಡಿದ ವಿಳಾಸವನ್ನು ಹುಡುಕಿ
ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಬದಲು ಜೀವಂತ ಸಾಕೆಟ್ ಓದಿ. ಸಾಕೆಟ್ ಕೋಷ್ಟಕವು ಪ್ರಕ್ರಿಯೆ ನಿಜವಾಗಿ ಸಂಪರ್ಕಿಸಿದ ಪೀರ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ಅಪವಾದವು ಆ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು. ಅವಧಿ ಪ್ರಾರಂಭವಾದ ನಂತರ ಪ್ರೊಫೈಲ್ ಸಂಪಾದಿಸಬಹುದು, ಮತ್ತು ಏನನ್ನು ಡಯಲ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದಕ್ಕೆ ಸಾಕೆಟ್ ಒಂದೇ ಸಾಕ್ಷಿ:
ss -tunp | grep -i openvpn
journalctl -u openvpn-client@work --no-pager | grep -i "Peer Connection Initiated"
ಲಾಗ್ ಸಾಲು ಸಂಪರ್ಕದ ಕ್ಷಣದಲ್ಲಿ ಪೀರ್ನ ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ಅದು ಪ್ರೊಫೈಲ್ಗೆ ಹೊಂದಿಕೆಯಾಗದಿದ್ದರೆ, ಕ್ಲೈಂಟ್ನ ಮುಂದೆ ಏನೋ ಸಂಪರ್ಕ ಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ಗಮ್ಯಸ್ಥಾನವನ್ನು ಮರುಬರೆಯುತ್ತಿದೆ.
ವಿಳಾಸ ಕುಟುಂಬವನ್ನೂ ಪರಿಶೀಲಿಸಿ. ದ್ವಿ-ಸ್ಟಾಕ್ ಪ್ರೊಫೈಲ್ IPv6 ಮೂಲಕ ಸಂಪರ್ಕಿಸಬಹುದು, ಆದರೆ ನಿಮ್ಮ ಅಪವಾದ ಕೇವಲ IPv4 ಅನ್ನು ಆವರಿಸುತ್ತದೆ, ಆಗ ಸಂಚಾರ ನೀವು ಬರೆದ ನಿಯಮಕ್ಕಿಂತ ಬೇರೆ ನಿಯಮವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಅಂತಿಮ ಬಿಂದುವಿನ ಪರವಾಗಿ ಉತ್ತರಿಸುವ ಪ್ರಾಕ್ಸಿಗೂ ಇದೇ ಅನ್ವಯಿಸುತ್ತದೆ. ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ ನಿಮ್ಮ ರೂಟ್ ಏನೂ ಮಾಡದಿದ್ದರೂ ಸುರಂಗ ಕೆಲಸ ಮಾಡುತ್ತದೆ.
ಅಂತಿಮ ಬಿಂದುವನ್ನು ಪಿನ್ ಮಾಡಿ ಮತ್ತು ನೀತಿಯ ಕ್ರಮ ಓದಿ
ಹೋಸ್ಟ್ ರೂಟ್ ಯಾವುದೇ ಡಿಫಾಲ್ಟ್ಗಿಂತ ಹೆಚ್ಚು ನಿರ್ದಿಷ್ಟವಾಗಿದೆ. ಆದ್ದರಿಂದ ಪೀರ್ ವಿಳಾಸಕ್ಕೆ /32 ಅದನ್ನು ಹೊಂದಿರುವ ಕೋಷ್ಟಕದಲ್ಲಿ ಗೆಲ್ಲುತ್ತದೆ. ಸಾಮಾನ್ಯ ರೂಪ ಗೇಟ್ವೇ ಮತ್ತು ಸಾಧನವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೆಸರಿಸುತ್ತದೆ:
ip route add 203.0.113.40/32 via 192.168.10.1 dev eth0
ಆ ರೂಟ್ ಹುಡುಕಾಟ ಆ ಕೋಷ್ಟಕವನ್ನು ತಲುಪಿದರೆ ಮಾತ್ರ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನೀತಿ ನಿಯಮಗಳು ಕ್ರಮದಲ್ಲಿ ಮೌಲ್ಯಮಾಪನಗೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಮೊದಲ ಹೊಂದಾಣಿಕೆ ನಿರ್ಧರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಎಲ್ಲವನ್ನೂ ಎರಡನೇ ಕೋಷ್ಟಕಕ್ಕೆ ಕಳುಹಿಸುವ ನಿಯಮ main ನಲ್ಲಿ ನಿಮ್ಮ ಹೋಸ್ಟ್ ರೂಟ್ ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುತ್ತದೆ. ರೂಟ್ ಅಧಿಕೃತ ಎಂದು ಭಾವಿಸುವ ಮೊದಲು ನಿಯಮಗಳನ್ನು ಓದಿ:
ip rule show
ip route get 203.0.113.40
ನೀತಿ ಅವುಗಳನ್ನು ಅವಲಂಬಿಸಿದಾಗ ಕ್ಲೈಂಟ್ ಬಳಸುವ ಅದೇ ಮೂಲ ವಿಳಾಸ ಅಥವಾ ಗುರುತಿನೊಂದಿಗೆ ಎರಡನೇ ಆಜ್ಞೆಯನ್ನು ಕೇಳಿ. ಅದು ಕರ್ನಲ್ ಆಯ್ಕೆ ಮಾಡುವ ರೂಟ್ ಅನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ, ಅದು ಹುಡುಕಾಟದ ಬಗ್ಗೆ ಸಾಕ್ಷ್ಯ ಮತ್ತು ಜೀವಂತ ಸಾಕೆಟ್ ಆ ಮಾರ್ಗವನ್ನು ಬಳಸುತ್ತಿದೆ ಎಂಬುದಕ್ಕೆ ಸಾಕ್ಷ್ಯವಲ್ಲ.
ಅಂತಿಮ ಬಿಂದು ಚಲಿಸಿದಾಗ
ಹಲವು ವಿಳಾಸಗಳಿಗೆ ಪರಿಹರಿಸಲ್ಪಡುವ ಹೋಸ್ಟ್ನಾಮ್ ಉತ್ತರ ಬದಲಾದ ಕ್ಷಣವೇ ಶಾಶ್ವತ /32 ಅನ್ನು ಅಮಾನ್ಯಗೊಳಿಸುತ್ತದೆ. ಹಲವು remote ಸಾಲುಗಳ ಪ್ರೊಫೈಲ್ಗೂ ಅದೇ ಸಮಸ್ಯೆ, ಏಕೆಂದರೆ ಕ್ಲೈಂಟ್ ಅವುಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಒಂದಕ್ಕೆ ಇಳಿಯಬಹುದು. ರೂಟ್ ಅನ್ನು ಕೈಯಿಂದ ಸೇರಿಸುವ ಬದಲು ಕ್ಲೈಂಟ್ನ ಸ್ವಂತ ಜೀವನಚಕ್ರ ಕೊಕ್ಕೆಗಳಿಂದ ರಿಫ್ರೆಶ್ ಮಾಡಿ. up ಸ್ಕ್ರಿಪ್ಟ್ ಸಂಧಾನವಾದ ಪೀರ್ ಓದಿ ಹೋಸ್ಟ್ ರೂಟ್ ಸ್ಥಾಪಿಸುತ್ತದೆ, ಅಪವಾದವನ್ನು ವಾಸ್ತವದೊಂದಿಗೆ ಹೊಂದಿಸಿಡುತ್ತದೆ, ಮತ್ತು ಸರಿಹೊಂದುವ down ಸ್ಕ್ರಿಪ್ಟ್ ಅದನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.
ರಿಫ್ರೆಶ್ ಅನ್ನು ಹೋಸ್ಟ್ನ ಉಳಿದ ರೂಟಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ನಂತೆಯೇ ಅದೇ ಸ್ಥಳದಲ್ಲಿ ದಾಖಲಿಸಿ. ಮುಂದಿನ ರೀಬೂಟ್ವರೆಗೆ ಮಾತ್ರ ಇರುವ ರೂಟ್ ಪರೀಕ್ಷೆ, ಪರಿಹಾರವಲ್ಲ.
ಒಳಗಿನ ನೀತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿಡಿ
ಹೊರ ಮಾರ್ಗವನ್ನು ಸರಿಸುವುದು ಹೊಸ ಖಾಸಗಿ ಉಪಜಾಲಕ್ಕೆ ಪ್ರವೇಶ ನೀಡುವುದಿಲ್ಲ ಮತ್ತು ಸರ್ವರ್ ಸುರಂಗಕ್ಕೆ ಯಾವ ಗಮ್ಯಸ್ಥಾನಗಳನ್ನು ತಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನೂ ಬದಲಿಸುವುದಿಲ್ಲ. ಕೆಳ ಪದರದ ರೂಟ್ ತಂತಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ; ತಳ್ಳಲಾದ ರೂಟ್ಗಳು ಸುರಂಗಕ್ಕೆ ಏನು ಪ್ರವೇಶಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತವೆ. ಆ ಎರಡು ನಿರ್ಧಾರಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿಡುವುದೇ ವಿಭಜನೆಯನ್ನು ಊಹಿಸಬಹುದಾದಂತೆ ಮಾಡುತ್ತದೆ.
ಉದ್ದೇಶ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಸಾಗಣೆಯನ್ನು ಅಳತೆ ಮಾಡಿದ ಲಿಂಕ್ನಿಂದ ದೂರವಿಡುವುದು ಮಾತ್ರವಾದರೆ, ಡಿಫಾಲ್ಟ್ ರೂಟ್ ಅನ್ನು ಹಾಗೆಯೇ ಬಿಟ್ಟು ಏಕೈಕ ಹೋಸ್ಟ್ ಅಪವಾದವನ್ನು ಸೇರಿಸಿ. ಒಂದು VPN ಸಂಪರ್ಕವನ್ನು ಸರಿಸಲು ಇಡೀ ಯಂತ್ರದ ಡಿಫಾಲ್ಟ್ ಅನ್ನು ಬದಲಿಸುವುದು ಹೋಸ್ಟ್ನ ಪ್ರತಿಯೊಂದು ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮುರಿಯುತ್ತದೆ.
ಫಲಿತಾಂಶವನ್ನು ಎರಡು ಸ್ವತಂತ್ರ ಅವಲೋಕನಗಳಿಂದ ದೃಢೀಕರಿಸಿ: ಸಾಕೆಟ್ನ ಸ್ಥಳೀಯ ವಿಳಾಸ ಮತ್ತು ಸಾಧನ, ಮತ್ತು ಖಾಸಗಿ ಗಮ್ಯಸ್ಥಾನವು ಪರಿಹರಿಸಲ್ಪಡುವ ರೂಟ್. ಎರಡೂ ನಿಮ್ಮ ಉದ್ದೇಶಕ್ಕೆ ಹೊಂದಿದಾಗ ವಿಭಜನೆ ನಿಜ. OpenVPN 2.6 ಕೈಪಿಡಿ ಕ್ಲೈಂಟ್ ಯಾವ ವಿಳಾಸಕ್ಕೆ ಡಯಲ್ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುವ remote ಮತ್ತು ಸ್ಥಳೀಯ ಬೈಂಡಿಂಗ್ ಆಯ್ಕೆಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ.