สำนักวิทยบริการและเทคโนโลยีสารสนเทศ (สวส.)

Office of Academic Resources and Information Technology

ติดตั้ง Radius Server แบบใช้ฐานข้อมูล MySql

1. ติดตั้งด้วยคำสั่ง sudo apt-get install freeradius freeradius-utils freeradius-mysql

  2. ทดสอบการทำงานของ radius สามารถทำงานได้หรือไม่ โดยแก้ไขไฟล์ /etc/freeradius/users และเพิ่มท้ายไฟล์ดังนี้

    "testradius"  Cleartext-Password:="hello"
                        Reply-Message="Hello,%{User-Name}"


  3. สั่งให้ freeradius ทำงานใหม่ด้วยคำสั่ง service freeradius restart 
  
  4. ทดสอบการทำงานด้วยคำสั่ง radtest testradius hello 127.0.0.1 0 testing123 จะได้ข้อความประมาณนี้

      Sending Access-Request of id 31 to 127.0.0.1 port 1812
            User-Name = "testradius"
            User-Password = "hello"
            NAS-IP-Address = 172.16.166.3
            NAS-Port = 0
            Message-Authenticator = 0x00000000000000000000000000000000
     rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=31, length=39
            Reply-Message = "Hello, testradius"

  5. ขั้นตอนการทำงานของ configuration ของ freeradius

      แฟ้ม /etc/freeradius/radiusd.conf  เป็นที่ปรับค่าของระบบต่างๆ


 6. ติดตั้ง MySQL Server สำหรับเป็นฐานข้อมูล ด้วยคำสั่ง sudo apt-get install mysql-server
      - ขณะติดตั้งระบบจจะถามข้อมูลเกี่ยวกับรหัสผ่านของ Mysql แนะนำให้ใส่เหมือนกันทุกครั้ง


  7. ติดตั้ง phpMyAdmin สำหรับเป็นเครื่องมือเข้าจัดการฐานข้อมูล จำเป็นต้องติดตั้ง Apache2 และ PHP5 
      - ติดตั้งด้วยคำสั่ง sudo apt-get install apache2 php5 php5-common php5-gd php-pear php-db libapache2-mod-php5 php5-mysql
      - แก้ปัญหาการแสดง error เตือน ServerName ดูบทความ ติดตั้ง Apache2 บน Ubuntu14.04 LTS 

  8. ติดตั้ง phpMyAdmin ด้วยคำสั่ง sudo apt-get install phpmyadmin
      - เลือกสนับสนุนการทำงานบน apache2 โดยกด space bar ให้ขึ้นเครื่องหมาย * และเลือก OK
      - ขณะติดตั้งระบบจะถามข้อมูลเกี่ยวกับรหัสผ่านของการใช้งานโปรแกรมและ MySql แนะนำให้ป้อนเหมือนกับรหัสผ่านของ Mysql Server
      - ทดสอบเข้าใช้งาน phpMyAdmin ได้โดยเข้าไปที่ http://ip address/phpmyadmin


  9. เพิ่มฐานข้อมูล radius เข้าไปยัง MySql Server
      - ใช้คำสั่ง mysql -u root -p ระบบจะถามรหัสผ่าน Mysql ให้ใส่ลงไปตามที่ตั้งค่าไว้
      - สร้างฐานข้อมูลโดยใช้คำสั่ง CREATE DATABASE radius;
      - ใช้คำสั่ง quit; เพื่อออกจากฐานข้อมูล

  10. เพิ่มตารางลงในฐานข้อมูล radius โดยใช้คำสั่ง
      - mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql -p
      - mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql

  11. ปรับแต่ง freeradius เพื่อใช้เชื่อมต่อฐานข้อมูล Mysql แก้ไขไฟล์ /etc/freeradius/sql.conf
        (แนะนำให้สร้าง user จัดการฐานข้อมูล radius โดยเฉพาะ)
        server = "localhost"
        login = "radius"
        password = "xxxxxxxx"
        radius_db = "radius"
        และเอา # หน้า readclients = yes ออก

  12. แก้ไขไฟล์ /etc/freeradius/radiusd.conf หาข้อความตามบรรทัดด้านล่าง และเอาเครื่องหมาย # ด้านหน้าออก
        modules {
             ...
             ...
             $INCLUDE sql.conf 
             $INCLUDE sql/mysql/counter.conf
             ...
        }

  13. แก้ไชไฟล์ /etc/freeradius/sites-available/default หาข้อความตามบรรทัดด้านล่าง และเอาเครื่องหมาย # ด้านหน้า sql ออก
        authorize {
        #files
        sql
        dailycounter
        monthlycounter
        noresetcounter
        }

        accounting {
        sql
        }

        session {
        #radutmp ปิดการเช็ค session จากระบบ ให้เช็คจาก  sql เท่านั้น
        sql
        }
      
      แก้ไขไฟล์ /etc/freeradius/sql/mysql/dialup.conf โดยเปิดการทำงานของ simultaneous ดังนี้

        #######################################################################
        # Simultaneous Use Checking Queries
        #######################################################################

      simul_count_query = "SELECT COUNT(*) \
                             FROM ${acct_table1} \
                             WHERE username = '%{SQL-User-Name}' \
                             AND acctstoptime IS NULL"


  14. สั่ง freeradius ให้เริ่มทำงานใหม่ด้วยคำสั่ง service freeradius restart

  15. ทดสอบสร้าง user ผ่านทาง phpMyAdmin ดังตัวอย่าง




  16. ทดสอบการทำงานของ radius บนฐานข้อมูล MySql ด้วยคำสั่ง
        - radtest user1 password 127.0.0.1 0 testing123      

          Sending Access-Request of id 142 to 127.0.0.1 port 1812                       
                 User-Name = "user1"                       
                 User-Password = "password"                       
                 NAS-IP-Address = 172.16.166.3                       
                 NAS-Port = 0                       
                 Message-Authenticator = 0x00000000000000000000000000000000                 
           rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=142, length=20

https://www.dropbox.com/s/7xy6xfc3uzhtlkj/default
https://www.dropbox.com/s/8trgv8ir7gcqf2s/dialup.conf
https://www.dropbox.com/s/7sxkb1fg6nvqxds/sql.conf
https://www.dropbox.com/s/aupbn7vrrq7cevq/radiusd.conf


ที่มา http://www.phuketadmin.org/index.php?topic=7211.0