विंडोज़ वायर्ड नेटवर्क पर linux 802.1x


11

मैं हमारी कंपनी नेटवर्क पर अपने लिनक्स वर्कस्टेशन का उपयोग करना चाह रहा हूं, लेकिन मैं कुछ मुद्दों पर चल रहा हूं, विशेष रूप से 802.1xi का मानना ​​है।

मैं अपनी मशीन और विंडोज डोमेन एडमिन पर रूट हूं, इसलिए मुझे इस काम के लिए जो भी चाहिए, मैं उस तक पहुंचने में सक्षम होना चाहिए। वर्तमान में मेरी linux मशीन में कनेक्टिविटी प्रतिबंधित है जो मुझे विश्वास दिलाती है कि इसे गैर-802.1x ग्राहकों के लिए डिफ़ॉल्ट vlan में रखा गया है।

मुझे लगता है कि मेरा समग्र प्रश्न यह है: मैं वायर्ड विंडोज़ नेटवर्क पर अपने लिनक्स मशीन का 802.1x उपयोग कैसे कर सकता हूं? नेटवर्क एक विशिष्ट विंडोज़ डोमेन है और मशीन खातों के साथ-साथ उपयोगकर्ता का उपयोग करता है।

यह वही है जिसे मैंने जाना है और अब तक कोशिश की है:

मेरा मानना ​​है कि मुझे मशीन के लिए एक वैध ग्राहक मशीन प्रमाणपत्र, डोमेन के लिए सीए प्रमाण पत्र और ग्राहक के लिए निजी प्रमाण पत्र प्राप्त करने की आवश्यकता है

आइडिया 1, विंडोज मशीन / डोमेन सीए मशीन से एक वैध कुंजी को पकड़ो। मैंने लिनक्स मशीन पर एक विंडोज़ वीएम चलाया, और डोमेन में शामिल हो गया, यह सोचकर कि यह एक वैध क्लाइंट सर्टिफिकेट होगा जिसे मैं लिनक्स मशीन के लिए नायब कर सकता हूं। - उस अंत तक मैंने फिर क्लाइंट सर्टिफ़िकेट और विंडोज़ सीए सर्वर के सीए सर्टिफ़िकेट को निर्यात किया, फिर उन्हें पीईएम प्रारूप में परिवर्तित किया, जो कि लिनक्स पर नेटवर्क मैनेजर के लिए तैयार है (यह मानते हुए कि पीईएम को डीईआर की आवश्यकता नहीं है)। - तब मैंने विंडोज़ वीएम पर निजी कुंजी को प्रमाणित करने का उपयोग करके निर्यात करने का प्रयास किया था, लेकिन इसे गैर निर्यात योग्य के रूप में चिह्नित किया गया था :-(

आइडिया 2 पावरब्रोकर था ... - मैंने डोमेन में लाइनक्स मशीन से जुड़ने के लिए पावरब्रोकर ओपन (औपचारिक रूप से इसी तरह) का इस्तेमाल किया, अब गेटवेड पासव्ड सभी डोमेन उपयोगकर्ताओं को दिखाता है। - मेरी सोच यह थी कि सिस्टम पर क्लाइंट सर्टिफिकेट और प्राइवेट की (कहीं / / ssl / सेरिमनी) की कुंजी लगाई जाएगी? लेकिन मुझे कुछ नहीं मिल रहा है?

विचार 3, किसी ऐसे व्यक्ति से पूछें जो जानता है कि वे वास्तव में क्या कर रहे हैं।

मुझे यह इंगित करना चाहिए कि मूल रूप से इस लिनक्स मशीन पर खिड़कियां थीं (जो कि मैं लिनक्स को स्थापित करने पर P2v'd) इसलिए मुझे पता है कि नेटवर्क स्विच सही सेटअप है, और मैक आदि नेटवर्क पर स्वीकार किया जाता है; मुझे पूरा यकीन है कि यह सिर्फ एक 802.1x मुद्दा है

संपादित करें: पूरी तरह से अपने फेडोरा 21 xfce स्पिन, 64 बिट का उल्लेख करना भूल गया।


आप किस उपद्रवी का उपयोग कर रहे हैं? Xsupplicant, wpa_supplicant या अपना खुद का रोल करना?
ब्रायन

इसके फेडोरा 21 बॉक्स से लगता है, जैसे केवल wpa_supplicant स्थापित है। मैं नेटवर्क मैनेजर का उपयोग करने की कोशिश कर रहा हूं और यद्यपि (xfce डेस्कटॉप के साथ) कनेक्ट करने के लिए।
सेरेक्स

इसके साथ प्रारंभ करें: access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…
ब्रायन

हाँ, कि कम या ज्यादा रकम पहले ही मिल चुकी है। खिड़कियों की मशीनों को देखकर लगता है कि वे MSAPAP v2 के साथ PEAP का उपयोग करते हैं, इसलिए मैंने linux मशीनों पर कोशिश की। ज्यादातर मुझे लगता है कि मैं यह जानने के लिए संघर्ष कर रहा हूं कि कहां / कैसे वैध प्रमाण पत्र प्राप्त करने हैं, और मेरे उपयोगकर्ता नाम को क्या देखना चाहिए ('बॉब' 'bob@domain.com' 'domain \ bob'? मैंने काफी तरीकों से कोशिश की है? यह काम कर रहा है, लेकिन अब तक कोई सफलता नहीं मिली है, यह मेरे पासवर्ड के लिए फिर से फिर से संकेत देता है
Sirex

मैंने CA सर्टिफ़िकेट ('विचार 1') में निर्यात करने की कोशिश की, लेकिन मैं अभी भी पासवर्ड के लिए फिर से तैयार हो गया हूं, और मुझे निश्चित नहीं है कि मैं पीईएम प्रारूप के साथ सही मार्ग से नीचे जा रहा हूं। चेकबॉक्स के लिए भी 'नो सीए सर्टिफिकेट जरूरी है', लेकिन मुझे नहीं पता कि ईडी ऐसा चाहेगा (मैं मान रहा हूं कि सीए को किसी भी तरह से
डिसाइड

जवाबों:


10

बुरी खबर, हर कोई! ऐसा लगता है कि फेडोरा 21 में एक अधूरा बग है: 802.1x PEAP / MSCHAPv2 के साथ वायर्ड कनेक्शन काम नहीं कर रहा है । इसलिए जबकि नीचे दिए गए उत्तर अन्य डिस्ट्रोस के लिए काम कर सकते हैं, फेडोरा 21 उपयोगकर्ता वर्तमान में भाग्य से बाहर हैं।


कभी भी खुद की कोशिश नहीं की, लेकिन इस पोस्ट में लिनक्स क्लाइंट और विंडोज डोमेन के बीच 802.1x स्थापित करने के लिए एक विस्तृत विस्तृत पूर्वाभ्यास शामिल है। प्रमाणपत्र अनुरोध भाग पर ध्यान दें: इसे आपकी गैर-निर्यात योग्य प्रमाणपत्र की समस्या को हल करना चाहिए। सॉफ्टवेयर संस्करण बहुत पुराने हैं ( उबंटू 8.04 है और बियॉन्ड ट्रस्ट के पावर ब्रोकर अभी भी वैसे ही हैं ), लेकिन मूल विचार मुझे ठोस लगता है।

मैंने उपर्युक्त पोस्ट को प्रारूपित किया है ताकि इसे पढ़ना आसान हो सके। कोडिंग ग्रे पर ग्रे होने के लिए कोड बॉक्स बनाती है, इसलिए मैंने इसे बाहर कर दिया, क्षमा करें:


अस्वीकरण: यह गाइड लिनक्स उबंटू 8.04 वितरण के परिप्रेक्ष्य से लिखा गया है। अन्य लिनक्स या यूनिक्स वितरण के साथ इस काम को करने के लिए, कुछ बदलाव करने की आवश्यकता हो सकती है।

802.1x से अधिक प्रमाणित करने के लिए आपके लिनक्स मशीन के लिए आवश्यक दो मुख्य चीजें एक क्लाइंट प्रमाणपत्र और विंडोज डोमेन में एक खाता है। प्रमाणीकरण प्रक्रिया के दौरान, लिनक्स क्लाइंट इसे स्विच करने के लिए कंप्यूटर प्रमाण पत्र प्रस्तुत करता है, जो बदले में इसे RADIUS सर्वर को प्रस्तुत करता है जो प्रमाण पत्र को सत्यापित करता है, और सत्यापित करता है कि कंप्यूटर खाता सक्रिय निर्देशिका में सौंपा गया है। यदि प्रमाणपत्र और कंप्यूटर खाता मान्य है, तो RADIUS सर्वर प्रमाणीकरण अनुरोध को स्विच में वापस भेजने की स्वीकृति देता है, जो बदले में लिनक्स बॉक्स से जुड़े पोर्ट को प्रमाणित करता है।

पहली चीज जो आपके लिए आवश्यक है वह है आपके लिनक्स कंप्यूटर को विंडोज डोमेन में शामिल करना। चूंकि लिनक्स मूल रूप से विंडोज डोमेन में शामिल नहीं हो सकता है, हमें ऐसा करने के लिए आवश्यक सॉफ्टवेयर डाउनलोड करना होगा। इसी तरह हमें यह करने की अनुमति देने के लिए सॉफ्टवेयर बनाता है। उबंटू पर इसे स्थापित करने के लिए यह बहुत सरल है, बस इन चरणों का पालन करें:

  1. sudo apt-get update
  2. sudo apt-get install इसी तरह खुला
  3. sudo domainjoin-cli जुड़ते हैं enter the FQDN of your domain here enter your admin account here, आप प्रारूप का उपयोग कर सकते हैं user@domain.com। आपको GUI संस्करण का उपयोग करने में भी सक्षम होना चाहिएSystem → Administration → Likewise.
  4. sudo update-rc.d इसी तरह खुली चूक
  5. sudo /etc/init.d/likewise-open प्रारंभ

यदि आप उबंटू नहीं चल रहे हैं, तो आप यहां से सॉफ्टवेयर डाउनलोड कर सकते हैं http://www.likewisesoftware.com/products/likewise_open । अब आप अपने डोमेन खाते का उपयोग करके लॉग आउट कर सकते हैं। मेरा मानना ​​है कि या तो user@domain.comडोमेन और उपयोगकर्ता का प्रारूप दोनों काम करते हैं। इसका परीक्षण मैं बाद में करूंगा।

लिनक्स मशीन पर स्थित तीन फाइलें हैं जिन्हें इस प्रमाणीकरण के लिए सही तरीके से कॉन्फ़िगर किया जाना चाहिए। ये तीन फाइलें हैं:

  1. /etc/wpa_supplicant.conf
  2. / Etc / नेटवर्क / इंटरफेस
  3. /etc/openssl/openssl.cnf

पहले हम सॉफ़्टवेयर को कॉन्फ़िगर करेंगे ताकि हमारे लिनक्स मशीन को 802.1x सक्षम नेटवर्क को प्रमाणित करने के लिए क्लाइंट प्रमाणपत्र का उपयोग किया जा सके; wpa_supplicantइसके लिए उपयोग किया जाएगा।

अपनी wpa_supplicant.conf फ़ाइल को कॉन्फ़िगर करने के लिए इन चरणों का पालन करें:

  1. सूदो गेदित /etc/wpa_supplicant.conf
  2. फ़ाइल में निम्न पेस्ट करें और इसे सहेजें:

    # Where is the control interface located? This is the default path:
    ctrl_interface=/var/run/wpa_supplicant
    
    # Who can use the WPA frontend? Replace "0" with a group name if you
    # want other users besides root to control it.
    # There should be no need to chance this value for a basic configuration:
    ctrl_interface_group=0
    
    # IEEE 802.1X works with EAPOL version 2, but the version is defaults 
    # to 1 because of compatibility problems with a number of wireless
    # access points. So we explicitly set it to version 2:
    eapol_version=1
    
    # When configuring WPA-Supplicant for use on a wired network, we don't need to
    # scan for wireless access points. See the wpa-supplicant documentation if you
    # are authenticating through 802.1x on a wireless network:
    ap_scan=0
    
    network={ 
        ssid="<enter any name here, it doesn't matter>" 
        key_mgmt=IEEE8021X 
        eap=TLS 
        identity="<FQDN>/computers/<Linux computer name>" 
        client_cert="/etc/ssl/certs/<your authentication certificate name>.pem" 
        private_key="/etc/ssl/private/<your private key name>.pem" 
    }
    

अब हमें आपकी इंटरफेस फाइल को एडिट करना होगा। अपनी इंटरफेस फ़ाइल को कॉन्फ़िगर करने के लिए इन चरणों का पालन करें:

  1. sudo gedit / etc / नेटवर्क / इंटरफेस
  2. eth0इंटरफ़ेस के नीचे फ़ाइल में पेस्ट करें और इसे सहेजें:

    # Configure the system to authenticate with WPA-Supplicant on interface eth0
    wpa-iface eth0
    
    # In this case we have a wired network:
    wpa-driver wired
    
    # Tell the system we want to use WPA-Supplicant with our configuration file:
    wpa-conf /etc/wpa_supplicant.conf
    

अगला चरण आपके प्रमाणपत्रों को जनरेट और इंस्टॉल करना है। हमें एक स्व-हस्ताक्षरित प्रमाण पत्र उत्पन्न करना होगा, फिर हमारे द्वारा बनाए गए स्व-हस्ताक्षरित प्रमाण पत्र के आधार पर एक प्रमाणपत्र अनुरोध उत्पन्न करें, फिर प्रमाण पत्र स्थापित करें।

नोट: अपने प्रमाण पत्र बनाते समय, जब भी वह आपका नाम पूछता है, तो आपको उस कंप्यूटर का नाम प्रदान करना होगा जो प्रमाणिक होगा। सुरक्षित होने के लिए, मैं यह सलाह देता हूं कि केस मैच संवेदनशील होने के साथ-साथ यह नाम कंप्यूटर से नियत होने के तरीके से मेल खाता है। यदि आप अनिश्चित हैं कि यह आपके कंप्यूटर को कैसे सौंपा गया है, तो एक टर्मिनल खोलें और होस्टनाम टाइप करें।

इन कदमों का अनुसरण करें:

  1. sudo openssl अनुरोध -x509 -nodes -days enter in days how long you want the cert valid for-newkey आरएसए: 1024 -keyout enter a name for your private key/certificate here.pem आउट enter a name for your private key/certificate here.pem

    उदाहरण: sudo opensl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem

  2. openssl अनुरोध -नया -newkey आरएसए: 1024 -nodes -keyout enter a name for your private key here.pem - बाहर enter a name for your certificate request here.pem

    उदाहरण: सुडो खुलता है req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem

आपके द्वारा बनाए गए सभी प्रमाणपत्र आपके घर निर्देशिका ( /home/<username>) में रखे गए हैं । अगला भाग पिछले चरण में बनाए गए प्रमाणपत्र अनुरोध का उपयोग करके अपने सीए से प्रमाण पत्र का अनुरोध करना है। यह एक विंडोज़ मशीन पर करने की आवश्यकता होगी, क्योंकि किसी कारण से लिनक्स और विंडोज को प्रमाण पत्र का अनुरोध करने और डाउनलोड करने के दौरान बहुत अच्छी तरह से नहीं मिलता है; मुझे बस प्रमाणपत्र अनुरोध को ईमेल करना और विंडोज मशीन पर प्रदर्शन करना आसान लगा।

प्रमाणपत्र अनुरोध को पूरा करने के लिए इन चरणों का पालन करें:

  1. लिनक्स मशीन पर अपनी होम निर्देशिका पर जाएं और अपनी प्रमाणपत्र अनुरोध फ़ाइल ढूंढें
  2. या तो फ़ाइल को स्वयं ईमेल करें या फ़ाइल को एक टेक्स्ट एडिटर (जैसे gedit) के साथ खोलें और अनुरोध को ईमेल में कॉपी और पेस्ट करें और स्वयं को भेजें।
  3. Windows क्लाइंट पर, IE का उपयोग करके अपने CA की वेबसाइट (जैसे http://caname/certsrv) के लिए एक वेबपेज खोलें ।
  4. एक प्रमाणपत्र का अनुरोध करें का चयन करें
  5. उन्नत प्रमाणपत्र अनुरोध
  6. अब अपना ईमेल खोलें और प्रमाणपत्र अनुरोध प्राप्त करें जिसे आपने खुद ईमेल किया था।
  7. यदि आपने अपने आप को फ़ाइल ईमेल की है, तो इसे नोटपैड के साथ खोलें और सामग्री को बेस -64 एन्कोडेड प्रमाणपत्र अनुरोध बॉक्स में कॉपी और पेस्ट करें। यदि आपने खुद को फ़ाइल के बजाय प्रमाणपत्र अनुरोध फ़ाइल की सामग्री ईमेल की है, तो बस आधार -64 एन्कोडेड प्रमाणपत्र अनुरोध बॉक्स में अनुरोध को कॉपी और पेस्ट करें।
  8. सबमिट करें पर क्लिक करें और प्रमाण पत्र को बेस -64 फॉर्म में डाउनलोड करें, डीईआर नहीं।
  9. प्रमाणपत्र को अपने डेस्कटॉप पर सहेजें और इसे your Linux machine name.pem नाम दें । सिस्टम स्वचालित रूप .cerसे इसे समाप्त करने के लिए आगे बढ़ेगा , इसलिए बस इसे हटा दें। प्रमाणपत्र एक्सटेंशन के लिए लिनक्स .pem का उपयोग करता है।
  10. इस फ़ाइल को ले जाएं और इसे अपने आप को ईमेल करें।
  11. अब, अपने लिनक्स मशीन पर, अपना प्रमाण पत्र प्राप्त करें और इसे कहीं बचा लें (अधिमानतः अपने घर के फ़ोल्डर को व्यवस्थित और एक साथ रखने के लिए)।
  12. अब, हमें आपके प्रमाणपत्र की प्रतिलिपि बनाने की आवश्यकता है जो आपको अभी आपके /etc/ssl/certsफ़ोल्डर में मिला है , और हमें आपके /etc/ssl/privateफ़ोल्डर में पहले से निर्मित आपकी निजी कुंजी / प्रमाणपत्र और निजी कुंजी की प्रतिलिपि बनाने की आवश्यकता है । अब, केवल रूट को ऐसा करने की अनुमति है, इसलिए आप या तो कमांड लाइन द्वारा टाइप करके sudo cp /home/<username>/<certificate>.pem /etc/ssl/privateया ऐसा कर सकते हैं /etc/ssl/certs। यह GUI से कमांड gksudo का उपयोग करके कॉपी और पेस्ट करके और नॉटिलस में टाइप करके भी किया जा सकता है। नॉटिलस जीयूआई फ़ाइल ब्राउज़र है जिसे उबंटू उपयोग करता है और यह इसे रूट के रूप में चलाएगा जिससे आप उन निर्देशिकाओं को कॉपी और पेस्ट कर सकते हैं जिनकी केवल रूट तक पहुंच है।

अब जब हमारे प्रमाण पत्र जगह में हैं, तो हमें ओपनसेल को यह बताने की आवश्यकता है कि हम प्रमाणपत्रों का उपयोग कैसे करना चाहते हैं। ऐसा करने के लिए, हमें Opensl.cnf फ़ाइल को संपादित करना चाहिए और इसे एक उपयोगकर्ता के बजाय क्लाइंट के रूप में हमारे लिनक्स मशीन को प्रमाणित करने के लिए कहना चाहिए।

यह करने के लिए, इन उपायों का पालन करें:

  1. sudo gedit /etc/ssl/openssl.cnf
  2. लगभग आधे रास्ते तक स्क्रॉल करें और आपको एक सेक्शन देखना चाहिए [usr_cert]। इस खंड में हमें उस स्थान की आवश्यकता है जहां "सामान्य ग्राहक उपयोग के लिए यह विशिष्ट है" केnsCertType रूप में परिभाषित किया गया है , और यह होना चाहिए और यह टिप्पणी की जाएगी। इस लाइन को रद्द करें और ईमेल को हटा दें ताकि यह दिखाई दे । अब फाइल को सेव करें।nsCertType = client, emailnsCertType = client

अब आपके पास एक सब कुछ होना चाहिए जो आपके पास ठीक से कॉन्फ़िगर होना चाहिए एक लिनक्स मशीन विंडोज डोमेन वातावरण में चल रही है और 802.1x का उपयोग करके प्रमाणित है।

अब जो कुछ बचा है वह आपकी नेटवर्किंग सेवा को पुनरारंभ करने के लिए है ताकि लिनक्स उस wpa_supplicant.confफ़ाइल का उपयोग करेगा जो अब आपके eth0इंटरफ़ेस से बंधा हुआ है और प्रमाणित है। तो बस दौड़ो sudo service networking restart। यदि आपका इंटरफ़ेस वापस आने के बाद आपको IP पता नहीं मिलता है, तो आप टाइप करके अपने DHCP सर्वर से मैन्युअल रूप से IP अनुरोध कर सकते हैं sudo dhclient



मैं सिर्फ यह कोशिश की है, और मैं यह कोशिश की जब मैं पहली बार अपने आप को वह लेख मिला। मैं इसे फिर से कोशिश करूँगा, हालांकि शब्द के लिए शब्द, बस मामले में।
सेरेक्स

नहीं, यह काम नहीं कर सकते। मैंने सोचा होगा कि हस्ताक्षरित हस्ताक्षर अनुरोध 'वर्कस्टेशन' होगा, लेकिन मेरे पास केवल 'उपयोगकर्ता' और 'वेब सर्वर' उपलब्ध थे।
सेरेक्स

ठीक है, इसलिए शायद हम दूसरे मार्ग से जा सकते हैं। एक तरीका है, alebit hacky, जो निर्यात किए गए सेर को गैर-निर्यात योग्य के रूप में चिह्नित करता है: github.com/iSECPartners/jailbreak या blog.gentilkiwi.com/mimikatz ( stackoverflow.com/questure/3914882/… )। क्या आप अपने p2v'd विंडोज से एक प्रमाण पत्र हड़पने की कोशिश कर सकते हैं और इसे प्रमाणीकरण के लिए उपयोग कर सकते हैं?
बीट

भागने की एप्लिकेशन मुझे निजी कुंजी को पकड़ने दें। यह मेरे लिए टीएलएस मोड में काम नहीं करता था। PEAP मोड केवल CA सर्टिफिकेट चाहता है - जिसे मैं ca सर्वर / certsrv / url से प्राप्त कर सकता हूं, लेकिन वह डॉस काम भी करता है। शायद यह मेरी 'अनाम पहचान', उपयोगकर्ता नाम और पासवर्ड पसंद नहीं कर रहा है, मुझे लगता है कि यह 'उपयोगकर्ता नाम' या 'username@domain.com' है, लेकिन न तो मेरे लिए काम करता है। मैं संदेश लॉग को पास्तिबिन करूँगा।
सेरेक्स

1
बुरी खबर, हर कोई! ऐसा लगता है कि यह फेडोरा 21 में एक बग है: 802.1x PEAP / MSCHAPv2 के साथ वायर्ड कनेक्शन काम नहीं कर रहा है
बीटक्रैकर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.