SUSE LINUX Enterprise & openSUSE Community
มีนาคม 21, 2019, 12:34:31 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: การติดตั้ง FreeRADIUS + Integration with MySQL + daloRADIUS Management + Coova-chill  (อ่าน 5966 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: เมษายน 07, 2012, 01:29:05 PM »


การติดตั้ง FreeRADIUS + Integration with MySQL + daloRADIUS Management + Coova-chilli on openSUSE 12.1

RADIUS (Common Remote Authentication Dial In User Server) ระบบจัดการและตรวจสอบการพิสูจน์สิทธิ์การใช้งานระบบ แพคเกจโปรแกรมที่ต้องติดตั้งคือ freeradius

daloRADIUS เป็นเว็บแอพพลิเคชันในการบริหารจัดการะบบ hotspots, การจัดการผู้ใช้, การรายงานกราฟฟิก, การจัดทำบัญชี และ billing engine ด้วย daloRADIUS พัฒนาด้วยภาษา PHP และ JavaScript พร้อมทั้งสนับสนุนการใช้งานร่วมกับฐานข้อมูลต่างๆ เช่น MySQL และ PostgreSQl เป็นต้น


1. ติดตั้ง FreeRADIUS

โดยติดตั้งแพคเกจดังต่อไปนี้
- freeradius-client
- freeradius-client-libs
- freeradius-server
- freeradius-server-dialupadmin
- freeradius-server-doc
- freeradius-server-libs
- freeradius-server-utils

สามารถติดตั้งผ่าน yast โดยใช้คำสั่ง

โค๊ด:
yast sw_single

- ตรวจสอบเวอร์ชัน freeradius

โค๊ด:
rpm -q freeradius-server

freeradius-server-2.1.1-7.10.1

- ไฟล์ที่เกี่ยวข้อง

/etc/raddb/clients.conf แฟ้มไฟล์ที่ใช้ในการคอนฟิกอุปกรณ์หรือคอมพิวเตอร์ที่จะติดต่อกับ radius server เช่น access point เป็นต้น
/etc/raddb/users แฟ้มไฟล์เก็บบัญชีรายชื่อ
/etc/raddb/sites-enabled/default แฟ้มไฟล์ในการเปิดใช้งาน LDAP สำหรับใช้งานการพิสูจน์ตัวตน
/etc/raddb/modules/ldap แฟ้มไฟล์สำหรับคอนฟิกการติดต่อสื่อสารกับ LDAP server


2. ทดสอบพิสูจน์ตัวตนบน localhost

- ทดสอบ debug mode หลังติดตั้งเสร็จ

โค๊ด:
radiusd -X


- แก้ไขไฟล์ /etc/raddb/user (ใช้ในการทดสอบ authentication เท่านั้น)

โค๊ด:
vi /etc/raddb/user

จากเอกสาร FreeRadius แนะนำให้เราเพิ่มในบรรทัดแรกสุด

testing Cleartext-Password := "password"


- แก้ไขไฟล์ /etc/raddb/clients.conf (ใช้ในการทดสอบ authentication เท่านั้น)

โค๊ด:
client localhost {
secret = testing123 # used to encrypt/sign packets between Client/Radius server
shortname       = localhost
nastype      = other         # localhost isn't usually a NAS (Network Access Server)
}

- ทดสอบ

โค๊ด:
radtest testing password localhost 0 testing123

ถ้าโชว์ Access-Accept คืออนุญาตและแสดงว่าการพิสูนจ์ตัวตนสำเร็จ


3. คอนฟิก RADIUS authen สำหรับเรียกใช้ฐานข้อมูล MySQL  ในการพิสูจน์ตัวตน

- สร้างฐานข้อมูล

โค๊ด:
mysql -uroot -p
mysql> CREATE DATABASE radius;
mysql> GRANT ALL ON radius.* TO radius@localhost IDENTIFIED BY "radpass";
mysql> quit

- import schema (สร้าง tables)

โค๊ด:
cd /etc/raddb/sql/mysql/

โค๊ด:
mysql -uroot -p radius < schema.sql

- เรียกดู tables ที่สร้างขึ้น

โค๊ด:
mysql -uroot -p

โค๊ด:
mysql> use radius;
Database changed

โค๊ด:
mysql> show tables;
+------------------------+
| Tables_in_radius       |
+------------------------+
| batch_history          |
| billing_history        |
| billing_merchant       |
| billing_paypal         |
| billing_plans          |
| billing_plans_profiles |
| billing_rates          |
| cui                    |
| dictionary             |
| hotspots               |
| invoice                |
| invoice_items          |
| invoice_status         |
| invoice_type           |
| nas                    |
| node                   |
| operators              |
| operators_acl          |
| operators_acl_files    |
| payment                |
| payment_type           |
| proxys                 |
| radacct                |
| radcheck               |
| radgroupcheck          |
| radgroupreply          |
| radhuntgroup           |
| radippool              |
| radpostauth            |
| radreply               |
| radusergroup           |
| realms                 |
| userbillinfo           |
| userinfo               |
| wimax                  |
+------------------------+
35 rows in set (0.05 sec)


4. คอนฟิก RADIUS server

- แก้ไขไฟล์ /etc/raddb/radius.conf

โค๊ด:
/etc/raddb/radius.conf

ให้เอาเครื่องหมาย # หน้าบรรทัด $INCLUDE sql.conf ออก
จากนั้นถ้าหากต้องการเวลาระหว่าง radius server กับ client ที่ตรงกันให้ disable proxy โดยเปลียนจาก yes ไปเป็น no

proxy_requests = no


- แก้ไขไฟล์ /etc/raddb/sql.conf

โค๊ด:
database = "mysql"
# Connection info:
        server = "localhost"
        port = 3306
        login = "radius"
        password = "radpass"

# Database table configuration for everything except Oracle
        radius_db = "radius"

        readclients = yes  # บอกให้ radius client อ่านค่าจาก database

# Table to keep radius client info
        nas_table = "nas"


- แก้ไขไฟล์ /etc/raddb/sites-available/default

โค๊ด:
#
#  Look in an SQL database.  The schema of the database
#  is meant to mirror the "users" file.
#
#  See "Authorization Queries" in sql.conf
        sql  # บอกให้เรียกข้อมูลจากฐานข้อมูล ในการตรวจสอบ username, password ในการทำ accounting

...

        #  Log traffic to an SQL database.
        #
        #  See "Accounting queries" in sql.conf
        sql


- แก้ไขไฟล์ /etc/raddb/sites-enabled/default

โค๊ด:
...
#
#  Accounting.  Log the accounting data.
#
accounting {

...     
        #  Log traffic to an SQL database.
        #
        #  See "Accounting queries" in sql.conf
        sql # บอกให้เรียกข้อมูลจากฐานข้อมูล ในการตรวจสอบ username, password ในการทำ accounting
...
#  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 {
...
        #  See "Simultaneous Use Checking Queries" in sql.conf
        sql  # บอกให้เรียกใช้ข้อมูลจากฐานข้อมูลในการตรวจสอบ username, password ในการทำ session
...
authorize {
        #
        #  Security settings.  Take a User-Name, and do some simple
        #  checks on it, for spaces and other invalid characters.  If
        #  it looks like the user is trying to play games, reject it.
...
        #
        #  Look in an SQL database.  The schema of the database
        #  is meant to mirror the "users" file.
        #
        #  See "Authorization Queries" in sql.conf
        sql # บอกให้พิสูจน์ตัวตนผ่านฐานข้อม MySQL database
...


5. คอนฟิก Freeradius เพื่ออนุญาตให้ไคลเอน์อื่นเข้ามาใช้งาน ตัวอย่างไคล์เอนต์นี้คือ ip : 192.168.1.223

- แก้ไขไฟล์ /etc/raddb/clients.conf

โค๊ด:
vi /etc/raddb/clients.conf

เพิ่ม code ในบรรทัดท้ายสุดของไฟล์ (code ด้านล่างนี้เป็นตัวอย่างของ access point ที่จะมา authentication กับ Radius server)

โค๊ด:
client 192.168.1.223 {
   secret = mysecret
   shortname = ap223
}


- ทดสอบ debug mode หลังคอนฟิกเสร็จสิ้น

โค๊ด:
radiusd -X

ถ้าไม่มี error จากนั้นให้ลองเพิ่มผู้ใช้เพื่อใช้ในการทดสอบ


6. การเพิ่มผู้ใช้ไปยังฐานข้อมูล SQL database (command line)

โค๊ด:
mysql -uroot -p
mysql> use radius;
mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('test', 'Password', 'test123');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('test', 'Auth-Type', 'Local');
Query OK, 1 row affected (0.00 sec)


mysql> select * from radcheck;
+----+----------+-----------+----+---------+
| id | username | attribute | op | value   |
+----+----------+-----------+----+---------+
|  1 | test     | Password  | == | test123 |
|  2 | test     | Auth-Type | == | Local   |
+----+----------+-----------+----+---------+
2 rows in set (0.00 sec)

mysql> exit


- ทดสอบ

โค๊ด:
radtest test test123 localhost 0 testing123

ถ้าขึ้น rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=206, length=20 แสดงว่าสำเร็จ พร้อมใช้งานครับ

จากนั้นให้เราลบผู้ใช้ที่เพิ่มก่อนหน้า

โค๊ด:
mysql -uroot -p
mysql> delete from radcheck where username = 'test';

ขั้นตอนถัดไปเราจะติดตั้ง daloRADIUS Management เพื่อช่วยในการจัดการผู้ใช้


การติดตั้ง daloRADIUS Management

1. ติดตั้ง Web and LAMP Server จาก yast

โดยเลือก filter เป็น Patterns จากนั้นเลือกติดตั้ง Web and LAMP Server ซึ่งเพคเกจที่เกี่ยวข้องจะถูกติดตั้งให้เองอัตโนมัต

2. ติดตั้ง MySQL database

โดยเลือกติดตั้งแพคเกจ mysql-community-server, mysql-community-server-client และ php5-mysql, php5-pear

3. ดาวน์โหลด daloRADIUS จากลิงค์ http://sourceforge.net/projects/daloradius

4. แตกไฟล์

โค๊ด:
tar -zcvf daloradius-0.9.9.tar.gz


5. ให้ย้ายไดเร็กทอรี daloradius ที่แตกไปไว้ยัง Root Directory Web

โค๊ด:
mv daloradius /srv/www/htdocs/

6. กำหนดสิทธิ์ permission

โค๊ด:
chown wwwrun:www /srv/www/htdocs/daloradius -R

7. สร้างฐานข้อมูลใหม่ชื่อ radius (อันแรกที่สร้างไปจะสร้างจาก schema ไฟล์ที่ freeradius มี tables ต่างๆ มาให้แล้ว)
เราจะทำการสร้างทับฐานข้อมูลเก่าไปเลย

- ทำการสร้าง tables ให้กับฐานข้อมูล radius เราก็ใช้สคริปต์ที่ daloradius มีมาให้เลยครับ

โค๊ด:
mysql -uroot -pPASSWORD radius < /srv/www/htdocs/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql

หรือถ้ามีฐานข้อมูลอยู่แล้วก็เพียงเรียกสคริปต์นี้
โค๊ด:
mysql -uroot -pPASSWORD radius < /srv/www/htdocs/daloradius/contrib/db/mysql-daloradius.sql


8. คอนฟิก daloRADIUS

- แก้ไขไฟล์ /srv/www/htdocs/daloradius/library/daloradius.conf.php

โค๊ด:
vi /srv/www/htdocs/daloradius/library/daloradius.conf.php

โค๊ด:
...
$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_PORT'] = '3306';
$configValues['CONFIG_DB_USER'] = 'root';
$configValues['CONFIG_DB_PASS'] = 'PASSWORD';
$configValues['CONFIG_DB_NAME'] = 'radius';
...

 
เป็นอันเสร็จการติดตั้ง daloRADIUS Management เท่านี้เราก็สามารถบริหารจัดการผู้ใช้ผ่านเว็บแอพพลิชันได้แล้วครับ
เข้าใช้งาน web-based โดยพิมพ์ URL: http://radius server/daloradius
โดยค่าเริ่มต้น user คือ administartor และรหัสผ่าน คือ radius

ขั้นตอนถัดไปเป็นการ กำหนดรันเซอร์วิส (Runlevel) ดังต่อไปนี้ด้วยคำสั่ง

โค๊ด:
yast runlevel

จากนั้นเลือกเซอร์วิสที่ต้องการให้รันตอนบูตเครื่อง

- apache2
- mysql
- freeradius

คำสั่งที่ใช้ในการ stop / start / restart เซอร์วิส

เช่น
โค๊ด:
systemctl start freeradius.service

หรือ
โค๊ด:
/etc/init.d/freeradius start

รายละเอียดเพิ่มเติม รุปแบบการใช้คำสั่ง systemctl ใน openSUSE 12.1 และต่อไปจะมาว่า Coova-chilli ต่อครับ
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.055 วินาที กับ 20 คำสั่ง (Pretty URLs adds 0.009s, 2q)