Difference between revisions of "Wi-Fi Authentication Service version 2019Jan"
Line 65: | Line 65: | ||
<syntaxhighlight lang=bash> | <syntaxhighlight lang=bash> | ||
git clone https://github.com/supawit/wifi-authen.git | git clone https://github.com/supawit/wifi-authen.git | ||
+ | cd wifi-authen | ||
+ | </syntaxhighlight> | ||
+ | # แก้ไขไฟล์ config.env โดยระบุค่าต่าง ๆ ตามต้องการให้สอดคล้องกับระบบ | ||
+ | <syntaxhighlight lang=bash> | ||
+ | TZ=Asia/Bangkok | ||
+ | MYSQL_HOST=mysql | ||
+ | MYSQL_USER=radius | ||
+ | MYSQL_ROOT_PASSWORD=qwerty1234 | ||
+ | MYSQL_PASSWORD=qwerty1234 | ||
+ | MYSQL_DATABASE=radius | ||
+ | DOMAIN=cnoc.cmu | ||
+ | AD_HOST=10.110.0.107 | ||
+ | MAX_DEVICE=5 | ||
+ | </syntaxhighlight> | ||
+ | # deploy freeradius mysql stack | ||
+ | <syntaxhighlight lang=bash> | ||
+ | docker-compose up -d --build | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 10:19, 9 January 2019
ระบบการยืนยันตัวตนเข้าใช้งานเครือข่ายไร้สายแบบปลอดภัย(WPA/WPA2 Enterprise) ด้วยบัญชีผู้ใช้แบบรวมศูนย์บน Microsoft Windows Server Active Directory พร้อมทั้งการลงทะเบียนหมายเลข MAC Address แบบอัตโนมัติ: กรณีศึกษามหาวิทยาลัยเชียงใหม่ เวอร์ชันปรับปรุง 2562
ความเป็นมา
มหาวิทยาลัยเชียงใหม่ได้ทำการให้บริการเครือข่ายไร้สายในชื่อ Jumbo-Net โดยแต่เดิมให้บริการชื่อจุดเชื่อมต่อ 3 จุดคือ Jumbo-Net, Jumbo-Secure และ Jumbo-Register ซึ่ง Jumbo-Register ใช้ในการลงทะเบียนอุปกรณ์เพื่อใช้งาน Jumbo-Secure ซึ่งใช้ระบบรักษาความปลอดภัยแบบ WPA/WPA2 Enterprise เพื่อสร้าง key และลงทะเบียน MAC Address ส่วน Jumbo-Net เป็นแบบเปิดและเข้าใช้งานด้วยการยืนยันตัวตนผ่านหน้าเว็บ(Web-based Authentication) ซึ่งไม่ค่อยมีความปลอดภัย
ปัญหาและแนวทางแก้ไข
เนื่องจากมหาวิทยาลัยเป็นสถานที่เปิดมีบุคคลทั่วไปเข้าออกเป็นจำนวนมากและในยุคที่ทุกคนต้องการการเชื่อมต่ออินเทอร์เน็ตตลอดเวลาผ่านโทรศัพท์มือถือและอุปกรณ์ต่างๆ การใช้งานแบบ web-based authentication จึงไม่เหมาะสม และเกิดปัญหาคือ
- อุปกรณ์จำนวนมากรวมถึงบุคคลภายนอกที่เข้ามาภายในมหาวิทยาลัย ได้ทำการ associate เข้ากับ SSID แต่ไม่ได้ทำการยืนยันตัวตน ทำให้อุปกรณ์เครือข่ายไร้สายต้องรับภาระงานเพิ่มขึ้นกระทบผู้ใช้ภายใน รวมถึงมีความเสียงด้านความปลอดภัยเนื่องจากไม่ได้เข้ารหัสสัญญาณ
- อุปกรณ์ที่ต้องการเชื่อมต่ออินเทอร์เน็ตประเภทโทรศัพท์มือถือหรือแท็บเล็ตไม่สะดวกต่อการเชื่อมต่อแบบ web-based authentication เหมาะกับ WPA มากกกว่า ระบบเดิมสามารถลงทะเบียน MAC address เพื่อใช้งานได้แค่อุปกรณ์เดียวซึ่งผู้ใช้มีอุปกรณ์หลายอุปกรณ์ที่ต้องการเชื่อมต่ออินเทอร์เน็ตอยู่ตลอดเวลา
จึงมีแนวคิดยกเลิกการให้บริการแบบ web-based authentication และเพื่อให้ง่ายต่อการบริหารจัดการและประสบการณ์การใช้งานของผู้ใช้ที่ดีขึ้นจึงจำเป็นต้องให้ผู้ใช้บริการแบบ WPA ทั้งหมดและยืนยันตัวตนด้วยบัญชีผู้ใช้ CMU IT Account ซึ่งเป็นอีเมลของมหาวิทยาลัยฯ เพื่อให้เกิดเป็น Centralized Authentication ที่ใช้บัญชีเดียวกันกับทุกบริการ และสามารถควบคุมจำนวนอุปกรณ์ของผู้ใช้ได้จึงได้มีการเปลี่ยนแปลงการให้บริการโดยยกเลิก SSID Jumbo-Net เดิมที่เป็น web-based authentication และเปลี่ยนชื่อ SSID Jumbo-Secure มาเป็น @JumboPlus ซึ่งเป็น WPA-Enterprise และปรับปรุงเว็บไซต์ https://jumbo.cmu.ac.th ให้รองรับการลงทะเบียน MAC address โดยผู้ใช้งานสามารถลงทะเบียนใช้งานได้สูงสุด 5 อุปกรณ์หลังจากเปลี่ยนมาใช้งาน @JumboPlus และปิด Jumbo-Net ไปเมื่อต้นเดือนธันวาคม 2556 จะเห็นว่าภาระงานของหน่วยประมวลผลอุปกรณ์ควบคุมการทำงานเครือข่ายไร้สายลดลง
แต่การปิดระบบ web-based authentication ซึ่งผู้ใช้คุ้นเคย จะต้องเตรียมคู่มือไว้ให้พร้อมเนื่องจาก WPA นั้นต้องมีการตั้งค่าที่อุปกรณ์ก่อนในครั้งแรกซึ่งคู่มือและเครื่องมือในการช่วยตั้งค่าบนอุปกรณ์ต่างๆ ในระบบปฏิบัติต่างเช่น iOS, Android, Windows Phone, Windows XP, Windows Vista, Windows 7 , Windows 8 , OSX, Black Berry OS ก็ต้องเผยแพร่บนเว็บไซต์ให้ครบถ้วน
ปรับปรุง 2558
การแก้ปัญหาจาก web authentication มาเป็น WPA-Enterprise นั้นได้เกิดปัญหาเกี่ยวกับการใช้งานเพิ่มขึ้นมานั่นก็คือผู้ใช้งานต้องเข้าสู่ระบบทางเว็บไซต์เพื่อลงทะเบียน mac address ก่อน ซึ่งผู้ใช้ส่วนจะเกิดความสับสนไม่รู้ว่า mac address คืออะไร ทำให้ใช้งานไม่ได้ จึงต้องทำการปรับปรุงให้ระบบลงทะเบียน mac address ให้ผู้ใช้โดยอัตโนมัติ และผู้ใช้สามารถเข้าสู่ระบบเพื่อลบอุปกรณ์เดิมออกเมื่อจำนวนอุปกรณ์ครบกำหนดและต้องการใช้อุปกรณ์ใหม่
ปรับปรุง 2562
ทำการ update version ของ freeradius และ deploy application ผ่านเทคโนโลยี docker เพื่อให้ง่ายต่อการนำไปใช้งาน
บัญชีผู้ใช้ไอทีมหาวิทยาลัยเชียงใหม่(CMU IT Account)
มหาวิทยาลัยเชียงใหม่ได้ใช้ Microsoft Windows Active Directory ในการจัดเก็บบัญชีผู้ใช้ซึ่งเป็นบัญชีเดียวกันกับอีเมลของบุคลากรและนักศึกษา การยืนยันตัวตนบนระบบเครือข่ายไร้สายก็ใช้บัญชี CMU IT Account โดย CMU IT Account จะมีเว็บไซต์ https://account.cmu.ac.th เป็นทั้ง Front-End สำหรับผู้ใช้ในการสร้างและจัดการบัญชี และ Back-End สำหรับผู้ดูแลระบบในการจัดการบัญชี บัญชีที่ถูกสร้างขึ้นจะได้รับกล่องข้อความอีเมลโดยอัตโนมัติ
Workshop
การเชื่อมต่อ
หลักการทำงาน
- ติดตั้ง Active Directory และ Network Policy and Access Service บน Windows Server
- deploy freeradius mysql ที่ตั้งค่าการตรวจสอบฐานข้อมูล MAC Address และลงทะเบียน MAC Address ของผู้ใช้ก่อนแบ่งภาระงานไปยืนยันตัวตนที่ NPS ผ่าน protocol radius ผ่าน docker
- ทดลองใช้ Wi-Fi Client เชื่อมต่อ
ติดตั้ง Active Directory และ Network Policy and Access Service
- Server Manager -> Add roles and features
- จากนั้นกด Next 3 ครั้ง เลือก Active Directory Domain Services และ Network Policy and Access Services แล้วกด Next 4 ครั้งแล้วกด Install
- เมื่อติดตั้งเสร็จให้คลิก Promote this server to a domain controller
- เลือก Add a new forest ระบุ domain แล้วกด Next
- กำหนดรหัสผ่านที่ใช้ใน mode กู้คืนแล้วกด Next ไปเรื่อย ๆ แล้วกด Install และรอระบบ restart
สร้าง self-sign Certificate
- เปิด Powershell แล้วใช้คำสั่ง
New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname wifi-auth.cnoc.cmu
- กรณีที่ NPS มีหลายเครื่องจะต้อง export certificate นี้ไปติดตั้งที่เครื่องอื่น ๆ ด้วย วิธีการ export http://windowsitpro.com/blog/creating-self-signed-certificates-powershell
ตั้งค่า Network Policy and Access Service
- เชื่อม NPS เข้ากับ Active Directory ที่ Server Manager เมนู Tools เลือก Network Policy Server คลิกขวาที่ NPS(Local) เลือก Register server in Active Directory
- สร้าง Policy สำหรับการยืนยันตัวตนเลือก RADIUS server for 802.1X Wireless or Wired Connections จากนั้นกด Configure 802.1X
Type of 802.1X connections เลือกเป็น Secure Wireless Connections แล้วกด Next - ที่ Specify RADIUS Switch กด Add จากนั้นระบุค่า RADIUS Client ให้ตรงกับค่า Ip address ของ Radius Server และกำหนดค่า Share Secret จากนั้นกด OK แล้ว Next
- เลือก Type เป็น Microsoft: Protected EAP (PEAP) จากนั้นกด Configure
เลือก Certificate เป็น wifi-auth.cnoc.cmu แล้วกด OK แล้วกด Next 3 ครั้งแล้วกด Finish - สามารถแก้ไขการตั้งค่าต่างๆ ของ Policy ได้ที่ NPS -> Policy -> ชื่อ จากนั้นให้ดับเบิ้ลคลิกที่ชื่อ Policy
การตั้งค่าเงือนไขการเข้าใช้งานโดยยกเลิกประเภทของอุปกรณ์ปลายทางจากที่รับเฉพาะ 802.11 เป็นอุปกรณ์ใดๆ
การตั้งค่าให้รองรับการยืนตัวตนแบบไม่เข้ารหัสรหัสผ่านสำหรับใช้งานที่ไม่ใช่การยืนยันตัวตนแบบ PEAP
เพิ่มบัญชีผู้ใช้
- เปิด Server Manager -> Tools -> Active Directory Users and Computers
- คลิกขวาที่ cnoc.cmu เลือก New -> Organizational Unit แล้วตั้งชื่อ OU เป็น CMU Users
- คลิกขวาที่ CMU Users เลือก New -> User แล้วระบุรายละเอียด User ตามขั้นตอน
Deploy freeradius
- ที่ Linux Server ทำการ clone script การ deploy
git clone https://github.com/supawit/wifi-authen.git
cd wifi-authen
- แก้ไขไฟล์ config.env โดยระบุค่าต่าง ๆ ตามต้องการให้สอดคล้องกับระบบ
TZ=Asia/Bangkok
MYSQL_HOST=mysql
MYSQL_USER=radius
MYSQL_ROOT_PASSWORD=qwerty1234
MYSQL_PASSWORD=qwerty1234
MYSQL_DATABASE=radius
DOMAIN=cnoc.cmu
AD_HOST=10.110.0.107
MAX_DEVICE=5
- deploy freeradius mysql stack
docker-compose up -d --build