கோரிக்கை எப்போதும் அதே வாக்கியத்தின் ஒரு வடிவமே: உலாவலுக்கு VPN-ஐ வைத்திருங்கள், ஆனால் SSH அல்லது காப்புப்பிரதி பணியை சாதாரண இணைப்பைப் பயன்படுத்த அனுமதிக்கவும். இதைப் பற்றி பரவும் ஆலோசனை, அதாவது iptables NAT விதிகளால் துறைமுகத்தை முன்னனுப்புவது, அதைச் செய்யாது. NAT விதி ஒரு ஓட்டத்திற்குள் முகவரிகளையும் துறைமுகங்களையும் மீள்எழுதுகிறது; தொகுப்பு எந்த இடைமுகத்தால் வெளியேறுகிறது என்பதை ஒருபோதும் தேர்ந்தெடுக்காது. அந்த முடிவு வழித்தடத் தேடலுக்கு உரியது, வழித்தடத் தேடலுக்கு ஒரு துறைமுகத்தைப் பார்க்க உதவி தேவை.

சாதாரண வழித்தடம் ஒரு துறைமுகத்துடன் ஏன் பொருந்த முடியாது

லினக்ஸ் இலக்கு முகவரியை அட்டவணையில் தேடி வழித்தடத்தைத் தேர்ந்தெடுக்கிறது, வேட்பாளர் அட்டவணைகள் கொள்கை விதிகளால் வடிகட்டப்பட்ட பிறகு. அந்த விதிகள் ஃபயர்வால் குறி, மூல முகவரி, உள்வரும் இடைமுகம் அல்லது 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ல் வழித்தடம் காணாது, எனவே தோல்வியடையும். அறிகுறி விதி வலையமைப்பை உடைத்தது போல் தோன்றும், உண்மையில் அது தொகுப்புக்கு மீதமிருந்த ஒரே பாதையை அகற்றியது.

முதல் தொகுப்புக்குப் பிறகு இதை இயக்கத்தில் வைப்பது எது

குறிகள் வெளிச்செல்லும் தொகுப்புகளுக்குப் பொருந்தும். பதில் இணைப்பு வழங்கிய முகவரியுடன் இயற்பியல் இடைமுகத்தில் வரும், அந்த இலக்கிற்கு முதன்மை அட்டவணை இன்னும் சுரங்கப்பாதையை விரும்பலாம். இரண்டு பொறிமுறைகள் பதில் பாதையைச் சீராக வைக்கின்றன: இணைப்பு முகவரிக்கான மூல அடிப்படை விதி, மற்றும் ஓட்டத்தின் முழு ஆயுளிலும் முடிவைப் பாதுகாக்கும் connection tracking. குறியை 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 ஆக வரும், ஒரு பயன்பாடு பல்வேறு வகையான பல ஓட்டங்களைத் திறக்கலாம். உண்மையான தேவை இந்த நிரல் சாதாரண இணைப்பைப் பயன்படுத்துவது என்றால், வழியமைப்பு அடுக்கு தவறான இடம்; வலையமைப்பு பெயர்வெளி அல்லது பயன்பாட்டுக்கு ஒரு ப்ராக்ஸி மிகவும் பொருந்தும்.

தேவை இந்த துணை வலையமைப்பு சாதாரண இணைப்பைப் பயன்படுத்துவது என்றால், குறிகளை முழுவதுமாகத் தவிர்த்து மிகவும் குறிப்பிட்ட வழித்தடத்தைச் சேர்க்கவும். இது எளிமையானது, ஒரே அட்டவணையில் தெரிகிறது, அடுத்த நபர் விதித்தொகுப்பைப் படிக்காமல் அதைத் தணிக்கை செய்யலாம்.

ஃபயர்வாலைத் தொடும் முன், மூன்று தேவைகளில் உண்மையில் உங்களுக்கு எது இருக்கிறது என்று எழுதுங்கள். மேலேயுள்ள பொறிமுறை துல்லியமானது, தவறான அடுக்கில் பயன்படுத்தப்படும் துல்லியம் வெறும் நீண்ட இடைநிறுத்தம்.

தொடர்புடைய கட்டுரைகள்