OpenWrt VPN ವಲಯ, ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಮಾಸ್ಕರೇಡಿಂಗ್: ಯಾವುದು ಬೇಕು?
ವಲಯ ಇನ್ಪುಟ್, ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಮಾಸ್ಕರೇಡಿಂಗ್ ಬೇರೆ ಬೇರೆ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸುತ್ತವೆ. WAN ವಲಯವನ್ನು ತೆರೆಯುವ ಮೊದಲು ನಿಮ್ಮ VPN ಸಂಚಾರಕ್ಕೆ ಯಾವುದು ಬೇಕೆಂದು ನಿರ್ಧರಿಸಿ.
VPN OpenWrt ಅನ್ನು ಭೇಟಿಯಾದಾಗಲೆಲ್ಲಾ ಮೂರು ಬದಲಾವಣೆಗಳು ಒಂದಕ್ಕೊಂದು ಬೆರೆತುಹೋಗುತ್ತವೆ: ಪೋರ್ಟ್ ತೆರೆಯುವುದು, ಫಾರ್ವರ್ಡಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುವುದು ಮತ್ತು ಮಾಸ್ಕರೇಡಿಂಗ್ ಅನ್ನು ಆನ್ ಮಾಡುವುದು. ಅವು ಬೇರೆ ಬೇರೆ ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸುತ್ತವೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಅವುಗಳಲ್ಲಿ ಒಂದೇ ನಿಜವಾದ ಅಗತ್ಯವಾಗಿರುತ್ತದೆ. ಪ್ರತಿ ನಿಯಂತ್ರಣವನ್ನು ಅದು ನಿಯಂತ್ರಿಸುವ ಸಂಚಾರ ಪಾತ್ರದ ಪ್ರಕಾರ ಓದುವುದು ಊಹೆಯನ್ನು ನಿರ್ಧಾರವಾಗಿ ಬದಲಿಸುತ್ತದೆ ಮತ್ತು ಬದಲಾವಣೆ ತಪ್ಪಾದಾಗ ಯಾವ ಲಕ್ಷಣವನ್ನು ನಿರೀಕ್ಷಿಸಬೇಕೆಂದೂ ತಿಳಿಸುತ್ತದೆ. ನೀವು ನೆನಪಿಟ್ಟುಕೊಂಡಿರುವ ಚೆಕ್ಬಾಕ್ಸ್ ಅಲ್ಲ, ವಿಫಲವಾದ ಪಾತ್ರದ ಹೆಸರಿನಿಂದ ಪ್ರಾರಂಭಿಸಿ.
ನಿಯಂತ್ರಣವನ್ನು ಮುಟ್ಟುವ ಮೊದಲು ಸಂಚಾರ ಪಾತ್ರವನ್ನು ಹೆಸರಿಸಿ
ವಲಯ ಇನ್ಪುಟ್ ರೌಟರ್ಗೆ ಏನು ತಲುಪಬಹುದೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ವಲಯ ಔಟ್ಪುಟ್ ರೌಟರ್ ಸ್ವತಃ ರಚಿಸುವ ಸಂಚಾರವನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ವಲಯ ಫಾರ್ವರ್ಡಿಂಗ್ ವಲಯದ ಮೂಲಕ ಹಾದುಹೋಗುವ ಸಂಚಾರಕ್ಕೆ ಡೀಫಾಲ್ಟ್ ಆಗಿದೆ, ಮತ್ತು ಮಾಸ್ಕರೇಡಿಂಗ್ ಹೊರಹೋಗುವಾಗ ಮೂಲ ವಿಳಾಸವನ್ನು ಮರುಬರೆಯಬೇಕೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಇವು ನಾಲ್ಕು ಬೇರೆ ಬೇರೆ ಪ್ರಶ್ನೆಗಳು, ಮತ್ತು ವಲಯ ನೀತಿಯು ಒಂದೇ ಮೌಲ್ಯದಿಂದ ನಾಲ್ಕಕ್ಕೂ ಒಟ್ಟಿಗೆ ಉತ್ತರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಇಡೀ ವಲಯದ ಬದಲಾವಣೆ ಒಂದು ಒರಟು ಸಾಧನ. ಹೆಸರಿಸಿದ ನಿಯಮವು ಉಳಿದವನ್ನು ಮುಟ್ಟದೆ ಅವುಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಉತ್ತರಿಸಬಹುದು.
ಉಪಯುಕ್ತ ನಕ್ಷೆ ಸಂಚಾರ ಪಾತ್ರದ ಪ್ರಕಾರ ಇರುತ್ತದೆ, ಏಕೆಂದರೆ ಏನಾದರೂ ವಿಫಲವಾದಾಗ ನೀವು ಗಮನಿಸಬಹುದಾದುದು ಅದನ್ನೇ. ಕೆಳಗಿನ ಪ್ರತಿ ಪಾತ್ರಕ್ಕೂ ಅದನ್ನು ನಿರ್ಧರಿಸುವ ಒಂದು ನಿಯಂತ್ರಣ ಮತ್ತು ಅದನ್ನು ಸೂಚಿಸುವ ಒಂದು ಲಕ್ಷಣ ಇದೆ:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
ರೌಟರ್ನಲ್ಲಿ ಕೇಳುವ ಸೇವೆಗೆ ಒಂದು ಸಣ್ಣ ಇನ್ಪುಟ್ ನಿಯಮ ಸಾಕು
ರೌಟರ್ನಲ್ಲಿರುವ OpenVPN ಸರ್ವರ್ ರೌಟರ್ಗೆ ವಿಳಾಸಿತ ಸಂಚಾರವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದರ ಹೊರ ಸಂಪರ್ಕವು ಅದನ್ನು ಒಯ್ಯುವ ವಲಯದ ಇನ್ಪುಟ್ ನೀತಿಯನ್ನು ಅವಲಂಬಿಸಿದೆ. ಸಂರಚಿಸಿದ ಸಾರಿಗೆ ಮತ್ತು ಪೋರ್ಟ್ಗೆ ಅನುಮತಿಸಿ ಮತ್ತು ಆ ವಲಯದಲ್ಲಿ ಉಳಿದ ಎಲ್ಲವನ್ನೂ ತಿರಸ್ಕೃತವಾಗಿ ಬಿಡಿ. ಒಂದೇ ಪೋರ್ಟ್ ನಿಯಮವು ಇಡೀ ವಲಯದ ಅನುಮತಿಗಿಂತ ಬಹಳ ಚಿಕ್ಕ ಬದಲಾವಣೆ, ಮತ್ತು ಒಂದು ವರ್ಷದ ನಂತರವೂ ನೀವು ವಿವರಿಸಬಹುದಾದುದು ಅದನ್ನೇ.
ಆ ನಿಯಮವನ್ನು ಇಟ್ಟುಕೊಳ್ಳಲು ಸುರಕ್ಷಿತವಾಗಿಸುವ ಎರಡು ವಿಷಯಗಳಿವೆ: ಅದು ಸೇವೆ ನಿಜವಾಗಿ ಬಳಸುವ ಪೋರ್ಟ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ, ಮತ್ತು ಅದು ವಲಯದ ವ್ಯಾಖ್ಯಾನದ ಪಕ್ಕದಲ್ಲಿದೆ, ಇದರಿಂದ ಮುಂದಿನ ವ್ಯಕ್ತಿ ಅದು ಏಕೆ ಇದೆ ಎಂದು ನೋಡಬಹುದು. ಕೆಳಗಿನ ಸಾಲುಗಳು ಕೇವಲ ರೂಪ, ಪೋರ್ಟ್ ಸರ್ವರ್ನಲ್ಲಿ ಸಂರಚಿಸಿದ ಮೌಲ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಸೇವೆ ಸ್ಥಳಾಂತರಗೊಂಡಾಗ ಆ ಪೋರ್ಟ್ ಅನ್ನು ಎರಡೂ ಕಡೆ ಬದಲಿಸಿ, ಏಕೆಂದರೆ ಹಳೆಯದರಲ್ಲಿ ಉಳಿದ ನಿಯಮವು ಲೆಕ್ಕಪರಿಶೋಧನೆಯವರೆಗೆ ಕಾಣುವುದಿಲ್ಲ.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'ಮತ್ತೆ ಲೋಡ್ ಮಾಡುವ ಮೊದಲು ಪರಿಶೀಲಿಸಿ, ಏಕೆಂದರೆ ಫೈರ್ವಾಲ್ ಫೈಲ್ನಲ್ಲಿನ ವಾಕ್ಯರಚನಾ ದೋಷವು ರೌಟರ್ ಅನ್ನು ಕೆಲಸ ಮಾಡುವ ನಿಯಮಗಳ ಗುಂಪಿಲ್ಲದೆ ಬಿಡಬಹುದು. fw4 ಬಳಸುವ ಆವೃತ್ತಿಯಲ್ಲಿ ಪರಿಶೀಲನೆ ಪ್ರತ್ಯೇಕ ಆಜ್ಞೆಯಾಗಿದೆ, ಮತ್ತು ಅದು ಮುರಿದ ಬ್ಲಾಕ್ ಅನ್ನು ಸದ್ದಿಲ್ಲದೆ ಸ್ವೀಕರಿಸುವ ಬದಲು ಗಟ್ಟಿಯಾಗಿ ವಿಫಲವಾಗುತ್ತದೆ. ಪರಿಶೀಲನೆ ಉತ್ತೀರ್ಣವಾದ ನಂತರವೇ ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ, ಮತ್ತು ಹಿಂದಿನ ಫೈಲ್ ಅನ್ನು ಮರಳಿ ಇಡಬಹುದಾದ ಸ್ಥಳದಲ್ಲಿ ಇರಿಸಿ.
fw4 check
service firewall reloadಕ್ಲೈಂಟ್ ವಿನಂತಿ ಇನ್ಪುಟ್ ಮೂಲಕವಲ್ಲ, ಫಾರ್ವರ್ಡಿಂಗ್ ಮೂಲಕ ಹಾದುಹೋಗುತ್ತದೆ
ದೃಢೀಕರಣದ ನಂತರ, LAN ಸೇವೆಯನ್ನು ಕೇಳುವ ಟನೆಲ್ ಕ್ಲೈಂಟ್ನ ವಿನಂತಿ ಫಾರ್ವರ್ಡ್ ಮಾಡಿದ ಹರಿವನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ನಿರ್ಧರಿಸುವ ನಿಯಂತ್ರಣವು ಟನೆಲ್ ವಲಯ ಮತ್ತು LAN ವಲಯದ ನಡುವಿನ ಫಾರ್ವರ್ಡಿಂಗ್ ಸಂಬಂಧ. ಟನೆಲ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಉದ್ದೇಶಿತ ವಲಯಕ್ಕೆ ನಿಯೋಜಿಸಿ, ನಂತರ ದಿಕ್ಕು, ಮೂಲಗಳು ಮತ್ತು ಸೇವೆಯನ್ನು ಘೋಷಿಸಿ. ವಲಯ ನಿಯೋಜನೆಯೇ ಫಾರ್ವರ್ಡಿಂಗ್ ನಿಯಮಕ್ಕೆ ಅರ್ಥ ನೀಡುತ್ತದೆ, ಮತ್ತು ಎರಡೂ ಒಟ್ಟಿಗೆ ಓದಿದಾಗ ಮಾತ್ರ ಅರ್ಥವಾಗುತ್ತವೆ. ಟನೆಲ್ ವಲಯವನ್ನು ಮೂಲ ಮತ್ತು LAN ವಲಯವನ್ನು ಗಮ್ಯ ಎಂದು ಹೆಸರಿಸುವ ಫಾರ್ವರ್ಡಿಂಗ್ ಸಂಬಂಧವು ಒಂದು ಉದ್ದೇಶಪೂರ್ವಕ ನಿರ್ಧಾರವಾಗಿ ಓದಲ್ಪಡುತ್ತದೆ, ಆದರೆ ಇಡೀ ವಲಯದ ಎರಡು ಅನುಮತಿಗಳು ಅಪಘಾತವಾಗಿ ಓದಲ್ಪಡುತ್ತವೆ.
ರೌಟರ್ ಸ್ವತಃ ತಲುಪಲು ಇನ್ನೂ ಇನ್ಪುಟ್ ಮಾರ್ಗವನ್ನು ಬಳಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಗೇಟ್ವೇಗೆ ping ಅದರ ಹಿಂದಿನ ಫೈಲ್ ಹಂಚಿಕೆಯ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ. ಆ ಎರಡು ವೈಫಲ್ಯಗಳು ಬೇರೆ ಬೇರೆ ಬ್ಲಾಕ್ಗಳಲ್ಲಿ ವಾಸಿಸುತ್ತವೆ ಮತ್ತು ಬೇರೆ ಬೇರೆ ಬದಲಾವಣೆಗಳಿಂದ ಸರಿಪಡಿಸಲ್ಪಡುತ್ತವೆ. ಯಾವುದಾದರೂ ಒಂದನ್ನು ಬದಲಿಸುವ ಮೊದಲು ಎರಡೂ ಮಾರ್ಗಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಬರೆಯಿರಿ.
ಮಾಸ್ಕರೇಡಿಂಗ್ ಒಂದು ರೂಟಿಂಗ್ ನಿರ್ಧಾರ, ಅನುಮತಿ ಅಲ್ಲ
ಮಾಸ್ಕರೇಡಿಂಗ್ ಆಯ್ದ ಹೊರಹೋಗುವ ಸಂಚಾರದ ಮೂಲ ವಿಳಾಸವನ್ನು ಮರುಬರೆಯುತ್ತದೆ. ಅದು ದೂರದ ಬದಿಗೆ ಹಿಂತಿರುಗುವ ಮಾರ್ಗವಿಲ್ಲದ ನಿರ್ಗಮನ ವಿನ್ಯಾಸವನ್ನು ಉಳಿಸಬಹುದು, ಮತ್ತು ವಿಳಾಸಗಳನ್ನು ದಾಖಲಿಸುವ ಅಥವಾ ವಿಳಾಸದ ಆಧಾರದಲ್ಲಿ ಅನುಮತಿಸುವ ಯಾವುದೇ ಸೇವೆಯಿಂದ ವೈಯಕ್ತಿಕ ಕ್ಲೈಂಟ್ಗಳ ವಿಳಾಸಗಳನ್ನೂ ಮರೆಮಾಡುತ್ತದೆ. ಅದನ್ನು ಆಫ್ ಮಾಡುವುದು ಹಿಂತಿರುಗುವ ಮಾರ್ಗದ ಬಗ್ಗೆ ಒಂದು ರೂಟಿಂಗ್ ಆಯ್ಕೆ, ಒಳಗಿನ ರಂಧ್ರವನ್ನು ಮುಚ್ಚುವ ಭದ್ರತಾ ಸ್ವಿಚ್ ಅಲ್ಲ. ಅನುವಾದ ಆನ್ ಇರುವಾಗ ಕೆಲಸ ಮಾಡಿ ಅದನ್ನು ಆಫ್ ಮಾಡಿದ ಕ್ಷಣ ವಿಫಲವಾಗುವ ಟನೆಲ್ನಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಹಿಂತಿರುಗುವ ಮಾರ್ಗ ಕಾಣೆಯಾಗಿರುತ್ತದೆ, ಫೈರ್ವಾಲ್ ನಿಯಮ ಅಲ್ಲ.
ರೂಟ್ ಮಾಡಿದ ಪರ್ಯಾಯಕ್ಕೆ ಅನುವಾದದ ಬದಲು ದೂರದ ಬದಿಯಲ್ಲಿ ಹಿಂತಿರುಗುವ ಮಾರ್ಗ ಬೇಕು. ಎರಡೂ ಆಯ್ಕೆಗಳು ಫೈರ್ವಾಲ್ ಅನುಮತಿ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಖಾತೆಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಮಾಸ್ಕರೇಡಿಂಗ್ ಆಫ್ ಮಾಡುವುದು ಎಲ್ಲಿಯೂ ತಲುಪಲಾಗದ ಟನೆಲ್ ಕ್ಲೈಂಟ್ ಅನ್ನು ಬಹುತೇಕ ಎಂದಿಗೂ ಸರಿಪಡಿಸುವುದಿಲ್ಲ. IPv4 ಮತ್ತು IPv6 ನೀತಿಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಪರಿಗಣಿಸಿ, ಏಕೆಂದರೆ ಒಂದು ಅನುವಾದ ಸೆಟ್ಟಿಂಗ್ ಎರಡೂ ಕುಟುಂಬಗಳನ್ನು ವಿವರಿಸುವುದಿಲ್ಲ.
ಅನುಮತಿಸಿದ ಮತ್ತು ತಿರಸ್ಕರಿಸಿದ ವಿನಂತಿಯಿಂದ ನಿರ್ಧಾರವನ್ನು ಸಾಬೀತುಪಡಿಸಿ
ಅನುಮತಿಸಬೇಕಾದ ಒಂದು ವಿನಂತಿ ಮತ್ತು ತಿರಸ್ಕರಿಸಬೇಕಾದ ಒಂದು ವಿನಂತಿ ಕಳುಹಿಸಿ, ನಂತರ ಪ್ರತಿ ನಿರ್ಧಾರವನ್ನು ತೆಗೆದುಕೊಂಡ ನಿಯಂತ್ರಣವನ್ನು ಗುರುತಿಸಿ. ಆಕಸ್ಮಿಕವಾಗಿ ಲೋಡ್ ಆದ ಪುಟ ಸಾಕ್ಷ್ಯವಲ್ಲ; ಸಾಕ್ಷ್ಯವೆಂದರೆ ಹೊಂದಿಕೆಯಾದ ನಿಯಮ, ಅದು ಹೊಂದಿಕೆಯಾದ ಸರಣಿಯಲ್ಲಿ. ತಿರಸ್ಕಾರವು ಯಶಸ್ಸಿನಷ್ಟೇ ಮುಖ್ಯ, ಏಕೆಂದರೆ ಎಲ್ಲವೂ ಅನುಮತಿಸಲ್ಪಟ್ಟಿದೆಯೇ ಹೊರತು ನೀತಿಯು ಏನನ್ನೋ ಮಾಡುತ್ತಿದೆ ಎಂದು ಅದು ತೋರಿಸುತ್ತದೆ.
ಪ್ರಸ್ತುತ ಆವೃತ್ತಿಯಲ್ಲಿ ಎರಡು ಆಜ್ಞೆಗಳು ಆ ಸಾಕ್ಷ್ಯವನ್ನು ನೀಡುತ್ತವೆ. ವಿನಂತಿ ಸ್ವೀಕರಿಸಲ್ಪಟ್ಟಾಗ ಹೊಂದಿಕೆಯಾದ ನಿಯಮದ ಕೌಂಟರ್ ಚಲಿಸುತ್ತದೆ, ಮತ್ತು ಆ ನಿಯಮಕ್ಕೆ ಲಾಗಿಂಗ್ ಆನ್ ಮಾಡಿದ್ದರೆ ಲಾಗ್ ಡ್ರಾಪ್ ಅನ್ನು ತೋರಿಸುತ್ತದೆ:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'ಯಾವುದೇ ಫೈರ್ವಾಲ್ ನೀತಿಯನ್ನು ಬದಲಿಸುವ ಮೊದಲು ಇನ್ನೂ ಬಳಸಬಹುದಾದ ಆಡಳಿತ ಮಾರ್ಗವನ್ನು ಇಟ್ಟುಕೊಳ್ಳಿ, ಮತ್ತು ಸಂರಚನೆಯ ಮಾಲೀಕರ ಪರಿಶೀಲನೆ ಹಾಗೂ ರೋಲ್ಬ್ಯಾಕ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನುಸರಿಸಿ. ನಿಮ್ಮನ್ನು ರೌಟರ್ನಿಂದ ಹೊರಗೆ ಲಾಕ್ ಮಾಡುವ ಬದಲಾವಣೆ ಪರೀಕ್ಷಾ ಫಲಿತಾಂಶವಲ್ಲ, ಅದು ಎರಡನೇ ಘಟನೆ. ಪ್ರತಿ ವೀಕ್ಷಣೆಯ ಪಕ್ಕದಲ್ಲಿ ವಲಯ ಮತ್ತು ಸಂಚಾರ ಪಾತ್ರವನ್ನು ದಾಖಲಿಸಿ, ಇದರಿಂದ ಫಲಿತಾಂಶಗಳ ಜೋಡಿ ಅದೃಷ್ಟದ ಪುಟ ಲೋಡ್ ಅನ್ನು ವಿವರಿಸುವ ಬದಲು ನೀತಿಯನ್ನು ವಿವರಿಸುತ್ತದೆ.