PSU-netdrive 10

จาก Wiki Opensource

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

ดูแลโดย WIBOON


PSU-netdrive 10: ติดตั้ง FreeRADIUS เพื่อใช้ user account ที่อื่นผ่าน FreeRADIUS


อ่านเพิ่มเติม

  • หลังจากที่ติดตั้ง PSU-netdrive และ สร้าง username ไว้ในตอน PSU-netdrive_05 ก่อนหน้านี้ ซึ่งเป็น local username ของ ubuntu server
  • ในกรณีที่มี username ที่อื่นผ่าน FreeRADIUS ก็สามารถเข้ามาแชร์ไฟล์ร่วมกันได้ด้วย


ขั้นตอนการติดตั้งโปรแกรม putty บน Windows

  • เพื่อใช้สำหรับ remote login แบบ ssh เข้าไปที่เซิร์ฟเวอร์ จะสะดวกในการ copy and paste คำสั่งในหน้านี้
  • คัดลอกไฟล์จาก USB disk ใน workshop ที่ putty
    หรือ
    ดาวน์โหลดได้จาก http://ftp.psu.ac.th/pub/putty/latest/x86/putty.exe


ขั้นตอนการ authen ให้ ubuntu server ออกอินเทอร์เน็ตได้

  • ที่หน้าจอ console ของ VM 1-ubuntu-server
  • เข้าใช้ด้วย login ชื่อ mama และ password คือ 123456
  • รันคำสั่ง lynx http://www.google.com
    เมื่อถูกถามให้ authen ก็ใส่ บัญชีผู้ใช้และรหัสผ่าน ที่ได้รับในงาน WUNCA25
  • เปิด console ไว้พร้อมกับหน้าโปรแกรม lynx


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

  1. ติดตั้งด้วยคำสั่ง
    sudo apt-get install freeradius freeradius-utils freeradius-mysql freeradius-ldap gawk
  2. สร้าง user ที่ใช้งานกับ FreeRADIUS
    sudo nano /etc/freeradius/users
    ไปที่บรรทัดที่ 76 เอาเครื่องหมาย # ออก จะได้เป็น
    steve Cleartext-Password := "testing"
    บันทึกแฟ้ม
  3. ทุกครั้งที่แก้ไขแฟ้มชื่อ users ให้ restart FreeRADIUS ด้วยคำสั่ง
    sudo /etc/init.d/freeradius force-reload
  4. ทดสอบว่า FreeRADIUS ทำงานได้แล้ว ด้วยคำสั่ง
    sudo radtest steve testing 127.0.0.1 0 testing123


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

  1. ติดตั้ง pam radius module ด้วยคำสั่ง
    sudo apt-get install libpam-radius-auth
  2. แก้ไขแฟ้ม /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 ไปบรรทัดประมาณที่ 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. ใช้คำสั่งว่า sudo sh /root/netuseradd.sh steve
  2. เมื่อถาม password กดแป้น Enter ข้ามไป 6 ครั้ง หมายถึงว่า ไม่ต้องตั้งรหัสผ่าน
  3. ทดสอบการแชร์ไฟล์ด้วยโปรแกรม SFTP net drive for Windows
    โดยใช้ username ชื่อ steve



ส่วนข้างล่างนี้ เป็นเนื้อหาเพิ่มเติมสำหรับแอดมินม.อ. หรือ ผู้สนใจอยากรู้วิธีการใช้ username จาก gmail, hotmail ผ่าน FreeRADIUS ด้วยชุด Installer ชื่อ PSU-radius ของม.อ.


ขั้นตอนติดตั้ง FreeRADIUS ด้วยชุด Installer ชื่อ PSU-radius ของม.อ.

  • PSU-radius เป็น freeradius รุ่นที่ได้ปรับแต่งให้ติดตั้งพร้อมใช้งาน สามารถ authen กับ mail server ดังนี้ psu.ac.th, eng.psu.ac.th, pharmacy.psu.ac.th, pn.psu.ac.th, gmail.com, hotmail.com, live.com และ yahoo.com
  1. เปิดเครื่อง ubuntu server ตามขั้นตอนการ authen ให้ ubuntu server ออกอินเทอร์เน็ตได้
  2. ที่ Windows รันโปรแกรม Putty > ช่อง Host Name ใส่หมายเลขไอพีของ Ubuntu server > Port เป็นค่า 22
  3. เข้าใช้ด้วย login ชื่อ mama และ password คือ 123456
  4. ดาวน์โหลดแฟ้ม psu-radius.tgz มาเก็บไว้ที่ /tmp ใช้คำสั่งประมาณว่า
    wget http://ftp.psu.ac.th/pub/psu-radius/psu-radius.tgz -N -P /tmp
    หรือ
    ในกรณีที่ต้องการใช้แฟ้มจาก USB disk (ทำแล้วที่ console ของ VM เมนู Devices > USB Devices > เลือก USB2.0 Flashdisk)
    ทำ 4 บรรทัดนี้
    sudo mkdir /mnt/usb
    sudo mount /dev/sdb1 /mnt/usb
    cp /mnt/usb/pub/psu-installer/psu-radius.tgz /tmp
    sudo umount /mnt/usb
  5. แตกแฟ้มที่ดาวน์โหลดมา เอาไปเก็บไว้ที่ /tmp ด้วยคำสั่งประมาณว่า
    tar -zxpvf /tmp/psu-radius.tgz -C /tmp
  6. เข้าไปทำงานใน directory ที่ถูกสร้างขึ้นมาตอนแตกแฟ้มนี้ ด้วยคำสั่งประมาณว่า
    cd /tmp/psu-radius
  7. เริ่มขั้นตอนติดตั้งด้วยคำสั่ง
    sudo sh install-psu-radius.sh
  8. ระบบจะเริ่มทำการติดตั้ง รอสักครู่ก็จะใช้งานได้
  9. เนื่องจากมีการติดตั้งค่าเพิ่มเติม ให้เริ่มเซอร์วิส freeradius ใหม่ ดังนี้
    sudo service freeradius stop
    sudo service freeradius start
  10. ทดสอบ user ใน server แบบ localhost โดยตรง ใช้คำสั่งว่า
    sudo radtest mama 123456 127.0.0.1 0 testing123
  11. ทดสอบ user@gmail.com ใช้คำสั่งประมาณว่า
    sudo radtest user@gmail.com yourpassword 127.0.0.1 0 testing123


ขั้นตอนสร้าง user

  • ถ้าเป็น vip@gmail.com ก็ใช้คำสั่งว่า sudo sh /root/netuseradd.sh vip@gmail.com (ต้องสร้างชื่อให้เต็มยศ)
    เมื่อถาม password กดแป้น Enter ข้ามไป 6 ครั้ง
  • ถ้า เป็น PSU user account (เช่น psu_user@psu.ac.th) ก็ใช้คำสั่งว่า sudo sh /root/netuseradd.sh psu_user@psu.ac.th (แต่จะไม่ต้องเต็มยศก็ได้) เมื่อถาม password กดแป้น Enter ข้ามไป 6 ครั้ง


ขั้นตอนลบ user

  • ถ้าเป็น vip@gmail.com ก็ใช้คำสั่งว่า sudo sh /root/netuserdel.sh vip@gmail.com
  • ถ้าเป็น PSU user account (เช่น psu_user@psu.ac.th) ก็ใช้คำสั่งว่า sudo sh /root/netuserdel.sh psu_user@psu.ac.th


ขั้นตอนปรับแต่ง script ของ PSU-radius

  • การยืนยันตัวตนใช้ username / password ตั้งให้ authen กับ server ต่างๆได้ที่แฟ้ม /etc/freeradius/imap-authen.sh ค่าเริ่มต้นจะเป็นดังนี้
    AUTHEN_SHADOW="YES"
    AUTHEN_MAIL="YES"
    DEFAULT_MAIL_SERVER="mail.psu.ac.th"
    AUTHEN_LDAP="NO"
    AUTHEN_SSH="NO"
    SSH_SERVER="server.domain"
    AUTHEN_PSU_PASSPORT="NO"
    CHECK_PREBLACKLIST="YES"
    PREBLACKLIST_FILE="/etc/freeradius/preblacklist.txt"

    การตรวจสอบรายชือผู้มีสิทธิ์ใช้บริการ แก้ไขระบบตรวจสอบสิทธิ์ที่แฟ้ม /etc/freeradius/my-authen.sh ค่าเริ่มต้นจะเป็นดังนี้
    CHECK_BLACKLIST="YES"
    ALL_PASS="YES"
    CHECK_VIPLIST="NO"
    CHECK_PSU_STAFF="NO"
    CHECK_PSU_STUDENT="NO"
    BLACKLIST_FILE="/etc/freeradius/blacklist.txt"
    VIP_FILE="/etc/freeradius/viplist.txt"

  • ตัวอย่างการแก้ไข script แฟ้ม /etc/freeradius/my-authen.sh ให้อนุญาตเฉพาะบางคนที่อยู่ใน VIP_FILE ต้องกำหนดดังนี้
    ALL_PASS="NO"
    CHECK_VIPLIST="YES"


เรื่องก่อนหน้า PSU-netdrive_09 | เรื่องถัดไป PSU-netdrive_11