PSU-netdrive11

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 5-12-2555

ดูแลโดย WIBOON


PSU-netdrive 11: ติดตั้ง FreeRADIUS เพื่อใช้ user account ที่มีอยู่แล้วมาแชร์ไฟล์ร่วมได้


ขั้นตอนติดตั้ง FreeRADIUS

  1. ติดตั้งด้วยคำสั่ง
    sudo apt-get install freeradius freeradius-utils freeradius-mysql freeradius-ldap
  2. ขั้นตอนถัดจากนี้คือใช้ FreeRADIUS กับ แฟ้ม users (เรามักจะทดสอบ FreeRADIUS ด้วยวิธีนี้)
    ใช้ username ตัวอย่างที่ให้มาพร้อมกับ FreeRADIUS ชื่อว่า steve มีรหัสผ่านคือ testing
    แก้ไขแฟ้มชื่อ users
    sudo nano /etc/freeradius/users
    ไปที่บรรทัดที่ 76 เอาเครื่องหมาย # ออก จะได้เป็น
    steve Cleartext-Password := "testing"
    บันทึกแฟ้ม
  3. ทุกครั้งที่แก้ไขแฟ้มชื่อ users ให้ restart FreeRADIUS ด้วยคำสั่ง
    sudo /etc/init.d/freeradius restart
  4. ทดสอบว่า FreeRADIUS ทำงานได้แล้ว ด้วยคำสั่ง
    sudo radtest steve testing 127.0.0.1 0 testing123
    ผลลัพธ์คือ รู้จัก หรือ ถูกต้อง จะได้ข้อความ Access-Accept
  5. ทดสอบว่า FreeRADIUS รู้จัก linux username หรือไม่ ด้วยคำสั่ง
    sudo radtest mama 123456 127.0.0.1 0 testing123
    ผลลัพธ์คือ ไม่รู้จัก หรือ ไม่ถูก จะได้ข้อความ Access-Reject
  6. การปรับแต่ง freeradius ให้รู้จัก linux username ด้วย
    แก้ไขที่แฟ้ม /etc/freeradius/sites-available/default ด้วยคำสั่ง
    sudo nano /etc/freeradius/sites-available/default
    กดแป้น Ctrl+w, Ctrl+t บรรทัดที่ 148
    ให้เปลี่ยนจาก
    # unix
    เป็น
    unix
  7. ให้ restart FreeRADIUS ด้วยคำสั่ง
    sudo /etc/init.d/freeradius restart
  8. ทดสอบว่า FreeRADIUS รู้จัก linux username หรือไม่ ด้วยคำสั่ง
    sudo radtest mama 123456 127.0.0.1 0 testing123
    ผลลัพธ์คือ รู้จัก หรือ ถูกต้อง ได้ข้อความ Access-Accept
  9. ทดสอบซ้ำว่า FreeRADIUS ยังคงรู้จัก username ในแฟ้ม users ของ FreeRADIUS เองอยู่หรือไม่
    sudo radtest steve testing 127.0.0.1 0 testing123
    ผลลัพธ์คือ รู้จัก หรือ ถูกต้อง จะได้ข้อความ Access-Accept

อธิบาย shared secret (testing123)

  1. shared secret ของ FreeRADIUS จะอยู่ในแฟ้ม /etc/freeradius/clients.conf
  2. ภายในจะเป็นการอ้างถึงว่า เครื่อง client จากเน็ตเวิร์คใดบ้างที่เราอนุญาตให้มาสอบถามข้อมูลจาก FreeRADIUS ของเรา พร้อมทั้งกำหนด shared secret ให้เป็นความลับ
  3. ค่าเริ่มต้นคือ กำหนดให้ localhost (127.0.0.1) สอบถามข้อมูลได้ และกำหนด shared secret เป็น testing123
  4. จึงทำให้เราใช้คำสั่ง radtest บนเครื่องมันเองได้นั่นเอง

การ debug หาข้อผิดพลาด

  1. ให้ stop FreeRADIUS ด้วยคำสั่ง
    sudo /etc/init.d/freeradius stop
  2. รันใน debug mode ด้วยคำสั่งดังนี้
    sudo freeradius -X
  3. เข้าใช้ด้วย ssh จากอีกหน้าต่างหนึ่ง
  4. ทดสอบด้วยคำสั่ง
    sudo radtest steve testing 127.0.0.1 0 testing123
  5. ดูที่หน้าต่าง debug mode จะเห็นการทำงาน
  6. หากไม่ต้องการ debug แล้วให้กดแป้น Ctrl + C


ขั้นตอนการอนุญาต username จาก FreeRADIUS

  1. ติดตั้ง pam radius module ด้วยคำสั่ง
    sudo apt-get install libpam-radius-auth
  2. แก้ไขแฟ้ม /etc/pam_radius_auth.conf ด้วยคำสั่ง
    sudo nano /etc/pam_radius_auth.conf
    ไปบรรทัดประมาณที่ 25 ให้แก้ไขเป็นประมาณว่า
    # server[:port] shared_secret timeout (s)
    127.0.0.1 testing123 10
    #other-server other-secret 3

  3. แก้ไขแฟ้ม /etc/pam.d/sshd ด้วยคำสั่ง
    sudo nano /etc/pam.d/sshd
    ไปบรรทัดประมาณที่ 11
    ให้แทรกบรรทัดข้อความเพิ่มว่า auth sufficient /lib/security/pam_radius_auth.so ที่ก่อนหน้าบรรทัดข้อความเดิมว่า @include common-auth
    กลายเป็นตามตัวอย่างว่า
    # Standard Un*x authentication.
    auth sufficient /lib/security/pam_radius_auth.so
    @include common-auth


ขั้นตอนเพิ่ม username จาก FreeRADIUS เข้ามาแชร์ไฟล์ด้วย

  1. สมมติระบบเดิมมี username ชื่อ steve ใช้คำสั่งว่า
    sudo sh /root/netuseradd.sh steve
  2. เมื่อถาม password กดแป้น Enter ข้ามไป 6 ครั้ง หมายถึงว่า ไม่ต้องตั้งรหัสผ่าน จะให้ใช้รหัสผ่านของที่มีอยู่
  3. ทดสอบการแชร์ไฟล์ด้วยโปรแกรม SFTP net drive for Windows
    โดยใช้ username ชื่อ steve