ข่าวร้ายทุกคน! มันดูเหมือนว่ามีข้อผิดพลาดไม่เจาะจงใน Fedora 21: การเชื่อมต่อแบบมีสาย 802.1x PEAP / MSCHAPv2 ไม่ทำงาน ดังนั้นในขณะที่คำตอบด้านล่างอาจใช้งานได้กับผู้อื่น distros, ผู้ใช้ Fedora 21 ไม่โชคดี
ไม่เคยลองด้วยตัวเอง แต่โพสต์นี้ดูเหมือนจะมีคำแนะนำอย่างละเอียดสำหรับการตั้งค่า 802.1x ระหว่างไคลเอนต์ Linux และโดเมน Windows หมายเหตุส่วนคำขอใบรับรอง: ควรแก้ปัญหาของใบรับรองที่ไม่สามารถส่งออกได้ เวอร์ชันซอฟต์แวร์ค่อนข้างเก่า ( Ubuntuคือ 8.04 และPower Broker ของ Beyond Trustยังคงเหมือนเดิม ) แต่แนวคิดพื้นฐานนั้นดูแข็งแกร่งสำหรับฉัน
ฉันจัดรูปแบบโพสต์ข้างต้นเพื่อให้อ่านง่ายขึ้น การอ้างอิงทำให้กล่องรหัสเป็นสีเทาบนสีเทาดังนั้นฉันจึงนำออกมาขอโทษ:
คำเตือน:คู่มือนี้เขียนจากมุมมองของการแจกจ่าย Linux Ubuntu 8.04 เพื่อให้สามารถใช้งานกับลีนุกซ์หรือลีนุกซ์อื่น ๆ , จำเป็นต้องทำการเปลี่ยนแปลงบางอย่าง
สองสิ่งสำคัญที่จำเป็นสำหรับเครื่อง Linux ของคุณในการตรวจสอบความถูกต้องมากกว่า 802.1x คือใบรับรองไคลเอ็นต์และบัญชีในโดเมน Windows ในระหว่างกระบวนการตรวจสอบสิทธิ์ไคลเอนต์ Linux จะแสดงใบรับรองคอมพิวเตอร์ของสวิตช์ซึ่งจะแสดงให้กับเซิร์ฟเวอร์ RADIUS ที่ตรวจสอบใบรับรองและตรวจสอบบัญชีคอมพิวเตอร์ที่ใบรับรองถูกกำหนดให้ใน Active Directory หากใบรับรองและบัญชีคอมพิวเตอร์นั้นถูกต้องเซิร์ฟเวอร์ RADIUS จะอนุมัติคำขอการตรวจสอบสิทธิ์ที่ส่งกลับไปที่สวิตช์ซึ่งจะตรวจสอบสิทธิ์พอร์ตที่เชื่อมต่อกับกล่อง Linux
สิ่งแรกที่ต้องทำคือการเข้าร่วมคอมพิวเตอร์ Linux ของคุณกับโดเมน Windows เนื่องจาก Linux ไม่สามารถเข้าร่วมโดเมน Windows ได้เราจึงต้องดาวน์โหลดซอฟต์แวร์ที่จำเป็นเพื่อให้เราสามารถทำได้ ในทำนองเดียวกันซอฟต์แวร์จะทำให้เราสามารถทำสิ่งนี้ได้ หากต้องการติดตั้งบน Ubuntu มันง่ายมากเพียงทำตามขั้นตอนเหล่านี้:
- sudo apt-get update
- sudo apt-get install เช่นเดียวกัน
- sudo domainjoin-CLI เข้าร่วมคุณอาจจะใช้รูปแบบ
enter the FQDN of your domain here
enter your admin account here
user@domain.com
คุณควรจะสามารถใช้เวอร์ชัน GUI ได้โดยไปที่System → Administration → Likewise.
- sudo update-rc.d เป็นค่าเริ่มต้นเช่นเดียวกัน
- sudo /etc/init.d/likewise-open start
ถ้าคุณไม่ได้ใช้ Ubuntu คุณสามารถดาวน์โหลดซอฟแวร์ที่นี่http://www.likewisesoftware.com/products/likewise_open ตอนนี้คุณสามารถออกจากระบบและลงชื่อกลับเข้าใช้บัญชีโดเมนของคุณ ฉันเชื่อว่าทั้งฟอร์แมตuser@domain.com
และโดเมน \ user ทำงานได้ทั้งคู่ ฉันจะทดสอบในภายหลัง
มีสามไฟล์ที่อยู่บนเครื่อง Linux ที่ต้องกำหนดค่าอย่างถูกต้องเพื่อให้การรับรองความถูกต้องเกิดขึ้น สามไฟล์เหล่านี้คือ:
- /etc/wpa_supplicant.conf
- / etc / เครือข่าย / อินเตอร์เฟซ
- /etc/openssl/openssl.cnf
ก่อนอื่นเราจะกำหนดค่าซอฟต์แวร์เพื่อให้เครื่อง Linux ของเราใช้ใบรับรองไคลเอ็นต์เพื่อรับรองความถูกต้องกับเครือข่ายที่เปิดใช้งาน 802.1x; wpa_supplicant
จะถูกใช้สำหรับสิ่งนี้
ทำตามขั้นตอนเหล่านี้เพื่อกำหนดค่าไฟล์ wpa_supplicant.conf ของคุณ:
- sudo gedit /etc/wpa_supplicant.conf
วางสิ่งต่อไปนี้ลงในไฟล์และบันทึก:
# 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"
}
ตอนนี้เราต้องแก้ไขไฟล์อินเตอร์เฟสของคุณ ทำตามขั้นตอนเหล่านี้เพื่อกำหนดค่าไฟล์อินเตอร์เฟสของคุณ:
- sudo gedit / etc / network / interfaces
วางสิ่งต่อไปนี้ลงในไฟล์ภายใต้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
ขั้นตอนต่อไปคือการสร้างและติดตั้งใบรับรองของคุณ เราจะต้องสร้างใบรับรองที่ลงนามเองแล้วสร้างคำขอใบรับรองตามใบรับรองที่ลงนามด้วยตนเองที่เราสร้างขึ้นจากนั้นติดตั้งใบรับรอง
หมายเหตุ:เมื่อสร้างใบรับรองของคุณทุกครั้งที่ขอชื่อคุณต้องระบุชื่อคอมพิวเตอร์ที่จะตรวจสอบสิทธิ์ เพื่อความปลอดภัยฉันขอแนะนำให้ตั้งชื่อให้ตรงกับที่กำหนดไว้ในคอมพิวเตอร์รวมทั้งคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ หากคุณไม่แน่ใจว่าคอมพิวเตอร์ได้รับมอบหมายให้เปิดเทอร์มินัลแล้วพิมพ์ชื่อโฮสต์
ทำตามขั้นตอนเหล่านี้:
sudo OpenSSL req -x509 -nodes -Days enter in days how long you want the cert valid for
-newkey RSA 1024 -keyout enter a name for your private key/certificate here
.pem ท์enter a name for your private key/certificate here
.pem
ตัวอย่าง: sudo openssl req -x509 -nodes -days 365 -newkey rsa: 1024 -keyout privcert.pem -out privcert.pem
OpenSSL req ใหม่ -newkey RSA 1024 -nodes -keyout enter a name for your private key here
.pem - ออกenter a name for your certificate request here
.pem
ตัวอย่าง: sudo openssl req -new -newkey rsa: 1024 -nodes -keyout privkey.pem -out certreq.pem
ใบรับรองทั้งหมดที่สร้างขึ้นจะอยู่ในไดเรกทอรีหลักของคุณ ( /home/<username>
) ส่วนถัดไปคือการขอใบรับรองจาก CA ของคุณโดยใช้การร้องขอใบรับรองที่สร้างขึ้นในขั้นตอนก่อนหน้า สิ่งนี้จะต้องทำบนเครื่อง Windows เพราะด้วยเหตุผลบางประการ Linux และ Windows ก็ไม่เข้ากันได้ดีเมื่อขอและดาวน์โหลดใบรับรอง ฉันเพิ่งพบว่าการส่งคำร้องขอใบรับรองทางอีเมลนั้นง่ายกว่าและดำเนินการบนเครื่อง Windows
ทำตามขั้นตอนเหล่านี้เพื่อทำคำขอใบรับรองให้เสร็จสมบูรณ์:
- ไปที่โฮมไดเร็กตอรี่ของคุณบนเครื่อง Linux และค้นหาไฟล์คำขอใบรับรองของคุณ
- ส่งอีเมลไฟล์ถึงคุณเองหรือเปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความ (เช่น gedit) และคัดลอกและวางคำขอลงในอีเมลและส่งให้กับตัวคุณเอง
- บนไคลเอนต์ Windows ให้เปิดเว็บเพจโดยใช้ IE ไปยังเว็บไซต์ของ CA (เช่น
http://caname/certsrv
)
- เลือกร้องขอใบรับรอง
- การร้องขอใบรับรองขั้นสูง
- ตอนนี้เปิดอีเมลของคุณและรับคำขอใบรับรองที่คุณส่งอีเมลถึงตัวเอง
- หากคุณส่งไฟล์ด้วยตัวคุณเองให้เปิดด้วย notepad แล้วคัดลอกและวางเนื้อหาลงในกล่องร้องขอใบรับรองที่เข้ารหัส Base-64 หากคุณส่งอีเมลเนื้อหาของไฟล์คำขอใบรับรองแทนไฟล์เองให้เพียงคัดลอกและวางคำขอจากที่นั่นลงในช่องร้องขอใบรับรองที่เข้ารหัส Base-64
- คลิกส่งและดาวน์โหลดใบรับรองในแบบฟอร์ม Base-64 ไม่ใช่ DER
- บันทึกใบรับรองไปยังเดสก์ท็อปของคุณและตั้งชื่อเป็น
your Linux machine name
. pem ระบบจะผนวกส่วนท้ายโดยอัตโนมัติ.cer
ดังนั้นเพียงแค่ลบออก Linux ใช้. pem สำหรับส่วนขยายใบรับรอง
- นำไฟล์นี้แล้วส่งกลับไปที่อีเมลของคุณ
- ในตอนนี้บนเครื่อง Linux ของคุณรับใบรับรองและบันทึกไว้ที่ไหนสักแห่ง (โดยเฉพาะโฟลเดอร์บ้านของคุณเพื่อจัดระเบียบและร่วมกัน)
- ตอนนี้เราจำเป็นต้องคัดลอกใบรับรองที่คุณเพิ่งได้รับไปยัง
/etc/ssl/certs
โฟลเดอร์ของคุณและเราจำเป็นต้องคัดลอกคีย์ส่วนตัว / ใบรับรองและคีย์ส่วนตัวที่สร้างไว้ก่อนหน้าใน/etc/ssl/private
โฟลเดอร์ของคุณ ตอนนี้รากเท่านั้นที่มีสิทธิ์ในการทำเช่นนี้เพื่อให้คุณสามารถทำเช่นนี้โดยบรรทัดคำสั่งโดยการพิมพ์หรือsudo cp /home/<username>/<certificate>.pem /etc/ssl/private
/etc/ssl/certs
สิ่งนี้สามารถทำได้จาก GUI โดยการคัดลอกและวางโดยใช้คำสั่ง gksudo และพิมพ์ใน nautilus Nautilus เป็นเบราว์เซอร์ไฟล์ GUI ที่ Ubuntu ใช้และมันจะเรียกใช้เป็นรูทช่วยให้คุณสามารถคัดลอกและวางไปยังไดเรกทอรีที่รูทเท่านั้นที่เข้าถึงได้
ตอนนี้ใบรับรองของเราพร้อมใช้งานแล้วเราต้องบอก openssl ว่าเราต้องการใช้ใบรับรองอย่างไร ในการทำเช่นนี้เราจะต้องแก้ไขไฟล์ openssl.cnf และบอกให้พิสูจน์ตัวตนเครื่องลีนุกซ์ของเราในฐานะไคลเอนต์แทนที่จะเป็นผู้ใช้
โดยทำตามขั้นตอนต่อไปนี้:
- sudo gedit /etc/ssl/openssl.cnf
[usr_cert]
เลื่อนลงไปประมาณครึ่งทางและคุณจะเห็นส่วนที่เรียกว่า ในส่วนนี้เราต้องการตำแหน่งที่nsCertType
ถูกกำหนดเป็น"สำหรับลูกค้าทั่วไปใช้สิ่งนี้เป็นเรื่องปกติ"และมันควรจะมีnsCertType = client, email
และมันจะถูกใส่ความคิดเห็น uncomment nsCertType = client
บรรทัดนี้และลบอีเมลเพื่อที่จะแสดงให้เห็นว่า ตอนนี้บันทึกไฟล์
ตอนนี้คุณควรมีทุกสิ่งที่คุณต้องการกำหนดค่าอย่างเหมาะสมเพื่อให้เครื่อง Linux ทำงานในสภาพแวดล้อมโดเมน Windows และรับรองความถูกต้องโดยใช้ 802.1x
สิ่งที่เหลืออยู่ในตอนนี้คือการรีสตาร์ทบริการเครือข่ายของคุณเพื่อให้ Linux จะใช้wpa_supplicant.conf
ไฟล์ที่เชื่อมโยงกับeth0
ส่วนต่อประสานและพิสูจน์ตัวตนของคุณ sudo service networking restart
ดังนั้นเพียงแค่เรียกใช้ หากคุณไม่ได้รับที่อยู่ IP หลังจากที่อินเตอร์เฟซของคุณกลับมาคุณสามารถขอใช้ IP จากเซิร์ฟเวอร์ DHCP sudo dhclient
ของคุณโดยการพิมพ์