OpenVPN இன் முழு டன்னல் உங்கள் SSH அமர்வை துண்டிக்கிறது: திரும்பும் பாதையை சரிசெய்யுங்கள்
இயல்புநிலை வழி SSH பதில்களை டன்னலுக்குள் அனுப்புகிறது. peer-ஐ பின் செய்யுங்கள், redirect-gateway-ஐ வடிகட்டுங்கள் அல்லது இயந்திரத்தை இழப்பதற்கு முன் மூலத்தின்படி வழிப்படுத்துங்கள்.
நீங்கள் SSH வழியாக அடையும் இயந்திரத்தில் முழு-டன்னல் OpenVPN கிளையண்டை இயக்குவது ஒரு நொடியில் அமர்வை துண்டிக்கலாம், இயந்திரம் எந்த தவறும் செய்யவில்லை. டன்னல் பாக்கெட்டுகள் சேவையகத்தை அடையும் விதத்தை மாற்றாது; பதில்கள் வெளியேறும் விதத்தை மாற்றுகிறது. இயல்புநிலை வழி tun0-ஐ நோக்கியவுடன், உங்கள் SSH கிளையண்டுக்கான பதில் வழங்குநரின் பிணையத்திற்குள் செல்கிறது, அதற்கு உங்கள் முகவரிக்கு திரும்பும் வழி இல்லை. இணைப்பு தொங்குகிறது, அடுத்த முயற்சி நேரம் முடிந்து தோல்வியடைகிறது, டீமன் எல்லா நேரமும் துறைமுகம் 22 இல் கேட்டுக்கொண்டே இருக்கிறது.
VPN பதிவை படிப்பதற்கு முன் வழிப்படுத்தல் அட்டவணையை படியுங்கள். டன்னல் மேலே வந்தது என்று பதிவு சொல்லும், அது சரி. ஒவ்வொரு பதிலும் எந்த இடைமுகத்திற்கு ஒப்படைக்கப்படுகிறது என்பதுதான் கேள்வி, அது டன்னல் இப்போது மீண்டும் எழுதிய அட்டவணையில் ஒவ்வொரு பாக்கெட்டுக்குமான தேடல்.
பதில் தவறான கதவு வழியாக வெளியேறுவது ஏன்
உள்நுழையும் பாக்கெட்டுகள் இன்னும் இயற்பியல் இடைமுகத்திற்கு வருகின்றன, ஏனெனில் VPN கிளையண்ட் இணையம் உங்கள் சேவையகத்தின் பொது முகவரியை அடையும் விதத்தை மாற்ற முடியாது. பதில்கள் தனி முடிவு: ஒவ்வொரு பாக்கெட்டுக்கும் கர்னல் இலக்கை தேடுகிறது, --redirect-gateway க்குப் பிறகு இயல்புநிலை பதிவு டன்னல் என்கிறது. வழங்குநரின் வெளியேற்றம் தான் சேவை செய்யாத இலக்கைக் கண்டு பாக்கெட்டை வீசுகிறது.
OpenVPN இன் சொந்த பாதுகாப்பு சரியாக ஒரு இலக்கை மட்டுமே உள்ளடக்குகிறது. 2.6 கையேடு --redirect-gateway ஐ ஒரு வரிசையாக விவரிக்கிறது: டன்னலுக்கு முன் பயன்படுத்திய நுழைவாயில் வழியாக VPN peer க்கு ஒரு புரவலன் வழியை சேர்க்கிறது, இதனால் மறைகுறியாக்கப்பட்ட போக்குவரத்து தனக்குள் திரும்ப முடியாது, பின்னர் இயல்புநிலை வழியை மாற்றுகிறது. அந்த புரவலன் வழி peer க்கு மட்டுமே. உங்கள் SSH கிளையண்ட் மற்றொரு இணைய முகவரி மட்டுமே, எந்த விதிவிலக்கும் பெறாது.
ஒரு முன்னொட்டு தவறை ஆரம்பத்திலேயே விலக்குவது நல்லது. நீளம் இல்லாத ip route add -net 0.0.0.0 gw 10.8.0.1 dev tun0 ஒரே முகவரி 0.0.0.0 உடன் பொருந்தும், இணையத்துடன் அல்ல; அது 0.0.0.0/0 ஆக இருக்க வேண்டும். இயல்புநிலையை எடுப்பது டன்னலின் சொந்த போக்குவரத்தை உடைத்தால், முடிவு முனையை இயற்பியல் இடைமுகம் வழியாக புரவலன் வழியாக சேர்க்கவும், வழங்குநரின் உண்மையான முகவரியைப் பயன்படுத்தி.
உடனடி பழுதுக்காக உங்கள் SSH கிளையண்ட் முகவரியை பின் செய்யுங்கள்
வேகமான பழுது என்னவென்றால், டன்னல் இருப்பதற்கு முன் சேவையகம் பயன்படுத்திய நுழைவாயில் வழியாக உங்கள் கிளையண்ட் முகவரிக்கு புரவலன் வழி. உங்கள் பக்கத்தில் சேவையகம் காணப்போகும் முகவரியைக் கண்டுபிடித்து, பின்னர் பழைய நுழைவாயிலை அறிய சேவையகத்தின் அட்டவணையை படியுங்கள்:
curl -s https://ifconfig.co
ip route
சேவையகத்தில், கிளையண்ட் தொடங்குவதற்கு முன் விதிவிலக்கைச் சேர்க்கவும். இங்குள்ள முகவரிகள் இடம்காட்டிகள்; வடிவமே முக்கியம்:
sudo ip route add 80.128.240.55 via 192.168.178.1
இது புகாரளிக்கப்பட்ட வழக்கில் பயன்படுத்தப்பட்ட பழுது, உடனடியாக வேலை செய்கிறது. இது இரண்டு ஊகிக்கக்கூடிய வழிகளில் பலவீனமானதும் ஆகும்: மறுதொடக்கத்தில் வழி மறைந்துவிடும், உங்கள் ISP வேறு முகவரி தரும் கணத்தில் அது தவறாகும். இதை அவசர நடவடிக்கையாகக் கருதி வேண்டுமென்றே நீடித்ததாக்குங்கள், பிணைய அலகு அல்லது dispatcher கொக்கி வழியாக, அல்லது இது தற்காலிகமானது என்று ஏற்று மீட்பு பாதையை எழுதி வைக்கவும்.
கிளையன்ட் இயல்புநிலை வழியை எடுக்காமல் தடுங்கள்
மிகத் தூய்மையான தேர்வு, டன்னல் இயல்புநிலை வழியை மாற்றவே அனுமதிக்காதது. route-nopull, --client அல்லது --pull உடன் பயன்படுத்தும்போது, வழிகள், block-outside-dns மற்றும் DNS சேவையகங்கள் போன்ற DHCP பாணி விருப்பங்களைத் தவிர தள்ளப்பட்ட விருப்பங்களை ஏற்கிறது, எனவே தேவையான முன்னொட்டுகளை மட்டும் சேர்க்கிறீர்கள். மேலும் குறுகிய கருவி இழுவை வடிகட்டி, ஒரு சிக்கலான வழிமுறையை வீசி மீதியை வைத்திருக்கிறது:
route-nopull
pull-filter ignore "redirect-gateway"
ஒன்றை அல்லது மற்றொன்றைப் பயன்படுத்துங்கள், இரண்டையும் அல்ல, என்ன மாறுகிறது என்பதைத் தெளிவாக வையுங்கள். டன்னல் வழியாக இயல்புநிலை வழி இல்லாவிட்டால், சேவையகம் இனி வழங்குநர் வழியாக இணையத்தில் உலாவாது; நீங்கள் வெளிப்படையாக வழிப்படுத்தியதை மட்டுமே அடையும். முழு டன்னலே அமைப்பின் முழு நோக்கமாக இருந்தால், இது தவறான சுவிட்ச், மேலே உள்ள புரவலன் வழியே சரி.
திரும்பும் பாதையை மூலம் அல்லது இணைப்பு அடிப்படையில் பிரிக்கவும்
உள்நுழையும் முகவரி நிலையானதாக இருக்கும்போது, மூல விதி டன்னலின் சொந்த வழிகளைத் தொடாமல் பதில்களை உள்ளூரில் வைத்திருக்கிறது. இயற்பியல் இடைமுக முகவரிக்கு LAN முன்னொட்டு மற்றும் இயற்பியல் இயல்புநிலை கொண்ட அதன் சொந்த அட்டவணையைக் கொடுத்து, பின்னர் அதிலிருந்து வரும் போக்குவரத்திற்கு அந்த அட்டவணையைத் தேர்ந்தெடுக்கவும்:
ip rule add from 192.168.1.11 table 128
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1
இது வேலை செய்வதற்குக் காரணம், உள்நுழையும் SSH இணைப்புக்கான பதில்கள் கிளையண்ட் இணைந்த முகவரியிலிருந்தே வருகின்றன. ஒவ்வொரு உள்நுழையும் சேவையும் தொடர்ந்து செயல்பட வேண்டிய புகாரளிக்கப்பட்ட வழக்கு சரியாக இந்த வடிவத்தைப் பயன்படுத்தியது. உள்நுழையும் முகவரி மிதந்தால் அல்லது பாதை மாறும் தன்மையுடையதாக இருந்தால், அதற்குப் பதிலாக இணைப்பைக் குறிக்கவும்: இயற்பியல் இடைமுகத்திலிருந்து வரும் முதல் பாக்கெட்டில் conntrack குறியை வையுங்கள், OUTPUT இல் பதில் பாக்கெட்டுகளுக்கு அதை நகலெடுக்கவும், குறிக்கப்பட்ட பாக்கெட்டுகளை இயற்பியல் நுழைவாயிலை நோக்கி செல்லும் அட்டவணை வழியாக வழிப்படுத்தவும்.
iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234
iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321
ip route add default via 192.168.1.1 dev eth0 table 3412
ip rule add fwmark 4321 table 3412
சோதிக்கும்போது இணைப்புக் குறி, ஃபயர்வால் குறி மற்றும் அட்டவணை எண்ணைத் தனித்தனியாக வைத்திருங்கள். ஒரு எண்ணை இரண்டு பாத்திரங்களுக்கு மீண்டும் பயன்படுத்துவது சரியாகத் தெரியும் ஆனால் தவறான பாக்கெட்டுகளைத் தாக்கும் விதியை உருவாக்குகிறது. அட்டவணையின் இயல்புநிலைப் பதிவுக்கு சாதாரண Ethernet இணைப்பில் LAN நுழைவாயிலுடன் via உம் தேவை; வெறும் dev eth0 இடைமுகம் புள்ளி-முதல்-புள்ளி ஆகும்போது அல்லது அடுத்த தாவல் வேறு வழியில் தீர்க்கப்படும்போது மட்டுமே வேலை செய்யும். புகாரளிக்கப்பட்ட Jessie புரவலன் வெறும் வடிவம் வேலை செய்த இணைப்பில் இருந்தது, அது நகலெடுக்கத் தகுந்த விநியோக விதி அல்ல.
வெளியே பூட்டுப்போகாமல் சரிபார்க்கவும்
இணைப்பைத் துண்டித்து சோதிக்க வேண்டாம். முதல் அமர்வைத் திறந்து வைத்து, டன்னலை மேலே எழுப்பி, உங்கள் சொந்த முகவரி எந்தப் பாதையை எடுக்கும் என்று கர்னலைக் கேளுங்கள்:
ip route get 80.128.240.55
பதில் டன்னலை அல்ல, இயற்பியல் இடைமுகத்தையும் பழைய நுழைவாயிலையும் குறிப்பிட வேண்டும். பின்னர் இரண்டாவது SSH இணைப்பைத் திறக்கவும்; அதுவே உண்மையான சோதனை, ஏனெனில் பழைய அமர்வு புதிய இணைப்பால் மீண்டும் உருவாக்க முடியாத நிலையில் உயிர் பிழைக்கலாம். இரண்டாவது தொங்கும்போது முதல் இன்னும் பதில் தந்தால், விதி முக்கியமான போக்குவரத்தை ஒருபோதும் தாக்கவில்லை, குறிகள் அல்லது மூல முகவரியே பார்க்க வேண்டிய இடம்.
முழுப் பயிற்சியின் போதும் பட்டைக்கு வெளியே ஒரு பணியகத்தைக் கையில் வைத்திருங்கள். நீங்கள் இப்போது உடைத்த டன்னலே ஒரே அணுகு பாதையாகக் கொண்ட சேவையகத்தை அந்த டன்னல் வழியாக சரிசெய்ய முடியாது, நீங்கள் சேர்த்த அட்டவணை எண்களையும் முன்னொட்டுகளையும் எழுதி வைத்திருந்தால் பின்னோக்கி மாற்றுவது எளிது.