WireGuard வழியாக ஒரு செயலி: பிணைப்பு என்பது வழியமைத்தல் அல்ல
ஒரு செயலியை wg0 உடன் பிணைப்பது அதன் மூல முகவரியை மட்டுமே அமைக்கிறது. டன்னலின் வழித்தடங்களைக் கொண்ட அட்டவணையும், அந்த மூலத்தை அங்கு அனுப்பும் விதியும் கர்னலுக்கு இன்னும் தேவை.
இந்த அமைப்பு ஒவ்வொரு செயலிக்கும் ஒரு சுவிட்ச் போலத் தெரிகிறது, எனவே மக்கள் கிளையண்டை WireGuard இடைமுகத்துடன் பிணைத்து, அந்தக் கிளையண்ட் மட்டுமே டன்னலைப் பயன்படுத்தும் என எதிர்பார்க்கிறார்கள். பிணைப்பு உண்மையில் செய்வது மூல முகவரியைத் தேர்ந்தெடுப்பதே. பின்னர் கர்னல் இலக்குக்கான வழித்தடத்தைத் தேடி, வழக்கமான இயல்புநிலை வழித்தடத்தைக் கண்டுபிடித்து, டன்னலின் முகவரியை இணைத்து, பாக்கெட்டை இயற்பியல் இணைப்பு வழியாக அனுப்புகிறது. அந்த மூல முகவரிக்குத் தேர்ந்தெடுக்கப்பட்ட வழித்தடம் மட்டுமே நோக்கத்தை நிறைவேற்றுகிறது.
இந்த இயங்குமுறைக்கு இரண்டு பகுதிகள் உள்ளன: டன்னலின் போக்குவரத்து மட்டுமே பயன்படுத்த வேண்டிய வழியமைத்தல் அட்டவணை, மற்றும் பொருந்தும் மூலத்தை அங்கு அனுப்பும் விதி.
பிணைப்பு மூல முகவரியை மட்டும் அமைக்கிறது
கொள்கை விதிகளுக்கு அந்தத் தேடலை வேறு பக்கம் திருப்ப வாய்ப்பு கிடைத்த பிறகு, லினக்ஸ் வழியமைத்தல் அட்டவணையில் இலக்கைத் தேடி வெளியேறும் இடைமுகத்தைத் தேர்ந்தெடுக்கிறது. மூல முகவரி, ஃபயர்வால் குறி, உள்வரும் இடைமுகம், UID அல்லது ஒரு போர்ட் வரை விதிகள் தேர்ந்தெடுக்கலாம்; ஒவ்வொன்றும் எல்லாப் போக்குவரத்துக்கும் பதிலாக இந்தப் போக்குவரத்து எனச் சொல்வதற்கான இன்னொரு வழி. VPN கிளையண்டின் உள்ளமைவு டன்னலின் வழித்தடங்களைக் கொண்ட அட்டவணையைத் தேர்ந்தெடுக்கிறது; எந்தப் போக்குவரத்து அதைப் பார்க்க அனுமதிக்கப்படுகிறது என்பதை விதி தேர்ந்தெடுக்கிறது. பிணைப்பு மட்டும் இரண்டையும் தராது.
அதனால்தான் இந்தத் தோல்வி மிக விசித்திரமாகத் தெரிகிறது. செயலி நிச்சயமாக டன்னலின் முகவரியைப் பயன்படுத்துகிறது, டன்னல் நிச்சயமாக இயங்குகிறது, போக்குவரத்து நிச்சயமாக தவறான இடைமுகம் வழியாக வெளியேறுகிறது. ஒவ்வொரு கூற்றும் உண்மை, ஒன்றாக அவை முகவரியை வழித்தடத்துடன் இணைத்த எதுவும் இல்லாத அமைப்பை விவரிக்கின்றன.
டன்னலுக்கு அதன் சொந்த அட்டவணையைக் கொடுங்கள்
wg-quick சுயவிவரம் சொல்லும் இடத்தில் வழித்தடங்களை நிறுவுகிறது. [Interface] கீழ் Table = 40 சேர்த்தால் அவை முதன்மை அட்டவணைக்குப் பதிலாக அட்டவணை 40 க்குச் செல்லும். இடைமுகத்தை மேலேற்றி அவை வந்தடைந்ததை உறுதிசெய்யுங்கள்: ip -4 route ls table 40 டன்னலின் வழித்தடங்களைக் காட்ட வேண்டும், ip -4 route get 10.66.127.142 கர்னல் இப்போது அவற்றில் ஒன்றை எவ்வாறு தீர்க்கிறது என்பதைக் காட்டுகிறது. வழித்தடங்கள் அவற்றின் சொந்த அட்டவணையில் இருந்தால், முதன்மை அட்டவணை மற்ற அனைத்துக்கும் தொடர்ந்து செயல்படும்.
அகலமான முன்னொட்டைப் பொருத்துவதற்குப் பதிலாக IPv6 க்கும் இதையே செய்யுங்கள். ip -6 rule add from fd00::2/128 lookup 40 ஒரு முகவரியைப் பிடிக்கிறது; fc00::/8 ஹோஸ்ட்டின் பிற இடைமுகங்களுடன் மோதி, நோக்கத்தை விட அதிகம் பொருந்தும் விதியை உருவாக்கலாம்.
மூல விதியைச் சேர்த்து கவுண்டர்களைப் பாருங்கள்
பின்னர் இரு பகுதிகளையும் இணையுங்கள்: ip -4 rule add from 10.66.127.142/32 lookup 40, அதே முகவரி WireGuard இடைமுகத்தில் இணைக்கப்பட்ட நிலையில். இரு விதிகளையும் PostUp இல் வையுங்கள், மீண்டும் இணையும்போது அவை மீட்டமைக்கப்படும். அமைப்பால் அல்ல, உண்மையான கோரிக்கையால் சரிபாருங்கள்: ip route get 1.1.1.1 from 10.66.127.142 டன்னல் சாதனத்தைப் பெயரிட வேண்டும், curl --interface wg0 ifconfig.me வீட்டு முகவரிக்குப் பதிலாக டன்னலின் முகவரியைத் தெரிவிக்க வேண்டும்.
இன்னும் தோல்வியுற்றால் ip -s rule படியுங்கள். இருக்கும் ஆனால் ஒருபோதும் பொருந்தாத விதி பூஜ்ஜிய கவுண்டர்களைக் காட்டுகிறது, அதுவே தவறான விதியை விதியே இல்லாததிலிருந்து வேறுபடுத்துகிறது. அந்த ஒரு கட்டளை செயலி அதன் இடைமுக அமைப்பைப் புறக்கணித்ததா என்பதைப் பற்றிய பல ஊகங்களைச் சேமிக்கிறது.
எதிர் நிலை: SSH ஐ டன்னலுக்கு வெளியே வையுங்கள்
எதிர் சிக்கலும் அதே அளவு பொதுவானது: wg-quick இயல்புநிலை வழித்தடத்தை வைத்திருக்கிறது, மேலும் சேவையகத்துக்கான SSH அமர்வு இடையிலேயே இறக்கிறது. அதன் விதிகள் குறைந்த முன்னுரிமை எண்ணில் அமைகின்றன, எனவே விதிவிலக்கு அவற்றுக்கு முன் மதிப்பிடப்பட வேண்டும். ip rule add dport 22 ipproto tcp table main priority 123 சமீபத்திய iproute2 இல் அதைச் செய்கிறது; தேர்வி கிடைக்காத இடத்தில் nftables இல் ஓட்டத்தைக் குறித்து, அதற்குப் பதிலாகக் குறியைப் பொருத்துங்கள்.
திரும்பும் பாதையையும் சரிபாருங்கள். நிறுவப்பட்டு பின்னர் அமைதியாகும் SSH அமர்வில் பொதுவாக சமச்சீரற்ற வழியமைத்தல் இருக்கும்: ஒரு திசை டன்னல் வழியாகவும் மற்றது இயற்பியல் இடைமுகம் வழியாகவும் வெளியேறும். சேவையக முகவரிக்கான ip route get பதில் எந்தப் பக்கம் செல்லும் என்பதைச் சொல்லும்.
அட்டவணை எண், மூல விதி மற்றும் விதிவிலக்கை சுயவிவரத்திலேயே பதிவு செய்யுங்கள். மூன்றும் ஒரே வடிவமைப்பைச் சேர்ந்தவை, ஒன்றாகத் திருத்தப்படும்.