PDA

View Full Version : chillispot+Freeradius+phpmyprepaid on CC



rachunsun
17-08-2008, 11:28
หวัดดีครับ คุณ เชา ลุง ปอน และเพื่อนๆ แห่งเว็บ linuxthai.org ทุกคนงับ

จากทดสอบที่เป็นปัญหา บน CC ที่ผมได้งมมาหลายวันแล้วก็คือ

ถ้าเป็น chilli +ฐานข้อมูล radius ธรรมดา ติตตั้งและทำงานได้เลยครับ

แต่ถ้าหาก chilli + ฐานข้อมูล Phpmyprepaid ยังมีปัญหาครับในส่วนของ

sqlcounter ครับ เพราะว่า

1. mysql และ php ของ CC 4.2 ยังเป็น เวอร์ชั่น 4 update แล้ว php ได้เวอร์ชั่น 5 แต่ mysql ยังเป็น 4 ก็เลยลง phpmyprepaid ไม่ได้ครับ เพราะมันต้องการเวอร์ชั่น 5 ทั้งสองตัวเลยครับ
2. มาติดตั้ง phpmyprepaid บน CC 4.3 update แล้วติดตั้งได้แต่ก็มาติดตรงที่ Freeraid 1.0.3 เวอร์ชั่นต่ำเกินครับมันไม่ suport ตามด้านล่างนี้ครับ

sqlcounter noresetcounter {
counter-name = Max-All-Session-Time
check-name = Max-All-Session
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
}

จนผมหาข้อมูลทางเว็บว่าถ้าเวอร์ชั่นของ Freeraidus ต่ำกว่า 1.0 ให้สร้างไฟล์ sqlcounter.conf ไปเก็บไว้ใน /usr/local/etc/raddb
โค๊ดใน sqlcounter.conf
sqlcounter noresetcounter {
counter-name = Max-All-Session-Time
check-name = Max-All-Session
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
}
sqlcounter dailycounter {
driver = "rlm_sqlcounter"
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
sqlmod-inst = sqlcca3
key = User-Name
reset = daily
query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"
}
sqlcounter monthlycounter {
counter-name = Monthly-Session-Time
check-name = Max-Monthly-Session
sqlmod-inst = sqlcca3
key = User-Name
reset = monthly
query = "SELECT SUM(AcctSessionTime - GREATEST((%b - UNIX_TIMESTAMP(AcctStartTime)), 0)) FROM radacct WHERE UserName='%{%k}' AND UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"
}


จากนั้นแทรกคำสั่งไว้ในไฟล์ radius.conf บริเวณตำแหน่งนี้ครับauthorize {
noresetcounter
dailycounter
monthlycounter
}

แต่ก็ไม่ได้ครับมันฟ้องว่าไม่มี rlm_sqlcounter.so ครับ แล้วก็ไปดูครับก็ไม่มีจริงๆ ใน /usr/lib/

แต่จากที่ผมติดตั้ง บน Ubuntu บน Fedura บน Freebsd

sqlcounter noresetcounter {
counter-name = Max-All-Session-Time
check-name = Max-All-Session
sqlmod-inst = sql
key = User-Name
reset = never
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
}

นั้นสามารถรันได้ครับ เพราะ Freeradius ของเค้า update แล้วได้เวอร์ชั่นประมาณ 1.1.7 ส่วนบน Freebsd เวอร์ชั่นประมาณ 1.1.2 ครับ
ไงเพื่อนๆ พี่ๆ น้องๆ ลองช่วยกัน ทดลองหน่อยนะครับ ผมทดลองมาเกือบเดือนแล้วครับมาติดที่ Freeradis+phpmyprepaid on CC นี่แหละครับ ช่วยๆกันหน่อย สู้ๆต่อไปครับ

chalee
17-08-2008, 17:14
ขอบคุณมากเลยครับ สำหรับข้อมูล วันนี้ผมค้นหาก็เจอเคสเดียวกะที่ท่านว่าเลย ตอนนี้กำลังหาทางแก้ อยู่.. ว่าจะลอง คอมพาย radius 2.x.x ดู

rachunsun
17-08-2008, 19:34
Freeradius 2.x.x ผมเข้าไปดูใน Openbsd ของ อ.ท่านหนึ่ง อ.วิริยะ ไฟล์ radius.conf
โครงสร้างไม่เหมือนที่เรา config เวอร์ชั่น 1.x.x เลยครับ ต่างกันมาก ;D ไงแค่ 1.1.7 ก็พอแล้วครับท่านเชา
ผมจนปัญญาจริงๆ ขอบคุณมากครับผม :)

chalee
17-08-2008, 21:48
ok งับ 1.7

rachunsun
18-08-2008, 00:12
:D

onizuka_tc
19-08-2008, 08:44
:D


สู้ๆ พี่เห็นลองอยู่หลายวันแระ

rachunsun
19-08-2008, 14:18
ท่าน onizuka_tc จะช่วยบอกหน่อย สักนิดจะได้มะครับ :)

Casanova
19-08-2008, 16:50
ถ้าต้องการให้เซอเวอร์ที่อื่นเข้ามาใช้ Radius ของเราต้องเซทเพิ่มตรงไหยบ้างครับหรือเฉพาะไฟล์ Client.conf ที่เดียว
#
# clients.conf - client configuration directives
#
#######################################################################

#######################################################################
#
# Definition of a RADIUS client (usually a NAS).
#
# The information given here over rides anything given in the
# 'clients' file, or in the 'naslist' file. The configuration here
# contains all of the information from those two files, and allows
# for more configuration items.
#
# The "shortname" is be used for logging. The "nastype", "login" and
# "password" fields are mainly used for checkrad and are optional.
#

#
# Defines a RADIUS client. The format is 'client [hostname|ip-address]'
#
# '127.0.0.1' is another name for 'localhost'. It is enabled by default,
# to allow testing of the server after an initial installation. If you
# are not going to be permitting RADIUS queries from localhost, we suggest
# that you delete, or comment out, this entry.
#
client 127.0.0.1 {
#
# The shared secret use to "encrypt" and "sign" packets between
# the NAS and FreeRADIUS. You MUST change this secret from the
# default, otherwise it's not a secret any more!
#
# The secret can be any string, up to 32 characters in length.
#
secret = testing123

#
# The short name is used as an alias for the fully qualified
# domain name, or the IP address.
#
shortname = localhost

#
# the following three fields are optional, but may be used by
# checkrad.pl for simultaneous use checks
#

#
# The nastype tells 'checkrad.pl' which NAS-specific method to
# use to query the NAS for simultaneous use.
#
# Permitted NAS types are:
#
# cisco
# computone
# livingston
# max40xx
# multitech
# netserver
# pathras
# patton
# portslave
# tc
# usrhiper
# other # for all other types

#
nastype = other # localhost isn't usually a NAS...

#
# The following two configurations are for future use.
# The 'naspasswd' file is currently used to store the NAS
# login name and password, which is used by checkrad.pl
# when querying the NAS for simultaneous use.
#
# login = !root
# password = someadminpas
}

client 203.146.237.123 {
secret = testing123
shortname = localhost
}
ต้องเซทตรงนี้เพิ่มไหมแบบนี้ถูกไหมครับ
#
# You can now specify one secret for a network of clients.
# When a client request comes in, the BEST match is chosen.
# i.e. The entry from the smallest possible network.
#
#client 192.168.0.0/24 {
# secret = testing123-1
# shortname = private-network-1
#}
#
#client 192.168.0.0/16 {
# secret = testing123-2
# shortname = private-network-2
#}


#client 10.10.10.10 {
# # secret and password are mapped through the "secrets" file.
# secret = testing123
# shortname = liv1
# # the following three fields are optional, but may be used by
# # checkrad.pl for simultaneous usage checks
# nastype = livingston
# login = !root
# password = someadminpas
#}

chalee
19-08-2008, 18:28
/etc/firewall.iptables

ด้วยครับ กำหนด ip ที่ อนุญาิติให้เข้ามาใช้งาน

rachunsun
19-08-2008, 21:03
ผมว่าเอา prepaid มาเชื่อมให้ได้ก่อนครับ
เรื่องอื่นค่อยว่ากัน 55555 ;D

chalee
19-08-2008, 21:05
ผมว่าเอา prepaid มาเชื่อมให้ได้ก่อนครับ
เรื่องอื่นค่อยว่ากัน 55555 ;D


ถูก 5555+

ตอนผมลงผ่านครั้งแรกนะครับดีจัยใหญ่เลย เสร็จแล้ว ผมก็จัดการ Format ทันทีหลังจากลงเสร็จเลย คือลงอีก 2 รอบเพื่อความแน่ใจ...เศร้า

nut_kkc
19-08-2008, 21:49
ผมเชือมได้แล้วนะ ... ;D เอามันไปลงกับ เครื่อง server อื่นแล้ว dump database ออกมา แล้ว เอา database มาลงกับ cc แล้วสร้าว config ให้มันเอง
[root@gateway ~]# radtest SIT1 SIT1 localhost 0 testing123
Sending Access-Request of id 134 to 127.0.0.1 port 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=134, length=80
Framed-IP-Netmask = 255.255.255.255

แต่ตอนนี้ใช้ phpmyprepaid ไม่เป็นครับเลย กำลัง create php เองจะไ้ด้ใช้ง่ายๆหน่อย

chalee
19-08-2008, 22:06
เอ..หลักการของท่าน nut_kkc เป็นยังไงมั้งครับ..
เครื่อง a : linux + radius +chilli
เครื่อง B : cc+database(mysql)

อย่างงี้ป่าวครับ...

rachunsun
19-08-2008, 23:03
มันเชื่อมได้นะ ถ้าไม่มี sqlcounter
ผมก็เคยลอง เชื่อมได้ แต่ถ้ามีแอททิบิ้วเข้ามา
มันจะไมได้เลยครับ prepaid แต่ถ้าเชื่อมธรรมดาเชื่อมได้ครับ
sqlcounter ลองุดูครับ
ท่าน nut_kkc บอกหลักการทำหน่อยครับที่ทำอะครับ
ขอบคุงครับผม ;)

chalee
20-08-2008, 00:58
ใน phpmyadmin มี หน้า web ให้ครับ ลองเข้าไปดูใน wlogin ตัวนี้ครับ เอามาแก้ดู...

nut_kkc
20-08-2008, 11:39
เครื่องเดียวกันหมดเลยครับ แต่หลักการยังไม่มีครับ พอดี มั่วๆ ลงไป ยังไม่กล้า format กลัวว่า.. มันจะใช้ไม่ได้อีก 555
sqlcounter เนี้ยใช้ Max-All-Session ?

chalee
20-08-2008, 13:04
5555+ ท่าน nut_kkc ลงใหม่รอบที่ 2 3 4 ซะตั้งแต่ตอนนี้ครับ ใช้ไปๆ เกิดเจ้งขึ้นมา ทีนี้จะลงใหม่ก็ลืมไปแล้วคับท่าน ..

Casanova
20-08-2008, 14:24
แก้ไขซอฟแวเองครับใช้ได้แล้วกำลังจะลองทำเปน Radius online

chalee
20-08-2008, 19:04
ทดสอบเสร็จอย่างไรแล้วก็เอามา test กันบ้างนะครับ...

rachunsun
20-08-2008, 19:50
ครับผม ถึงไหนแล้วครับ ทดสอบ radius online เปงไงยังไงบอกเล่ากันหน่อยครับ

Casanova
21-08-2008, 11:41
มันป๊อบอัพขึ้นหน้าล๊อกอินแล้วก็ล๊อกอินได้ด้วยแต่ chilli ไม่ยอมให้ออกหงะเวลาก็ไหลไปเรื่อยๆ เช็คที่ Radius Online ก็มี User ได้ออนไลน์อยู่ งมต่อไปครับ

chalee
21-08-2008, 11:57
หมายถึง เวลาไม่นับถอยหลังหรือครับ
ได้ ตั้ง session time หรือ ide-time ไว้ยังละ ถ้าไม่ได้ตั้งเวลก็เดินหน้าไป ถุกแล้วครับ

rachunsun
21-08-2008, 12:34
ตอนนี้คุณ Casanova ทดลองกับฐานข้อมูล phpmyprepaid หรือว่า ฐานข้อมูลของ Freearadius ครับ
ถ้าฐานข้อมูลแบบ Freeradius ลองเข้าไปที่เว็บ sipa ครับผมอ่านเจอการแก้ไข User ใน Phpmyadmin ครับ
แต่จุดประสงค์ของผมตอนนี้คือ Phpmyprepaid On CC ครับ ;D

Casanova
21-08-2008, 16:57
phpmyprepaid แก้ไขการ adduser ใช้กับ CC ครับผมแก้เพื่อทดลองใช้ออนไลน์ครับยังไม่สมบูณ
เรื่องของเรื่องคือผมมีตัว billing ของ KKthai เปน Stanalone แล้วจะใช้ CC ชี้ Radius ไปที่ตัวของ KKThai ครับ
แก้ Secret กับ IP แล้วยังไม่เวิคเลยกำลังลองอยู่ครับมันเปน Ubuntu ไม่รู้คำสั่งเปิดพอร์ต 1812 ใช้ยังไง
ใครรู้แนะนำทีครับ ??? ???

nut_kkc
21-08-2008, 19:38
[root@gateway sbin]# uname -a
Linux gateway.clarkconnect.lan 2.6.18-93.cc4 #1 SMP Mon Aug 11 20:37:16 EDT 2008 i686 i 686 i386 GNU/Linux


PHP 5.1.6 (cli) (built: Oct 11 2007 15:12:37)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with the ionCube PHP Loader v3.1.32, Copyright (c) 2002-2007, by ionCube Ltd.

mysql -u root -p
mysql> \s
--------------
mysql Ver 14.12 Distrib 5.0.27

[root@gateway sbin]# radiusd -v
radiusd: FreeRADIUS Version 1.1.7, for host i686-pc-linux-gnu, built on Aug 21 2008 at 19:22:06
Copyright (C) 2000-2007 The FreeRADIUS server project.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A


ตามนี้ครับ
ส่วนวิธี คงยังไม่สามารถนำมาเล่าสู่กันฟังได้เพราะโปรเจกนี้ r&d กับเพื่อนอีกคน
รวมทั้งยังพัฒนา web gui ของ radius โดยเอาเฉพาะ function ที่ใช้งานง่ายๆ
เพียงพอกับธุรกิจ โรงแรม , หอพัก , โรงเรียน
และิคิดว่าจะจำหน่ายต่อในราคาไม่แพง ให้คนทั่วไปสามารถซื้อหาไปใช้ได้ โดยทำเป็นเอกสารประกอบการติดตั้งให้ครับ

ปล. ผมไปช้าครับ ใช้เวลาเกือบ 2 เดือน เพื่อนๆคนเก่งๆคนอื่นอาจจะใช้เวลาไม่ถึงครับผม

nut_kkc
21-08-2008, 21:08
phpmyprepaid แก้ไขการ adduser ใช้กับ CC ครับผมแก้เพื่อทดลองใช้ออนไลน์ครับยังไม่สมบูณ
เรื่องของเรื่องคือผมมีตัว billing ของ KKthai เปน Stanalone แล้วจะใช้ CC ชี้ Radius ไปที่ตัวของ KKThai ครับ
แก้ Secret กับ IP แล้วยังไม่เวิคเลยกำลังลองอยู่ครับมันเปน Ubuntu ไม่รู้คำสั่งเปิดพอร์ต 1812 ใช้ยังไง
ใครรู้แนะนำทีครับ ??? ???



iptables -I INPUT -p tcp --dport 1812 -j ACCEPT
iptables -I INPUT -p tcp --dport 1813 -j ACCEPT

rachunsun
21-08-2008, 22:22
อยากถามคุณ nut_kkc

ว่า FreeRADIUS Version 1.1.7

ติดตั้ง ตอน configure ก่อนที่จะ make และ make install
ต้องใช้ ./configure ---------- อะไรบ้างครับ :D

chichiono
04-09-2008, 16:30
ขอลิ้ง addon พวก php กับ mysql หน่อยคับ บน CC นะคับ
ขอวิธีการลงด้วยก็ดีคับ อยากทดสอบบ้าง

spacesurfing
06-09-2008, 10:19
[root@WiFi ~]# uname -a
Linux WiFi.HotSpot 2.6.18-93.cc4 #1 SMP Mon Aug 11 20:37:16 EDT 2008 i686 athlon i386 GNU/Linux
[root@WiFi ~]# radtest ton 123456 localhost 0 testing123
Sending Access-Request of id 165 to 127.0.0.1:1812
User-Name = "ton"
User-Password = "123456"
NAS-IP-Address = WiFi.HotSpot
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=165, length=44
WISPr-Bandwidth-Max-Up = 256
WISPr-Bandwidth-Max-Down = 512
[root@WiFi ~]# radiusd -v
radiusd: FreeRADIUS Version 1.0.1, for host , built on May 10 2007 at 12:28:08
Copyright (C) 2000-2003 The FreeRADIUS server project.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYRIGHT.
[root@WiFi ~]#

สู้กันนะครับ เดี๋ยวก็ได้เอง google เป็น ห้องสมุดที่ดีที่สุดครับ ;D

nut_kkc
06-09-2008, 10:54
พอลอง Max-All-Session กรอกไป 1 นาทีทั้งทีมี sql reset counter แล้วมันก็ไม่เห็นตัด
สงสัยต้องงมใหม่อีกรอบ

nut_kkc
06-09-2008, 14:55
เจอปัญหาแล้ว ไม่รู้เป็น bug ของ freeradius 1.0.1 หรือเปล่า
พอใช้ 1.1.7 ใช้ได้เลยครับ

weeraphold
07-09-2008, 18:04
[root@WiFi ~]# uname -a
Linux WiFi.HotSpot 2.6.18-93.cc4 #1 SMP Mon Aug 11 20:37:16 EDT 2008 i686 athlon i386 GNU/Linux
[root@WiFi ~]# radtest ton 123456 localhost 0 testing123
Sending Access-Request of id 165 to 127.0.0.1:1812
User-Name = "ton"
User-Password = "123456"
NAS-IP-Address = WiFi.HotSpot
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=165, length=44
WISPr-Bandwidth-Max-Up = 256
WISPr-Bandwidth-Max-Down = 512
[root@WiFi ~]# radiusd -v
radiusd: FreeRADIUS Version 1.0.1, for host , built on May 10 2007 at 12:28:08
Copyright (C) 2000-2003 The FreeRADIUS server project.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
You may redistribute copies of FreeRADIUS under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYRIGHT.
[root@WiFi ~]#

สู้กันนะครับ เดี๋ยวก็ได้เอง google เป็น ห้องสมุดที่ดีที่สุดครับ ;D


mysql> use radius;
Database changed
mysql> INSERT INTO usergroup (UserName, GroupName) VALUES ('fredf', 'dynamic');
ERROR 1146 (42S02): Table 'radius.usergroup' doesn't exist

ผมลง MySQL 5.0.36 Freeradius 1.0.1 แก้ไขตรงไหนอีกหรอครับ
ช่วยชี้แนะด้วยครับ

nut_kkc
07-09-2008, 21:54
ERROR 1146 (42S02): Table 'radius.usergroup' doesn't exist
มันบอกว่ามันหา โต๊ชื่อว่า radius.usergroup ไม่เจอ
error จากฐาน่ข้อมูลครับ

weeraphold
08-09-2008, 10:46
ERROR 1146 (42S02): Table 'radius.usergroup' doesn't exist
มันบอกว่ามันหา โต๊ชื่อว่า radius.usergroup ไม่เจอ
error จากฐาน่ข้อมูลครับ


จริง ๆ แล้วนะตอนนี้มัน Compile Freeradius และ chilli ผ่านแล้วแหละ ตอน Test ด้วยคำสั่ง radtest chilli abcd1234 127.0.0.1 0 testing123
มันผ่าน Access-Accept
แต่พอ Add User ลงในฐานข้อมูลธรรมดา (MySQL version standard ติfมากับ CC-4.2) เพิ่มข้อมูลงได้ แต่พอเอามาทดสอบเหมือนกับไม่มี User นั้นใน Database

ช่วยชี้แนะด้วยครับ งมโข่ง มาหลายวันแล้ว เซ็งจังฮู้ ขอบคุงล่วงหน้าครับ

cameo
08-09-2008, 12:59
ลง freeradius-mysql ยังครับ
กับไปแก้ไฟล์ sql.conf ใน /etc/freeradius/sql.conf

weeraphold
08-09-2008, 16:38
ลง freeradius-mysql ยังครับ
กับไปแก้ไฟล์ sql.conf ใน /etc/freeradius/sql.conf


แก้ไขตรงไหนหรอครับ sql.conf
ผมทำตาม อ.วิบูลย์ ไม่เห็นเหมือนกันเลย

อืม ตกลงใช้ CC เวอร์ชั่นไหนกันแน่ครับ จึงจะเวิร์คกับการ ทำ Hotspot

weeraphold
08-09-2008, 20:07
ลง freeradius-mysql ยังครับ
กับไปแก้ไฟล์ sql.conf ใน /etc/freeradius/sql.conf


ปกติ ใน Fedora ใช้คำสั่ง yum install freeradius-mysql

แล้วใน CC 4.3 ละครับ

hs5xdj
10-09-2008, 18:11
อีกครั้ง https://www.linuxthai.org/forum/index.php?topic=1980.0 ไปโหลดดูครับ

max0405
16-11-2008, 15:07
ของผมตอนลง phpmyprepaid มันเป็นแบบนี้ครับมีไฟร์
http://www.pc-colo.com/pub/index.php?dir=picture/&file=untitled.rar

max0405
16-11-2008, 16:37
ลง freeradius-mysql ยังครับ
กับไปแก้ไฟล์ sql.conf ใน /etc/freeradius/sql.conf


ปกติ ใน Fedora ใช้คำสั่ง yum install freeradius-mysql

แล้วใน CC 4.3 ละครับ


apt-get install -y freeradius-mysql

anucha
09-05-2009, 19:33
ผมลองใช้ Version 2.1.3 มาแล้วน่าใช้กว่า version 1.x.x ครับ Function sqlcounter noresetcounter , sqlcounter noresetcounter, sqlcounter dailycounter มีมาให้หมดเพียงแค่เปิดใช้งานเท่านั้น ใช้งานได้ดีทั้งการใช้คู่กับ ChilliSpot, Wireless Authen โดยใช้คู่กับ WPA+802.1x การ Config ต่าง ๆ นั้นเหมือนกับ Version 1.x.x เพียงแต่ต่างที่ ต่างตำแหน่งกันเท่านั้นเองครับ