มารู้จักกับ RADIUS กัน
คือ วิธีการมาตรฐานของการแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ที่ควบคุมการใช้งานเน็ตเวิร์ค (Network Access Server) กับผู้ใช้งาน (Access Clients) และอุปกรณ์ที่ทำหน้าที่ตรวจสอบสิทธิ์การใช้งาน (Radius Server)
องค์ประกอบพื้นฐานของ RADIUS Server
1. Access Clients
คือ เครื่องคอมพิวเตอร์หรืออุปกรณ์ที่ผู้ใช้งานสั่งให้ติดต่อระบบเพื่อใช้งาน เช่น เครื่องคอมพิวเตอร์ที่ลูกค้า Individual ใช้งาน โดยใช้ โปรแกรม Dial-Up Net working สั่งงาน Modem ให้ Connect เพื่อใช้งานอินเทอร์เน็ต
2. Network Access Servers (NAS )
คือ อุปกรณ์ที่ทำหน้าที่เชื่อมต่อและจัดการการติดต่อระหว่าง Access Clients และ RADIUS Server ซึ่ง NAS จะทำหน้าที่เป็น Client เชื่อมต่อกับ RADIUS Server ส่งผ่านและจัดการข้อมูลที่ใช้ในการตรวจสอบสิทธิ์ กำหนดสิทธิ์ ของ Access Clients เมื่อ Access Clients ร้องขอการต่อเชื่อมซึ่งจะต้องต่อเชื่อมมายัง NAS ผ่านโพรโตคอลที่ใช้ในการต่อเชื่อมต่าง ๆ เช่น PPP (Point-to-Point Protocol), SLIP (Serial Line Internet Protocol), Extensible Protocol อื่น ๆ เป็นต้น
ซึ่งจำเป็นต้องมีการส่งผ่าน Username และ Password จาก Access Clients มายัง NAS หลังจากนั้น NAS จะส่งข้อมูลที่จำเป็นต่าง ๆ เช่น Username, Password, NAS IP Address, NAS Port Number และข้อมูลอื่น ๆ ไปที่ RADIUS Server เพื่อขอตรวจสอบสิทธิ์ (Request Authentication)
3. RADIUS Server
ทำการตรวจสอบสิทธิ์โดยใช้ข้อมูลที่ NAS ส่งมา (Access-Request) กับข้อมูลที่จัดเก็บไว้ใน RADIUS Server เอง หรือจากฐานข้อมูลภายนอก อื่น ๆ เช่น MS SQL Server, Oracle Database, LDAP Database หรือ RADIUS Server อื่น (ซึ่งเรียกการส่งผ่านการตรวจสอบสิทธิ์แบบนี้ว่า Proxy)
ในกรณีที่ข้อมูลทั้งหมดถูกต้อง RADIUS Server จะส่งผลยินยอมการเชื่อมต่อ (Access-Accept) หรือ ไม่ยินยอม (Access-Reject) ในกรณีที่ข้อมูลไม่ถูกต้อง แก่ NAS หลังจากนั้น NAS จะเชื่อมต่อหรือยกเลิกการการต่อเชื่อมตามผลที่ได้รับจาก RADIUS Server ซึ่งตามปรกติแล้ว NAS จะขอบันทึกข้อมูลต่าง ๆ เช่น วันที่ เวลา Username และข้อมูลอื่น ๆ ไปที่ RADIUS Server (Accounting Request) เพื่อให้ RADIUS Sever จัดเก็บข้อมูลหรือส่งต่อไปที่ RADIUS Server อื่น จัดเก็บเพื่อใช้ในการประมวลผลอื่น ๆ ต่อไป
RADIUS Package
คือ ข้อมูลที่ถูกส่งหรือรับระหว่าง RADIUS Server และ RADIUS Client (หมายถึง NAS) มีรูปแบบที่ถูกกำหนดไว้ตามมาตรฐานของ RFC 2685 Remote Authentication Dial In User Service (RADIUS) และ 2866 RADIUS Accounting.
มีคุณสมบัติดังนี้
เป็นข้อมูลที่ส่งหรือรับกันระหว่าง RADIUS Server และ RADIUS Client
อยู่ในรูปแบบของการร้องขอและตอบกลับ (Request /Response) คือ RADIUS Client ส่งการร้องขอไปยัง RADIUS Server และ RADIUS Server ตอบกลับการร้องขอของ RADIUS Client
แต่ละ Package จะต้องระบุจุดประสงค์ของการติดต่อ คือ Authentication หรือ Accounting
แต่ละ Package จะบรรจุข้อมูลที่เรียกว่า Attributes ซึ่งใช้ในการตรวจสอบสิทธิ์กำหนดสิทธิ์ และเก็บบันทึกการใช้งาน
การกำหนดค่าเบื้องต้น
สำหรับ RADIUS Server และ Client
RADIUS Server
กำหนดเพื่อให้ RADIUS Server สามารถติดต่อกับ RADIUS Client แต่ละตัวได้ ซึ่งมีข้อมูลที่ต้องกำหนดให้ RADIUS Server ดังนี้
IP Address ของ NAS
RADIUS shared secret
ยี่ห้อ และ รุ่นของ NAS ที่ใช้ในกรณีที่ไม่มีหรือไม่ทราบให้เลือกเป็น – Standard Radius -.
** RADIUS Server จำเป็นต้องระบุ UDP Port เพื่อใช้สำหรับรับและส่ง Authentication และ Accounting Package ระหว่าง RADIUS Server และ RADIUS Client
RADIUS Client
ต้องกำหนดค่าต่าง ๆ บน NAS เพื่อให้สามารถติดต่อกับ RADIUS Server ซึ่งต้องกำหนดค่าต่าง ๆ เหล่านี้บน NAS ทุกตัวที่ติดต่อกับ RADIUS Server
IP Address ของ RADIUS Server
RADIUS shared secret
UDP Port เพื่อใช้สำหรับส่งและรับ Authentication และ Accounting Package
** สำหรับ RADIUS shared secret และ UDP Port จะต้องกำหนดให้ตรงกับที่ระบุไว้ที่ RADIUS Server
RADIUS Shared Secret
ใช้สำหรับตรวจสอบความถูกต้องของการติดต่อระหว่าง RADIUS Server กับ RADIUS Client ซึ่ง Shared Secret จะเป็นตัวหนังสือ (ตัวเล็กและตัวใหญ่มีความแตกต่างกัน) หรือตัวเลขที่ต้องกำหนดให้ตรงกันทั้ง RADIUS Server และ RADIUS Client แต่ RADIUS Client แต่ละตัวไม่จำเป็นต้องกำหนด Shared Secretให้เหมือนกัน
RADIUS Shared Secret จะกำหนดได้ 2 ตัว ดังนี้
Authentication Shared Secret
Accounting Shared Secret
ในขณะที่มีการขอตรวจสอบสิทธิ์ (Authentication) การจัดส่ง Package Access-Request ระหว่าง NAS และ RADIUS Server เนื่องจากการส่ง Password จะต้องมีความปลอดภัยดังนั้นจึงมีการกำหนดโพรโตคอลเพื่อใช้ในการส่งและรับข้อมูล โพรโตคอลที่นิยมใช้คือ PAP, SHAP, MS-SHAP, MS-SHAP V2 และ EAP ซึ่งเป็นโพรโตคอลที่เกิดขึ้นใหม่ยังไม่แพร่หลายในขณะนี้
อ้างถึง
ตัวอย่าง ในโพรโตคอล PAP NAS จะต้องเข้ารหัส (Encrypt) Password ก่อนโดยใช้ Shared Secret และส่ง Package Access-Request นั้นออกไป เมื่อ RADIUS Server รับ Package Access-Request แล้วจะทำการถอดรหัส (Decrypt) Password ที่ถูกเข้ารหัสไว้โดยใช้ Shared Secret แล้วนำไปตรวจสอบ
สำหรับในการส่งข้อมูล Accounting จะไม่มีการ Encrypt ข้อมูลแต่ RADIUS Server จะใช้ Shared Secret ในการตรวจสอบความถูกต้องของ NAS ที่จะติดต่อด้วย
RADIUS Port
RADIUS Server จำเป็นต้องระบุ UDP Port เพื่อใช้สำหรับรับและส่ง Authentication และ Accounting Package ระหว่าง RADIUS Server และ RADIUS Client ซึ่งเริ่มต้นที่ RADIUS ได้ถูกพัฒนาขึ้นผู้พัฒนาได้ใช้ Port 1645 สำหรับการส่งและรับ Package Authentication และ 1646 สำหรับการส่งและรับ Package Accounting แต่เนื่องจากมาตรฐานนั้นได้มีการกำหนด Port ดังกล่าวสำหรับ “datametrics”
ดังนั้น Port ที่เป็นมาตรฐานในปัจจุบันนี้ คือ
- 1812 สำหรับการส่งและรับ Package Authentication
- 1813 สำหรับการส่งและรับ Package Accounting
Password Protocols
เนื่องจากการส่ง Access-Request ในขณะที่มีการขอ Authentication มีการส่ง Password จาก NAS ไปยัง RADIUS Server จึงจำเป็นต้องคำนึงถึงความปลอดภัยของ Password ดังกล่าว ดังนั้นจึงมีการสร้างโพรโตคอลสำหรับใช้งานในส่วนนี้ขึ้นซึ่งได้แก่
PAP (Password Authentication Protocol)
ในขณะที่มีการขอเชื่อมต่อ(User Negotiates) จาก Access Clients มายัง NASการส่ง Password ในขั้นตอนนี้จะยังไม่มีการเข้ารหัส (encrypt) ใด ๆ Password จะจัดส่งในรูปแบบ “Clear Text”
เมื่อ NAS รวบรวมข้อมูลที่เพียงพอสำหรับสร้าง Access-Request แล้ว NAS จะ Encrypt Password โดยใช้ Authentication Shared Secret ที่ถูกกำหนดไว้ แล้วส่ง Access-Request ดังกล่าวไปยัง RADIUS Server
เมื่อ RADIUS Server ได้รับ Access-Request จาก NAS แล้วจะทำการ Decrypt Password ที่ได้รับโดยใช้ Authentication Shared Secret ที่จัดเก็บไว้สำหรับ NAS ตัวดังกล่าว
** โพรโตคอล PAP สามารถใช้ได้กับ RADIUS Server ทุกตัว
CHAP (Challenge Handshake Authentication Protocol)
สำหรับ CHAP ได้ถูกสร้างขึ้นเพื่อหลีกเลี่ยงการส่ง Password แบบ “Clear Text” ในขณะที่ User Negotiates เมื่อ NAS รับทราบแล้ว NAS จะสร้าง Challenge โดยสุ่มตัวอักษร แล้วส่งกลับไปยัง Access Client
เมื่อ Access Client ได้รับ Challenge จะทำการสร้าง Digest คือ นำ Challenge ที่ได้รับมาต่อท้าย Password แล้วทำการ Encrypt แบบ one-way Encryption (MD5 Algorithm) แล้วส่ง Digest นั้นแทน Password ไปยัง NAS
NAS สร้าง Access-Request สำหรับการ Authentication และส่งไปยัง RADIUS Server
เนื่องจาก Digest ถูกสร้างแบบ one-way Encryption ไม่สามารถ Decrypt ได้
RADIUS Server จึงจำเป็นต้องใช้ Attribute ที่เกี่ยวกับ CHAP Protocol ที่ถูกจัดส่งมาใน Access-Request Package ที่ได้รับจาก NAS ซึ่งมี 2 Attributes ที่เกี่ยวข้องดังนี้
CHAP-Password : Attribute สำหรับ Digest (Password ที่ต่อท้ายด้วย Challenge แล้ว Encrypt ด้วย MD5 Algorithm)
CHAP-Challenge : Attribute สำหรับ Challenge ที่ถูกสุ่มขึ้นโดย NAS
RADIUS Server ใช้ Challenge จาก CHAP-Challenge ต่อท้าย Password ที่จัดเก็บไว้นำมา Encrypt ด้วยวิธี MD5 แล้วเปรียบเทียบกับ CHAP-Password ที่ได้รับ
MS-CHAP และ MS-CHAP-V2
MS-CHAP (Microsoft Challenge Handshake Authentication Protocol)
ทั้ง 2 เวอร์ชั่น ของ MS-CHAP ใช้วิธีการของโพรโตคอล CHAP แต่มีส่วนเพิ่มเติมขึ้นโดย Microsoft ข้อมูลเพิ่มเติมให้ดูที่ RFC 2433 2548 และ 2759.
สรุปขั้นตอนการ Authentication
วิธีและการกำหนดลำดับการ Authenticate (Authentication Method)
Native User Authentication คือการตรวจสอบ Username Password หรือ ข้อมูลอื่น ๆ จากข้อมูลที่ RADIUS Server จัดเก็บไว้ที่ตัวเอง ซึ่งเราเรียกสั้น ๆ ว่า Native User
Pass-Through Authentication คือการส่งผ่านการ Authenticate ไปยังระบบการตรวจสอบอื่น ๆ เช่น Windows NT Database , Active Directory ใน Windows 2000 , ACE/Server (SecurID) หรือ TACACS+ Server
Proxy RADIUS Authentication คือการส่งผ่านการ Authenticate ไปยัง RADIUS Server ตัวอื่นเพื่อทำหน้าที่ตรวจสอบแทน และส่ง Access-Accept หรือ Access-Reject กลับมาที่ RADIUS Server ตัวเดิม เพื่อจัดส่งให้กับ NAS ต่อไป
External Authentication คือการตรวจสอบที่เป็นการทำงานร่วมกันระหว่าง RADIUS Server กับฐานข้อมูลต่าง ๆ เช่น Microsoft SQL, Oracle Database หรือ LDAP Server Database RADIUS Server จะขอข้อมูลที่ต้องการ เช่น Username, Password จากฐานข้อมูล
แล้วนำมาเปรียบเทียบกับ Access-Request
Authenticate-Only Request เราสามารถกำหนดให้ RADIUS Server แจ้งเฉพาะผลการ Authenticate เท่านั้นใน Access-Accept หรือ Access-Reject โดยการกำหนดค่า Service-Type ที่ NAS เป็น AuthenticateOnly (Cool
นอกจาก RADIUS Sever สามารถ Authenticate ได้หลายวิธีตามที่กล่าวข้างต้นแล้ว เรายังสามารถกำหนดลำดับ Authentication Method ดังกล่าวให้ทำงานร่วมกันได้ด้วย เช่น กำหนดให้ RADIUS Server Authenticate ตามลำดับขั้นดังนี้
Native User
External 1 (SQL Database)
External 2 (Oracle Database)
การ Authenticate จะมีขั้นตอนดังนี้
RADIUS Server จะตรวจสอบที่ Native User ก่อนในกรณีที่ไม่พบหรือไม่ถูกต้องจะเลื่อนไปตรวจสอบที่ SQL Database และ Oracle Database ตามลำดับ ซึ่ง RADIUS Server จะยังไม่ส่ง Access-Reject จนกว่าจะทำจนครบทุก Method ที่กำหนดไว้
แต่ในกรณีที่ถูกต้องตามเงื่อนไขที่กำหนด RADIUS Server จะส่ง Access-Accept ไปที่ NAS ทันทีโดยไม่ต้องตรวจสอบจนครบทุก Method
Directed Authentication คือ การกำหนดให้ RADIUS Server ข้าม Authenticate Method ที่ได้ถูกกำหนดไว้ที่ Authenticate Method List ไปยัง Authenticate Method ที่ระบุเลย โดยไม่ต้องตรวจสอบตามลำดับที่กำหนดไว้ เราสามารถใช้งาน Directed Authentication โดยการกำหนด Realm ขึ้นเพื่อใช้ตรวจสอบ
อ้างอิงจาก http://tech-noblogg.blogspot.com/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น