.Vpn फ़ाइल पर आधारित ओपनवीपीएन एक्सेस के लिए Google प्रमाणक का उपयोग करके 2-कारक को कैसे सक्षम किया जाए?


11

मेरे पास एक ओपन वीपीएन सेटअप है जहां उपयोगकर्ताओं के पास डेबियन वीएम पर ओपन वीपीएन चलाने वाले शेल खाते नहीं हैं। Googling के दौरान मुझे जो लेख मिले वे सभी में शास्त्रीय * निक्स उपयोगकर्ता (उदाहरण के लिए, उपयोगकर्ता के घर निर्देशिका में प्रामाणिक बाइनरी निष्पादित करने की आवश्यकता) के लिए Google प्रमाणक स्थापित करने के निर्देश हैं।

क्या डॉक्यूमेंट यह बताता है कि ओपनवपन सर्वरों के लिए Google प्रमाणक को कैसे एकीकृत .ovpnकिया जाए जो क्लाइंट साइड पर उपयोग की जाने वाली फाइलों पर आधारित हो ?

मैंने https://github.com/evgeny-gridasov/openvpn-otp को देखा , लेकिन इसके लिए अभी भी Google प्रमाणक को कॉन्फ़िगर करने की आवश्यकता है।


क्या समस्या Google प्रमाणक के नामांकन या पासवर्ड दर्ज करने की आवश्यकता है?
कॉर्नेलिनक्स

जवाबों:


4

बेशक आप ऐसा नहीं कर सकते। यह 2FA के उद्देश्य को हरा देगा। आपके सर्वर के पास उपयोगकर्ता क्रेडेंशियल्स को सत्यापित करने का एक तरीका होना चाहिए , और इस जानकारी को नेटवर्क पर नहीं भेजा जाना चाहिए (यानी। आप केवल क्लाइंट का उपयोग नहीं कर सकते हैं। फाइल फ़ाइल)।

जबकि आपको आवश्यक रूप से यूनिक्स उपयोगकर्ता बनाने की आवश्यकता नहीं है, लेकिन आपको अपने उपयोगकर्ताओं को सर्वर पर अपने सत्यापन कोड स्थापित करने चाहिए। आप वर्चुअल उपयोगकर्ताओं के साथ sftp का उपयोग उनके पहले से जारी प्रमाण पत्र, क्लाइंट साइड (म्युचुअल) प्राधिकरण, CIFS (सांबा) के साथ https, या TLS एक्सटेंशन के साथ अच्छा पुराना ftp या किसी अन्य तरीके से कर सकते हैं, जो सर्वर को उपयोगकर्ताओं द्वारा बनाए गए सत्यापन कोड की जानकारी देता है। । संचार चैनल सुरक्षित (एन्क्रिप्टेड) ​​स्थानीय होना चाहिए।

स्वाभाविक रूप से यदि आपके उपयोगकर्ता अपनी फ़ाइलें अपलोड करते हैं, तो आप Openvpn-otp द्वारा उपयोग की गई कुल फ़ाइल आधारित क्रेडेंशियल्स का उपयोग नहीं कर सकते हैं। सौभाग्य से हमारे पास लिनक्स उत्कृष्ट सुरक्षा मॉड्यूल पाम का उपयोग करके एक और (और बहुत बेहतर) विकल्प है।

सबसे पहले, आपको ऊपर बताए गए तरीकों में से एक द्वारा Google-प्रमाणक द्वारा बनाई गई उपयोगकर्ता फ़ाइलों को एक निर्देशिका में एकत्र करना होगा। हमारे मामले में यह / etc / google-Cort होगा।

आपको यहां सभी फ़ाइलों के लिए एकल उपयोगकर्ता-आईडी लागू करना होगा , क्योंकि आपके पास वास्तविक उपयोगकर्ता नहीं हैं। इसे ओपेनवोन होने दें । अनुमतियाँ 0400 (-r --------) होनी चाहिए। पाम दुनिया / समूह पठनीय साख (निश्चित रूप से) को पसंद नहीं करते हैं। आप इसे आसानी से सांबा, अपाचे, एफटीपी या सबसे खराब स्थिति में क्रोन टैब (अनुशंसित नहीं) का उपयोग करके लागू कर सकते हैं।

परीक्षण के उद्देश्य के लिए, बस यह करें:

mkdir /etc/google-auth
apt-get install libpam-google-authenticator
google-authenticator
# set up as you wish, save image and/or codes
mv ~/.google_authenticator /etc/google-auth/some_username
chown -R openvpn /etc/google-auth

उसके बाद आप ओपनवीपीएन को लिबपाम के खिलाफ प्रमाणित करने के लिए कहेंगे, जिसका अपना स्वयं का गूगल मॉड्यूल है। इसे अपने Openvpn सर्वर फ़ाइल में जोड़ें:

plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn

यह कहता है कि हम pam ऑरिजनल आईडी Openvpn के साथ pam ऑथेंटिकेशन विधि का उपयोग करेंगे ।

अब, Openvpn के लिए pam सेटअप बनाएं। संपादित करें /etc/pam.d/openvpn:

auth    requisite       /lib/security/pam_google_authenticator.so secret=/etc/google-auth/${USER}  user=openvpn
account    required     pam_permit.so

यहां हम कहते हैं कि सफल Google प्रमाणीकरण के बिना हम तुरंत (अपेक्षित) विफल हो जाते हैं, हम डिफ़ॉल्ट $ $ गृह /। हमारे उपयोगकर्ताओं के साथ। अगली पंक्ति में हम कहते हैं कि हम सफल प्रमाणीकरण के बाद सभी को कनेक्ट करने की अनुमति देते हैं। बेशक आपको यहां अपनी अनुमति नीति लागू करनी चाहिए। आप संबंधित उपयोगकर्ताओं को संबंधित pam मॉड्यूल के साथ फ़ाइल, mysql db या ldap द्वारा नियंत्रित कर सकते हैं।

इसे अपने Openvpn क्लाइंट फ़ाइल में जोड़ें

   auth-user-pass
   auth-nocache
   reneg-sec 0

हम उपयोगकर्ता-उपयोगकर्ता-पास का उपयोग करते हैं ताकि ओपनवैप क्लाइंट को यूज़रनेम और पासवर्ड के लिए पूछ सकें। हमें कैशिंग पसंद नहीं है ("पासवर्ड" बदल रहा है) और समय-समय पर फिर से बातचीत उसी कारण से हमारे लिए खराब है।

उसके बाद आपको ओपेनवोन-ओटीपी के बिना कनेक्ट करने में सक्षम होना चाहिए। कृपया इस पर विचार करें कि यह अधिक लचीली विधि है, क्योंकि यदि आप चाहें तो पाम कंट्रोल फाइलों में बहुत ही जटिल नियमों को लागू कर सकते हैं। आप उदाहरण के लिए उन प्रमाणपत्रों को छूने के बिना अपने mysql या ldap निर्देशिका के आधार पर उपयोगकर्ताओं को सक्षम / अक्षम कर सकते हैं।


1

सेटअप: उबंटू सर्वर पर 2FA (Google प्रमाणक) के साथ OpenVPN सर्वर 18.04.4 रास्पबेरी पाई हार्डवेयर के लिए LTS: रास्पबेरी पाई 3 मॉडल B + Rev 1.3

  • आपको कोई सक्रिय 2FA लॉगिन सेटअप (मेरा केस someuser) के साथ एक लिनक्स उपयोगकर्ता के साथ लॉगिन करना होगा
  • निम्नलिखित कमांड दर्ज करें
sudo apt install libqrencode3 libpam-google-authenticator
google-authenticator
sudo mv /home/someuser/.google_authenticator /etc/google-auth/someuser
sudo chown -R root /etc/google-auth
  • निम्न फ़ाइल को अपनी Openvpn कॉन्फ़िग फ़ाइल (मेरे मामले /etc/openvpn/server/server.conf में) जोड़ें
plugin /usr/lib/aarch64-linux-gnu/openvpn/plugins/openvpn-plugin-auth-pam.so  openvpn
  • फ़ाइल /etc/pam.d/openvpn बनाएं और इसे निम्न सामग्री से भरें
# Google Authenticator
auth    requisite       /lib/aarch64-linux-gnu/security/pam_google_authenticator.so secret=/etc/google-auth/someuser user=root
account    required     pam_permit.so
  • अपने Openvpn क्लाइंट फ़ाइल में निम्न 3 पंक्तियाँ जोड़ें
auth-user-pass
auth-nocache
reneg-sec 0
  • Openvpn सेवा को पुनरारंभ करें और एक परीक्षण चलाएं
systemctl restart openvpn@server
  • जब OpenVPN क्लाइंट के साथ कनेक्शन (विंडोज़ 10 में) आपको एक अतिरिक्त लॉगिन मिलता है (उपयोगकर्ता: someuser / पासवर्ड: 'Google प्रमाणक से ओटीपी')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.