วันเสาร์ที่ 15 มีนาคม พ.ศ. 2557

กำหนดค่า Freeradius และ Mysql บน ClearOS 6.4

เกริ่นนำ สวัสดีกันอีกครั้งสำหรับแฟนเพจของ s-techthai.com รวบรวมประสบการณ์ดีๆ เกี่ยวกับการใช้งาน Opensource Server ในนาม ไทย พรอสเพอรัส ไอที มาฝากกันอีกครั้งหนึ่ง หลังจากที่ผู้เขียนเคยเขียนวิธีการใช้งาน SyntaxHighLighter บนบล็อกสปอตมาแล้ว

ครั้งที่แล้วผู้เขียนเคยแนะนำวิธีการกำหนดค่าให้ Freeradius เชื่อมต่อกับ OpenLDAP บน ClearOS 6.4 มาแล้ว ในครั้งนี้จะเป็นการเชื่อมต่อกับ Mysql Server กันบ้าง เพราะเป็นงานที่ใช้บ่อย รวมถึงการติดตั้งซอฟต์แวร์บริหารจัดการบัญชีรายชื่อผู้ใช้งาน daloRadius ที่จะขอแนะนำกันอีกครั้งหนึ่ง

การติดตั้งซอฟต์แวร์ Mysql Server สามารถทำได้ผ่าน GUI หรือสามารถติดตั้งผ่านคอมมานไลน์ตามขั้นตอนต่อไปนี้

 
/usr/sbin/wc-yum -i app-radius 
/usr/sbin/wc-yum -i app-mysql
หากยังไม่ได้ติดตั้งเวบเซิร์ฟเวอร์ให้ทำการติดตั้งให้ด้วยคำสั่งต่อไปนี้
 
/usr/sbin/wc-yum -i app-web-server
ไฟล์สำหรับกำหนดค่าให้กับโปรแกรม freeradius จะอยู่ที่ /etc/raddb ขั้นตอนนี้จะเป็นการแก้ไขคอนฟิกกูเลชั่นไฟล์ของระบบ เราควรที่จะต้องสำรองข้อมูลไว้ก่อนการแก้ไขทุกครั้งจำเป็นต้องฝึกให้เคยชิน
 
modules { 
    $INCLUDE sql.conf
}
 
ดาวโหลด daloradius สำหรับบริหารจัดการบัญชีผู้ใช้ของระบบ ซึ่งสามารถเข้าไปดาวน์โหลดข้อมูลตามลิงค์ที่ผู้เขียนให้ไว้ http://sourceforge.net/projects/daloradius/ จากนั้นแตกไฟล์ไปเก็บที่โฟลเดอร์ /var/www/html และเปลี่ยนสิทธิ์การเข้าถึงโดยกลุ่ม nobody แก้ไขไฟล์ clearos-clients.conf
 
# This file is managed through webconfig.  Please add another clients file
# your custom changes outside of webconfig.
client 127.0.0.1 {
 secret = testing123
 shortname = localhost
}
ขั้นตอนที่สำคัญในการติดตั้งฐานข้อมูล daloradius สามารถทำได้ตามนี้ ต้องสร้างฐานข้อมูลขึ้นมาก่อนตามตัวอย่าง สร้างฐานข้อมูลชื่อ daloradius และกำหนดสิทธิ์ให้กับยูสเซอร์ admin และรหัสผ่าน password
 
mysql> create database daloradius;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on daloradius.* to 'admin'@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
จากนั้นให้ทำการป้อนค่าเทมเพลตลงสู่ฐานข้อมูล ตามวิธีการต่อไปนี้ เป็นการเสร็จสิ้นวิธีป้อนค่าให้กับฐานข้อมูล ขั้นตอนต่อไปจะเป็นการกำหนดค่าให้กับโปรแกรม freeradius ให้สามารถติดต่อกับฐานข้อมูล daloradius ที่เราได้สร้างขึ้นมา
 
mysql -uadmin -p daloradius < fr2-mysql-daloradius-and-freeradius.sql
Enter password:
โดยปกติซอฟต์แวร์ freeradius ไม่สามารถเชื่อมต่อโปรแกรมฐานข้อมูล mysql ได้เราต้องทำการติดตั้งซอฟต์แวร์เพิ่มเติมเพื่อให้ freeradius สามารถเชื่อมต่อกับโปรแกรมฐานข้อมูล mysql ได้
 
yum install freeradius-mysql
ขั้นตอนนี้เป็นขั้นตอนที่สำคัญเพราะจะเป็นวิธีการกำหนดค่าให้โปรแกรม freeradius สามารถติดต่อกับโปรแกรมฐานข้อมูล mysql ได้ ให้ทำการแก้ไขคอนฟิกไฟล์ต่อไปนี้
 
/etc/raddb/sql.conf
 server = "localhost"
 #port = 3306
 login = "admin"
 password = "password"
 # Database table configuration for everything except Oracle
 radius_db = "daloradius"
ต่อไปให้แก้ไขไฟล์ /etc/raddb/sites-available/default ให้เพิ่มในส่วนของ sql ตามหัวข้อต่อไปนี้
authorization {sql}, accounting {sql}, session {sql}
สร้างไฟล์ทดสอบการสร้างบัญชีรายชื่อ test2 รหัสผ่านเป็นการทำ md5sum ของ test2 ป้อนเก็บลงฐานข้อมูลเพื่อทดสอบ
 
INSERT INTO `radcheck` (`id`, `UserName`, `Attribute`, `op`, `Value`) VALUES ('', 'test2', 'User-Password', ':=', '126a8a51b9d1bbd07fddc65819a542c3');
INSERT INTO `usergroup` (`UserName`, `GroupName`, `priority`) VALUES ('test2', 'mhs', 1);
รันคำสั่งทดสอบ radtest ตามด้วยชื่อผู้ใช้ รหัสผ่าน ชื่อเครื่อง พอร์ต และรหัสผ่านไคลเอนท์ ตามตัวอย่างข้างล่าง หากสามารถใช้งานได้ โปรแกรม freeradius จะตอบกลับมาเป็น Access-Accept ตามตัวอย่าง
 
Sending Access-Request of id 121 to 127.0.0.1 port 1812
        User-Name = "test2"
        User-Password = "126a8a51b9d1bbd07fddc65819a542c3"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Message-Authenticator = 0x00000000000000000000000000000000
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=121, length=26
        Session-Timeout = 36000
        Acct-Interim-Interval = 60
        Idle-Timeout = 300
เป็นอันจบขั้นตอนการติดตั้งโปรแกรม freeradius และโปรแกรมฐานข้อมูล mysql นอกจากนี้โปรแกรม freeradius ยังมีความสามารถมากมายโดยเฉพาะการกำหนดค่าให้รองรับการทำงานของโปรโตคอล 802.1x ที่มีความปลอดภัยในการใช้งานที่สูงกว่า pap ตามตัวอย่างที่ได้แนะนำกันไปมาก โปรโตคอล 802.1x เองมีประโยชน์ที่จะนำไปออกแบบระบบ authentication แบบพอร์ตได้ด้วย แน่นอนที่สุดผู้เขียนจะได้แนะนำวิธีการกำหนดค่าระบบ freeradius รองรับโปรโตคอล 802.1x ในลำดับต่อไป

วันจันทร์ที่ 3 มีนาคม พ.ศ. 2557

ติดตั้ง Freeradius บนเครื่อง ClearOS 6.4 และคอนฟิกเชื่อมต่อกับ LDAP บน Zimbra Community 8.04

สวัสดีครับแฟนๆ ชาวs-techthai.com ศูนย์รวมเรื่องราวการรวบรวมประสบการณ์ OpenSource ของเรา Thai Prosperous IT หลังจากที่ผู้เขียนเคยกล่าวถึงเทคนิคการสร้าง เรียนรู้การสร้างจุมล่าร์ 2.5 โมดูลกันดีกว่า เริ่มด้วย HelloWorld บนเครื่องเซิร์ฟเวอร์ ที่ให้บริการ เช่ารถตู้ vip ของผู้เขียนมาแล้ว ผู้เขียนตั้งใจว่าจะแนะนำวิธีการเขียนโมดูลจุมล่าร์ พวก PAYSBUY สำหรับใช้รับชำระเงินออนไลน์ มาฝากกันตอนนี้อยู่ในช่วงทดสอบและรวบรวมข้อมูล สำหรับการติดตั้ง Freeradius บนเครื่อง ClearOS 6.4 และคอนฟิกเชื่อมต่อกับ LDAP บน Zimbra Community 8.04 ผู้เขียนได้ทดลองและทดสอบบนเครื่องเซิร์ฟเวอร์ก่อนนำไปใช้งานจริง เพื่อเตรียมพร้อมสำหรับส่งงานในงวดงานถัดไป การคอนฟิกนั้นทำได้ไม่ยาก เราไปดูกันเลยครับ

ขั้นตอนที่ 1 ติดตั้งซอฟต์แวร์ FreeRadius
 
/usr/bin/sudo /user/sbin/wc-yum -i app-radius
/usr/bin/python -u /usr/sbin/wc-yum -i app-radius

clearos-clients.conf
client 127.0.0.1 {
secret = testing123
shortname = localhost
}

ขั้นตอนที่ 2 กำหนดค่า LDAP เพื่อให้สามารถเชื่อมต่อกับ Zimbra Community 8.04
 

server = "192.168.200.236"
#identity = "cn=admin,o=My Org,c=UA"
identity = “uid=zimbra,cn=admins,cn=zimbra”
#password = mypass
password = xxxxxxxx
#basedn = "o=My Org,c=UA"
basedn = "ou=people,dc=tpit,dc=co,dc=th"
filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})"

ขั้นตอนที่ 3 การดูค่ารหัสผ่านบน LDAP ของ Zimbra Community 8.04
 

su zimbra
zmlocalconfig -s | grep zimbra_ldap_password
zimbra_ldap_password=xxxxxxxx

จากนั้นนำค่า zimbra_ldap_password ไปใส่แทน xxxxxxx บน password ข้างบน ขั้นตอนที่ 4 ต้องแก้ไขไฟล์ default คอนฟิกของ LDAP ในส่วนของ authorize {ldap},authenticate{ Auth-Type LDAP { ldap} } และให้แก้คอมเมนต์ของไฟล์ clearos-user
 
From:
DEFAULT LDAP-Group != "allusers", Auth-Type := Reject

To:
#DEFAULT LDAP-Group != "allusers", Auth-Type := Reject

เป็นอันสิ้นสุดวิธีการติดตั้ง Freeradius ซึ่งสามารถทำได้ไม่ยาก และผู้เขียนหวังว่ามันจะเป็นข้อมูลที่เป็นประโยชน์ในการนำไปประยุกต์ใช้งานได้ในอนาคต นอกจากนี้ผู้เขียนยังมีในส่วนของการนำ Freeradius เชื่อมต่อกับ mysql server มานำเสนอกันในครั้งต่อๆ ไปอีกด้วย