ಕ್ಲೈಂಟ್ ಒಂದು ವಿಳಾಸ ಪಡೆಯುತ್ತದೆ, ಸರ್ವರ್ ping ಗೆ ಉತ್ತರಿಸುತ್ತದೆ, ಆದರೂ ಪ್ರತಿ ಪುಟವೂ ಸಮಯ ಮೀರಿ ವಿಫಲವಾಗುತ್ತದೆ. ಹೆಚ್ಚಿನ ಜನರು ಈ ಹಂತದಲ್ಲಿ ಕ್ಲೈಂಟ್ ಪ್ರೊಫೈಲ್ ಸಂಪಾದಿಸಲು ಪ್ರಾರಂಭಿಸುತ್ತಾರೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ವ್ಯರ್ಥ ಶ್ರಮ: ಟನೆಲ್ ಮೇಲೆ ಬಂದ ನಂತರ ಸರ್ವರ್ ರೌಟರ್ನಂತೆ ವರ್ತಿಸಬೇಕು. ಪ್ಯಾಕೆಟ್ ಹೊರಹೋಗಿ ಉತ್ತರ ಬರುವ ಮೊದಲು ಮೂರು ಷರತ್ತುಗಳು ಒಟ್ಟಿಗೆ ಪೂರೈಸಬೇಕು, ಮತ್ತು ಯಾವುದು ಕಾಣೆಯಾದರೂ ಲಕ್ಷಣ ಒಂದೇ ಆಗಿರುತ್ತದೆ.

ಕೆಲಸ ಮಾಡುವ ಟನೆಲ್ಗೂ ಹೊರಹೋಗುವ ದಾರಿ ಏಕೆ ಇಲ್ಲ

ಕರ್ನಲ್ ಇಂಟರ್ಫೇಸ್ಗಳ ನಡುವೆ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡಬೇಕು, ಇದು ಹೆಚ್ಚಿನ Linux ವಿತರಣೆಗಳಲ್ಲಿ ಡಿಫಾಲ್ಟ್ ಆಗಿ ಆಫ್ ಇರುತ್ತದೆ. ಸಂಚಾರವನ್ನು ಹೊರಗಿನ ಜಗತ್ತು ಉತ್ತರಿಸಬಲ್ಲ ವಿಳಾಸಕ್ಕೆ ಅನುವಾದಿಸಬೇಕು, ಪ್ರತಿ ಮೇಲಿನ ರೌಟರ್ಗೆ ಟನೆಲ್ ಸಬ್ನೆಟ್ಗೆ ಹಿಂತಿರುಗುವ ದಾರಿ ಈಗಾಗಲೇ ತಿಳಿದಿಲ್ಲದಿದ್ದರೆ. ಫೈರ್ವಾಲ್ನ ಫಾರ್ವರ್ಡ್ ಮಾರ್ಗವು ಸಂಚಾರವನ್ನು ಎರಡೂ ದಿಕ್ಕುಗಳಲ್ಲಿ ಅನುಮತಿಸಬೇಕು, ಉತ್ತರಗಳ ಸಹಿತ.

ಇವುಗಳಲ್ಲಿ ಪ್ರತಿಯೊಂದನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಸರಿಪಡಿಸಬಹುದು, ಮತ್ತು ಅದೇ ಬಲೆ. ಅನುವಾದ ನಿಯಮವಿಲ್ಲದೆ ಫಾರ್ವರ್ಡಿಂಗ್ ಆನ್ ಮಾಡಿದರೆ ಪ್ಯಾಕೆಟ್ಗಳು ಖಾಸಗಿ ಮೂಲದೊಂದಿಗೆ ಮತ್ತು ಹಿಂತಿರುಗುವ ದಾರಿಯಿಲ್ಲದೆ ಹೊರಡುತ್ತವೆ. ಫಾರ್ವರ್ಡ್ ನಿಯಮವಿಲ್ಲದೆ ಅನುವಾದ ಸೇರಿಸಿದರೆ ಕರ್ನಲ್ ಒಂದು ಹೆಜ್ಜೆ ನಂತರ ಪ್ಯಾಕೆಟ್ ಬಿಡುತ್ತದೆ.

ಆದ್ದರಿಂದ ಕ್ಲೈಂಟ್ ಬದಲು ಮೂರು ಪದರಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ, ಮತ್ತು ಫಲಿತಾಂಶಕ್ಕೆ ಅರ್ಥ ಇರುವಂತೆ ಒಂದೇ ಸಮಯಕ್ಕೆ ಒಂದನ್ನು ಬದಲಿಸಿ.

ಫಾರ್ವರ್ಡಿಂಗ್ ಎಂಬುದು ಶಾಶ್ವತಗೊಳಿಸಬೇಕಾದ ಕರ್ನಲ್ ಸ್ವಿಚ್

ಬದಲಿಸುವ ಮೊದಲು ಪ್ರಸ್ತುತ ಮೌಲ್ಯವನ್ನು ಪರಿಶೀಲಿಸಿ, ನಂತರ ಅದನ್ನು ಹೊಂದಿಸಿ ಮತ್ತು ಬದಲಾವಣೆ ಜಾರಿಗೆ ಬಂದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

ಮೊದಲ ಆಜ್ಞೆ ಪ್ರಸ್ತುತ ಮೌಲ್ಯವನ್ನು ತಿಳಿಸುತ್ತದೆ, ಎರಡನೆಯದು ಅದನ್ನು ರನ್ಟೈಮ್ನಲ್ಲಿ ಹೊಂದಿಸುತ್ತದೆ, ಮತ್ತು ಮೂರನೆಯದು ಬರವಣಿಗೆ ಕೆಲಸ ಮಾಡಿದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ. ರನ್ಟೈಮ್ ಮೌಲ್ಯವು ಮುಂದಿನ ರೀಬೂಟ್ನಲ್ಲಿ ಮಾಯವಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದ ಸೆಷನ್ ನಿರ್ವಹಣೆಯ ನಂತರ ಯಾವುದೇ ಸಂರಚನೆ ಬದಲಾವಣೆಯಿಲ್ಲದೆ ಮುರಿಯಬಹುದು.

ಅದನ್ನು /etc/sysctl.d/ ಅಡಿಯಲ್ಲಿನ ಫೈಲ್ನಲ್ಲಿ ಶಾಶ್ವತಗೊಳಿಸಿ, ನಂತರ ತಿಳಿಯಲು ರೀಬೂಟ್ ಮಾಡುವ ಬದಲು ಆ ಫೈಲ್ ಅನ್ನು ಅನ್ವಯಿಸಿ. FreeBSD ನಲ್ಲಿ ಸಮಾನವಾದದ್ದು net.inet.ip.forwarding, ಮತ್ತು ಶಾಶ್ವತತೆಗಾಗಿ rc.conf ನಲ್ಲಿ gateway_enable=YES. ಫಾರ್ವರ್ಡಿಂಗ್ ಆಫ್ ಎಂದು ವರದಿ ಮಾಡುವ ಸಾಧನವು «ಪ್ಯಾಕೆಟ್ಗಳು ಬರುತ್ತವೆ ಮತ್ತು ಏನೂ ಹಿಂತಿರುಗುವುದಿಲ್ಲ» ಎಂಬ ಇಡೀ ವರ್ಗದ ವರದಿಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ. ಪ್ರತಿ ಅಪ್ಗ್ರೇಡ್ ನಂತರವೂ ಸೆಟ್ಟಿಂಗ್ ಪರಿಶೀಲಿಸಿ, ಏಕೆಂದರೆ ಮತ್ತೆ ನಿರ್ಮಿಸಿದ ಕರ್ನಲ್ ಅಥವಾ ಬದಲಾದ ಸಾಧನ ಚಿತ್ರವು ಯಾರಿಗೂ ಹೇಳದೆ ಅದನ್ನು ಮರುಹೊಂದಿಸಬಹುದು.

masquerade ಅಥವಾ ಒಂದು ಸ್ಥಿರ ಅನುವಾದ ವಿಳಾಸವನ್ನು ಆರಿಸಿ

ಕ್ರಿಯಾಶೀಲ ಹೊರಗಿನ ವಿಳಾಸದೊಂದಿಗೆ masquerading ಸರಳವಾದ ಸರಿಯಾದ ರೂಪ. ಟನೆಲ್ ಸಬ್ನೆಟ್ ಅನ್ನು ಮೂಲ ಮತ್ತು ಹೊರಗಿನ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನಿರ್ಗಮನ ಎಂದು ಹೆಸರಿಸಿ.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE

ಸ್ಥಿರ ಸಾರ್ವಜನಿಕ ವಿಳಾಸದೊಂದಿಗೆ ಮೂಲವನ್ನು ನಿಖರವಾಗಿ ಆ ವಿಳಾಸಕ್ಕೆ ಅನುವಾದಿಸುವುದು ಹೆಚ್ಚು ಊಹಿಸಬಹುದಾದ ಮತ್ತು ಪರಿಶೀಲಿಸಲು ಸುಲಭ.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j SNAT --to-source 198.51.100.10

ಎರಡನೆಯ ರೂಪವು ನಿರ್ವಹಣಾ ಬಲೆಯನ್ನು ಹೊತ್ತಿದೆ: ನಂತರ ಬದಲಾಗುವ ಹಾರ್ಡ್ಕೋಡ್ ಮಾಡಿದ ವಿಳಾಸವು ಟನೆಲ್ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಂತೆಯೇ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶವನ್ನು ಸದ್ದಿಲ್ಲದೆ ನಿಲ್ಲಿಸುತ್ತದೆ. ಒಂದೋ masquerade ಬಳಸಿ ಅಥವಾ ಪೂರೈಕೆದಾರರು ನಿಮ್ಮನ್ನು ಸ್ಥಳಾಂತರಿಸಿದಾಗಲೆಲ್ಲಾ ನಿಯಮವನ್ನು ನವೀಕರಿಸಿ. ಇಂಟರ್ಫೇಸ್ ಕೂಡ ಮುಖ್ಯ, ಏಕೆಂದರೆ ತನ್ನದೇ ಮೇಲಿನ ಟನೆಲ್ ಹಂಚಿಕೊಳ್ಳುವ ರೌಟರ್ ಭೌತಿಕ WAN ಮೂಲಕವಲ್ಲ, ಆ ಟನೆಲ್ ಮೂಲಕ ಅನುವಾದಿಸಬೇಕು.

ಫಿಲ್ಟರ್ ಕೋಷ್ಟಕವು ಮೂರನೆಯ ದ್ವಾರ

ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಅನುವಾದ ಎರಡೂ ಸರಿಯಾಗಿದ್ದರೂ ಪ್ಯಾಕೆಟ್ ಫಿಲ್ಟರ್ ಕೋಷ್ಟಕದಲ್ಲಿ ಸಾಯಬಹುದು. ufw ಪದೇ ಪದೇ ಅಪರಾಧಿ: ಅದರ ಫಾರ್ವರ್ಡ್ ನೀತಿ DROP ಆಗಿ ಬರುತ್ತದೆ, ಮತ್ತು ಉಳಿದ ಸೆಟಪ್ ಸಂಪೂರ್ಣ ಸರಿಯಾಗಿ ಕಾಣಬಹುದು ಆದರೆ ಆ ಒಂದು ಸೆಟ್ಟಿಂಗ್ ಸಂಚಾರವನ್ನು ಕೊಲ್ಲುತ್ತದೆ. ಅದನ್ನು ಹೆಚ್ಚಿಸುವುದು ಚೆಕ್ಬಾಕ್ಸ್ ಅಲ್ಲ, ಉದ್ದೇಶಪೂರ್ವಕ ಭದ್ರತಾ ನಿರ್ಧಾರ.

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

ಮೊದಲ ನಿಯಮ ಟನೆಲ್ನಿಂದ ಹೊರಕ್ಕೆ ಹೊಸ ಸಂಚಾರಕ್ಕೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ, ಎರಡನೆಯದು ಉತ್ತರಗಳಿಗೆ ಮಾತ್ರ ಹಿಂತಿರುಗಲು ಬಿಡುತ್ತದೆ. ಎರಡನ್ನೂ ಟನೆಲ್ ಸಬ್ನೆಟ್ ಮತ್ತು ಉದ್ದೇಶಿತ ಗಮ್ಯಸ್ಥಾನಕ್ಕೆ ಸೀಮಿತಗೊಳಿಸಿ, ಏಕೆಂದರೆ ಟನೆಲ್ ಇಂಟರ್ಫೇಸ್ನಲ್ಲಿ ಸರ್ವಗ್ರಾಹಿ ಅನುಮತಿ VPN ಅನ್ನು ದೃಢೀಕರಿಸಬಲ್ಲ ಯಾರಿಗಾದರೂ ತೆರೆದ ನಿರ್ಗಮನ ಬಿಂದುವಾಗಿಸುತ್ತದೆ.

ಸೇತುವೆ ಮಾಡಿದ ಟನೆಲ್ಗೆ ಬೇರೆ ಉತ್ತರ ಬೇಕು. ವಿಳಾಸವು ಭೌತಿಕ ಪೋರ್ಟ್ನದಲ್ಲ, ಸೇತುವೆಯದು, ಆದ್ದರಿಂದ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ದಾಸ್ಯ ಮಾಡುವುದು ಅದು ಹಿಂದೆ ಹೊಂದಿದ್ದ ವಿಳಾಸವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಸೇತುವೆಯೇ ಒಂದನ್ನು ಪಡೆಯುವವರೆಗೆ ಹೋಸ್ಟ್ ತಲುಪಲಾಗದಂತೆ ಕಾಣುತ್ತದೆ, ಅದನ್ನು dhclient br0 ಒದಗಿಸಬಹುದು. ಆ ವೈಫಲ್ಯ VPN ಸಮಸ್ಯೆಯಂತೆ ಕಾಣುತ್ತದೆ ಮತ್ತು ಎರಡನೇ ಪದರದ ಸಮಸ್ಯೆ. ಫೈರ್ವಾಲ್ ಮುಟ್ಟುವ ಮೊದಲು ಸೇತುವೆಯ ಸ್ವಂತ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಿ, ಏಕೆಂದರೆ ಫಿಲ್ಟರ್ ಬದಲಾವಣೆ ಕಳುಹಿಸಲು ವಿಳಾಸವಿಲ್ಲದ ಹೋಸ್ಟ್ ಅನ್ನು ಸರಿಪಡಿಸಲಾರದು.

ಪುಟ ಎಂದಿಗೂ ಲೋಡ್ ಆಗದಿದ್ದಾಗ ಎಲ್ಲಿ ನೋಡಬೇಕು

ಟನೆಲ್ ಇದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಸರ್ವರ್ನ ಟನೆಲ್ ವಿಳಾಸಕ್ಕೆ ping ಮಾಡಿ. ನಂತರ ಕ್ಲೈಂಟ್ನಿಂದ ಸಾರ್ವಜನಿಕ ವಿಳಾಸಕ್ಕೆ traceroute ಚಲಾಯಿಸಿ ಮತ್ತು ಎಲ್ಲಿ ನಿಲ್ಲುತ್ತದೆ ಎಂದು ಓದಿ: ಸರ್ವರ್ನಲ್ಲಿ ಪ್ಯಾಕೆಟ್ ಬರುತ್ತದೆ ಆದರೆ ಫಾರ್ವರ್ಡ್ ಅಥವಾ ಅನುವಾದ ಆಗುವುದಿಲ್ಲ; ಸರ್ವರ್ನ ಆಚೆ ಸಮಸ್ಯೆ ಮೇಲಿನ ಹಂತದಲ್ಲಿದೆ ಮತ್ತು ನಿಮ್ಮ ಕೈಯಲ್ಲಿಲ್ಲ.

ping -c 3 10.9.0.1
traceroute -n 198.51.100.10

ಮೊದಲ ಆಜ್ಞೆ ಟನೆಲ್ ಸಂಚಾರವನ್ನು ಸರ್ವರ್ನವರೆಗೂ ಒಯ್ಯುತ್ತದೆ ಎಂದು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ, ಎರಡನೆಯದು ಪ್ಯಾಕೆಟ್ ಹೊರಕ್ಕೆ ಎಷ್ಟು ದೂರ ತಲುಪುತ್ತದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಟನೆಲ್ ವಿಳಾಸದಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಜಾಡು ಸರ್ವರ್ನಲ್ಲಿನ ಫಾರ್ವರ್ಡಿಂಗ್ ಅಥವಾ ಅನುವಾದವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಒಂದು ಹಾಪ್ ನಂತರ ನಿಲ್ಲುವ ಜಾಡು ಪೂರೈಕೆದಾರ ಅಥವಾ ಮೇಲಿನ ರೌಟರ್ನ ಹಿಂತಿರುಗುವ ಮಾರ್ಗವನ್ನು ಸೂಚಿಸುತ್ತದೆ.

ಸರ್ವರ್ನಲ್ಲಿ, ಕ್ಲೈಂಟ್ ಪುಟ ಲೋಡ್ ಮಾಡುವಾಗ ಹೊರಗಿನ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಗಮನಿಸಿ. ಖಾಸಗಿ ಮೂಲ ವಿಳಾಸದೊಂದಿಗೆ ಹೊರಡುವ ಸಂಚಾರ ಎಂದರೆ ಅನುವಾದ ಕಾಣೆಯಾಗಿದೆ, ಮತ್ತು ಉತ್ತರವೇ ಇಲ್ಲದಿರುವುದು ಎಂದರೆ ಫಾರ್ವರ್ಡ್ ಮಾರ್ಗ ಅಥವಾ ಮೇಲಿನ ಹಿಂತಿರುಗುವ ಮಾರ್ಗ ಅದನ್ನು ಬೀಳಿಸುತ್ತಿದೆ.

ದೂರದ ಕ್ಲೈಂಟ್ಗಳು ಸರ್ವರ್ನ LAN ನ ಹೋಸ್ಟ್ಗಳನ್ನು ಸಹ ತಲುಪಬೇಕಿದ್ದರೆ, LAN ಗೆ ಟನೆಲ್ ಸಬ್ನೆಟ್ಗೆ ಹಿಂತಿರುಗುವ ಮಾರ್ಗ ಬೇಕು ಎಂದು ನೆನಪಿಡಿ. ಇದು ಅನುವಾದವಲ್ಲ, ರೂಟಿಂಗ್, ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಮಾರ್ಗ ಅಂತಿಮವಾಗಿ ಕೆಲಸ ಮಾಡಿದ ನಂತರ ಅತ್ಯಂತ ಹೆಚ್ಚು ಮರೆತುಹೋಗುವ ಹೆಜ್ಜೆ ಇದೇ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು