วันพุธที่ 18 พฤษภาคม พ.ศ. 2554

ตั้งค่า Freeradius แก้ปัญหา User ค้าง อีกแบบหนึ่ง

วิธีการตั้งค่า Freeradius แก้ปัญหา User ค้างอีกแบบหนึ่ง เผื่อใครกำลังค้นหาวิธีแก้ปัญหานี้เหมือนกัน
วิธีนี้ผมใช้กับระบบจัดการ User ที่ผมเขียนขึ้นมาใช้เอง แต่ผมเห็นส่วนใหญ่ จะใช้ของ ม.บูรพา ก็ใช้การตั้งค่านี้ได้เหมือนกัน แต่วิธีนี้ไม่จำเป็นต้องเคลียร์ไฟล์ radtump radwtmp ลองใช้วิธีนี้ดูครับ

เปิดไฟล์ขึ้นมาแก้ไขตามนี้

#nano /etc/freeradius/sites-available/inner-tunnel


#  Session database, used for checking Simultaneous-Use. Either the radutmp
#  or rlm_sql module can handle this.
#  The rlm_sql module is *much* faster
session {
        #radutmp

        #
        #  See "Simultaneous Use Checking Queries" in sql.conf       
        sql
}

#nano /etc/freeradius/sites-available/default

#  Session database, used for checking Simultaneous-Use. Either the radutmp
#  or rlm_sql module can handle this.
#  The rlm_sql module is *much* faster
session {
        #radutmp

        #
        #  See "Simultaneous Use Checking Queries" in sql.conf
        sql
}

#nano /etc/freeradius/sql/mysql/dialup.conf

เอา # ออกให้เป็นแบบนี้

# Uncomment simul_count_query to enable simultaneous use checking
        simul_count_query = "SELECT COUNT(*) \
                             FROM ${acct_table1} \
                             WHERE username = '%{SQL-User-Name}' \
                             AND acctstoptime IS NULL" 

แล้วก็สั่ง restart Freeradius แล้วแต่ว่าใครใช้ Linux ตัวไหนนะ  แต่ผมใช้ Ubuntu

#/etc/init.d/freeradius restart

วิธีนี้เป็นการใช้ฐานข้อมูล radacct แทนไฟล์ radutmp เวลาเราสั่งเตะจากตัวจัดการ ยังไง ๆ ก็เตะออกแน่นอน เพราะถ้าเตะจาก ตัวจัดการของ ม.บูรพา radacct จะถูกอัพเดต acctstoptime และสามารถปรับแต่งหน้าล็อกอิน ให้ตรวจสอบ User ที่ค้างอยู่ แล้วก็เตะ ก่อนล๊อกอินได้

หลาย ๆ ท่านอาจมีวิธีที่ต่างกันไปนะครับ แต่ที่ผมเคยเห็นส่วนใหญ่จะเคลียร์ไฟล์ radutmp กับ radwtmp และก็คำสั่ง #radzap -u <UserName>.... ก็ได้เหมือนกัน แต่ก็ต้องใช้ commandline

ไม่มีความคิดเห็น:

แสดงความคิดเห็น