nc -uz ஆல் OpenVPN சேவையகம் தயாராக இருப்பதை நிரூபிக்க முடியாதது ஏன்
எதுவும் கேட்காதபோதும் UDP netcat சோதனை வெற்றியைத் தெரிவிக்கிறது, எனவே OpenVPN சேவையகம் தயாராக இருப்பதை அது நிரூபிக்க முடியாது. செயல்முறை, பதிவு, கேட்பான் மற்றும் உண்மையான வாடிக்கையாளரைச் சரிபார்க்கவும்.
இயக்குவது nc -uz ஒரு OpenVPN சேவையகத்திற்கு எதிராக எதையும் கிட்டத்தட்ட அளவிடுவதில்லை, மேலும் OpenBSD கையேடு அதன் எச்சரிக்கைகளில் இதைச் சொல்கிறது: அந்த முறையில் UDP ஸ்கேன்கள் எதுவும் கேட்கிறதோ இல்லையோ வெற்றியைத் தெரிவிக்கின்றன. வெளியேறும் நிலை தொலை நிலையை அல்ல, உள்ளூர் அனுப்பலைப் பிரதிபலிக்கிறது, எனவே அதை நம்பும் மேற்பார்வையாளர் செயல்முறை அட்டவணை நம்பத்தகுந்ததாகத் தோன்றும் வரை இறந்த சேவையகத்தை ஆரோக்கியமானதாகக் குறித்து வைத்திருப்பார். அதை மாற்றுவது சோதனை எந்தக் கேள்விக்கு பதிலளிக்க வேண்டும் என்பதைத் தீர்மானிப்பதில் தொடங்குகிறது, ஏனெனில் செயல்முறை, கேட்பான், அங்கீகாரம் மற்றும் பயன்பாட்டு அணுகல் ஆகியவை நான்கு வெவ்வேறு கவனிப்புகள். அவற்றில் ஒன்றைப் பெயரிடும் சோதனை பயனுள்ளது; நான்கையும் குறிக்கும் சோதனை சுமையாகும்.
UDP சோதனை எதைக் கவனிக்க முடியும், எதை முடியாது
nc -uz ஒரு தரவுப்பொதியை அனுப்பி வெளியேறுகிறது, அது திருப்பித் தரும் நிலை உள்ளூர் அனுப்பலை விவரிக்கிறது. மூடிய துறை ICMP port unreachable உடன் பதிலளிக்கக்கூடும், ஆனால் இந்த ஸ்கேன் முறையின் ஆவணப்படுத்தப்பட்ட நடத்தை அதைத் தோல்வியாக மாற்றாது, வடிகட்டப்பட்ட துறை எந்தப் பதிலையும் தராது. எனவே அமைதியும் வெற்றியும் அழைப்பவருக்கு ஒரே பொருளைத் தருகின்றன.
இது சோதனையை சேவையகத்தின் அல்ல, உள்ளூர் ஸ்டாக்கின் சோதனையாக மாற்றுகிறது. ஹோஸ்ட் அணுகக்கூடியது, துறை பிணைக்கப்பட்டது, OpenVPN செயல்முறை இயங்குகிறது அல்லது வாடிக்கையாளர் அங்கீகரிக்க முடியும் என்பதை இது நிறுவுவதில்லை. TCP இணைப்புச் சோதனை வலுவானது, ஏனெனில் கைக்குலுக்கல் தெளிவான பதிலைத் தருகிறது, ஆனால் பயன்பாடு உண்மையில் TCP இல் கேட்கும்போது மட்டுமே. அதே எண்ணில் சோதனையை TCP ஆக மாற்றுவது இருக்காத ஒரு கேட்பானைச் சோதிக்கிறது, UDP மட்டும் உள்ள சேவையகத்திற்கு எதிராக அது ஆரோக்கியமான சேவையைத் தோல்வியடையச் செய்யும்.
சோதனையை உள்ளமைக்கப்பட்ட போக்குவரத்துடன் பொருத்துவது இரு முடிவுகளில் எதையும் நம்புவதற்கு முன் வருகிறது. UDP பயன்பாட்டிற்கு வேறு சமிக்ஞை தேவை, வேறு நெறிமுறை அல்ல.
மூன்று அழைப்பவர்கள், மூன்று வெவ்வேறு கேள்விகள்
தயார்நிலை யார் கேட்கிறார் என்பதைப் பொறுத்தது. செயலிழந்த செயல்முறையை மறுதொடக்கம் செய்யும் சேவை மேலாளர் நிகழ்வு தொடங்கி அதன் கேட்பானைப் பிணைத்தது என்பதை அறிய வேண்டும். சுமை சமநிலைப்படுத்தி இப்போது வரும் வாடிக்கையாளர் ஏற்கப்படுவார் என்பதை அறிய வேண்டும். கண்காணிப்பு அமைப்பு உண்மையான வலையமைப்பிலிருந்து வரும் பாதை இன்னும் அனுமதிக்கப்பட்ட வளத்திற்கு அமர்வை எடுத்துச் செல்கிறது என்பதை அறிய வேண்டும்.
இவை ஒரே சோதனை அல்ல, ஒரு சோதனை மூன்றையும் நேர்மையாக மூட முடியாது. முதலில் அழைப்பவரைத் தேர்ந்தெடுக்கவும், பின்னர் ஆதாரத்தை.
தற்போதைய நிகழ்விலிருந்து சோதனையை உருவாக்குங்கள்
நிகழ்வு துவக்கத்தை முடிக்கும்போது OpenVPN ஒரு தொடக்க வரியை எழுதுகிறது, அந்த வரி உள்ளூர் துவக்கம் பற்றிய பயனுள்ள ஆதாரம். அதை தற்போதைய துவக்கத்திலிருந்து படியுங்கள், சேர்க்கப்படும் கோப்பின் முடிவிலிருந்து அல்ல, ஏனெனில் கடந்த வாரத்தின் வெற்றி ஒரு நிமிடத்திற்கு முன்பு வெற்றியைப் போலவே படிக்கப்படுகிறது. எந்த வாடிக்கையாளரும் எப்போதும் இணைவதற்கு முன்பே சேவையகம் துவக்கத்தை முடிக்கக்கூடும், எனவே வரி அங்கீகாரம் பற்றி எதையும் சொல்லாது.
தொடக்கச் சோதனைக்கு, செயல்முறையின் நிலையை தற்போதைய பதிவு ஆதாரம் மற்றும் உள்ளமைக்கப்பட்ட போக்குவரத்துடன் பொருந்தும் கேட்பானுடன் இணைக்கவும். செயல்முறை இயங்கினாலும் துவக்கத்தை முடிக்கவில்லை என்றால் சோதனை தோல்வியடைய வேண்டும், அதாவது பதிவு வினவல் இந்த துவக்கம் மற்றும் இந்த அலகுக்கு மட்டுப்படுத்தப்பட வேண்டும்.
systemctl is-active openvpn@server
sudo journalctl -u openvpn@server -b --no-pager | grep "Initialization Sequence Completed"
ss -lunp | grep 1194
மூன்று வெளியீடுகள், மூன்று கூற்றுகள்: அலகு செயலில் உள்ளது, இந்த துவக்கம் துவக்க வரியை உருவாக்கியது, ஏதோ UDP துறையைப் பிடித்துள்ளது. அவற்றில் எதுவும் வாடிக்கையாளர் இணைக்க முடியும் என்று சொல்லவில்லை. நிலைப் பக்கத்தில் அவற்றைத் தனித்து வைக்கவும், ஒரு சம்பவம் ஒரே பச்சைப் புள்ளியாகச் சுருங்காமல்.
அதை வேண்டுமென்றே உடையுங்கள், சோதனையைப் பாருங்கள்
ஒரு சோதனை தோல்வியடைவதைப் பார்த்த பின்பே அது நம்பகமானது. சேவையகத்தை நிறுத்தி, சோதனையை இயக்கி, எதிர்பார்க்கும் முடிவை உறுதிப்படுத்துங்கள். பின்னர் அதை மீண்டும் தொடங்கி, வேறு எந்த மாற்றமும் இல்லாமல் சோதனை மீள்கிறது என்பதை உறுதிப்படுத்துங்கள்.
sudo systemctl stop openvpn@server
nc -uz 203.0.113.10 1194; echo "exit=$?"
ss -lunp | grep 1194
sudo systemctl start openvpn@server
ss -lunp | grep 1194
தொகுதியை வரி வரியாகப் படியுங்கள். netcat கட்டளை exit=0 என்று அச்சிடுகிறது, அப்போது எதுவும் பிணைக்கப்படவில்லை, ஒரே வரியில் முழுப் பிரச்சினையும் அதுவே. முதல் ss எதையும் அச்சிடவில்லை, மறுதொடக்கம் வெற்றி பெறுகிறது, இரண்டாவது ss மீண்டும் கேட்பானைக் காட்டுகிறது. நிறுத்தப்பட்ட சேவையகத்திற்கு எதிராக உங்கள் சோதனை வெற்றி பெற்றால், அது உள்ளூர் ஸ்டாக்கை அளக்கிறது, வேறு எதையும் அல்ல.
எதிர் தோல்வியும் முக்கியம். ஆரோக்கியமான சேவையகத்திற்கு எதிராக தோல்வியடையும் சோதனை ஒருபோதும் தேவைப்படாத மறுதொடக்கங்களை ஏற்படுத்துகிறது, மறுதொடக்கச் சுழற்சி தானே ஒரு இடையூறு. சோதனை அதன் அடிப்படையில் செயல்படக்கூடிய எதனுடனும் இணைப்பதற்கு முன் இரு திசைகளையும் சோதிக்கவும்.
நிலை வரி என்ன சொல்ல வேண்டும்
ஒவ்வொரு சோதனையும் எந்த எல்லையை மூடுகிறது என்பதைப் பதிவு செய்யுங்கள்: செயல்முறை, கேட்பான், அங்கீகாரம் அல்லது பயன்பாடு. ஒரு சோதனை ஒன்றுக்கு மேல் அரிதாகவே மூடுகிறது, அவற்றை “up” ஆக அழுத்தும் நிலைப் பக்கம் சம்பவத்தின் போது முக்கியமான வேறுபாட்டை மறைக்கிறது. வலையமைப்புப் பாதைக்கு அர்ப்பணிக்கப்பட்ட அடையாளம் கொண்ட உண்மையான வாடிக்கையாளரைப் பயன்படுத்துங்கள், கைக்குலுக்கல் மற்றும் ஒரு தீங்கற்ற அனுமதிக்கப்பட்ட செயல்பாட்டை முடிக்க விடுங்கள், பின்னர் துண்டிக்கவும். இது ஒரே படியில் கட்டுப்பாட்டு சேனல், அங்கீகாரக் கொள்கை மற்றும் கேட்பானைப் பயிற்சி செய்கிறது.
அந்த அடையாளத்தை உண்மையான பயனர்களிடமிருந்து தனித்து வைத்து, சோதனைக்குத் தேவையான குறைந்தபட்ச அனுமதிகளைக் கொடுங்கள். பரந்த அணுகலுடன் கூடிய தயார்நிலைச் சோதனை வசதிக்காகச் சேர்க்கப்பட்ட புதிய தாக்குதல் மேற்பரப்பு. மற்ற எந்தக் கணக்கையும் போல அதன் சான்றுகளைச் சுழற்றுங்கள், ஏனெனில் அங்கீகாரத்தை நிறுத்தும் சோதனை வாடிக்கையாளர்களை ஏற்பதை நிறுத்திய சேவையகத்தைப் போலவே தெரிகிறது.
எச்சரிக்கை உரையில் எல்லையைப் பெயரிடுங்கள், முதல் பதிலளிப்பவர் அலகு, சாக்கெட், சான்றிதழ் அல்லது பாதையைப் பார்க்க வேண்டுமா என்பதை அறியட்டும். தான் நிரூபித்ததைச் சொல்ல முடியாத சோதனை தவறான காரணத்திற்காக நம்பப்படும், netcat சோதனை முதலிலேயே அப்படியே தப்பிப் பிழைத்தது.