ஒரு சாதாரண Linux பயன்பாடு TUN-ஐத் தொடாமல் VPN-ஐப் பயன்படுத்துகிறது
டீமன் TUN சாதனத்தையும் சுரங்கத்தையும் கொண்டுள்ளது; பயன்பாடுகள் சாக்கெட்டுகளை மட்டுமே திறக்கின்றன. அமைவு சிறப்புரிமையையும் வலைப்பின்னல் அணுகலையும் தனித்தனி எல்லைகளாக வைத்திருங்கள்.
நிறுவப்பட்ட Linux VPN-ஐப் பயன்படுத்தும் உலாவி /dev/net/tun திறப்பதில்லை. அது ஒரு சாக்கெட்டைத் திறக்கிறது, அந்த சாக்கெட்டின் பொதிகள் எந்த இடைமுகம் வழியாக வெளியேறுகின்றன என்பதை கர்னல் தீர்மானிக்கிறது. சுரங்கத்தை உருவாக்கிய செயல்முறை, அது கொண்டு செல்லும் டிராஃபிக்கின் செயல்முறையிலிருந்து வேறு வேலையைச் செய்கிறது. அந்த இரண்டு பாத்திரங்களையும் தனித்தனியாக வைத்திருப்பது பெரும்பாலான அனுமதி கேள்விகளுக்கு அவை கேட்கப்படும் முன்பே பதில் தருகிறது.
சாக்கெட்டிலிருந்து சுரங்கம் வரை ஒரு பொதியைப் பின்தொடருங்கள்
சாதாரண பயன்பாடு connect அல்லது send ஐ அழைக்கிறது, கர்னல் இலக்குக்கான வழியைத் தேடுகிறது. தேர்ந்தெடுக்கப்பட்ட வழி சுரங்கத்தின் இடைமுகத்தைச் சுட்டினால், பொதி VPN டீமன் படிக்கும் சாதனத்தின் வரிசையில் சேர்கிறது. டீமன் அதை மறையாக்கி இயற்பியல் இடைமுகம் வழியாக வெளியே அனுப்புகிறது. அந்த விளக்கத்தில் உள்ள ஒவ்வொரு அம்பும் அனுமதி கேள்விக்கு பதில் சொல்லக்கூடிய இடமாகும்.
அந்த வழியில் பயன்பாடு சாதனத்தை அறிந்திருக்க வேண்டும் என்று எதுவும் கேட்கவில்லை. டீமன் கோப்பு விவரிப்பாளரை வைத்துக்கொண்டு இடைமுக செயல்பாடுகளைச் செய்கிறது, பயன்பாடு சாதாரண வலைப்பின்னல் API-ஐ மட்டும் பார்க்கிறது.
இரு பாதிகளையும் ஒருமுறை வரையுங்கள், அனுமதி கேள்விகளை வைப்பது எளிதாகும். மேல் பாதி பயன்பாடுகளின் உலகம், கீழ் பாதி டீமனுக்கு சொந்தம்.
சாதனம் யாருக்குத் தேவை, யாருக்குத் தேவையில்லை என்பதை முடிவு செய்யுங்கள்
TUN இடைமுகத்தை உருவாக்குவது அல்லது அதனுடன் இணைவது சாதன அணுகல் மற்றும் கூடுதலாக அதை அமைக்கும் திறன் தேவைப்படுகிறது, அதனால்தான் ஆதரவு பெற்ற VPN சேவை வலைப்பின்னல் நிர்வாக அதிகாரத்துடன் தொடங்குகிறது அல்லது சிறப்பு உதவியாளரைப் பயன்படுத்துகிறது. அந்தத் தேவை டீமனுக்கு உரியது. அது உலாவி, தரவுத்தள வாடிக்கையாளர் அல்லது கோப்பு பரிமாற்றக் கருவி பற்றி எதுவும் சொல்லவில்லை. அந்தத் திறன் தேவைப்படும் சேவை அதைத் தனது சொந்த அமைவு படிக்குத் தேவைப்படுகிறது, அதன் வாடிக்கையாளர்களுக்கல்ல.
வழியும் கொள்கையும் இடத்தில் இருந்ததும், சாதாரண செயல்முறை விளைந்த வழியை தனது வழக்கமான சாக்கெட் அழைப்புகள் மூலம் பயன்படுத்துகிறது. அதற்கு சாதன முனை தேவையில்லை, root-உம் தேவையில்லை.
சாதன அனுமதிகளை மாற்றுவது பயன்பாட்டுக்கு இலக்கு அணுகலைத் தரும் வழி அல்ல. அது சாதனத்தின் எல்லையை வேறெங்கோ நகர்த்துகிறது.
பயன்பாடு உண்மையில் இயங்கும் பெயர்வெளியைச் சரிபாருங்கள்
ஒரு கொள்கலன், அல்லது இரண்டாவது வலைப்பின்னல் பெயர்வெளி, அதன் செயல்முறைகளுக்கு தனி இடைமுகத் தொகுப்பையும் வழி அட்டவணையையும் தருகிறது. ஹோஸ்ட்டில் உள்ள சுரங்கம் அங்கு தானாகத் தோன்றாது, சாதன அனுமதிகளில் எந்த மாற்றமும் அதை மாற்றாது. பயன்பாடு அந்தப் பெயர்வெளி வழங்குவதன் வழியாக மட்டுமே வழிமாற்றும். அதனால்தான் கொள்கலன் படிமம் ஹோஸ்ட் சுரங்கத்தை தற்செயலாக மரபுரிமையாகப் பெற முடியாது.
அதை ip netns list மற்றும் ip -n NAME route மூலமோ, செயல்முறையின் பெயர்வெளி இணைப்பைப் பார்த்தோ சரிபாருங்கள். பதில் பொதுவாக ஒரே கட்டளையில் தெரியும்.
ஒரே ஹோஸ்ட்டில் உள்ள இரண்டு பயனர்களுக்கும் கொள்கையால் வெவ்வேறு வழிகளைத் தரலாம். அது வலைப்பின்னல் முடிவு, சாதன உரிமைக்கான சான்று அல்ல.
திறன்களை வலைப்பின்னல் கொள்கையிலிருந்து பிரிக்கவும்
சில கருவிகளுக்கு சாக்கெட்டை விட அதிகம் தேவை. பொதிகளைப் பிடிக்க மூல சாக்கெட் தேவை, வழிகளை மாற்ற நிர்வாக அதிகாரம் தேவை. அவை தனித்தனி அனுமதிகளுடன் தனித்தனி செயல்பாடுகள், ஒன்றைத் தருவதை VPN பயன்படுத்துவதற்கான பொதுத் தேவையாகப் படிக்கக்கூடாது.
தனது சொந்த சுரங்கத்தைச் செயல்படுத்தும் நிரல் மூன்றாவது நிலை. அது டீமனின் பாத்திரத்தை ஏற்பதால் உண்மையில் TUN-ஐத் திறக்கிறது, அதனால்தான் அதற்கு டீமனின் சிறப்புரிமைகள் தேவை.
சிறப்புரிமையைப் பெயரிடும் முன் செயல்பாட்டைப் பெயரிடுங்கள். இரண்டையும் பிரிப்பது பொதுவாகத் தெரிவதை விட எளிது.
இரண்டு கணக்குகளுடன் பிரிவைச் சரிபாருங்கள்
சுரங்கத்தை சேவையாக இணையுங்கள், பின்னர் பயன்பாட்டை சாதாரண பயனராக இயக்கி அது தனிப்பட்ட வளத்தை அடைவதை உறுதிசெய்யுங்கள். அந்தப் பயனரின் ஷெல்லிலிருந்து இலக்குக்கான ip route get ஐச் சரிபார்த்து எந்த இடைமுகம் தேர்ந்தெடுக்கப்பட்டது என்பதைப் பாருங்கள். வழி சரியாக இருந்தும் இணைப்பு இன்னும் தோல்வியடைந்தால், பிரச்சினை கொள்கையில், சிறப்புரிமையில் அல்ல.
விளைவாக வரும் வடிவமைப்பு தெளிவான எல்லையுடன் கூடிய குறைந்தபட்ச சிறப்புரிமை: ஒரு கூறு அமைவையும் சுரங்க வளங்களையும் கொண்டுள்ளது, பணிச்சுமைகள் தங்கள் சாதாரண கணக்குகளைத் தக்கவைத்துக்கொள்ளும், வலைப்பின்னல் கொள்கை எது கடக்கலாம் என்பதை முடிவு செய்கிறது. எல்லாவற்றையும் root ஆக இயக்குவது அந்தப் பாத்திரங்களை எதுவும் விளக்காமல் உடைத்தெறிகிறது.