WireGuard ಹ್ಯಾಂಡ್ಶೇಕ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಆದರೆ ಕಚೇರಿಯ ಸಬ್ನೆಟ್ ಉತ್ತರಿಸುವುದಿಲ್ಲ
WireGuard ಚಾಲನೆಯಲ್ಲಿದೆ ಮತ್ತು ಸರ್ವರ್ಗೆ ಪಿಂಗ್ ಆಗುತ್ತದೆ, ಆದರೂ ಅದರ LAN ನಲ್ಲಿ ಯಾವುದೂ ಉತ್ತರಿಸುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ ಪ್ರಿಫಿಕ್ಸ್, ಸರ್ವರ್ ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಉತ್ತರದ ಮಾರ್ಗವನ್ನು ಪರಿಶೀಲಿಸಿ.
ಹ್ಯಾಂಡ್ಶೇಕ್ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, wg show ಇತ್ತೀಚಿನ ವರ್ಗಾವಣೆಯನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಸರ್ವರ್ನ ಟನೆಲ್ ವಿಳಾಸವು ಪಿಂಗ್ಗೆ ಉತ್ತರಿಸುತ್ತದೆ. ಆದರೆ ಸರ್ವರ್ನ LAN ನಲ್ಲಿನ ಹೋಸ್ಟ್ ಉತ್ತರಿಸುವುದಿಲ್ಲ. ಮೂರು ಷರತ್ತುಗಳು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಪಾಲನೆಯಾಗಬೇಕು: ಕ್ಲೈಂಟ್ LAN ಪ್ರಿಫಿಕ್ಸ್ ಅನ್ನು ಟನೆಲ್ಗೆ ರೂಟ್ ಮಾಡಬೇಕು, ಸರ್ವರ್ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಬೇಕು, ಮತ್ತು ಉತ್ತರಕ್ಕೆ ಹಿಂತಿರುಗುವ ಮಾರ್ಗ ಬೇಕು. ಮೂರರಲ್ಲಿ ಒಂದು ಇಲ್ಲದಿದ್ದರೆ ಲಕ್ಷಣ ಅದೇ ಆಗಿರುತ್ತದೆ.
AllowedIPs ಒಂದೇ ಬಾರಿಗೆ ಪ್ರವೇಶ ಪಟ್ಟಿ ಮತ್ತು ರೂಟಿಂಗ್ ಕೋಷ್ಟಕ
ಕ್ಲೈಂಟ್ನಲ್ಲಿ, AllowedIPs ಪಟ್ಟಿಯು ಆ ಪಿಯರ್ಗೆ ಏನನ್ನು ಕಳುಹಿಸಬಹುದು ಮತ್ತು WireGuard ಯಾವ ರೂಟ್ಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಸರ್ವರ್ನ ಟನೆಲ್ ವಿಳಾಸವನ್ನು ಮಾತ್ರ ಪಟ್ಟಿ ಮಾಡುವ ಪಿಯರ್ ನಮೂದು ಒಂದು ಹೋಸ್ಟ್ ರೂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ LAN ಗಮ್ಯಸ್ಥಾನಗಳು ಎಂದಿಗೂ ಟನೆಲ್ಗೆ ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ. LAN ಪ್ರಿಫಿಕ್ಸ್ ಸೇರಿಸುವುದು ಮೊದಲು ಪರಿಶೀಲಿಸಬೇಕಾದ ವಿಷಯ, ಮತ್ತು ನಕಲಿಸಿದ ಸಂರಚನೆಯ ನಂತರ ಹೆಚ್ಚಾಗಿ ಕಾಣೆಯಾಗುವ ಬದಲಾವಣೆಯೂ ಅದೇ. ಡೀಫಾಲ್ಟ್ ರೂಟ್ಗೆ ವಿಸ್ತರಿಸಿದ ಪಿಯರ್ ಬೇರೆ ವಿನ್ಯಾಸ, ಮತ್ತು ಅದು ಕ್ಲೈಂಟ್ನ ಇಂಟರ್ನೆಟ್ ಸಂಚಾರವನ್ನೂ ಸರಿಸುತ್ತದೆ.
ಹೋಸ್ಟ್ ರೂಟ್ ಮತ್ತು LAN ಪ್ರಿಫಿಕ್ಸ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ನಮೂದುಗಳಾಗಿ ಇರಿಸಿ. ಕಚೇರಿಯಲ್ಲಿ ಎರಡು ಸಬ್ನೆಟ್ಗಳಿದ್ದರೆ ಎರಡೂ ಪಟ್ಟಿಗೆ ಸೇರುತ್ತವೆ, ಮತ್ತು ಕಾಣೆಯಾದ ಎರಡನೇ ಪ್ರಿಫಿಕ್ಸ್ ಸಂಪೂರ್ಣವಲ್ಲದ, ಆಯ್ದಂತೆ ಕಾಣುವ ವೈಫಲ್ಯವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ.
[Peer] PublicKey = <server public key> Endpoint = vpn.example.net:51820 AllowedIPs = 10.66.0.1/32, 192.168.50.0/24
ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಅನುವಾದ ಸರ್ವರ್ನಲ್ಲೇ ಇರಬೇಕು
ಸರ್ವರ್ಗೆ IP ಫಾರ್ವರ್ಡಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿರಬೇಕು, ಟನೆಲ್ನಿಂದ ಬರುವ ಸಂಚಾರವನ್ನು ಸ್ವೀಕರಿಸುವ ಫಾರ್ವರ್ಡ್ ನಿಯಮ, ಮತ್ತು ತನ್ನ LAN ಇಂಟರ್ಫೇಸ್ನ ಕಡೆಗೆ ಅನುವಾದ ನಿಯಮ ಬೇಕು. ಅನುವಾದವೇ ಕಚೇರಿ ನೆಟ್ವರ್ಕ್ನ ಪ್ರತಿ ಹೋಸ್ಟ್ ಅನ್ನು ಮುಟ್ಟದೆ ವಿನ್ಯಾಸವನ್ನು ಕೆಲಸ ಮಾಡಿಸುತ್ತದೆ. ಆಗ ಉತ್ತರಗಳು LAN ಎಂದಿಗೂ ಕೇಳದ ವಿಳಾಸಕ್ಕೆ ಅಲ್ಲ, ಸರ್ವರ್ಗೆ ಮರಳುತ್ತವೆ. ಅದಿಲ್ಲದಿದ್ದರೆ ಪ್ರತಿ ಹೋಸ್ಟ್ಗೆ ಟನೆಲ್ ಸಬ್ನೆಟ್ಗೆ ರೂಟ್ ಮತ್ತು ಅದನ್ನು ಅನುಮತಿಸುವ ಫೈರ್ವಾಲ್ ನಿಯಮ ಬೇಕು, ಇದು ಬೇರೆಯವರು ನಿರ್ವಹಿಸುವ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಅಪರೂಪಕ್ಕೆ ಸ್ವೀಕಾರಾರ್ಹ.
sysctl -w net.ipv4.ip_forward=1 iptables -A FORWARD -i wg0 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ಕೈಯಿಂದ ಸೇರಿಸಿದ ನಿಯಮಗಳು ರೀಬೂಟ್ನಲ್ಲಿ ಮಾಯವಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಸರ್ವರ್ ಸಂರಚನೆಯ hook ಆದೇಶಗಳಿಂದ ಅವುಗಳನ್ನು ಇಂಟರ್ಫೇಸ್ಗೆ ಬಂಧಿಸಿ. ತನ್ನ ಇಂಟರ್ಫೇಸ್ಗಿಂತ ಹೆಚ್ಚು ಕಾಲ ಬದುಕುವ ನಿಯಮ ಸಮೂಹವೇ ಯಂತ್ರವು ಇನ್ನು ಇಲ್ಲದ ಟನೆಲ್ಗೆ ಸಂಚಾರವನ್ನು ಅನುವಾದಿಸುವ ದಾರಿ.
LAN ಸರಿದಾಗ ನಿಯಮ ಸರಿಯಲಿಲ್ಲ
ಕಚೇರಿ ಸಬ್ನೆಟ್ ಅನ್ನು ಮರುಸಂಖ್ಯೆ ಮಾಡುವ ರೌಟರ್ ಬದಲಾವಣೆ ಈ ವೈಫಲ್ಯದ ಸಾಂಪ್ರದಾಯಿಕ ರೂಪ. ಟನೆಲ್ ಆನ್ ಆಗಿಯೇ ಇರುತ್ತದೆ, ಹ್ಯಾಂಡ್ಶೇಕ್ ತಾಜಾ ಆಗಿರುತ್ತದೆ, ಮತ್ತು ಸರ್ವರ್ನ ಹಿಂದೆ ಯಾವುದೂ ಉತ್ತರಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅನುವಾದ ನಿಯಮ ಇನ್ನೂ ಹಳೆಯ ವಿಳಾಸವನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ಸ್ಥಾಪಕ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಸರ್ವರ್ನ LAN ವಿಳಾಸವನ್ನು POSTROUTING ನಿಯಮದಲ್ಲಿ ಹುದುಗಿಸುತ್ತವೆ, ಮತ್ತು ಮರುಸಂಖ್ಯೆಯ ನಂತರ ಆ ವಿಳಾಸ ಯಾವ ಇಂಟರ್ಫೇಸ್ನಲ್ಲೂ ಇರುವುದಿಲ್ಲ. ಆಗ ಪ್ಯಾಕೆಟ್ಗಳು ಉತ್ತರಿಸಲಾಗದ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಮರುಬರೆಯಲ್ಪಡುತ್ತವೆ.
iptables -t nat -n -L POSTROUTING ip -br addr show
ಎರಡೂ ಔಟ್ಪುಟ್ಗಳನ್ನು ಹೋಲಿಸಿ. ಇಂಟರ್ಫೇಸ್ ಪಟ್ಟಿಯಲ್ಲಿ ಕಾಣದ ಅನುವಾದ ಗುರಿಯೇ ದೋಷ, ಮತ್ತು ಒಮ್ಮೆ ನೋಡಿದ ನಂತರ ಅದನ್ನು ಸರಿಪಡಿಸುವುದು ಒಂದು ಸಾಲಿನ ಬದಲಾವಣೆ. ನಿಯಮವು WireGuard ಸಂರಚನೆಯಲ್ಲದೆ ಉತ್ಪಾದಿತ unit ನಲ್ಲಿರಬಹುದು, ಆದ್ದರಿಂದ ಸಂಪಾದನೆಯ ನಂತರ ಆ unit ಅನ್ನು ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಮುಂದಿನ ಬೂಟ್ ನಿಮ್ಮ ಬದಲಾವಣೆಯನ್ನು ಮರುಬರೆಯದಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿ.
NAT ಹಿಂದಿನ ಎರಡು ಸೈಟ್ಗಳಿಗೆ ಭೇಟಿಯಾಗುವ ಸ್ಥಳ ಬೇಕು
ಯಾವ ಪಕ್ಷವೂ ಒಳಬರುವ ಸಂಪರ್ಕಗಳನ್ನು ಸ್ವೀಕರಿಸದಿದ್ದಾಗ, ಪ್ರಾಯೋಗಿಕ ಉತ್ತರ ಸಾರ್ವಜನಿಕ ವಿಳಾಸ ಮತ್ತು ಎರಡು WireGuard ಇಂಟರ್ಫೇಸ್ಗಳಿರುವ ಸಣ್ಣ ಹೋಸ್ಟ್. ಪ್ರತಿ ಸೈಟ್ ಹೊರಕ್ಕೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ, ಮಧ್ಯದ ಹೋಸ್ಟ್ ಪ್ರತಿ ಪಿಯರ್ನ LAN ಅನ್ನು ತನ್ನ AllowedIPs, ಅಂದರೆ ತನ್ನ ಪಟ್ಟಿಯಲ್ಲಿ, ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಫಾರ್ವರ್ಡಿಂಗ್ ಎರಡು ಟನೆಲ್ಗಳ ನಡುವೆ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಸಾಗಿಸುತ್ತದೆ. ಯಾವ ಸೈಟ್ನ ಫೈರ್ವಾಲ್ನಲ್ಲೂ ಏನನ್ನೂ ಬದಲಾಯಿಸಬೇಕಿಲ್ಲ, ಆದ್ದರಿಂದ ಈ ವಿನ್ಯಾಸ ಸುಲಭವಾಗಿ ಹರಡುತ್ತದೆ.
ಸೈಟ್ಗಳ ನಡುವಿನ ರೂಟಿಂಗ್ ಮೂಲ ಆಕರ ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಪ್ರತಿ-ಹೋಸ್ಟ್ ಲಾಗಿಂಗ್ ಅರ್ಥಪೂರ್ಣವಾಗಿರುತ್ತದೆ. ಎರಡು LAN ಓವರ್ಲ್ಯಾಪ್ ಆದಾಗ ಮಧ್ಯದ ಹೋಸ್ಟ್ನಲ್ಲಿ ಅನುವಾದ ಸುಲಭ, ಆದರೆ ಲಾಗ್ಗಳಲ್ಲಿ ಆಕರ ಗುರುತನ್ನು ಕಳೆದುಕೊಳ್ಳುವ ಬೆಲೆಗೆ. ಆಯ್ಕೆ ಮಾಡುವ ಮೊದಲು ಯಾವ ಗುಣ ಮುಖ್ಯ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಿ.
ನಾಲ್ಕು ಪರಿಶೀಲನೆಗಳಿಂದ ಪದರಗಳನ್ನು ಬೇರ್ಪಡಿಸಿ
ಮೂರು ವಿಷಯಗಳನ್ನು ಬದಲಿಸಿ ನಿರೀಕ್ಷಿಸುವ ಬದಲು ಪ್ರತಿ ಪದರಕ್ಕೆ ಒಂದು ಪರಿಶೀಲನೆ ಮಾಡಿ. ಮೊದಲನೆಯದು ಪ್ರತಿ ಪಿಯರ್ಗೆ ಹ್ಯಾಂಡ್ಶೇಕ್ನ ವಯಸ್ಸು ಮತ್ತು ಕೌಂಟರ್ಗಳನ್ನು ತೋರಿಸುತ್ತದೆ. ಎರಡನೆಯದು ಕ್ಲೈಂಟ್ ಆ ಗಮ್ಯಸ್ಥಾನವನ್ನು ನಿಜವಾಗಿ ಟನೆಲ್ಗೆ ರೂಟ್ ಮಾಡುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಮೂರನೆಯದು ಮತ್ತು ನಾಲ್ಕನೆಯದು ವಿನಂತಿ ತಲುಪಿತೇ ಮತ್ತು ತಲುಪಿದ ನಂತರ ಯಾವುದಾದರೂ ನೀತಿ ಅದನ್ನು ಕೈಬಿಟ್ಟಿತೇ ಎಂಬುದನ್ನು ತಿಳಿಸುತ್ತವೆ.
wg show ip route get 192.168.50.20 tcpdump -ni wg0 icmp iptables -vnL FORWARD --line-numbers
ತಲುಪಿ ಯಾವುದೇ ಉತ್ತರ ತರದ ವಿನಂತಿ ಉತ್ತರದ ಮಾರ್ಗ ಅಥವಾ LAN ಹೋಸ್ಟ್ ಕಡೆ ಸೂಚಿಸುತ್ತದೆ. ಎಂದಿಗೂ ತಲುಪದ ವಿನಂತಿ AllowedIPs ಅಥವಾ ಕ್ಲೈಂಟ್ನ ರೂಟ್ ಕಡೆ ಸೂಚಿಸುತ್ತದೆ. ಈ ಎರಡು ಫಲಿತಾಂಶಗಳಿಗೆ ಬೇರೆ ಬೇರೆ ಸರಿಪಡಿಸುವಿಕೆ ಬೇಕು, ಮತ್ತು ಕ್ಯಾಪ್ಚರ್ ಅವನ್ನು ಬೇರ್ಪಡಿಸುತ್ತದೆ.