OpenVPN கடவுச்சொல்லை முனையத்திலிருந்து படிக்கிறது, stdin இலிருந்து அல்ல
OpenVPN உண்மையில் கடவுச்சொல்லை எங்கே படிக்கிறது, stdin இல் உள்ள கோப்பு ஏன் தோல்வியடைகிறது, மற்றும் Linux, macOS இல் ஸ்கிரிப்ட் உள்நுழைவுக்கான மூன்று ஆதரவு வழிகள்.
OpenVPN கட்டுப்பாட்டு முனையத்தில் பயனர்பெயரையும் கடவுச்சொல்லையும் கேட்கிறது, நிலையான உள்ளீட்டுக்கு திருப்பிவிடப்பட்ட கோப்பு அந்த முனையம் அல்ல. கடவுச்சொல் குழாய்க்குள் இருந்தும் ஸ்கிரிப்ட் தேங்குவதற்கு இந்த ஒரு விவரமே விளக்கம். கேள்வியை வாடிக்கையாளர் வரைகிறார், படித்தல் முனைய சாதனத்திலிருந்து நடக்கிறது, எனவே stdin திருப்பிவிடுவது எதையும் மாற்றாது. வாடிக்கையாளருக்கு அதன் ஆவணப்படுத்தப்பட்ட உள்ளீட்டு வழிகளில் ஒன்றின் வழியே ஊட்டுங்கள், அதே ஸ்கிரிப்ட் முதல் முயற்சியிலேயே இணையும்.
மூன்று வழிகள் கிட்டத்தட்ட எல்லா நிலைகளையும் அடக்குகின்றன, ஒவ்வொன்றும் தன் வழியில் தோல்வியடைகிறது. வாடிக்கையாளர் உண்மையில் காட்டும் கேள்வியை வைத்துத் தேர்ந்தெடுங்கள், ஸ்கிரிப்ட் செய்ய எளிதான விருப்பத்தை வைத்து அல்ல.
கேள்வி stdin இலிருந்து வருவதில்லை
OpenVPN க்கு சான்றுகள் தேவைப்படும்போது கட்டுப்பாட்டு முனையத்தைத் திறந்து அங்கே படிக்கிறது. அதனால்தான் ஊடாடும் சோதனை நன்றாகத் தெரிகிறது, ஆனால் cron அல்லது unit கோப்பின் கீழ் அதே கட்டளை யாரும் பார்க்காத பதிவில் கேள்வியை எழுதி அசையாமல் நிற்கிறது. சில கட்டுமானங்கள் முனையம் இல்லாதபோது நிலையான உள்ளீட்டுக்குத் திரும்புகின்றன, அந்த முரண்பாடு கடினமான தோல்வியை விட மோசமானது, ஏனெனில் அது பயன்பாட்டுக்கு வரும் வரை சிக்கலை மறைக்கிறது.
எந்தக் குறியீட்டையும் எழுதுவதற்கு முன் சூழலைச் சரிபாருங்கள்: திட்டமிடுபவர் அல்லது சேவை மேலாளர் பயன்படுத்தும் அதே பயனர், அதே stdin உடன் வாடிக்கையாளரை இயக்குங்கள். கேள்வி ஒருபோதும் பதிவில் தெரியவில்லை என்றால், செயல்முறை முன்னேறவில்லை என்றால், இல்லாத முனையத்திற்காக ஏதோ காத்திருக்கிறது.
முதல் வழி: இரண்டு வரி சான்று கோப்பு
அங்கீகார விருப்பம் ஒரு பாதையை எடுக்கிறது, கோப்பில் சரியாக இரண்டு வரிகள் உள்ளன, முதலில் பயனர்பெயர் பின்னர் கடவுச்சொல், வேறு எதுவும் இல்லை. இயல்புநிலை கோப்புப்பெயரை நம்பாமல் பாதையை வெளிப்படையாகத் தாருங்கள், ஏனெனில் வேலை அடைவில் கிடக்கும் சான்று கோப்புதான் தவறான கணக்கு பயன்பாட்டுக்கு வரும் வழி. பயன்முறையை 0600 ஆக வைத்து, வாடிக்கையாளரை இயக்கும் கணக்கிற்கு உரிமையைத் தாருங்கள்.
வாடிக்கையாளர் அந்தக் கோப்பைத் தொடக்கத்தில் ஒரு முறை படிக்கிறது, எனவே கடவுச்சொல்லை சுழற்றுவது செயல்முறையை மீண்டும் தொடங்குவதாகும். பொதுவாக அதுவே நீங்கள் விரும்பும் நடத்தை, அது சுழற்றும் நடைமுறையின் அருகில் runbook இல் இருக்க வேண்டும்.
இரண்டாவது வழி: விசையின் கடவுச்சொற்றொடருக்கு askpass
கடவுச்சொற்றொடரால் பாதுகாக்கப்பட்ட தனிப்பட்ட விசை இரண்டாவது, வேறுபட்ட கேள்வியை எழுப்புகிறது, அதற்கு அதன் சொந்த கோப்பு அடிப்படையிலான பதில் உள்ளது: askpass விருப்பம் கோப்பின் முதல் வரியிலிருந்து சொற்றொடரைப் படிக்கிறது. SSH அடிப்படையிலான சுரங்கங்களுக்கு சமமானது வாடிக்கையாளர் இயக்கும் askpass நிரல், அதன் நிலையான வெளியீடு ரகசியமாகிறது.
எந்த வடிவமும் ரகசியத்தை வாதங்கள் பட்டியலில் வைக்கவில்லை, இரண்டும் அதை கோப்பாக அல்லது அதை அச்சிடும் இயக்கக்கூடிய நிரலாக இருக்க விடுகின்றன. பாதுகாப்பு கோப்பு அனுமதிகளும் செயல்முறை உரிமையும், மறைவு அல்ல. குறியீட்டில் எழுதப்பட்ட சரத்தை மீண்டும் ஒலிக்கும் உதவியாளர் கூடுதல் படிகளுடன் கூடிய ரகசியம்.
மூன்றாவது வழி: போர்ட்டல் வாடிக்கையாளரின் சொந்த CLI
நிறுவன வாடிக்கையாளர்கள் பொதுவாக எந்தச் சாளரமும் இல்லாமல் பெயரிடப்பட்ட போர்ட்டலுடன் இணைக்கும் கட்டளை-வரி நுழைவுப் புள்ளியை வழங்குகிறார்கள், அதுவே ஆதரவு வழி. Linux இல் GlobalProtect வாடிக்கையாளர் தன் CLI வழியே இணைப்பு மற்றும் சான்றிதழ் இறக்குமதி செயல்பாடுகளை வழங்குகிறது, சான்றிதழ் அங்கீகாரம் பயன்படுத்தும் போர்ட்டல்கள் தானியங்கி இணைப்பு வேலை செய்யும் முன் இறக்குமதி படியைக் கோருகின்றன. செயற்கையான விசை அழுத்தங்களை விட அதைத் தேர்ந்தெடுங்கள்: உண்மையான வெளியேறும் நிலை கிடைக்கிறது, சாளர கவனம் சார்ந்திருக்கவில்லை, பூட்டப்பட்ட திரையிலும் தாக்குப்பிடிக்கிறது.
முதல் இணைப்புக்கு இன்னும் சான்றிதழை ஏற்க ஒரு மனிதர் தேவைப்பட்டால், தானியக்கம் முடியவில்லை. அமைப்பின் போதே இறக்குமதி செய்து அதை முன்நிபந்தனையாகப் பதிவு செய்யுங்கள்.
ஓட்டத்திற்கு போலி-முனையம் தேவைப்படும்போது
முதலில் கடவுச்சொல் பின்னர் ஒரு-முறை குறியீடு கேட்கும் வரிசைக்கு படிக்க ஒரே கோப்பு இல்லை. Expect போன்ற முனைய இயக்கி சரியான கருவி, ஏனெனில் அது ஒவ்வொரு வடிவத்திற்கும் முறையாகக் காத்திருக்கிறது, எதையும் பொருத்துவதற்கு முன் செயல்முறை தொடங்கியிருக்க வேண்டும்.
இரண்டு தோல்விகள் மேலோங்குகின்றன. வாடிக்கையாளரைத் தொடங்காமல் கேள்விக்குக் காத்திருக்கும் ஸ்கிரிப்ட் என்றென்றும் காத்திருக்கிறது, Tcl ஒரு shell அல்ல, எனவே expect தொகுதிக்குள் எழுதப்பட்ட shell கணக்கு படிப்பதுபோல் மதிப்பிடப்படுவதில்லை. வடிவங்களை உருவாக்கும்போது பிழைத்திருத்தக் கொடியை இயக்கி வைத்திருந்து, பின்னர் அணையுங்கள்.
கசியும் ரகசியங்கள், அவை எங்கே ஒளிகின்றன
வாதமாக வழங்கப்படும் எதுவும் செயல்முறை பட்டியலில் தெரிகிறது, எனவே சான்றுகள் கோப்பிலோ உதவியாளருக்குப் பின்னோ இருக்க வேண்டும், ஒருபோதும் கட்டளை வரியில் அல்ல. ஒரு-முறை குறியீடுகள் வடிவமைப்பின்படி செலவாகின்றன, ஒவ்வொரு முயற்சிக்கும் உருவாக்க வேண்டும். தோல்விப் பதிவுகள் பெரும்பாலும் பயனர்பெயரையும் சில நேரம் அதற்கு மேலும் கொண்டிருக்கின்றன, எனவே எங்கும் அனுப்பும் முன் அவற்றை மறைக்கவும், ரகசியத்தை சுயவிவரத்திற்கு வெளியே வைக்கவும், ஏனெனில் உள்ளே கடவுச்சொல் கொண்ட கட்டமைப்பு கோப்பு பயணச்சீட்டுகளிலும் களஞ்சியங்களிலும் ஒட்டப்படுகிறது. பின்னர் கணக்கைச் சுழற்றுவது ஒவ்வொரு நகலையும் வேட்டையாடுவதாகும், அந்தச் செலவைத்தான் இந்த ஏற்பாடு தவிர்க்கிறது.
நீங்கள் தேர்ந்தெடுத்த வழிகளைத் தணிக்கை செய்து, பின்னர் வாடிக்கையாளரை உண்மையில் இயக்கப்போகும் unit கோப்பு அல்லது திட்டமிடுபவருடன் இணைக்கவும். சுரங்கம் அந்தச் செயல்முறை வாழும் வரை மட்டுமே வாழ்கிறது.