Tuesday, June 19, 2012

āļāļēāļĢāļ•ิāļ”āļ•ั้āļ‡ FreeRadius āđāļĨāļ° phpmyprepaid āļšāļ™ ubuntu 8.10

āļāļēāļĢāļ•ิāļ”āļ•ั้āļ‡ FreeRadius āđāļĨāļ° phpmyprepaid āļšāļ™ ubuntu 8.10



āļ‚ั้āļ™āļ•āļ­āļ™
  1. āļŦāļēāļāļĒัāļ‡āđ„āļĄ่āļ•ิāļ”āļ•ั้āļ‡ apache āđāļĨāļ° php āđƒāļŦ้āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    apt-get install apache2 php5 php5-mysql
  2. āļŠั่āļ‡āđƒāļŦ้ apache āļ—āļģāļ‡āļēāļ™āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    /etc/init.d/apache2 restart
  3. āļŦāļēāļāļĒัāļ‡āđ„āļĄ่āļ•ิāļ”āļ•ั้āļ‡ mysql āđƒāļŦ้āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    apt-get install mysql-server
  4. āļŦāļēāļāļĒัāļ‡āđ„āļĄ่āļ•ิāļ”āļ•ั้āļ‡ FreeRadius āđƒāļŦ้āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    apt-get install freeradius freeradius-mysql
  5. āļŠั่āļ‡āđƒāļŦ้ FreeRadius āļ—āļģāļ‡āļēāļ™āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    /etc/init.d/freeradius start
  6. āđ€āļ‚้āļēāļŠู่āđ‚āļ›āļĢāđāļāļĢāļĄ mysql āļ”้āļ§āļĒ username āļ„ืāļ­ root āđāļĨāļ° password āļ—ี่āđ„āļ”้āļāļģāļŦāļ™āļ”āđ„āļ§้āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    mysql –u root –p
    āđāļĨ้āļ§āļ›้āļ­āļ™āļĢāļŦัāļŠāļœ่āļēāļ™
    āļ‚āļ­āļ‡ root
  7. āļ—āļģāļāļēāļĢāļŠāļĢ้āļēāļ‡ Database āļŠื่āļ­ phpmyprepaid āđ€āļžื่āļ­āđƒāļŠ้āđƒāļ™āļāļēāļĢāđ€āļ็āļšāļšัāļāļŠีāļœู้āđƒāļŠ้āļ‡āļēāļ™ (āļŠāļēāļĄāļēāļĢāļ–āļˆāļ°āđƒāļŠ้āļŠื่āļ­āļāļēāļ™āļ‚้āļ­āļĄูāļĨāļ­ื่āļ™āļ็āđ„āļ”้) āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡āļ”ัāļ‡āļ™ี้
    CREATE DATABASE phpmyprepaid;
  8. āļāļģāļŦāļ™āļ”āļŠิāļ—āļ˜ิāđƒāļŦ้āļัāļšāļšัāļāļŠีāļœู้āđƒāļŠ้āļ‡āļēāļ™āļšāļ™ mysql āļ—ี่āļŠื่āļ­āļ§่āļē phpmyprepaid āļžāļĢ้āļ­āļĄ password āļ„ืāļ­ radpass (user āđāļĨāļ° password āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļĨี่āļĒāļ™āđāļ›āļĨāļ‡āđ„āļ”้āļ•āļēāļĄāļ„āļ§āļēāļĄāđ€āļŦāļĄāļēāļ°āļŠāļĄ) āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    GRANT ALL PRIVILEGES ON phpmyprepaid.* to 'phpmyprepaid'@'localhost' IDENTIFIED BY 'radpass';
    FLUSH PRIVILEGES;
  9. āļ­āļ­āļāļˆāļēāļ mysql āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ quit
  10. āđāļ้āđ„āļ‚āđ„āļŸāļĨ์ /etc/freeradius/sql.conf āđ€āļžื่āļ­āđƒāļŦ้āđ€āļĢีāļĒāļāđƒāļŠ้āļāļēāļ™āļ‚้āļ­āļĄูāļĨ phpmyprepaid āļ”้āļ§āļĒāļŠิāļ—āļ˜ิāļœู้āđƒāļŠ้āđ€āļ›็āļ™ phpmyprepaid āļ‹ึ่āļ‡āļĄี password āđ€āļ›็āļ™ radpass  āļ”ัāļ‡āļ™ี้
    # Connection info:
    server = "localhost"
    login = "phpmyprepaid"
    password = "radpass"
    # Database table configuration for everything except Oracle
    radius_db = "phpmyprepaid"
  11. āļ—āļģāļāļēāļĢāļāļģāļŦāļ™āļ” password āđƒāļŦ้āļัāļšāđ€āļ„āļĢื่āļ­āļ‡ Client āļ—ี่āļˆāļ°āđ€āļ‚้āļēāđƒāļŠ้āļ‡āļēāļ™ FreeRadius āļ—ี่āđ„āļŸāļĨ์ /etc/freeradius/cliens.conf āđ‚āļ”āļĒāļāļģāļŦāļ™āļ”āđƒāļŦ้ client 127.0.0.1 (āļŦāļĢืāļ­ client localhost) āļĄีāļ„่āļē secret = radiussecret
    client localhost {
    secret = radiussecret
    {

    āđƒāļ™āļāļĢāļ“ีāļ—ี่āļ­āļ™ุāļāļēāļ•āđƒāļŦ้āđ€āļ„āļĢื่āļ­āļ‡ client āļ­ื่āļ™āđ€āļ‚้āļēāļĄāļēāđƒ้้āļŠ้āļ‡āļēāļ™ FreeRadius āđ€āļŠ่āļ™ client āļ—ี่āļĄี IP āđ€āļ›็āļ™ 172.24.51.16 āļ็āđƒāļŦ้āļāļģāļŦāļ™āļ”āļ„่āļēāđ€āļžิ่āļĄāđ€āļ•ิāļĄāļ”ัāļ‡āļ™ี้
    client 172.24.51.16 {
    secret = radiussecret
    shortname = chilli
    }
  12. āđāļ้āđ„āļ‚āđ„āļŸāļĨ์ /etc/freeradius/sql.conf āļāļģāļŦāļ™āļ”āđƒāļŦ้āļ„่āļē readclients = yes āđ€āļžื่āļ­āļ—ี่āļˆāļ°āļ—āļģāđƒāļŦ้ radius client āļ­่āļēāļ™āļ„่āļēāļˆāļēāļ database
  13. āđāļ้āđ„āļ‚āđ„āļŸāļĨ์ /etc/freeradius/site-enabled/default āļ”ัāļ‡āļ™ี้ (āļ–้āļēāđ€āļ›็āļ™ freeradius āļšāļ™ ubuntu āđ€āļ§āļ­āļĢ์āļŠัāļ™āļ่āļ­āļ™āļŦāļ™้āļēāļ™ี้āđ€āļ›็āļ™āđ„āļŸāļĨ์ /etc/freeradius/radiusd.conf)
    • āđƒāļ™āļŠ่āļ§āļ™āļ‚āļ­ā accounting {……} āđƒāļŦ้āđ€āļ­āļēāđ€āļ„āļĢื่āļ­āļ‡āļŦāļĄāļēāļĒ  # āļŦāļ™้āļēāļ„āļģāļ§่āļē sql āļ­āļ­āļ āđ€āļžื่āļ­āđ€āļĢีāļĒāļāđƒāļŠ้āļ‚้āļ­āļĄูāļĨāļˆāļēāļ database āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš username , password āđƒāļ™āļāļēāļĢāļ—āļģ accounting
    • āđƒāļ™āļŠ่āļ§āļ™ session {……} āđƒāļŦ้āđ€āļ­āļēāđ€āļ„āļĢื่āļ­āļ‡āļŦāļĄāļēāļĒ # āļŦāļ™้āļēāļ„āļģāļ§่āļē sql āļ­āļ­āļ āđ€āļžื่āļ­āđ€āļĢีāļĒāļāđƒāļŠ้āļ‚้āļ­āļĄูāļĨāļˆāļēāļ database āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš username, password āđƒāļ™āļāļēāļĢāļ—āļģ session
    • āđƒāļ™āļŠ่āļ§āļ™āļ‚āļ­āļ‡ authorize {……} āđƒāļŦ้āđ€āļ­āļēāđ€āļ„āļĢื่āļ­āļ‡āļŦāļĄāļēāļĒ # āđ„āļ§้āļŦāļ™้āļēāļ„āļģāļ§่āļē files  āđāļĨāļ°āđ€āļ­āļēāđ€āļ„āļĢื่āļ­āļ‡āļŦāļĄāļēāļĒ # āļ­āļ­āļāļˆāļēāļāļ„āļģāļ§่āļē sql
  14. āļ—āļģāļāļēāļĢ restart FreeRadius āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    /etc/init.d/freeradius restart
  15. āļ•āļ­āļ™āļ™ี้ āļ—ั้āļ‡ freeradius āđāļĨāļ° mysql āļžāļĢ้āļ­āļĄ database phpmyprepaid āļ§่āļēāļ‡ āđ† āļžāļĢ้āļ­āļĄāđāļĨ้āļ§
    āļ•่āļ­āđ„āļ›āļˆāļ°āļ—āļģāļāļēāļĢāļ•ิāļ”āļ•ั้āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ phpmyprepaid āđāļĨ้āļ§āļĢัāļ™āđ‚āļ›āļĢāđāļāļĢāļĄāļœ่āļēāļ™āđ€āļ§็āļšāļšāļĢāļēāļ§āđ€āļ‹āļ­āļĢ์
    āļˆāļēāļāļ™ั้āļ™āļˆāļ°āđ€āļ‹็āļ•āļ„่āļēāļ•่āļēāļ‡ āđ† āļšāļ™āļŦāļ™้āļēāđ€āļ§็āļš āļ—āļģāđƒāļŦ้āđ„āļ”้ table āļ•่āļēāļ‡ āđ† āļ—ี่āļˆāļģāđ€āļ›็āļ™āđƒāļŠ้āļ‡āļēāļ™āđ€āļิāļ”āļ‚ึ้āļ™
  16. āļĒ้āļēāļĒāđ€āļ‚้āļēāđ„āļ›āđƒāļ™āđ„āļ”āđ€āļĢāļāļ—āļ­āļĢี /var/www/ āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    cd /var/www
  17. āļ”āļēāļ§āļ™์āđ‚āļŦāļĨāļ”āđ‚āļ›āļĢāđāļāļĢāļĄ phpmyprepaid āđ€āļ§āļ­āļĢ์āļŠั่āļ™ 0.4 RC2 āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ wget āļ”ัāļ‡āļ™ี้
    wget http://downloads.sourceforge.net/phpmyprepaid/phpmyprepaid04RC2.tgz
  18. āļ„āļĨāļēāļĒāđāļŸ้āļĄāļ­āļ­āļāļĄāļēāļˆāļ°āđ„āļ”้āđ„āļ”āđ€āļĢāļāļ—āļ­āļĢี phpmyprepaid
    tar zxvf phpmyprepaid04RC2.tgz
  19. āļ•ิāļ”āļ•ั้āļ‡āđ‚āļ›āļĢāđāļāļĢāļĄ  rrdtool āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    apt-get install rrdtool
  20. āđ€āļ›ิāļ” browser āđāļĨāļ°āđ€āļĢีāļĒāļāđ„āļ›āļ—ี่ http://host/phpmyprepaid/www   āđāļĨ้āļ§āļĢāļ°āļšāļšāļˆāļ°āđ€āļ›ิāļ”āđ„āļŸāļĨ์ setup.php āļ”ัāļ‡āļĢูāļ›



  21. āļ‚ั้āļ™āļ—ี่ 2 āđ€āļ›็āļ™āđ€āļĢื่āļ­āļ‡āļ‚āļ­āļ‡ License āđƒāļŦ้āļ„āļĨิ๊āļāļŠ่āļ­āļ‡ I Accept āđāļĨ้āļ§āļ„āļĨิ๊āļāļ›ุ่āļĄ Next



  22. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 3 āļ–้āļēāđ€āļˆāļ­āļ›ัāļāļŦāļēāļ”ัāļ‡āļĢูāļ›



    āđƒāļŦ้āđƒāļŠ้āļ„āļģāļŠั่āļ‡
    chmod 777 /var/www/phpmyprepaid/www
    āđāļĨ้āļ§āļˆāļ°āđ„āļ”้āļœāļĨāļĨัāļžāļ—์āļ”ัāļ‡āļĢูāļ›



  23. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 4 āļˆāļ°āđ€āļ›็āļ™āļ”ัāļ‡āļĢูāļ› āđƒāļŦ้āļ›้āļ­āļ™āļ„่āļēāđƒāļŦ้āļ–ูāļāļ•้āļ­āļ‡āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ„่āļē Phpmyprepaid path āļ­āļēāļˆāļˆāļ°āļ•้āļ­āļ‡āđ€āļ›āļĨี่āļĒāļ™āđƒāļŦ้āļ•āļĢāļ‡āļ„āļ§āļēāļĄāđ€āļ›็āļ™āļˆāļĢิāļ‡



  24. āļ‚ั้āļ™āļ•āļ­āļ™āđ€āļ›็āļ™āļāļēāļĢāļ„āļ­āļ™āļŸิāļ Radius āļ็āđƒāļŦ้āļ›้āļ­āļ™āļ‚้āļ­āļĄูāļĨāđƒāļŦ้āļ•āļĢāļ‡āļ•āļēāļĄāļĢูāļ›



  25. āļ‚ั้āļ™āļ—ี่ 6 āđ€āļ›็āļ™āļāļēāļĢāļˆัāļ”āļāļēāļĢāđ€āļĢื่āļ­āļ‡ User Interface āļ็āđƒāļŦ้āļ›้āļ­āļ™āļ‚้āļ­āļĄูāļĨāļ•āļēāļĄāļ•้āļ­āļ‡āļāļēāļĢ āđāļ•่āļ­āļĒ่āļēāļĨืāļĄ user āđāļĨāļ° password āļ—ี่āđ„āļ”้āļāļģāļŦāļ™āļ”āđ„āļ§้āļ”้āļ§āļĒ



  26. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 7 āđ€āļ›็āļ™āļāļēāļĢāļ„āļ­āļ™āļŸิāļāļāļēāļ™āļ‚้āļ­āļĄูāļĨ āđƒāļŦ้āļ›้āļ­āļ™āļ‚้āļ­āļĄูāļĨāļ•āļĢāļ‡āļัāļšāļ—ี่āđ„āļ”้āļāļģāļŦāļ™āļ”āđ„āļ§้āļ”ัāļ‡āļĢูāļ›



  27. āđ€āļĄื่āļ­āļ›้āļ­āļ™āļ‚้āļ­āļĄูāļĨāđƒāļ™āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 7 āļ–ูāļāļ•้āļ­āļ‡ āļ็āļˆāļ°āđ„āļ”้āļœāļĨāļĨัāļžāļ—์āļ”ัāļ‡āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 8



  28. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 9 āđ€āļ›็āļ™āļāļēāļĢāļ›้āļ­āļ™āļ‚้āļ­āļĄูāļĨ Location āļ”ัāļ‡āļĢูāļ›



  29. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 11 āđ€āļ›็āļ™āļāļēāļĢāļ„āļ­āļ™āļŸิāļāļ‚้āļ­āļĄูāļĨāļ—ั่āļ§āđ„āļ› āļ”ัāļ‡āļĢูāļ›



  30. āļ‚ั้āļ™āļ•āļ­āļ™āļ—ี่ 11 āđ€āļ›็āļ™āļ‚ั้āļ™āļ•āļ­āļ™āļŠุāļ”āļ—้āļēāļĒ āđƒāļŦ้āļ­่āļēāļ™āļ‚้āļ­āļ„āļ§āļēāļĄāļ”้āļ§āļĒāļ™āļ°āļ„āļĢัāļšāđ€āļžāļĢāļēāļ°āļĄีāļ„āļģāđāļ™āļ°āļ™āļģāļšāļēāļ‡āļ­āļĒ่āļēāļ‡āļ—ี่āļ•้āļ­āļ‡āļ—āļģāļ•āļēāļĄāļ”้āļ§āļĒ



  31. āļˆāļēāļāļ™ั้āļ™āđ€āļĄื่āļ­āđ€āļĢāļēāđ€āļĢีāļĒāļāđƒāļŠ้āļ‡āļēāļ™ http://host/phpmyprepaid/www/ āļ็āļˆāļ°āđ„āļ”้āļŦāļ™้āļēāļ•āļēāļ”ัāļ‡āļĢูāļ›



  32. āđ€āļĄื่āļ­ Login āđ€āļ‚้āļēāļŠู่āļĢāļ°āļšāļšāđ„āļ”้āđāļĨ้āļ§ āļˆāļ°āđ„āļ”้āļœāļĨāļĨัāļžāļ—์āļ”ัāļ‡āļĢูāļ›



  33. āļĢูāļ›āļ‚้āļēāļ‡āļĨ่āļēāļ‡āđ€āļ›็āļ™āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļāļēāļĢāđ€āļžิ่āļĄ Account āļ—ี่āļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āļ„āļ§āļēāļĄāđ€āļĢ็āļ§āđƒāļ™āļāļēāļĢ upload āđāļĨāļ° download āđ„āļ”้



  34. āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ FreeRadius āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ radtest
    radtest  username  password  localhost 0 mysecret
    āļ–้āļēāđ€āļ‹็āļ•āļ­ัāļžāļ–ูāļāļ•้āļ­āļ‡āđāļĨāļ°āļ›้āļ­āļ™āļ„่āļēāļ–ูāļāļ•้āļ­āļ‡āļˆāļ°āđ„āļ”้āļœāļĨāļĨัāļžāļ˜์āļ§่āļē Access-Accept āļ”ัāļ‡āļĢูāļ›
    āļ–้āļēāđ„āļĄ่āđ„āļ”้āđƒāļŦ้āļĨāļ­āļ‡āđ€āļ›āļĨี่āļĒāļ™āļ„āļģāļ§่āļē localhost āđ€āļ›็āļ™ 127.0.0.1

āļ•ิāļ”āļ•ั้āļ‡ psu-radius āļšāļ™ ubuntu

  • PSU-radius āđ€āļ›็āļ™ freeradius āļĢุ่āļ™āļ—ี่āđ„āļ”้āļ›āļĢัāļšāđāļ•่āļ‡āđƒāļŦ้āļ•ิāļ”āļ•ั้āļ‡āļžāļĢ้āļ­āļĄāđƒāļŠ้āļ‡āļēāļ™ āļŠāļēāļĄāļēāļĢāļ– authen āļัāļš mail server āđāļĨāļ° PSU passport āđ„āļ”้
  • āļ—āļ”āļŠāļ­āļšāļัāļš ubuntu 10.04

āļĢูāļ›āļ āļēāļžāļāļēāļĢāļ•ิāļ”āļ•ั้āļ‡
  1. āđƒāļŦ้āļ”āļēāļ§āļ™์āđ‚āļŦāļĨāļ”āđāļŸ้āļĄ http://ftp.psu.ac.th/pub/psu-radius/psu-radius.tgz āļĄāļēāđ€āļ็āļšāđ„āļ§้āļ่āļ­āļ™
    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ”āļēāļ§āļ™์āđ‚āļŦāļĨāļ”āļĄāļēāđ€āļ็āļšāđ„āļ§้āļ—ี่ /tmp āđƒāļŠ้āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    wget http://ftp.psu.ac.th/pub/psu-radius/psu-radius.tgz -N -P /tmp
  2. āđāļ•āļāđāļŸ้āļĄāļ—ี่āļ”āļēāļ§āļ™์āđ‚āļŦāļĨāļ”āļĄāļē āđ€āļ­āļēāđ„āļ›āđ€āļ็āļšāđ„āļ§้āļ—ี่ /tmp āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    tar -zxpvf /tmp/psu-radius.tgz -C /tmp
  3. āđ€āļ‚้āļēāđ„āļ›āļ—āļģāļ‡āļēāļ™āđƒāļ™ directory āļ—ี่āļ–ูāļāļŠāļĢ้āļēāļ‡āļ‚ึ้āļ™āļĄāļēāļ•āļ­āļ™āđāļ•āļāđāļŸ้āļĄāļ™ี้ āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    cd /tmp/psu-radius
  4. āđ€āļĢิ่āļĄāļ‚ั้āļ™āļ•āļ­āļ™āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡
    sudo sh install-psu-radius.sh
  5. āļĢāļ°āļšāļšāļˆāļ°āđ€āļĢิ่āļĄāļ—āļģāļāļēāļĢāļ•ิāļ”āļ•ั้āļ‡ āļĢāļ­āļŠัāļāļ„āļĢู่āļ็āļˆāļ°āđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้
  6. āļ—āļ”āļŠāļ­āļš user āđƒāļ™ server āđāļšāļš localhost āđ‚āļ”āļĒāļ•āļĢāļ‡ āđƒāļŠ้āļ„āļģāļŠั่āļ‡āļ§่āļē
    sudo radtest mama 123456 127.0.0.1 0 testing123
  7. āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļ›āļĢัāļšāļ•ั้āļ‡āļ„่āļēāđƒāļŦ้ radius server āļ™ี้āļšāļĢิāļāļēāļĢāļœ่āļēāļ™ network āđāļĨāļ°āļ›āļĢัāļšāļ•ั้āļ‡ key
    āđƒāļŦ้āđāļ้āđ„āļ‚āļĢāļēāļĒāļāļēāļĢ client āļœ่āļēāļ™ network āļ—ี่āđāļŸ้āļĄ /etc/freeradius/clients.conf
    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    client 10.0.5.0/24 {
    secret = mytestkey
    shortname = private-network
    }
  8. āļ—āļ”āļŠāļ­āļš user āđƒāļ™ server āļœ่āļēāļ™ network āđƒāļŠ้āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    sudo radtest mama 123456 server_ip 0 mytestkey
  9. āļ—āļ”āļŠāļ­āļš user@gmail.com āđƒāļŠ้āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    sudo radtest user@gmail.com yourpassword 127.0.0.1 0 testing123
  10. āļāļēāļĢāļĒืāļ™āļĒัāļ™āļ•ัāļ§āļ•āļ™āđƒāļŠ้ username / password āļ•ั้āļ‡āđƒāļŦ้ authen āļัāļš server āļ•่āļēāļ‡āđ†āđ„āļ”้āļ—ี่āđāļŸ้āļĄ /etc/freeradius/imap-authen.sh āđ€āļĨืāļ­āļāļ•ั้āļ‡āļ„่āļēāļ”ัāļ‡āļ™ี้

    AUTHEN_SHADOW="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āđƒāļŦ้ authen āļัāļšāđāļŸ้āļĄ /etc/passwd āļ”้āļ§āļĒ

    AUTHEN_MAIL="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āđƒāļŦ้ authen āļัāļš mail server āļ”้āļ§āļĒ
    āđƒāļŦ้āļ›āļĢัāļšāļ„่āļē DEFAULT_MAIL_SERVER="your.domain" āđƒāļŦ้āđ€āļ›็āļ™ mail server āļ—ี่āļ•้āļ­āļ‡āļāļēāļĢ

    AUTHEN_LDAP="NO" āļŦāļĄāļēāļĒāļ–ึāļ‡āđ„āļĄ่āļ•้āļ­āļ‡ authen āļัāļš ldap server
    āļ–้āļēāļ•้āļ­āļ‡āļāļēāļĢāđƒāļŦ้ authen āļัāļš ldap server āļ•้āļ­āļ‡āđāļ้āđ„āļ‚āļ•ัāļ§āđāļ›āļĢāđ€āļ›āļĨี่āļĒāļ™āđ€āļ›็āļ™ AUTHEN_LDAP="YES"
    āđāļĨ้āļ§āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/check-ldap.sh āļ•ั้āļ‡āļ„่āļē LDAP SEVER āđƒāļŦ้āļ–ูāļāļ•้āļ­āļ‡āđ€āļŠ่āļ™
    LDAP_HOST="ldap://your.domain"
    LDAP_BASE="dc=aa,dc=bb"

    AUTHEN_SSH="NO" āļŦāļĄāļēāļĒāļ–ึāļ‡āđ„āļĄ่āļ•้āļ­āļ‡ authen āļัāļš ssh server
    āļ–้āļēāļ•้āļ­āļ‡āļāļēāļĢāđƒāļŦ้ authen āļัāļš ssh server āļ•้āļ­āļ‡āđāļ้āđ„āļ‚āļ•ัāļ§āđāļ›āļĢāđ€āļ›āļĨี่āļĒāļ™āđ€āļ›็āļ™ AUTHEN_SSH="YES"
    āđāļĨāļ°āļ›āļĢัāļšāļ„่āļē SSH_SERVER="server.domain" āđƒāļŦ้āđ€āļ›็āļ™ ssh server āļ—ี่āļ•้āļ­āļ‡āļāļēāļĢ

    AUTHEN_PSU_PASSPORT="NO" āļŦāļĄāļēāļĒāļ–ึāļ‡āđ„āļĄ่āļ•้āļ­āļ‡ authen āļัāļšāļĢāļ°āļšāļš PSU passport
    āļ–้āļēāļ•้āļ­āļ‡āļāļēāļĢāđƒāļŦ้ authen āļัāļšāļĢāļ°āļšāļš PSU passport āļ•้āļ­āļ‡āđāļ้āđ„āļ‚āļ•ัāļ§āđāļ›āļĢāđ€āļ›āļĨี่āļĒāļ™āđ€āļ›็āļ™ AUTHEN_PSU_PASSPORT="YES"
    CHECK_PREBLACKLIST="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļ°āļšāļš blacklist āļ”้āļ§āļĒ
    āļĢāļēāļĒāļŠื่āļ­ blacklist āļ­āļĒู่āđƒāļ™āđāļŸ้āļĄ /etc/freeradius/preblacklist.txt
    āļ–้āļēāļĄีāļŠื่āļ­āļ›āļĢāļēāļāļāđƒāļ™āđāļŸ้āļĄ /etc/freeradius/preblacklist.txt āļĢāļ°āļšāļšāļˆāļ°āđ„āļĄ่āđ„āļ› authen āđ€āļžื่āļ­āļĨāļ”āļāļēāļĢāđ‚āļ”āļ™ spam āļ–āļĨ่āļĄ
  11. āđ€āļĄื่āļ­ authen āļ”้āļ§āļĒ username / password āļ–ูāļāļ•้āļ­āļ‡āļœ่āļēāļ™āļĄāļēāđ„āļ”้āđāļĨ้āļ§ āļ•่āļ­āđ„āļ›āļ็āđ€āļ›็āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļēāļĒāļŠืāļ­āļœู้āļĄีāļŠิāļ—āļ˜ิ์āđƒāļŠ้āļšāļĢิāļāļēāļĢ
    āđāļ้āđ„āļ‚āļĢāļ°āļšāļšāļ•āļĢāļ§āļˆāļŠāļ­āļšāļŠิāļ—āļ˜ิ์āļ—ี่āđāļŸ้āļĄ /etc/freeradius/my-authen.sh āļ•ั้āļ‡āļ„่āļēāļ”ัāļ‡āļ™ี้

    CHECK_BLACKLIST="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļ°āļšāļš blacklist āļ”้āļ§āļĒ
    āļĢāļēāļĒāļŠื่āļ­ blacklist āļ­āļĒู่āđƒāļ™āđāļŸ้āļĄ /etc/freeradius/blacklist.txt
    āļ–้āļēāļĄีāļŠื่āļ­āļ›āļĢāļēāļāļāđƒāļ™āđāļŸ้āļĄ /etc/freeradius/blacklist.txt āļˆāļ°āļ–ูāļāļ•ัāļ”āļŠิāļ—āļ˜์āđƒāļŠ้āļ‡āļēāļ™

    ALL_PASS="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āđ„āļĄ่āļ•้āļ­āļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļš āđƒāļŦ้āļœ่āļēāļ™āđ„āļ”้āļ—ุāļāļ„āļ™
    āļŦāļēāļāđ€āļ›āļĨี่āļĒāļ™āļ›็āļ™ ALL_PASS="NO" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ§่āļēāļ•้āļ­āļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚ั้āļ™āļ•āļ­āļ™āļ­ื่āļ™āļ•āļēāļĄāļĨāļģāļ”ัāļšāļ–ัāļ”āđ„āļ›

    CHECK_VIPLIST="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļ°āļšāļšāđāļŸ้āļĄ vip āļ”้āļ§āļĒ
    āļŦāļēāļāļĄีāļĢāļēāļĒāļŠื่āļ­āļ›āļĢāļēāļāļāđƒāļ™āđāļŸ้āļĄ /etc/freeradius/viplist.txt āļ็āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āļœ่āļēāļ™āđ„āļ”้āđ€āļĨāļĒ

    CHECK_PSU_STAFF="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§่āļēāđ€āļ›็āļ™ staff āļ‚āļ­āļ‡ PSU āļŦāļĢืāļ­āđ„āļĄ่

    CHECK_PSU_STUDENT="YES" āļŦāļĄāļēāļĒāļ–ึāļ‡āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§่āļēāđ€āļ›็āļ™ student āļ‚āļ­āļ‡ PSU āļŦāļĢืāļ­āđ„āļĄ่

āļ•ิāļ”āļ•ั้āļ‡ freeradius āļšāļ™ ubuntu



āļŦāļĄāļēāļĒāđ€āļŦāļ•ุ:  āļ•้āļ­āļ‡āļĢāļ°āļ§ัāļ‡ āļāļēāļĢāļ›āļĢัāļšāđāļ•่āļ‡āļ„่āļē freeradius 2.x āļšāļ™ ubuntu āđ€āļ›āļĨี่āļĒāļ™āđāļ›āļĨāļ‡āđ„āļ›āļˆāļēāļ freeradius 1.x āđ„āļ›āļĄāļēāļ

  • āļ—āļ”āļŠāļ­āļšāļัāļš ubuntu 10.04 āđāļĨāļ° freeradius 2.x
  • āļ•้āļ™āļ‰āļšัāļš freeradius āļ­āļĒู่āļ—ี่ http://freeradius.org
  • āļŠāļĄāļĄāļ•ิāļ§่āļē radius server āļ™ี้āļĄีāļŦāļĄāļēāļĒāđ€āļĨāļ‚ ip āđ€āļ›็āļ™ 10.0.1.1
  1. āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo apt-get install freeradius freeradius-utils freeradius-mysql freeradius-ldap gawk
  2. āļŠั่āļ‡āđƒāļŦ้āļ—āļģāļ‡āļēāļ™āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius start
  3. āļ—āļ”āļŠāļ­āļšāļ§่āļē freeradius āļ•ิāļ”āļ•ั้āļ‡āđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้āđāļĨ้āļ§āļ”้āļ§āļĒāļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ„āļģāļŠั่āļ‡

    *** āļˆāļēāļāļ•ัāļ§āļ­āļĒ่āļēāļ‡āđƒāļŦ้āđāļ—āļ™āļ‚้āļ­āļ„āļ§āļēāļĄ your_root_password āļ”้āļ§āļĒāļĢāļŦัāļŠāļœ่āļēāļ™āļ‚āļ­āļ‡ root
    sudo radtest your_name your_password 127.0.0.1 0 testing123
    āļŦāļēāļāļ–ูāļāļ•้āļ­āļ‡āļˆāļ°āđ„āļ”้āļĢัāļšāļ‚้āļ­āļ„āļ§āļēāļĄāļ•āļ­āļšāļāļĨัāļšāļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    Sending Access-Request of id 232 to 127.0.0.1 port 1812
        User-Name = "your-name"
        User-Password = "your_password"
        NAS-IP-Address = 255.255.255.255
        NAS-Port = 0
    rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=232, length=20

    āļ–ึāļ‡āļ•āļ­āļ™āļ™ี้āđāļŠāļ”āļ‡āļ§่āļē freeradius āđƒāļŠ้āļ‡āļēāļ™āđ„āļ”้āđāļĨ้āļ§ āđāļ•่āđƒāļŠ้āđ„āļ”้āđ€āļžีāļĒāļ‡ localhost āļ„ืāļ­ 127.0.0.1
  4. āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļ­āļ™ุāļāļēāļ•ิāđƒāļŦ้ radius client āđ€āļ‚้āļēāļĄāļēāđƒāļŠ้ radius server āļ™ี้āđ„āļ”้
    āļ•้āļ­āļ‡āđāļ้āđ„āļ‚āļŠิāļ—āļ˜ิ์āļ—ี่āđāļŸ้āļĄ /etc/freeradius/clients.conf  āļ›āļĢัāļšāļ•ั้āļ‡āđƒāļŦ้āļĄีāļ„่āļēāļ”ัāļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ™ี้
    client 10.0.1.0/24 {
            secret          = mytestkey
            shortname       = private-network
    }
    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ™ี้āļ„ืāļ­āđƒāļŦ้ radius client āļ—ี่āļĄีāļŦāļĄāļēāļĒāđ€āļĨāļ‚ ip 10.0.1.x  āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚้āļēāļĄāļēāđƒāļŠ้āļ”้āļ§āļĒ secret key āļ§่āļē mytestkey
    āđ€āļĄื่āļ­āđāļ้āđ„āļ‚āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้ reload āđƒāļŦāļĄ่ āļ”้āļ§āļĒāļ„āļģāļŠั่ā sudo /etc/init.d/freeradius force-reload
    āļĨāļ­āļ‡āļ—āļ”āļŠāļ­āļšāļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡āļ•ัāļ§āļ­āļĒ่āļēāļ‡ sudo radtest your_name your_password 10.0.1.1 0 mytestkey
    *** āļ„่āļē your_password āļ„ืāļ­ āļĢāļŦัāļŠāļœ่āļēāļ™āļ‚āļ­āļ‡ your_name āđāļĨāļ° 10.0.1.1 āļ„ืāļ­āļŦāļĄāļēāļĒāđ€āļĨāļ‚ ip āļ‚āļ­āļ‡ radius server
    āđ„āļ”้āļœāļĨāđāļŠāļ”āļ‡āļ‚้āļ­āļ„āļ§āļēāļĄāļ”ัāļ‡āļ•ัāļ§āļ­āļĒ่āļēāļ‡
    Sending Access-Request of id 246 to 10.0.1.1:1812
            User-Name = "your_name"
            User-Password = "your_password"
            NAS-IP-Address = 255.255.255.255
            NAS-Port = 0
    rad_recv: Access-Accept packet from host 10.0.1.1:1812, id=246, length=20

    āļ–ึāļ‡āļ‚ั้āļ™āļ•āļ­āļ™āļ™ี้āđ€āļ›็āļ™āļ­ัāļ™āđ€āļ›ิāļ”āļšāļĢิāļāļēāļĢāļĢāļ°āļšāļš radius server āđ„āļ”้āđāļĨ้āļ§
  5. āļ‚ั้āļ™āļ•āļ­āļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ‚āļ­āļ‡ configuration āļ‚āļ­āļ‡ freeradius
    āđāļŸ้āļĄ /etc/freeradius/radiusd.conf  āđ€āļ›็āļ™āļ—ี่āļ›āļĢัāļšāļ„่āļēāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ•่āļēāļ‡āđ†

    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x āļˆāļ°āļĄีāļāļēāļĢāđāļĒāļāđāļŸ้āļĄāļĒ่āļ­āļĒāļ­āļ­āļāđ„āļ›āļˆāļēāļ /etc/freeradius/radiusd.conf
    āđ„āļ›āļ­āļĒู่āļ—ี่ /etc/freeradius/sites-available/default  āđāļĨāļ° /etc/freeradius/modules
    āļŦāļēāļāđ€āļ›็āļ™ freeradius 1.x āļ—ุāļāļ­āļĒ่āļēāļ‡āļˆāļ°āļāļĢāļ°āļˆุāļāļ•ัāļ§āđƒāļ™āđāļŸ้āļĄ /etc/freeradius/radiusd.conf

    āđ€āļĄื่āļ­ radius server āđ„āļ”้āļĢัāļšāļāļēāļĢāļ•ิāļ”āļ•่āļ­āļˆāļēāļāļœู้āđƒāļŠ้ radius client
    āļ§ิāļ˜ีāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ„ุāļ“āļŠāļĄāļšัāļ•ิāļ‚āļ­āļ‡āļœู้āđƒāļŠ้āļ­āļĒู่āđƒāļ™āļŠ่āļ§āļ™āļ—ี่āļŠื่āļ­ authorize {...}
    āļ āļēāļĒāđƒāļ™ authorize {...} āļ™ี้ āļ›āļĢāļ°āļāļ­āļšāļ”้āļ§āļĒāļŠื่āļ­ modules āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ•่āļēāļ‡āđ†

    āļŦāļēāļāļ„ุāļ“āļŠāļĄāļšัāļ•ิāđ„āļĄ่āļ•āļĢāļ‡ āļ›āļĢāļāļ•ิāđāļĨ้āļ§āļĢāļ°āļšāļšāļ็āļˆāļ°āļĢีāļšāļ”ีāļ”āļ­āļ­āļāļĄāļēāļžāļĢ้āļ­āļĄāđāļˆ้āļ‡ reject
    āđāļ•่āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļāļģāļŦāļ™āļ”āđƒāļŦ้āđ„āļ›āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ•่āļ­āļัāļš authorize modules
    āđ€āļĢีāļĒāļ‡āļĨāļģāļ”ัāļšāļ­ัāļ™āļ–ัāļ”āđ†āđ„āļ›āļ—ี่āđ€āļŦāļĨืāļ­āļ­ื่āļ™āđ†āđ„āļ”้āļ­ีāļ

    āļŦāļēāļāļ„ุāļ“āļŠāļĄāļšัāļ•ิāļœ่āļēāļ™ āļ็āļˆāļ°āđ€āļ‚้āļēāļ‚ั้āļ™āļ•āļ­āļ™āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĢāļŦัāļŠāļœ่āļēāļ™āļ‚āļ­āļ‡āļœู้āđƒāļŠ้āļ§่āļēāļ–ูāļāļ•้āļ­āļ‡āļŦāļĢืāļ­āđ„āļĄ่
    āđ‚āļ”āļĒ authorize modules āļˆāļ°āđ€āļĨืāļ­āļ modules āļ—ี่āļ•้āļ­āļ‡āļāļēāļĢāđ€āļ­āļ‡ āļˆāļēāļāļŠ่āļ§āļ™āļ—ี่āļŠื่āļ­ authenticate {...}

    āļŦāļēāļāļĢāļŦัāļŠāļœ่āļēāļ™āļ–ูāļāļ•้āļ­āļ‡ āļ็āļˆāļ°āđ€āļ‚้āļēāļŠู่āļŠ่āļ§āļ™āļ‚āļ­āļ‡ postauth {...}
    āđ€āļ›็āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ—ิ้āļ‡āļ—้āļēāļĒāļ่āļ­āļ™āļŠ่āļ‡āļ„ืāļ™āļ„่āļēāļāļĨัāļšāđƒāļŦ้āđāļ่ radius client āļ—ี่āļ•ิāļ”āļ•่āļ­āļĄāļē

    āļāļēāļĢāļšัāļ™āļ—ึāļāļ›āļĢāļ°āļ§ัāļ•ิāđƒāļŠ้āļ‡āļēāļ™āļ­āļĒู่āđƒāļ™āļŠ่āļ§āļ™ accounting {...}

    modules āļ—ุāļāļ•ัāļ§āļ—ี่āđƒāļŠ้āļ‡āļēāļ™ āļˆāļ°āļ•้āļ­āļ‡āđ„āļ”้āļĢัāļšāļāļēāļĢāļ›āļĢāļ°āļāļēāļĻāđ„āļ§้āļ่āļ­āļ™āđāļĨ้āļ§
    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x āļˆāļ°āđāļĒāļ modules āļ­āļ­āļāđ€āļ›็āļ™āđāļŸ้āļĄāļĒ่āļ­āļĒāđ†āļ­āļĒู่āļ—ี่ directory āļŠื่āļ­ /etc/freeradius/modules
    āļŦāļēāļāđ€āļ›็āļ™ freeradius 1.x āļˆāļ°āļĄี modules āļ­āļĒู่āđƒāļ™āđāļŸ้āļĄ /etc/freeradius/radiusd.conf āļžื้āļ™āļ—ี่āļŠ่āļ§āļ™āļ‚āļ­āļ‡āļŠื่āļ­ modules {...}
  6. āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļœู้āđƒāļŠ้āļัāļš mail server āļœ่āļēāļ™ imap/pop3 āđƒāļŦ้āļ—āļģāļ”ัāļ‡āļ™ี้

    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ™ี้āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļัāļš mail server āļŠื่āļ­ your.mail.server
    āļ•้āļ­āļ‡āļ•ิāļ”āļ•ั้āļ‡ php āđāļĨāļ° php-imap āļ่āļ­āļ™āđāļĨ้āļ§ āļ•ิāļ”āļ•ั้āļ‡āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo apt-get install php5 php5-imap php5-cli
    āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/php5/cli/conf.d/imap.ini āļ•āļĢāļ§āļˆāļŠāļ­āļš/āđ€āļžิ่āļĄāđƒāļŦ้āļĄีāļšāļĢāļĢāļ—ัāļ”āļ•ัāļ§āđāļ›āļĢāļ§่āļē extension=imap.so

    āļ•่āļ­āđ„āļ›āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄ /etc/freeradius/imap.php āđƒāļŦ้āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    <?php
    error_reporting(0);
    $host = $argv[1];
    $username = $argv[2];
    $password = $argv[3];
    $service = $argv[4];
    $imap_host="{" . $host . $service . "}";
    $mbox = imap_open("$imap_host", "$username", "$password");
    $folders = imap_listmailbox($mbox, "$imap_host", "*");
    if ($folders == false) {
            echo "false";
    } else {
            echo "true";
    }
    imap_close($mbox);
    ?>

    āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄāļ„āļģāļŠั่āļ‡ shell script āļŠื่āļ­  /etc/freeradius/imap-authen.sh āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    #!/bin/bash
    #exit 0 = valid ; exit 1 = invalid
    AUTHEN_SHADOW="YES"
    AUTHEN_MAIL="YES"
    AUTHEN_LDAP="NO"
    AUTHEN_PSU_PASSPORT="NO"
    NAME=$(echo ${USER_NAME} | cut -d'"' -f2)
    PASSWORD=$(echo ${USER_PASSWORD} | cut -d'"' -f 2-|sed "s/\"$//")
    KEY="false"
    if [ "${AUTHEN_SHADOW}" = "YES" ] ; then
      KEY=$(/bin/sh /etc/freeradius/check-shadow.sh "${NAME}" "${PASSWORD}")
      if [ "${KEY}" = "true" ] ; then
        exit 0
      fi
    fi
    if [ "${AUTHEN_LDAP}" = "YES" ] ; then
      KEY=$(/bin/sh /etc/freeradius/check-ldap.sh "${NAME}" "${PASSWORD}")
      if [ "${KEY}" = "true" ] ; then
        exit 0
      fi
    fi
    if [ "${AUTHEN_PSU_PASSPORT}" = "YES" ] ; then
      USER=$(echo ${NAME} | cut -d'@' -f1)
      KEY=$(/usr/bin/php /etc/freeradius/soap-authen.php ${USER} ${PASSWORD} $1 $2})
      if [ "${KEY}" = "true" ] ; then
        exit 0
      fi
    fi
    if [ "${AUTHEN_MAIL}" = "YES" ] ; then
      IS_EMAIL=$(echo ${NAME}|grep "@")
      if [ -n "${IS_EMAIL}" ] ; then
        USER=$(echo ${NAME} | cut -d'@' -f1)
        DOMAIN=$(echo ${NAME} | cut -d'@' -f2)
      else
        USER=${NAME}
        DOMAIN="mail.psu.ac.th"
      fi
      case ${DOMAIN} in
      psu.ac.th)
        HOST="mail.psu.ac.th"
        SERVICE=":143/imap/notls" ;;
      pharmacy.psu.ac.th)
        HOST="mail.pharmacy.psu.ac.th"
        SERVICE=":143/imap/notls" ;;
      pn.psu.ac.th)
        HOST="bunga.pn.psu.ac.th"
        SERVICE=":143/imap/notls" ;;
      gmail.com)
        HOST="pop.gmail.com"
        SERVICE=":995/pop3/ssl" ;;
      live.com)
        HOST="pop3.live.com"
        USER=${NAME}
        SERVICE=":995/pop3/ssl" ;;
      *)
        HOST=${DOMAIN}
        SERVICE=":110/pop3/notls" ;;
      esac
      KEY=$(/usr/bin/php /etc/freeradius/imap.php ${HOST} ${USER} ${PASSWORD} ${SERVICE})
      if [ "${KEY}" = "true" ] ; then
        exit 0
      fi
    fi
    exit 1

    āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄāđāļšāļš text āļŠื่āļ­ /etc/freeradius/myusers āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    DEFAULT Auth-Type := Accept
                  Exec-Program-Wait="/bin/sh /etc/freeradius/imap-authen.sh"

    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x āđƒāļŦ้āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/modules/files āđ€āļ•ิāļĄāļ‚้āļ­āļ„āļ§āļēāļĄāļ•่āļ­āļ—้āļēāļĒāđāļŸ้āļĄāļ§่āļē
    files  myimap  {
        usersfile = ${confdir}/myusers
    }
    āđāļĨ้āļ§āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/sites-available/default
    āļ—ี่āļŠ่āļ§āļ™āļ‚āļ­āļ‡ authorize {...} āļ›āļĢāļ°āļĄāļēāļ“āļšāļĢāļĢāļ—ัāļ”āļ—ี่ 152 āļ—ี่āļšāļĢิāđ€āļ§āļ“āļ‚้āļ­āļ„āļ§āļēāļĄāļ‚ึ้āļ™āļ•้āļ™āļ”้āļ§āļĒ authorize {
    ...
    #  Read the 'users' file
         files
    āđƒāļŦ้ comment āļšāļĢāļĢāļ—ัāļ” files āđ€āļžื่āļ­āļĒāļāđ€āļĨิāļāļ„่āļēāļ™ี้  āđāļĨ้āļ§āđāļ—āļĢāļāđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄāđ€āļžิ่āļĄ āļāļĨāļēāļĒāđ€āļ›็āļ™āļ§่āļē
    #    files
    āđāļ—āļĢāļāđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄāļ§่āļē myimap āļ•่āļ­āđ„āļ›āļ­ีāļāļšāļĢāļĢāļ—ัāļ” āļāļĨāļēāļĒāđ€āļ›็āļ™āļ§่āļē
    #   files
    myimap

    āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้āļŠั่āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄ่āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius force-reload
    āđāļ„่āļ™ี้āļ็āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§ āļ—āļ”āļŠāļ­āļšāļœāļĨāļ‡āļēāļ™āđ„āļ”้āđ€āļĨāļĒ
  7. āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāļ§่āļēāļŦāļĨัāļ‡āļœ่āļēāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš username/password āļ–ูāļāļ•้āļ­āļ‡āđāļĨ้āļ§
    āļˆāļ°āļ—āļģāļāļēāļĢāļšัāļ™āļ—ึāļāļĨāļ‡āđāļŸ้āļĄ log file āđ€āļ็āļšāđ„āļ§้āļ—ี่ /var/log/freeradius/myauthen āđāļĨāļ°āļĒัāļ‡āļ•้āļ­āļ‡āļāļēāļĢāļ•āļĢāļ§āļˆāļ§ิāļ˜ีāļāļēāļĢāļžิāđ€āļĻāļĐāđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļ•āļ™āđ€āļ­āļ‡āđ€āļžิ่āļĄāđ€āļ•ิāļĄāļ­ีāļ

    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ•้āļ­āļ‡āļāļēāļĢāđ„āļĄ่āļ­āļ™ุāļāļēāļ•ิāđƒāļŦ้āļœู้āđƒāļŠ้āļŠื่āļ­ demo āđāļĨāļ° abc āđƒāļŠ้āļ‡āļēāļ™ āđƒāļŦ้āļ—āļģāļ”ัāļ‡āļ™ี้
    āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄāļ„āļģāļŠั่āļ‡ shell script āļŠื่āļ­  /etc/freeradius/my-authen.sh āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    #!/bin/bash
    ###exit 0 = valid ; exit1 = invalid
    ALL_PASS="YES"
    CHECK_STAFF="NO"
    CHECK_STUDENT="NO"
    export LANG=en.US
    MYDIR="/var/log/freeradius/myauthen"
    if [ ! -d ${MYDIR} ] ; then
      mkdir -p ${MYDIR}
    fi
    TODAY=$(date "+%Y%m%d")
    MYFILE="${MYDIR}/${TODAY}"
    if [ ! -e ${MYFILE} ] ; then
      touch ${MYFILE}
    fi
    MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
    echo "${MYTIME};${USER_NAME};$2;$1;PASS" >> ${MYFILE}
    MYUSER=$(echo $USER_NAME | cut -d'"' -f2)
    if [ "${ALL_PASS}" = "YES" ] ; then
      exit 0
    fi
    if [ "${CHECK_STAFF}" = "YES" ] ; then
      case "${MYUSER}" in
        demo) exit 1 ;;
        *) exit 0 ;;
      esac
    fi
    if [ "${CHECK_STUDENT}" = "YES" ] ; then
      case "${MYUSER}" in
        demo) exit 1 ;;
        *) exit 0 ;;
      esac
    fi
    exit 1

    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x  āđƒāļŦ้āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/modules/exec āđ€āļ•ิāļĄāļ‚้āļ­āļ„āļ§āļēāļĄāļ•่āļ­āļ—้āļēāļĒāđāļŸ้āļĄāļ§่āļē
    exec my-auth {
            program = "/bin/sh /etc/freeradius/my-authen.sh %l %{Packet-Src-IP-Address}"
            wait = yes
            input_pairs = request
            output_pairs = reply
            packet_type = Access-Accept
    }
    āđāļĨ้āļ§āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/sites-available/default
    āļ—ี่āļŠ่āļ§āļ™āļ‚āļ­āļ‡ post-auth {...} āļ›āļĢāļ°āļĄāļēāļ“āļšāļĢāļĢāļ—ัāļ”āļ—ี่ 439  āļ—ี่āļšāļĢิāđ€āļ§āļ“āļ‚้āļ­āļ„āļ§āļēāļĄāļ‚ึ้āļ™āļ•้āļ™āļ”้āļ§āļĒ post-auth {
    ...
    āđāļ—āļĢāļāđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄāđ€āļžิ่āļĄ
    my-auth

    āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้āļŠั่āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄ่āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius force-reload
  8. āļāļēāļĢāļšัāļ™āļ—ึāļāļ›āļĢāļ°āļ§ัāļ•ิāļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āļ‚āļ­āļ‡ radius āđ‚āļ”āļĒ defualt āļˆāļ°āļšัāļ™āļ—ึāļāđ„āļ§้āđƒāļ™āļžื้āļ™āļ—ี่  /var/log/freeradius/radacct
    āđ‚āļ”āļĒāđāļĒāļāđ€āļ›็āļ™ directory āļ‚āļ­āļ‡āđāļ•่āļĨāļ°āļŦāļĄāļēāļĒāđ€āļĨāļ‚ ip āļ‚āļ­āļ‡ radius client
    āđāļĨ้āļ§āļĒัāļ‡āđāļ•āļāļĒ่āļ­āļĒāļ­āļ­āļāđ€āļ›็āļ™āđāļŸ้āļĄāļ‚āļ­āļ‡āđāļ•่āļ§ัāļ™āļ­ีāļ āļ‹ึ่āļ‡āļ­āļēāļˆāđ„āļĄ่āļŠāļ°āļ”āļ§āļāļ•่āļ­āļāļēāļĢāļ§ิāđ€āļ„āļĢāļēāļ°āļŦ์āļ‚้āļ­āļĄูāļĨ
    āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđ€āļžิ่āļĄ module āļšัāļ™āļ—ึāļāļ›āļĢāļ°āļ§ัāļ•ิāļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™āđ€āļžิ่āļĄāđ€āļ•ิāļĄāļˆāļēāļāļ‚āļ­āļ‡āđ€āļ”ิāļĄ āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ„ืāļ­
    āļ•้āļ­āļ‡āļāļēāļĢāļšัāļ™āļ—ึāļāđ„āļ§้āđƒāļ™ directory āļŠื่āļ­ /var/log/freeradius/myaccount
    āđāļĨ้āļ§āđ€āļ็āļšāđāļŸ้āļĄāđāļĒāļāđ€āļ›็āļ™āļĢāļēāļĒāļ§ัāļ™āđƒāļ™āļĢูāļ›āđāļšāļš 20060729 āļ āļēāļĒāđƒāļ™āđāļŸ้āļĄāļĄีāļĢูāļ›āđāļšāļšāļ§่āļē
    20060729:15:54:05;"demo";10.0.0.153;1154163245;"a5f56ebd6ebc1321";Start;
    20060729:15:55:06;"demo";10.0.0.153;1154163306;"a5f56ebd6ebc1321";Stop;61

    āđƒāļŦ้āļ—āļģāļ”ัāļ‡āļ™ี้ āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄāļ„āļģāļŠั่āļ‡ shell script āļŠื่āļ­  /etc/freeradius/log-radius-account.sh āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    #!/bin/bash
    export LANG=en.US
    MYDIR="/var/log/freeradius/myaccount"
    if [ ! -d ${MYDIR} ] ; then
      mkdir -p ${MYDIR}
    fi
    TODAY=$(date "+%Y%m%d")
    myfile="${MYDIR}/${TODAY}"
    if [ ! -e ${MYDIR} ] ; then
      touch ${MYDIR}
    fi
    MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
    echo "${MYTIME};${USER_NAME};$2;$1;${ACCT_UNIQUE_SESSION_ID};${ACCT_STATUS_TYPE};${ACCT_SESSION_TIME}" >> ${MYFILE}
    āđāļŸ้āļĄ shell script āļˆāļšāđāļ„่āļ™ี้

    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x  āđƒāļŦ้āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/modules/exec āđ€āļ•ิāļĄāļ‚้āļ­āļ„āļ§āļēāļĄāļ•่āļ­āļ—้āļēāļĒāđāļŸ้āļĄāļ§่āļē
    exec my-log-account {
         wait = no
         program = "/bin/sh /etc/freeradius/log-radius-account.sh %l %{Packet-Src-IP-Address} "
    }
    āđāļĨ้āļ§āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/sites-available/default
    āļ—ี่āļŠ่āļ§āļ™āļ‚āļ­āļ‡ accounting  {...}āļ›āļĢāļ°āļĄāļēāļ“āļšāļĢāļĢāļ—ัāļ”āļ—ี่ 358  āļ—ี่āļšāļĢิāđ€āļ§āļ“āļ‚้āļ­āļ„āļ§āļēāļĄ accounting {
    ...
    detail
    āđƒāļŦ้āđāļ—āļĢāļāđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄāļ§่āļē
    my-log-account

    āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้āļŠั่āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄ่ āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius force-reload
  9. radius server āļŠāļēāļĄāļēāļĢāļ–āļŠ่āļ‡āļ„่āļēāļšāļ­āļāđ€āļ§āļĨāļēāļ—ี่āļĒัāļ‡āļ„āļ‡āđ€āļŦāļĨืāļ­āđƒāļŦ้āđƒāļŠ้āļ‡āļēāļ™
    āđ‚āļ”āļĒāļŠ่āļ‡āļ„่āļēāļāļĨัāļšāļĄāļēāļ—ี่ attribute āļŠื่āļ­ Session-Timeout
    āđāļ•่āļ•ัāļ§āļĄัāļ™āđ€āļ­āļ‡āļ„āļģāļ™āļ§āļ“āđ„āļĄ่āđ€āļ›็āļ™ āļ•้āļ­āļ‡āļŦāļēāļ§ิāļ˜ีāļ­ื่āļ™āđƒāļ™āļāļēāļĢāļ„āļģāļ™āļ§āļ“āđ€āļ§āļĨāļē
    āđāļĨ้āļ§āļŠ่āļ‡āļāļĨัāļšāļĄāļēāđƒāļŦ้ radius āļŠ่āļ‡āļ„āļģāļ•āļ­āļšāđƒāļŦ้āļ­ีāļāļ—āļ­āļ”āļŦāļ™ึ่āļ‡

    āļˆāļēāļāļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ‚้āļ­ 8 āļŦāļēāļāļ•้āļ­āļ‡āļāļēāļĢāđƒāļŠ่āļ„่āļēāđ€āļ§āļĨāļēāļ—ี่āđ€āļŦāļĨืāļ­āđƒāļ™āļāļēāļĢāđƒāļŠ้āļ‡āļēāļ™
    āļ•ัāļ§āļ­āļĒ่āļēāļ‡āđ€āļŠ่āļ™āđ€āļŦāļĨืāļ­ 120 āļ§ิāļ™āļēāļ—ี āđƒāļŦ้āđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄāļ§่āļē
    echo "SESSION-TIMEOUT = \"120\""
    āļĨāļ‡āđ„āļ›āļ่āļ­āļ™āļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄ  exit 0 āļ”ัāļ‡āļ•ัāļ§āļ­āļĒ่āļēāļ‡
    #!/bin/bash
    ###exit 0 = valid ; exit1 = invalid
    MYUSER=$(echo $USER_NAME | cut -d'"' -f2)
    case "${MYUSER}" in
      demo) exit 1 ;;
      abc) exit 1 ;;
      *) echo "SESSION-TIMEOUT = \"120\""
          exit 0 ;;
    esac

    āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้āļŠั่āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄ่ āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius force-reload
    āđāļ„่āļ™ี้āļ็āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§ PC āļ—ี่āļ•ิāļ”āļ•่āļ­āđ€āļ‚้āļēāļĄāļēāļˆāļ°āđ„āļ”้āļĢัāļšāļ„āļģāļ•āļ­āļšāļāļĨัāļšāđ„āļ›
    āļĢāļ°āļšุāļ§่āļēāđ€āļŦāļĨืāļ­āđ€āļ§āļĨāļēāđƒāļŠ้āļ‡āļēāļ™āļ­ีāļāđ€āļ—่āļēāđ„āļĢ āļ‚ึ้āļ™āļัāļšāļ•ัāļ§āđ€āļĨāļ‚āļ—ีāļāļģāļŦāļ™āļ”āļŠ่āļ‡āļ­āļ­āļāļĄāļē
    āļˆāļēāļāļ•ัāļ§āļ­āļĒ่āļēāļ‡āđƒāļŦ้āđāļ้āđ„āļ‚āļ•ัāļ§āđ€āļĨāļ‚ 120 āđ€āļ›็āļ™āļ­ื่āļ™āđ†āļ•āļēāļĄāļ•้āļ­āļ‡āļāļēāļĢ
  10. āļāļēāļĢāļšัāļ™āļ—ึāļāļ›āļĢāļ°āļ§ัāļ•ิāļāļēāļĢ authen radius āđ„āļ§้āđƒāļ™āļžื้āļ™āļ—ี่  /var/log/freeradius/myauthen āđƒāļŦ้āļ—āļģāļ”ัāļ‡āļ™ี้
    āļŠāļĢ้āļēāļ‡āđāļŸ้āļĄāļ„āļģāļŠั่āļ‡ shell script āļŠื่āļ­  /etc/freeradius/log-radius-authen.sh āļĄีāđ€āļ™ื้āļ­āļŦāļēāļ§่āļē
    #!/bin/bash
    export LANG=en.US
    MYDIR="/var/log/freeradius/myauthen"
    if [ ! -d ${MYDIR} ] ; then
      mkdir -p ${MYDIR}
    fi
    TODAY=$(date "+%Y%m%d")
    MYFILE="${MYDIR}/${TODAY}"
    if [ ! -e ${MYFILE} ] ; then
      touch ${MYFILE}
    fi
    MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
    echo "${MYTIME};${USER_NAME};$2;$1;CHECK_IN" >> ${MYFILE}
    āđāļŸ้āļĄ shell script āļˆāļšāđāļ„่āļ™ี้

    āļŦāļēāļāđ€āļ›็āļ™ freeradius 2.x  āđƒāļŦ้āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/modules/exec āđ€āļ•ิāļĄāļ‚้āļ­āļ„āļ§āļēāļĄāļ•่āļ­āļ—้āļēāļĒāđāļŸ้āļĄāļ§่āļē
    exec my-log-authen {
         wait = no
         program = "/bin/sh /etc/freeradius/log-radius-authen.sh %l %{Packet-Src-IP-Address} "
    }
    āđāļĨ้āļ§āđāļ้āđ„āļ‚āđāļŸ้āļĄ /etc/freeradius/sites-available/default
    āļ—ี่āļŠ่āļ§āļ™āļ‚āļ­āļ‡ authorize  {...}āļ›āļĢāļ°āļĄāļēāļ“āļšāļĢāļĢāļ—ัāļ”āļ—ี่ 152  āļ—ี่āļšāļĢิāđ€āļ§āļ“āļ‚้āļ­āļ„āļ§āļēāļĄ authorize {
    ...
    #   files
    myimap
    āđƒāļŦ้āđāļ—āļĢāļāđ€āļžิ่āļĄāļšāļĢāļĢāļ—ัāļ”āļ‚้āļ­āļ„āļ§āļēāļĄ āļāļĨāļēāļĒāđ€āļ›็āļ™āļ§่āļē
    my-log-authen
    #   files
    myimap

    āđ€āļŠāļĢ็āļˆāđāļĨ้āļ§āđƒāļŦ้āļŠั่āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāļĄ่ āļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ sudo /etc/init.d/freeradius force-reload
  11. āļ•ัāļ§āļ­āļĒ่āļēāļ‡āļ„āļģāļŠั่āļ‡āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ”้āļ§āļĒāļ„āļģāļŠั่āļ‡ radclient
    āļ—āļ”āļŠāļ­āļšāļāļēāļĢ authen āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    echo "User-Name=mama,User-Password=123456" | radclient 10.0.1.2 auth mytestkey

    āļ—āļ”āļŠāļ­āļšāļāļēāļĢ accounting āļ•āļ­āļ™āđ€āļ‚้āļē āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    echo "User-Name=mama,Acct-Status-Type=Start" | radclient 10.0.1.2 acct mytestkey

    āļ—āļ”āļŠāļ­āļšāļāļēāļĢ accounting āļ•āļ­āļ™āļ­āļ­āļ āļ„āļģāļŠั่āļ‡āļ›āļĢāļ°āļĄāļēāļ“āļ§่āļē
    echo "User-Name=mama,Acct-Status-Type=Stop" | radclient 10.0.1.2 acct mytestkey

 
Design by GURU