pGina fork 3.2.4.1 configuration

ในตอนที่แล้วได้พูดถึงว่า pGina fork คืออะไรไปแล้ว ในครั้งนี้จะพูดถึงการตั้งค่าสำหรับทำเป็น Windows Authentication ในเครื่องคอมที่เป็น Windows 10 ผมได้ทำ screen capture มาเฉพาะที่ผมได้ใช้งาน ซึ่งก็คือ Local Machine, RADIUS plugin, Single User plugin และ LDAP plugin ครับ ตามดูกันมานะครับ

หน้าแรกคือแท็บ General จะแสดงให้เห็นว่าโปรแกรมพร้อมทำงาน ให้ดูที่ข้อความที่แสดงเป็นสีเขียวใต้ข้อความ pGina Service status

และตัวเลือกที่ผมเลือกใช้คือ Use original username to unlock computer (เพราะว่าผมจะใช้ Single User plugin ร่วมด้วย)

แท็บถัดไปคือ แท็บ Plugin Selection อันแรกที่จะใช้คือ Local Machine คือ user ที่สร้างขึ้นภายใน Windows นั่นเอง สังเกตจะมีตัวเลือกที่ Authentication และ Gateway

แก้ไขรูปภาพ Local Machine Plugin ต้อง ติ๊ก Notification ด้วย จึงจะมีผลกับ option Remove account and profile after logout

จากนั้นให้คลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูปข้างล่างนี้

ผมจะใช้ค่าตัวเลือก Remove account and profile after logout when account does not exist prior to logon เพื่อที่ไม่ต้องเก็บ user profile ที่เป็น user จาก user database ภายนอก เช่น จาก RADIUS server เป็นต้น และ หากต้องการให้ user นั้นมีสิทธิมากกว่า User ทั่วไป ก็ตั้ง Mandatory Group เช่น ตั้งเป็น Administrators เป็นต้น

ต่อไปก็มาถึง RADIUS plugin เลือก Authentication และ Notification จากนั้นคลิกปุ่ม Configure

จะได้ค่าดีฟอลต์ ดังรูป

ผมจะเลือกใช้และใส่ค่าต่าง ๆ เหล่านี้ครับ

เลือก Enable Authentication เพื่อสอบถาม username/password

เลือก Enable Accounting เพื่อส่งข้อมูลบันทึกค่า Acct-Status-Type ไปยัง RADIUS Server

แล้วระบุ Server IP และ Shared Secret ที่จะต้องตรงกันกับที่ระบุอยู่ใน config ที่ RADIUS server เช่น FreeRADIUS จะอยู่ในไฟล์ /etc/freeradius/clients.conf เป็นต้น

(13 ก.ค. 2561) เลือก Called-Station-ID ด้วย หากต้องการเลข MAC Address เก็บด้วยนอกจากเก็บ IP

(10 ก.ค. 2561) พบว่าจำเป็นต้องเลือก Accounting Options หัวข้อ Send Interim Updates เพื่อให้มีการส่งค่า accounting ได้ (โดยใช้ค่า Send update every 900 seconds ตามที่เป็นค่า default)

แล้วระบุ IP Address Suggestion เช่น 192.168.1. หมายถึงระบุว่าจะใช้ข้อมูลของ network นี้ เพราะว่าในเครื่องอาจมีการติดตั้งซอฟต์แวร์ที่จำลอง network interface เพิ่มขึ้นมาอีกอัน เป็นต้น

ส่วนค่าอื่น ๆ ปล่อยไว้ตามเดิม

ต่อไปก็เป็น Single User plugin ที่เราจะใช้เพื่อให้เป็น Windows User Profile หลักของ user ทุกคนที่มาจาก RADIUS plugin หรือ LDAP plugin จะทำให้เมื่อเป็น User ที่ไม่เคยเข้าใช้เครื่องนี้มาก่อน จะเข้าได้อย่างรวดเร็วกว่าการที่จะให้ Windows สร้าง new user profile

ให้คลิกที่ Gateway แล้วคลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูป

ให้ใส่ Username ที่ได้สร้างไว้ใน Windows ตัวอย่างเช่น ผมสร้าง user ชื่อ labuser ไว้ มี password คือ 123456 เป็นต้น ตรงค่า Domain ไม่ได้แก้ไข แล้วไปลอกตัวเลข RADIUS plugin (หากใช้) หรือ LDAP plugin (หากใช้) มาใส่ โดยให้คลิกเลือก Only substute if any แล้วคลิกช่องว่าง เพื่อวางตัวเลข ดังรูป

ถัดไปคือแท็บ Plugin Order ผมไม่ได้แก้ไขใด ๆ คงค่าเดิมไว้

ตอนนี้ก็ได้เวลาทดสอบด้วยแท็บ Simulation

ทดสอบใส่ username และ password มันจะตรวจสอบ ทุก ๆ plugin ที่มี แล้วแสดงค่าสุดท้าย(ในช่องด้านขวา) Final User Data ที่ใช้ในการเข้าใช้ Windows หากได้ผลลัพธ์แบบนี้ ก็ถือได้ว่า ถูกต้อง

หรือแบบนี้ก็ถูกต้อง แม้ว่าจะมีข้อความบนแถบสีแดงในบรรทัด Local Machine plugin และเป็นค่า False ก็แสดงว่า user คนนี้ไม่เคยเข้าใช้เครื่องนี้มาก่อน 

แต่หากเราจะเลือกใช้ LDAP plugin แทน RADIUS plugin ก็กลับไปที่แท็บ Plugin Selection แล้วเลือก LDAP plugin และคลิกเลือก Authentication อย่างเดียว จากนั้นคลิกปุ่ม Configure จะได้ค่าดีฟอลต์ ดังรูป

ที่ผมทดสอบใช้งานกับ LDAPS ที่ติดตั้งไว้ที่เครื่อง Microsoft AD ผมใส่ค่าในช่องต่าง ๆ ดังรูป

LDAP Host(s) ใส่ได้มากกว่า 1 ชื่อ เว้นช่องว่างระหว่างชื่อ

LDAP Post ใช้ 636 และเลือก Use SSL

สำหรับ Search DN และ Search Password จะได้จากผู้ดูแล Microsoft AD ของหน่วยงานให้กับเรามาครับ

ไม่เลือก Allow Empty Passwords

เลือก Search for DN และใส่ค่าในช่อง Search Filter และ Search Context(s) ตามข้อมูลที่ได้รับจากผู้ดูแล Microsoft AD ของท่าน

แล้วหากต้องการใช้ Single User plugin ด้วยก็ให้นำ UID ของ LDAP plugin (ดูที่แท็บ Plugin Selection ที่คอลัมน์ขวาสุดของรายการ LDAP plugin) ไปคีย์ใส่ในช่องว่างใน Single User plugin ด้วย

นอกจากนี้ เราจะต้องใช้โปรแกรมประเภท System Restore เพื่อคืนค่ากลับเหมือนเดิม เมื่อ User ได้ Logout/Shutdown ไปแล้ว เพื่อป้องกันมิให้ระบบ Windows เปลี่ยนแปลงจากการใช้งานของ User คนก่อนหน้า

คิดว่าคงจะได้นำไปใช้งานกันนะครับ

เพิ่มเติมเนื้อหา

คัดลอกเนื้อหามาจากเพจเดิม เรื่อง การตั้งค่า pGina และ FreeRADIUS เพื่อส่งค่า RADIUS Accounting ไปยัง Firewall ของมหาวิทยาลัย

FreeRADIUS Version 2.2.8 แก้ไขไฟล์ /etc/freeradius/proxy.conf อาจด้วยคำสั่ง vi หรือ nano ตามชอบ

FreeRADIUS Version 3.0.16 แก้ไขไฟล์ /etc/freeradius/3.0/proxy.conf

เพื่อให้มีค่า realm NULL (ประมาณบรรทัดที่ 672) ที่กำหนดค่า Accounting Port เพียงอย่างเดียวส่งไปยังเครื่อง Firewall

pgina06
รูปก่อนแก้ไข

pgina07
รูปหลังแก้ไข

ในรูปตัวอย่างเครื่อง Firewall คือ radius.hatyai.psu.ac.th และต้องรู้ค่า secret ที่ตั้งเพื่อใช้สำหรับเครื่อง FreeRADIUS และ Firewall ในที่นี้คือ yoursecret (อันนี้ต้องมีการติดต่อกับ network administrator ของมหาวิทยาลัยเพื่อร่วมกันตั้งค่านี้)

และแก้ไขอีกแฟ้มคือ

FreeRADIUS Version 2.2.8 แก้ไขที่แฟ้ม /etc/freeradius/sites-available/default
FreeRADIUS Version 3.0.16 แก้ไขที่แฟ้ม /etc/freeradius/3.0/sites-available/default

ประมาณบรรทัดที่ 325 Pre-accounting ใน module ชื่อ preacct

preacct {
               preprocess
               เพิ่ม
}

หากยังไม่มีบรรทัดเหล่านี้ ให้เพิ่มด้วยต่อท้ายบรรทัด preprocess

# append update for pGina no attribute Framed-IP-Address
if (NAS-IP-Address != 127.0.0.1) {
       update request {
             Framed-IP-Address = "%{NAS-IP-Address}"
       }
}

แล้ว restart FreeRADIUS ใหม่

pgina08
sudo service freeradius stop
sudo service freeradius start

จากนั้นรอให้ทางฝั่งผู้ดูแล Firewall ตั้งค่าโปรแกรมที่ดึงข้อมูลที่ FreeRADIUS ของเราส่งไปนำไปใส่ใน Firewall Rule อนุญาตเครื่องไคลเอ็นต์ไม่ต้อง login ซ้ำ