ವಿನಂತಿ ಯಾವಾಗಲೂ ಒಂದೇ ವಾಕ್ಯದ ರೂಪಾಂತರ: ಬ್ರೌಸಿಂಗ್‌ಗೆ VPN ಇರಲಿ, ಆದರೆ SSH ಅಥವಾ ಬ್ಯಾಕಪ್ ಕೆಲಸ ಸಾಮಾನ್ಯ ಸಂಪರ್ಕವನ್ನು ಬಳಸಲಿ. ಈ ಬಗ್ಗೆ ಹರಡುವ ಸಲಹೆ, ಅಂದರೆ iptables NAT ನಿಯಮಗಳಿಂದ ಪೋರ್ಟ್ ಫಾರ್ವರ್ಡ್ ಮಾಡುವುದು, ಅದನ್ನು ಮಾಡುವುದಿಲ್ಲ. NAT ನಿಯಮವು ಹರಿವಿನ ಒಳಗಿನ ವಿಳಾಸ ಮತ್ತು ಪೋರ್ಟ್‌ಗಳನ್ನು ಮರುಬರೆಯುತ್ತದೆ; ಪ್ಯಾಕೆಟ್ ಯಾವ ಇಂಟರ್ಫೇಸ್‌ನಿಂದ ಹೊರಡುತ್ತದೆ ಎಂಬುದನ್ನು ಅದು ಎಂದಿಗೂ ಆಯ್ಕೆ ಮಾಡುವುದಿಲ್ಲ. ಆ ನಿರ್ಣಯ ಮಾರ್ಗ ಹುಡುಕಾಟಕ್ಕೆ ಸೇರಿದ್ದು, ಮತ್ತು ಮಾರ್ಗ ಹುಡುಕಾಟಕ್ಕೆ ಪೋರ್ಟ್ ನೋಡಲು ಸಹಾಯ ಬೇಕು.

ಸಾಮಾನ್ಯ ಮಾರ್ಗ ಪೋರ್ಟ್‌ಗೆ ಹೇಗೆ ಹೊಂದಿಕೆಯಾಗದು

Linux ಒಂದು ಕೋಷ್ಟಕದಲ್ಲಿ ಗಮ್ಯ ವಿಳಾಸವನ್ನು ಹುಡುಕಿ ಮಾರ್ಗವನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ, ಮೊದಲು ಅಭ್ಯರ್ಥಿ ಕೋಷ್ಟಕಗಳನ್ನು ನೀತಿ ನಿಯಮಗಳಿಂದ ಜರಡಿ ಹಿಡಿದ ನಂತರ. ಆ ನಿಯಮಗಳು ಫೈರ್‌ವಾಲ್ ಗುರುತು, ಮೂಲ ವಿಳಾಸ, ಒಳಬರುವ ಇಂಟರ್ಫೇಸ್ ಅಥವಾ UID ಜೊತೆ ಹೊಂದಿಕೆಯಾಗಬಹುದು. ಮಾರ್ಗ ನಮೂದಿಗೆ ಸ್ವಂತ ಪೋರ್ಟ್ ಕ್ಷೇತ್ರವಿಲ್ಲ, ಏಕೆಂದರೆ ಸಾಗಣೆ ಶೀರ್ಷಿಕೆ ಮುಖ್ಯವಾಗುವ ಮೊದಲೇ ಮಾರ್ಗ ಆಯ್ಕೆಯಾಗುತ್ತದೆ.

ಆಧುನಿಕ iproute2 ಮತ್ತು ಕರ್ನಲ್‌ಗಳು ನಿಯಮದ ಆಯ್ಕೆದಾರನನ್ನು ವಿಸ್ತರಿಸುತ್ತವೆ: ipproto, sport ಮತ್ತು dport ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ip rule add ipproto tcp dport 22 table 100 ಉದ್ದೇಶವನ್ನು ಒಂದೇ ಸಾಲಿನಲ್ಲಿ ವ್ಯಕ್ತಪಡಿಸುತ್ತದೆ. ನಿಜವಾದ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ip rule add help ಚಲಾಯಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಬಿಲ್ಡ್ dport ಪಟ್ಟಿ ಮಾಡುತ್ತದೆಯೇ ನೋಡಿ. ಮಾಡಿದರೆ ಒಂದೇ ಆದೇಶದಲ್ಲಿ ಮುಗಿಯಿತು; ಇಲ್ಲದಿದ್ದರೆ ಕೆಳಗಿನ ಗುರುತು ಮಾರ್ಗವೇ ಸಮಾನ.

ಹೇಗಾದರೂ ನಿಯಮ ಕೇವಲ ಸೂಚಕ. ಕೋಷ್ಟಕ 100ಕ್ಕೆ ಇನ್ನೂ ಮಾರ್ಗ ಬೇಕು, ಮತ್ತು ಜನರು ಮರೆಯುವ ಭಾಗ ಅದೇ.

ಮೂರು ಭಾಗ, ಅಥವಾ ಒಂದು

ಆಧುನಿಕ ರೂಪ ಮೇಲಿನ ಏಕ ನಿಯಮ ಮತ್ತು ಪರ್ಯಾಯ ಕೋಷ್ಟಕದಲ್ಲಿ ಒಂದು ಮಾರ್ಗ. ಸಾಂಪ್ರದಾಯಿಕ ರೂಪ ಮಧ್ಯದಲ್ಲಿ netfilter ಸೇರಿಸುತ್ತದೆ: ಪ್ಯಾಕೆಟ್ ಗುರುತಿಸಿ, ನಂತರ ನಿಯಮದಲ್ಲಿ ಗುರುತನ್ನು ಹೊಂದಿಸಿ. ಎರಡೂ ಒಂದೇ ಹುಡುಕಾಟದಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತವೆ; ಪೋರ್ಟ್ ಎಲ್ಲಿ ಓದಲಾಗುತ್ತದೆ ಎಂಬುದರಲ್ಲಿ ಭಿನ್ನ.

ಗುರುತು ವಿಧಾನ ಇರುವುದು netfilter ಸಾಗಣೆ ಶೀರ್ಷಿಕೆಯನ್ನು ನೋಡುತ್ತದೆ ಮತ್ತು ಮಾರ್ಗನಿರ್ದೇಶನ ಸಂಕೇತ ಐತಿಹಾಸಿಕವಾಗಿ ನೋಡುತ್ತಿರಲಿಲ್ಲ. ಇಷ್ಟೇ ಇಡೀ ಕಾರ್ಯವಿಧಾನ, ಮತ್ತು ಪರ್ಯಾಯವು ಒಂದು ಚಾಣಾಕ್ಷ ಆದೇಶವಲ್ಲ, ಮೂರು ಸಹಕಾರಿ ಭಾಗಗಳು ಏಕೆ ಎಂಬುದನ್ನು ಅದು ವಿವರಿಸುತ್ತದೆ.

ಮೂರು ಭಾಗಗಳು ಕ್ರಮವಾಗಿ

ಮೊದಲು, ಬೇರೆಡೆಗೆ ತಿರುಗಿಸಬೇಕಾದ ಹರಿವುಗಳನ್ನು ಗುರುತಿಸಿ, ಮಾರ್ಗ ನಿರ್ಣಯಕ್ಕೆ ಮೊದಲು ಗುರುತು ಇರುವಂತೆ ಸಾಕಷ್ಟು ಬೇಗ ಚಲಿಸುವ ಸರಪಣಿಯಲ್ಲಿ:

nft add table inet vpnexempt
nft 'add chain inet vpnexempt out { type route hook output priority mangle; }'
nft add rule inet vpnexempt out tcp dport 22 meta mark set 0x1

ಎರಡನೆಯದಾಗಿ, ಗುರುತಿಸಿದ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಕೋಷ್ಟಕಕ್ಕೆ ಕಳುಹಿಸಿ:

ip rule add fwmark 0x1/0x1 table 100

ಮೂರನೆಯದಾಗಿ, ಆ ಕೋಷ್ಟಕಕ್ಕೆ ಭೌತಿಕ ಲಿಂಕ್ ಮೂಲಕ ಡೀಫಾಲ್ಟ್ ಮಾರ್ಗ ಕೊಡಿ. ವಿಳಾಸಗಳು ಉದಾಹರಣೆ; ನಿಮ್ಮವನ್ನು ಹಾಕಿ:

ip route add default via 192.168.1.1 dev wlan0 table 100

ಮೂರನೇ ಹಂತವನ್ನು ಬಿಟ್ಟುಬಿಟ್ಟರೆ ಗುರುತಿಸಿದ ಪ್ಯಾಕೆಟ್ ಕೋಷ್ಟಕ 100ರಲ್ಲಿ ಮಾರ್ಗ ಕಾಣದೆ ವಿಫಲವಾಗುತ್ತದೆ. ಲಕ್ಷಣ ನಿಯಮವು ಜಾಲವನ್ನು ಮುರಿದಂತೆ ಕಾಣುತ್ತದೆ, ವಾಸ್ತವದಲ್ಲಿ ಪ್ಯಾಕೆಟ್‌ಗೆ ಉಳಿದಿದ್ದ ಏಕೈಕ ದಾರಿಯನ್ನು ತೆಗೆದುಹಾಕಿತು.

ಮೊದಲ ಪ್ಯಾಕೆಟ್ ನಂತರವೂ ಅದನ್ನು ಚಾಲನೆಯಲ್ಲಿಡುವುದು ಯಾವುದು

ಗುರುತುಗಳು ಹೊರಹೋಗುವ ಪ್ಯಾಕೆಟ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತವೆ. ಉತ್ತರ ಭೌತಿಕ ಇಂಟರ್ಫೇಸ್‌ಗೆ ಆ ಲಿಂಕ್ ನೀಡಿದ ವಿಳಾಸದೊಂದಿಗೆ ಬರುತ್ತದೆ, ಮತ್ತು ಮುಖ್ಯ ಕೋಷ್ಟಕ ಆ ಗಮ್ಯಕ್ಕೆ ಇನ್ನೂ ಸುರಂಗಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಬಹುದು. ಎರಡು ಕಾರ್ಯವಿಧಾನಗಳು ಉತ್ತರದ ದಾರಿಯನ್ನು ಸ್ಥಿರವಾಗಿರಿಸುತ್ತವೆ: ಲಿಂಕ್ ವಿಳಾಸಕ್ಕೆ ಮೂಲ-ಆಧಾರಿತ ನಿಯಮ, ಮತ್ತು ಹರಿವಿನ ಇಡೀ ಆಯುಷ್ಯಕ್ಕೆ ನಿರ್ಣಯವನ್ನು ಉಳಿಸುವ ಸಂಪರ್ಕ ಕಣ್ಗಾವಲು. ಗುರುತನ್ನು conntrackಗೆ ಉಳಿಸಿ ಉತ್ತರದಲ್ಲಿ ಮರುಸ್ಥಾಪಿಸುವುದು ಸ್ಥಿತಿ-ಆಧಾರಿತ ಅಪವಾದವನ್ನು ಸ್ಥಿರಗೊಳಿಸುವ ಸಾಮಾನ್ಯ ದಾರಿ.

ರಿವರ್ಸ್-ಪಾತ್ ಫಿಲ್ಟರಿಂಗ್ ಇನ್ನೊಂದು ಮೌನ ಕೊಲೆಗಾರ. ಕರ್ನಲ್ ಹಿಂತಿರುಗುವ ದಾರಿಯನ್ನು ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಪರಿಶೀಲಿಸಿ, ಉತ್ತರ ಮುಖ್ಯ ಕೋಷ್ಟಕ ಆಯ್ಕೆ ಮಾಡದ ಇಂಟರ್ಫೇಸ್‌ಗೆ ಬಂದರೆ, ಪ್ಯಾಕೆಟ್ ಯಾವ ಸಂದೇಶವೂ ಇಲ್ಲದೆ ಬಿಸಾಡಲ್ಪಡುತ್ತದೆ. rp_filter ನ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳು ವಿತರಣೆ ಮತ್ತು ಇಂಟರ್ಫೇಸ್ ಮುಂದಕ್ಕೆ ರವಾನೆಯಾಗುತ್ತದೆಯೇ ಎಂಬುದರ ಆಧಾರದಲ್ಲಿ ಬದಲಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಆಫ್ ಇದೆ ಎಂದು ಊಹಿಸದೆ ಪರಿಣಾಮಕಾರಿ ಮೌಲ್ಯ ಓದಿ.

ಸುರಂಗದ ಸ್ವಂತ ಸಾಗಣೆಯನ್ನು ಗುರುತಿಸಬೇಡಿ. WireGuard ಅಥವಾ UDP OpenVPN ಸುರಂಗ TCP 22 ಅಲ್ಲ, ಆದ್ದರಿಂದ ಮೇಲಿನ ವಿಧಾನ ಸುರಕ್ಷಿತ, ಆದರೆ ಸುರಂಗದ ಗಮ್ಯವನ್ನು ಬಿಟ್ಟು ಉಳಿದೆಲ್ಲವೂ ಎಂದು ಬರೆದ ಅಪವಾದ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಆದ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಹಿಡಿದು ಸುರಂಗವನ್ನು ಮಾರ್ಗ ಲೂಪ್‌ನಂತೆ ಕಾಣುವ ರೀತಿಯಲ್ಲಿ ಮುರಿಯಬಹುದು.

ಊಹಿಸದೆ ಪರಿಶೀಲಿಸಿ

ಕರ್ನಲ್‌ಗೆ ಯಾವ ದಾರಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಎಂದು ಕೇಳಿ, ಗಮ್ಯ ಮತ್ತು ಪೋರ್ಟ್‌ಗಾಗಿ, ನಂತರ ನಿಜವಾದ ವರ್ಗಾವಣೆ ಚಲಾಯಿಸಿ:

ip route get 203.0.113.10
ip rule show
nft list ruleset

ಗುರುತು ಇದ್ದರೂ ಕೌಂಟರ್‌ಗಳು ಎಂದಿಗೂ ಚಲಿಸದಿದ್ದರೆ ನಿಯಮ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ. ಕೌಂಟರ್‌ಗಳು ನೀವು ಬರೆದ ಸಂರಚನೆ ಮತ್ತು ಕರ್ನಲ್ ಅನ್ವಯಿಸುತ್ತಿರುವ ನೀತಿಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸ.

ಇದು ಯಾವಾಗ ತಪ್ಪು ಸಾಧನ

ಪೋರ್ಟ್-ಆಧಾರಿತ ಅಪವಾದಗಳು ಸ್ವಭಾವತಃ ಸೂಕ್ಷ್ಮ. ಸೇವೆಗಳು ಪೋರ್ಟ್ ಬದಲಿಸುತ್ತವೆ, HTTP/3 UDP 443 ಆಗಿ ಬರುತ್ತದೆ, ಮತ್ತು ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ವಿವಿಧ ರೀತಿಯ ಹಲವು ಹರಿವುಗಳನ್ನು ತೆರೆಯಬಹುದು. ನಿಜವಾದ ಅಗತ್ಯ ಈ ಪ್ರೋಗ್ರಾಂ ಸಾಮಾನ್ಯ ಲಿಂಕ್ ಬಳಸುವುದಾದರೆ, ಮಾರ್ಗನಿರ್ದೇಶನ ಪದರ ತಪ್ಪು ಸ್ಥಳ; ಜಾಲನಾಮಸ್ಥಳ ಅಥವಾ ಪ್ರತಿ-ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾಕ್ಸಿ ಹೆಚ್ಚು ಸೂಕ್ತ.

ಅಗತ್ಯ ಈ ಉಪಜಾಲ ಸಾಮಾನ್ಯ ಲಿಂಕ್ ಬಳಸುವುದಾದರೆ, ಗುರುತುಗಳನ್ನು ಸಂಪೂರ್ಣ ಬಿಟ್ಟು ಹೆಚ್ಚು ನಿರ್ದಿಷ್ಟ ಮಾರ್ಗ ಸೇರಿಸಿ. ಅದು ಸರಳ, ಒಂದೇ ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣುತ್ತದೆ, ಮತ್ತು ಮುಂದಿನ ವ್ಯಕ್ತಿ ನಿಯಮ ಸಮೂಹ ಓದದೆ ಅದನ್ನು ಪರಿಶೀಲಿಸಬಹುದು.

ಫೈರ್‌ವಾಲ್ ಮುಟ್ಟುವ ಮೊದಲು ಮೂರು ಅಗತ್ಯಗಳಲ್ಲಿ ಯಾವುದು ನಿಜವಾಗಿ ನಿಮ್ಮದು ಎಂದು ಬರೆಯಿರಿ. ಮೇಲಿನ ಕಾರ್ಯವಿಧಾನ ನಿಖರ, ಮತ್ತು ತಪ್ಪು ಪದರಕ್ಕೆ ಅನ್ವಯಿಸಿದ ನಿಖರತೆ ಕೇವಲ ದೀರ್ಘವಾದ ಅಡಚಣೆ.

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