Contenu connexe Similaire à Hotspotubuntu8 Similaire à Hotspotubuntu8 (20) Hotspotubuntu81. การติดตั้ง FreeRadius และ phpmyprepaid บน ubuntu 8.04
จัดทําเมื่อ 15/11/2008
ติดตั้งบน Ubuntu 8.04
ขั้นตอน
1. หากยังไมติดตั้ง apache และ php ใหติดตั้งดวยคําสั่ง
apt-get install apache2 php5 php5-mysql
2. สั่งให apache ทํางานดวยคําสั่ง
/etc/init.d/apache2 restart
3. หากยังไมติดตั้ง mysql ใหติดตั้งดวยคําสั่ง
apt-get install mysql-server
4. หากยังไมติดตั้ง FreeRadius ใหติดตั้งดวยคําสั่ง
apt-get install freeradius freeradius-mysql
5. สั่งให FreeRadius ทํางานดวยคําสั่ง
/etc/init.d/freeradius start
6. เขาสูโปรแกรม mysql ดวย username คือ root และ password ที่ไดกําหนดไวดวยคําสั่ง
mysql –u root –p
แลวปอนรหัสผานของ root
7. ทําการสราง Database ชื่อ phpmyprepaid เพื่อใชในการเก็บบัญชีผูใชงาน (สามารถจะใชชื่อฐานขอมูลอื่นก็ได) ดวยคําสั่งดังนี้
CREATE DATABASE phpmyprepaid;
8. กําหนดสิทธิใหกับบัญชีผูใชงานบน mysql ที่ชื่อวา phpmyprepaid พรอม password คือ radpass (user และ password สามารถ
เปลี่ยนแปลงไดตามความเหมาะสม) ดวยคําสั่ง
GRANT ALL PRIVILEGES ON phpmyprepaid.* to 'phpmyprepaid'@'localhost' IDENTIFIED BY 'radpass';
FLUSH PRIVILEGES;
9. ออกจาก mysql ดวยคําสั่ง quit
10. แกไขไฟล /etc/freeradius/sql.conf เพื่อใหเรียกใชฐานขอมูล phpmyprepaid ดวยสิทธิผูใชเปน phpmyprepaid ซึ่งมี password เปน
radpass ดังนี้
# Connection info:
server = "localhost"
login = "phpmyprepaid"
password = "radpass"
# Database table configuration for everything except Oracle
radius_db = "phpmyprepaid"
11. ทําการกําหนด password ใหกับเครื่อง Client ที่จะเขาใชงาน FreeRadius ที่ไฟล /etc/freeradius/cliens.conf โดยกําหนดให client
127.0.0.1 มีคา secret = radiussecret
client localhost {
secret = radiussecret
{
ในกรณีที่อนุญาตใหเครื่อง client อื่นเขามาใชงาน FreeRadius เชน client ที่มี IP เปน 172.24.51.16 ก็ใหกําหนดคาเพิ่มเติมดังนี้
client 172.24.51.16 {
secret = radiussecret
shortname = chilli
}
12. ในกรณีที่จะอนุญาตใหเครื่อง Client อื่น ๆ (ที่ไมใชเครื่องตัวเอง หรือ Localhost) เขามาใชงาน FreeRadius ไดนั้นจะตองทําการเพิ่ม
ขอมูลในไฟล /etc/freeradius/naslist ซึ่งในที่นี้คือเพิ่มบรรทัดสุดทายดังตอไปนี้เขาไป
# NAS Name Short Name Type
#---------------- ---------- ----
#portmaster1.isp.com pm1.NY livingston
#portmaster2.isp.com pm1.LA livingston
localhost local portslave
chilli chilli other
13. แกไขไฟล /etc/freeradius/sql.conf กําหนดใหคา readclients = yes เพื่อที่จะทําให radius client อานคาจาก database
14. แกไขไฟล /etc/freeradius/radiusd.conf ดังนี้
o ในสวนของ accounting {……} ใหเอาเครื่องหมาย # หนาคําวา sql ออก เพื่อเรียกใชขอมูลจาก database ในการตรวจสอบ
username , password ในการทํา accounting
o ในสวน session {……} ใหเอาเครื่องหมาย # หนาคําวา sql ออก เพื่อเรียกใชขอมูลจาก database ในการตรวจสอบ
username, password ในการทํา session
o ในสวนของ authorize {……} ใหเอาเครื่องหมาย # ไวหนาคําวา file และเอาเครื่องหมาย # ออกจากคําวา sql
15. ทําการ restart FreeRadius ดวยคําสั่ง
/etc/init.d/freeradius restart
16. ตอนนี้ ทั้ง freeradius และ mysql พรอม database phpmyprepaid วาง ๆ พรอมแลว
ตอไปจะทําการติดตั้งโปรแกรม phpmyprepaid แลวรันโปรแกรมผานเว็บบราวเซอร
จากนั้นจะเซ็ตคาตาง ๆ บนหนาเว็บ ทําใหได table ตาง ๆ ที่จําเปนใชงานเกิดขึ้น
17. ยายเขาไปในไดเรกทอรี /var/www/ ดวยคําสั่ง
cd /var/www
18. ดาวนโหลดโปรแกรม phpmyprepaid เวอรชั่น 0.4 RC2 ดวยคําสั่ง wget ดังนี้
wget http://downloads.sourceforge.net/phpmyprepaid/phpmyprepaid04b3.tgz
2. 19. คลายแฟมออกมาจะไดไดเรกทอรี phpmyprepaid
tar zxvf phpmyprepaid04RC2.tgz
20. ติดตั้งโปรแกรม rrdtool ดวยคําสั่ง
apt-get install rrdtool
21. เปด browser และเรียกไปที่ http://host/phpmyprepaid/www แลวระบบจะเปดไฟล setup.php ดังรูป
22.ขั้นที่ 2 เปนเรื่องของ License ใหคลิ๊กชอง I Accept แลวคลิ๊กปุม Next
23.ขั้นตอนที่ 3 ถาเจอปญหาดังรูป
4. 26.ขั้นที่ 6 เปนการจัดการเรื่อง User Interface ก็ใหปอนขอมูลตามตองการ แตอยาลืม user และ password ที่ไดกําหนดไวดวย
27.ขั้นตอนที่ 7 เปนการคอนฟกฐานขอมูล ใหปอนขอมูลตรงกับที่ไดกําหนดไวดังรูป
5. 28.เมื่อปอนขอมูลในขั้นตอนที่ 7 ถูกตอง ก็จะไดผลลัพทดังขั้นตอนที่ 8
29.ขั้นตอนที่ 9 เปนการปอนขอมูล Location ดังรูป
30.ขั้นตอนที่ 11 เปนการคอนฟกขอมูลทั่วไป ดังรูป
31.ขั้นตอนที่ 11 เปนขั้นตอนสุดทาย ใหอานขอความดวยนะครับเพราะมีคําแนะนําบางอยางที่ตองทําตามดวย
9. phpmyprepaid : ตัวอยางการสราง user แบบกําหนดเปน Group
ตัวอยาง
ถาตองการสราง group ใหมขึ้นมาโดยกําหนดคาดังนี้ เชน
1. Simultaneous-Use=1 (Login 1 user / 1 เครื่อง)
2. Max-Daily-Session=7200 (กําหนดเวลาการเลน 2 ชม/วัน)
3. Idle-Timeout=600 (ถาไมใชงาน internet นาน 10 นาที จะ logout เองอัตโนมัต) ิ
4. WISPr-Bandwidth-Max-Up=128000 (Bandwidth Upload สูงสุด 128MB)
5. WISPr-Bandwidth-Max-Down=512000 (Bandwidth Download สูงสุด 512MB)
6. WISPr-Redirection-URL=http://www.google.co.th (เมื่อทําการ Login ใหเปด Web ขึ้นมา)
***สามารถกําหนด Attribute อื่นๆ เพิ่มไดตามตองการ ฯลฯ
ขั้นตอนที่ 1 (ตรวจสอบ และ เพิ่ม Attribute ที่จําเปนตองการใช)
จากตัวอยางดานบนจะเห็นวาใช Attribute ทั้งหมด 6 แบบ ซึ่งฐานขอมูลใน phpmyprepaid จะไมมี Attribute บางตัว ดังนั้น เราตองเพิ่ม
Attribute ที่ตองการใชกอน เชน Simultaneous-Use และ Max-Daily-Session ดังภาพ
ภาพ Attribute ภาพ Attribute
ที่มีมาตอนติดตั้ง ที่ถูกเพิ่มเขาไป
*การเพิ่ม Attribute เขาไปในฐานขอมูลของ phpmyprepaid นั้น สามารถเขาไปเพิ่มเองก็ไดครับที่ Table radiusinfo (หรือจะใชโปรแกรมของผม
โดยผมเขียนเพิ่มเขาไปในเมนูของ phpmyprepaid นะครับ เผื่อตองการเพิ่ม Attribute ใหมๆ ในอนาคตจะไดไมไดเขาไปเพิ่มในฐานขอมูล)
ถาใชไฟลของผมก็ดาวนโหลดไปแลวคลายซิป แลวอัพขึ้นไปบน server นะครับ คลิกที่นี่ เพื่อดาวนโหลด
Pass สําหรับ คลายซิป คือ kzone
#/var/www/phpmyprepaid/www/ เอามาวางทับไฟลเกาในหองนี้ไดเลยครับ
หลังจาก Copy ไฟลไปทับเสร็จแลวเขาจัดการทางหนาเว็บของ phpmyprepaid ไดเลยครับ เมนูใหมจะถูกเพิ่ม เขาไปในสวนของเมนู Radius
Profile 2 เมนูดวยกัน คือ Add new Attribute และ Check Radius Attribute ตามรูปครับ
Add New Attribute (เมนูสําหรับเพิ่ม Attribute ใหมๆ ที่ในฐานขอมูลยังไมมี)
เพิ่ม Attribute ไดโดยการกรอกรายละเอียดตางๆ ตามภาพดานลางครับ
10. Check Radius Attribute (เมนูแสดง Attribute ที่มีอยูในฐานขอมูลทั้งหมด)
เมื่อทําการเพิ่ม Attribute ใหมเขาไปในฐานขอมูลแลวตรวจสอบแลววามี ก็เรียบรอยครับ
ขั้นตอนที่ 2 (การสราง Group ขึ้นมาใชงาน)
เริ่มจากคลิกที่ เมนู Group Management คลิกที่เมนูยอย Create group เพื่อทําการสราง group ใหมขึ้นมา โดยการกรอกรายละเอียดตามภาพ
2.1 กรอกชื่อ group ที่ตองการ
2.2 กรอกรายละเอียดของ group
2.3 เลือก Attribute ที่ตองการกําหนดใหกับ group ที่สรางใหมนี้
2.3.1 เลือก Category (กลุมของ Attribute)
2.3.2 เลือก Attribute ที่ตองการใช
2.3.3 กําหนดคา Value ใหกับ Attribute ที่เราเลือก
2.3.4 กดปุม เพื่อ เพิ่ม Attribute นี้เขาไปใน group
2.3.5 ทําซ้ําไปเรื่อยๆ จนกวาจะได Attribute ครบตามที่เราตองการ
2.3.6 เมื่อไดครบตามที่เราตองการแลวใหกดปุม เพื่อสราง group นี้ขึ้นมานําไปใชงานตอไป
11. ขั้นตอนที่ 3 (สราง Account ใหอยูใน Group ที่เราสรางขึ้นมา)
เริ่มจากคลิกที่เมนู Create Account เลือกจากเมนูยอยวาเราตองการสราง Account แบบไหน (ยกตัวอยางผมเลือก Subscriber Time เปนการสราง
Account แบบจํากัดเวลาการใชงานแลวก็เก็บประวัติของผูใชงานนี้ดวย) โดยการกรอกรายละเอียดตามภาพ
3.1 ชื่อ
3.2 นามสกุล
3.3 รหัสบัตรประจําตัวประชาชน
3.4 User
3.5 Password
3.6 กําหนดเวลาการใชงาน
3.7 เลือก group ที่เราสรางขึ้นมา
3.8 E-mail
3.9 กดปุม CREATE ACCOUNT เพื่อทําการบันทึก Account ที่เราสราง
3.10 ทดสอบ Login จากเครื่อง Client โดยใช Account ที่เราสราง
12. จบขั้นตอนการสราง Account โดยกําหนดเปน Group ครับผม
***เราสามารถมาเปลี่ยนแปลงคาตางๆ ใน Group นี้ไดในภายหลังครับ และ เมื่อมีการเปลี่ยนแปลงคาตางๆ ใน Group นี้ จะมีผลกับทุก Account ที่
อยูใน Group นี้ทั้งหมดครับผม ก็จะสะดวกไมตองไปนั่งเปลี่ยนที่ละ Account ครับ...
สําหรับทานใดที่ติดปญหา User คางในระบบ บางทีตั้ง Idle-Timeout แลวก็ยังคางอยูทําให User นั้นไมสามารถ Login เขาระบบได เราจะตองทํา
การ Clear ถึงจะสามารถใชงาน User นั้นตอได
วิธีคือ ลบ ไฟล radutmp กับ radwtmp แลวสรางขึ้นมาใหมครับ
#rm /var/log/freeradius/radutmp
#rm /var/log/freeradius/radwtmp
#touch /var/log/freeradius/radutmp
#touch /var/log/freeradius/radwtmp
#chmod 600 /var/log/freeradius/radutmp
#chmod 644 /var/log/freeradius/radwtmp
#chown freerad:freerad /var/log/freeradius/radutmp
#chown freerad:freerad /var/log/freeradius/radwtmp
#shutdown -r now //Restart เครื่องสักรอบ ก็ใชงานไดเหมือนเดิมแลวครับ
มาลองเลน Daloradius กัน
สราง ฐานขอมูลเตรียมไวกอนครับ
# mysql -uroot -p -e "CREATE DATABASE radius;"
# mysql -uroot -p radius < /etc/freeradius/sql/mysql/ippool.sql
# mysql -uroot -p radius < /etc/freeradius/sql/mysql/nas.sql
# mysql -uroot -p radius < /etc/freeradius/sql/mysql/schema.sql
# mysql -uroot -p < /etc/freeradius/sql/mysql/admin.sql
# apt-get install php5-common php5-gd php-pear php-db libapache2-mod-php5
# cd /var/www
# wget http://internap.dl.sourceforge.net/sourceforge/daloradius/daloradius-0.9-8.tar.gz
# tar xzvf daloradius-0.9-8.tar.gz
# mv daloradius-0.9-8 daloradius
# chown -R www-data:www-data /var/www/daloradius
13. # chmod 644 /var/www/daloradius/library/daloradius.conf.php
# mysql -u root -p radius
# vi /var/www/daloradius/library/daloradius.conf.php
บรรทัดที่
29 $configValues['CONFIG_DB_USER'] = 'root';
30 $configValues['CONFIG_DB_PASS'] = 'ใสพาสเวิรดของ mysql (user root)';
31 $configValues['CONFIG_DB_NAME'] = 'radius';
...........
37 $configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'usergroup';
แกไขไฟล /etc/freeradius/sql.conf
# vi /etc/freeradius/sql.conf
บรรทัดที่
36 server = "localhost"
37 login = "radius"
38 password = "พาสเวิรด mysql (user radius)"
...........
41 radius_db = "radius"
Restart freeradius
# /etc/init.d/freeradius restart
เปด Browser เรียก http://ipserver/daloradius
username : administrator
password : radius
SQUID Block Bittorrent
วันนี้ไดทําการทดสอบ บล็อกบิตดูครับ ใชไดผลดีครับและปลอยเปนชวงเวลาใหดาวโหลดไดครับ ลองเอาไปใชดูกันนะครับ
# ACL BLOCK_http_access deny download all Access Virus
# ----------------------------------------------------
acl bittorrent_announce url_regex -i http://.+announce.+info_hash= #announce.php?passkey
acl daytime2 time M T W H F A S 06:00-23:59,00.00-02.59
http_access deny bittorrent_announce daytime2
acl download urlpath_regex -i .torrent # .exe$ .mpg$ .mpeg$
http_access deny download
acl virus_nimda urlpath_regex -i .*/system32/cmd.exe.*
acl virus_nimda2 urlpath_regex -i .*/winnt/system32/cmd.exe.*
acl virus_nimda2 urlpath_regex -i .*/MSADC/root.exe..c.dir$
acl virus_nimda2 urlpath_regex -i .*/scripts/root.exe..c.dir$
http_access deny virus_nimda
http_access deny virus_nimda2
ผมวาเวริคดีครับเลยเอามาแบงกันใชครับ ตัดออกมาจาก SQUID ของผมเองครับ ไปเอามาจากหลายๆที่มารวมกันครับ ถาใครอยากไดเต็ม ของผมก็
ขอมานะครับ ถาไมใสชวงเวลา ก็จะบล็อกตลอดการเลยครับ อันเดิมเขาไมไดใสมาครับ แตผมลองมาคิดดูเลนๆวาจะปลอยเปนชวงเวลาใหดาว
โหลด จาก 03.00-06.00 ก็เคยออกมาเปนงี้ครับ ไมรูวาคิดถูกหรือเปลาแตตอนนี้บล็อกอยูหมัดเลยครับ ไมกระดิกเลยแหละจา
เพิ่มการปองกัน ใหดีขึ้น ชวยกันการโจมตีจากการ ping รวมถึงการโจมตีแบบ DoS
เพิ่ม คําสั่งที่ vi /etc/sysctl.conf
พิมพิ์ใตบรรทัดนี้
net.ipv4.ip_forward = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.tcp_syncookies=1
net.ipv4.conf.all.accept_redirects=0
net.ipv4.ip_always_defrag=1
net.ipv4.conf.all.rp_filter=1
และอยาลืม restart network
/etc/init.d/network restart
14. Chillispot : แกไขปญหาเลนเกมส Online ที่อัพแพทดวย FTP ไมได
สําหรับทานที่เจอปญหาเกี่ยวกับเกมสออนไลนที่ อัพแพท แบบ FTP
เชน HYONLINE, Audition, Sixsaint, Freestyle เปนตน หรือเกี่ยวกับ FTP ทั้งหมด
เนื่องจากเครื่อง Server ของทานไมมี Module ของ FTP จึงทําใหเกิดปญหาเหลานี้ขึ้น
ทําใหคาง ไมสามารถเขาเลนเกมสได
วิธีแกไข
เพิ่มคําสั่งเหลานี้ลงไปเพื่อเปดใช Module
#modprobe ip_nat_ftp
#modprobe ip_conntrack_ftp
เพียงเทานี้ทานก็สามารถเขาเลนเกมส หรือ แกปญหาตรงนี้ไดแลวครับผม
Freeradius : วิธีการกําหนดใหจํากัดคา Bandwidth Upload Limit
การจํากัดคา Bandwidth ใน Freeradius มี Attribute สําหรับใชงานอยูแลวดังนี้
- WISPr-Bandwidth-Max-Down จํากัดคา Download สูงสุด
- WISPr-Bandwidth-Max-Up จํากัดคา Upload สูงสุด
ปญหาที่สวนมากเจอกันคือเวลาสราง User จํากัดคา Upload แลวไมได
วิธีแกไข
เปดไฟล chilli.iptables ขึ้นมาแกไขโดยการเพิ่มคําสั่งเขาไปดังนี้
#pico /etc/init.d/chilli.iptables
***ลบ 3 บรรทัดเดิมออก หรือใส # เพื่อ Comment ไว
#$IPTABLES -P INPUT DROP
#$IPTABLES -P FORWARD ACCEPT
#$IPTABLES -P OUTPUT ACCEPT
***เพิ่มคําสั่ง 4 บรรทัดนี้เขาไปแทน
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -A FORWARD -o tun0 -j ACCEPT
$IPTABLES -A FORWARD -i tun0 -j ACCEPT
เสร็จแลว SAVE
#/etc/init.d/chilli.iptables //รัน chilli.iptables ใหมเพื่อใหคําสั่งที่เราเพิ่มเขาไปทํางาน
การกําหนดคา Upload ใหแตละ User
ขอควารจํา คือ ตองกําหนดใหอยูในตาราง Radreply กําหนดแบบ Group ไมได
หรือสรางไวใน Radius Profile ของ phpmyprepaid ตามคูมือของคุณ พนม เขียนไวครับ
ตัวอยาง
กําหนดคา Upload ไวแลวตรวจสอบความเร็วที่ไดรับดังรูป
WISPr-Bandwidth-Max-Up=32000
แกปญหา There is a problem with this website's security certificate.
ถามมากันหลายคนเหลือกันครับ สําหรับ เวลาเขาเวบไซด แลวอยากใหขึ้นหนา login เลย ไมตองขึ้น There is a problem with this website's
security certificate.
กอนอื่น
1) Download ไฟลทั้งหมดกอนนะครับ อยูที่นี่ครับ http://www.sc-hispeed.com/content/hotspotlogin_php.rar
2) แตกไฟล แลวอัพโหลด ไฟลทั้งหมดไปไวที่ /var/www/
3) แกไขไฟล /etc/chilli.conf
uamserver http://192.168.2.1/hotspotlogin.php
#uamhomepage http://192.168.2.1/index.php
***ถาใครมีหนา index.php ก็นํา # ออกครับ
4) สุดทาย ก็ รีสตารท chillispot ใหมครับ โดย
/etc/init.d/chillispot restart
พอดี คุณ kzone ชวยแนะนํา และแกไขไฟล hotspotlogin.php ของคุณ dreamnop ให ตองขอบคุณทั้งสองทานครับ
15. หากจะเปลี่ยนจาก ubuntu 7.10 เปน 8.04 (เพิ่มเติม)
สําหรับทานที่ตัองการจะใช Ubuntu 8.04 ขอเรียนใหทานทราบวา หนังสือเลมทีทานมีอยูสามารถใชกับ Ubuntu 8.04-Server ไดเลย เพียงแตตอง
่
config เพิ่มเติมนิดหนอยดังนี้
หัวขอ apache2-ssl (หนา 30)
สราง Listen port (แกไขไฟลใหเหมือนกับขางลางนี้)
#pico /etc/apache2/ports.conf
Listen 80
Listen 443
เปลี่ยนเปน
Listen 192.168.2.1:80
Listen 192.168.2.1:443
ออ มีสิ่งที่เพิ่มมาสําหรับเวอรชั่นนี้คือ ตอนติดตั้ง Ubuntu จะใหตั้ง พาสเวิรด mysql 2 ครั้ง ที่ตางจาก เวอรชั่น 7.10 คือ มีใหตั้ง พาสเวิรด แคครั้ง
เดียว โอกาสที่เราจะพิมพผิดสูง ก็ถือวา ok ครับ
มีเพิ่มเติมอีกนิดครับ
ในเวอรชั่น 8.04 ตองแกไขไฟล /etc/freeradius/sql.conf 2 จุด ดังนี้
บรรทัดที่ 226 (ลบตัวแดงออกครับ)
AcctStartDelay, AcctStopDelay, XAscendSessionSvrKey)
ก็จะเหลือแค
AcctStartDelay, AcctStopDelay)
บรรทัดที่ 236 (ลบตัวแดงออก)
'%{Acct-Delay-Time:-0}' , '0' ,%{X-Ascend-Session-Svr-Key}')"
ก็จะเหลือแค
'%{Acct-Delay-Time:-0}' , '0')"
*เปนคําสั่งที่เกินมานะครับ ไมมีในฐานขอมูล ถาไมเอาออกเวลาดู User online จะไมโชวครับ
ขอบคุณ คุณ kzone แนะนํามาเชนเคยครับ
เอาไปเลยครับ user,password แบบ fix mac แกไข
conception:
http://192.168.2.1/ezradius
Add new radcheck attribute
Display name: Calling-Station-Id
Value: 00-13-8F-F1-1B-E9
===========================================
RADCheck Attribute | Add radcheck attribute
Attribute Op Value
Calling-Station-ID := 00-13-8F-F1-1B-E9 Edit | Delete
===========================================
note: add user กอนนะ คับ
Exam:
user:test
password:test
------------------------------------------------------------------------------
เทานี้ก็ fix mac ไดแลวคับ 1user, 1 password ใชกับเครื่องนี้เทานัน ้
-------------------------------------------------------------------------------
ประโยชน: เหมาะสําหรับเครื่องสาธารณะ นะครับ
16. chillispot : การ fix ip ใหกับเครื่อง client
เราสามารถกําหนดเปน DHCP หรือ Static IP ก็ไดครับ มีวิธีดังนี้
แกไขที่ไฟล /etc/chilli.conf
#pico /etc/chilli.conf
1. ถาตองการใหแจก ip อัตโนมัติ (DHCP)
คนหาบรรทัด #TAG: net เอา # ออกหนาบรรทัด net 192.168.182.0/24
net 192.168.182.0/24 <---- เลข ip เราสามารถเปลี่ยนเปนเลข ip ที่เราตองการได
2. ถาตองการ fix ip ที่เครื่องลูก
คนหาบรรทัด #TAG: statip เอา # ออกหนาบรรทัด statip 192.168.182.0/24
statip 192.168.182.0/24 <---- เลข ip เราสามารถเปลี่ยนเปนเลข ip ที่เราตองการได
***สามารถเปดทั้ง 2 แบบได ถาตองการจะใชทั้ง DCHP และ FIX IP
Restart Chillispot
#/etc/init.d/chillispot restart
chillispot : ทําอยางไรใหสามารถสั่ง Disconnect User ที่ตองการได
หัวขอนี้เราจะมาพูดถึงเรื่องของการสั่ง Disconnect User ที่กําลัง online อยู ซึ่ง ณ ตอนนี้เราจะไมสามารถสั่งเองไดนอกจาก User นั้นจะกด
Logout ออกจากระบบเอง เรามาดูวิธีการแกไขวามีอะไรบาง ดังนี้
การสั่ง Disconnect นั้นทําได 3 วิธี
1. พิมพคําสั่งจากเครื่อง SERVER
2. กด Disconnect จาก phpmyprepaid
3. กด Disconnect จาก ezradius
กอนที่จะสั่ง Disconnect ทั้ง 3 วิธีดานนี้ไดนั้นจะตองเพิ่ม option ใหกับ chillispot ซะกอนนะครับไมงั้นจะใชงานไมไดครับ ซึ่งวิธีในการเพิ่ม option
นั้น สามารถทําไดดังนี้ครับ
#pico /etc/default/chillispot //เปดไฟล chillispot ขึ้นมาแกไข
ที่บรรทัด
DAEMON_ARGS="--conf $CHILLICFG"
แกไขเปน
DAEMON_ARGS="--coaport 3779 --conf $CHILLICFG" //เพิ่มตัวสีแดงลงไป
เสร็จแลว SAVE
#/etc/init.d/chillispot restart
เพียงเทานี้ระบบก็จะทําการเพิ่ม option ใหกับ chillispot ทุกครั้งที่เปดเครื่องใหมจะมีผลใหตลอดแลวครับ คุณก็สามารถใช คําสั่ง Disconnect ได
แลว อยากจะดีดใครก็ไดละครับ (เหอๆๆ )
========================================================
วิธีที่ 1 Disconnect จากเครื่อง Server
#echo "User-Name=kzone " | radclient -x 127.0.0.1:3779 40 chillispot
kzone คือ ชื่อ user ที่กําลัง online อยูแลวเราตองการจะดีดเขาออกจากระบบ
-x คือ แสดง debug ออกมาใหเห็นวาผลลัพธเปนอยางไร สําเร็จไหม
127.0.0.1:3779 คือ เครื่อง server และ port ที่เราเพิ่ม option ไปใน chillispot
40 คือ การสั่งให disconnect
chillispot คือ คา radiussecret ที่เราตั้งไวใน chilli.conf
หลังจากใชคําสั่ง จะขึ้นขอความประมาณนี้ครับ ถือ วาใชได
Sending Disconnect-Request of id 147 to 127.0.0.1 port 3779
User-Name = "magic"
rad_recv: Disconnect-ACK packet from host 127.0.0.1:3779, id=147, length=20
แคนี้ User นี้ก็จะหลุดทันที
========================================================
วิธีที่ 2 Disconnect จาก phpmyprepaid
1. คลิกที่เมนู Useful View Accounts
2. คลิกที่ Connected Now
17. 3. คลิกที่ Disconnect (ดังภาพดานลาง)
========================================================
วิธีที่ 3 Disconnect จาก ezradius
1. คลิกที่เมนู View
2. คลิกที่ Online users
3. คลิกที่ Kick user ของ user ที่ตองการดีด
4. ใสคา radiussecret ที่คุณ กําหนดไวใน chilli.conf ตรงชอง NAS Shared Secret
5. คลิกปุม Kick user
เสร็จแลวครับการ Disconnect ก็แลวแตวาคุณจะใชวิธีไหนนะครับ
**ตองทําการเพิ่ม option ใหกับ chillispot กอนนะครับไมงั้น Disconnect ไมไดนะครับ
ตั้งคาใหละเวนการ Authen เพือใชงานรวมกับอุปกรณบางประเภทที่ไมสามารถ Login ได
่
สําหรับทานที่มีการใชงานอุปกรณพิเศษ เชน พวก Digital TV Box , ATA Adaptor หรือ H/W Appliance เพื่อติดตอไปยัง Server ภายนอก โดยมี
ChilliSpot กั้นกลางอยู ทําใหไมสามารถ authen ได อันเนื่องจากอุปกรณบางประเภท ไมสามารถ ตั้งให authen อัตโนมัติได แลวจะทําอยางไร ?
OK ตรงนี้มีทางออก สําหรับมือใหมและมือเกาที่บางคนอาจจะยัง หาคําตอบไมได หรือไดบาง แตเทาที่คนๆแลว นาจะยังไมมีคนเขียนไว เอาละครับ
งายๆ ในองคกรผมมีการใชงาน VoIP ATA Adaptor เพื่อติดตอไปยังสาขาอื่น วิธีงายๆ ครับ สามารถระบุคาลงใน chilli.conf ไดเลย ตามนี้
dns1 203.146.237.237
dns2 203.146.15.9
uamallowed 192.68.0.0/24,domain.com # ตรงนี้ใหระบุ server ที่เราอนุญาตใหใชงานโดยไมตอง authen! ใช คอมมา , คั่นกลางระหวาง
โดเมน หรือไอพี ติดกันเลยหามเวนวรรค
uamanydns # อนุญาตใหมีการติดตอ DNS ใดๆ ก็ได * คานี้จําเปนมากสําหรับบางอุปกรณ และอุปกรณบางชนิดก็ไมจําเปนตองใชแตเปดไวชัวร
กวา
4 คานี้ก็พอจะเปนทางออกสําหรับคนที่มีการใชงานอุปกรณอื่นๆ รวมกับ Chilli* แลวครับ
เทคนิคการ fix ip ใชงานรวมกับ chillispot (เพิ่ม Lan Card)
มีเพื่อนสมาชิกถามมาเกี่ยวกับเรื่อง fix ip ใหกับ chillispot ผมขอเรียนตามตรงเลยผมยังไมเคยลอง แตผมมี case study ใหลองศึกษากันครับ เปน
รพ.เอกชน โจทยมีอยูวา
1) ถาคนไขหรือญาติคนไขมา รพ. จะใชอินเตอรเน็ตใหใช chillipot (authen user)
2) ถาเปนพนักงาน ผูบริหาร รพ. ใหเปนแบบ fix ip (no authen)
ดังนั้น เราจะตองมี lan card 3 ใบดังนี้ (ดูผัง network ประกอบ)
1.มาดูไฟล /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 203.144.207.29
auto eth1
18. auto eth2
iface eth2 inet static
address 10.0.0.1
netmask 255.255.255.0
=================
ไฟล /etc/squid/squid.conf ตองปรับแตงนิดหนอย
เพิ่ม
acl hospital src 10.0.0.0/24
..............
http_access allow hospital
..............
visible_hostname 192.168.2.1 10.0.0.1
....................
=================
ปอนคําสั่ง
INTIF=eth2
=================
ไฟล /etc/init.d/chilli.iptables เพิ่มบรรทัดตอไปนี้
INTIF2="eth2"
.............
#enable tranparent proxy 3/3
$IPTABLES -t nat -A PREROUTING -i $INTIF2 -p tcp --dport 80 -j REDIRECT --to-ports 3128
$IPTABLES -t nat -A PREROUTING -i $INTIF2 -p udp --dport 80 -j REDIRECT --to-ports 3128
=================
รันคําสั่ง
#/etc/init.d/networking restart
#/etc/init.d/squid restart
#/etc/init.d/chilli.iptables
สําเร็จแลวครับ ทีนี้พอ คนไขหรือ ญาติคนไขถือ Notebook มาก็สามารถเลนอินเตอรเน็ตได (วง 192.168.2.0/24 ) ตองมี account ถึงจะเลนได
สวน พนักงาน รพ. ก็เปนแบบ Fix IP (วง 10.0.0.0/24) ก็สามารถเลนอินเตอรเน็ตไดเลย
วิธีการทํา Radius Server และแผนผัง การวางเครื่อง radius server
วันนี้ผมมีแผนฟงการตั้ง Radius Server มาฝากครับไดมาจากเว็บ ม.เกษมบัณฑิตครับ เอาแครูปแบบไปปรับใชกันดูนะครับ เพราะวา os เคาไมไดใช
ubuntu เคาใชเปน Slackware แตเราเอาแนวทางมาปรั้บใชไดครับตอนเพราะตอนนี้ผมเอาแบบแผนผังตรงนี้มาปรับเปลี่ยนใหเหมาะกับองคกรของ
ผม ใชแลว ok ครับ สวนวิธีการทํา Radius Server ใหทําตามในหนังสือครับคุณพนมเคาเขียนเขาใจงายดีครับ สําหรับใครที่หนังสือไมรูวาอยูที่ไหน
หรือขี้เกียจเปด ผมก็เอามาใหครับการติดตั้ง Radius Server ทําตามนี้เลยครับ
เตรียมพรอมและติดตั้ง
1. ตองมี Server 2 เครื่อง เครื่องที่ 1 ทําเปน Chilli spot เครื่องที่ 2 ทําเปน Radius Server
2. เครื่องที่ 1 ติดตั้ง Chilli spot ตามหนังสือจนเสร็จพรอมดวยโปรแกรมเสริมทุกโปรแกรม ยกเวน freedius,phpmyprepaid,sarg,ezradiu
3. เครื่องที่ 2 ติดตั้ง เฉพาะสวนที่เปน freedius เทานั้น Chillispot ไมตองทํา proxy ก็ไมตองทํา ทําแตขั้นตอน freedius (ทุกขั้นตอนที่เกี่ยวกับ
radius ทําใหหมดหามขาดครับ) เมื่อเสร็จแลวใหลงโปรแกรมเสริมตอไปนี้ phpmyprepaid,phpmyadmin,sarg,ezradiu
แกไข
1. ใหแกไขแฟม /etc/freeradius/clients.conf (แกที่เครื่อง Radius Server)
ทําใหมีคาดังตัวอยางนี้
client 10.0.1.0/24 {
secret = mytestkey
shortname = private-network
}
ตัวอยางคือให radius client ที่มีหมายเลข ip 10.0.1.x
สามารถเขามาใชดวย secret key วา mytestkey
เมื่อแกไขเสร็จแลวให reload ใหม ใชคําสั่ง /etc/init.d/freeradius reload แลว รีบูท server 1 ครับ shutdown -r now
2. ใหแกไขแฟม /etc/chilli.conf (แกไขที่เครื่อง chillispot) แกที่ radiusserver1และradiusserver2จาก 127.0.0.1 ใหเปน ip ของ radius server
ของเราที่ทําขึ้น จากนั้น restart chillispot ดวยคําสั่ง
/etc/init.d/chillispot restart
แลวลองทดสอบดวยคําสั่งตัวอยาง
radtest root passwordroot 10.0.1.1 0 mytestkey
*** คา passwordroot คือ รหัสผานของ root และ 10.0.1.1 คือหมายเลข ip ของ radius server
ไดผลแสดงขอความดังตัวอยาง
19. Sending Access-Request of id 246 to 10.0.1.1:1812
User-Name = "root"
User-Password = "passwordroot"
NAS-IP-Address = 10.0.1.2
NAS-Port = 0
rad_recv: Access-Accept packet from host 10.0.1.1:1812, id=246, length=20
ถึงขั้นตอนนี้เปนอันเปดใชระบบ radius server ไดแลว
(สําหรับทานที่เคยมีแค chilli เพียงตัวเดียวแลวอยากจะเพิ่มเครื่อง radius เขาไปก็ทําไดครับ แตทานตองทําดังนี้ครับ
1. ติดตั้งโปรแกรมในสวนของ radius server ใหครบตามหัวขอดานบน และแกไขตามตัวอยางใหเสร็จ
2. เขาไปที่ phpmyadmin ของ chilli แลว export ฐานขอมูล phpmyprepaid ออกมา
3. เขาไปที่ phpmyprepaid ของ radius server แลวลบ table ในฐานขอมูล phpmyprepaid ออกใหหมด แลวคอย import ฐานขอมูล ที่ไดจาก
chilli เขาไปแคนี้ทานก็จะสามารถใชงาน user เกาไดทั้งหมดครับ
4. จากนั้นเราก็เขาไปลบ phpmyprepaid ที่ chill ออกครับลบฐานขอมูลออกไปเลยก็ไดครับ)
ถาหากวาทานใดยังสงสัยผมมีเว็บใหดูครับตามนี้เลยครับ
1. แผนผัง การวางเครื่อง radius server
http://ctc.kbu.ac.th/manatsarin/2007/02/27/chillispot-%E0%B8%9A%E0%B8%99-slackware/
2. วิธีการเซ็ต radius server
http://rd.cc.psu.ac.th/content/view/35/46/
ตองขอขอบคุณสองเว็บนี้ดวยครับที่ทําใหผมได radius server มาใชงานครับ ขอบคุณครับ และที่ลืมไมไดเลยคือ พี่พนม นักเทศน ครับที่ให
คําปรึกษาและชวยแกปญหาใหผมมาตลอดครับ ขอบคุณมากครับพี่ หากผิดพลาดประการใดผมขอโทษดวยครับ
มาสราง Internet Card แบบงาย ๆ กันเถอะ
ตัวอยางการสราง Card Internet ในแบบของตัวเอง
1) กอนอื่นสราง Logo เปนของตัวเองกอน แนะนําใหใชโปรแกรม Adobe Photoshop สรางใหมีขนาด 225x45 pixel ดังรูป
บันทึกไฟลใหเปนนามสกุล .png
2) upload ไฟลขึ้น Server นําไปไวที่ /var/www/phpmyprepaid/www/image/
20. 3) เปด Browser เรียก http://ipserver/phpmyprepaid/www/</P< a="" />
4)ไปที่หัวขอ Portal Configuration -> Card Editor -> New Template
5) ใสชื่อ Template ใสคาตาง ๆ ตามรูปเลยครับ เสร็จแลว Save template
21. 6) รอสักครูจะมีหนาใหเราตกแตง template หรือ card ที่เราสรางมาใหม ใหคลิ๊กเมาสบริเวณรูป Logo แลวเลือก Insert/Edit Image
7) จะมีหนาตางใหเรา หารูปที่จะมาทํา Logo ใหเราคลิ๊ก Browse Server เพื่อเลือกรูปที่เรา upload เขาไป
8) เลือกรูปที่เรา upload เขาไป
23. 11) ตกแตง Font ตามตองการ ดังตัวอยางเปนการเพิ่มขนาด Font เสร็จแลวคลิ๊ก Save
12) กลับมาหนา Cards configuration ใหเลือก Save template
24. 13) จะขึ้น Sucessfull save the new card .... คลิ๊ก OK เปนอันเสร็จเรียบรอย
14) มาที่หนา Card configuration ลองเลือก Template name ดูจะเห็น template หรือ card ที่สรางมาใหม ดังรูป
25. วิธีนําไปใชงาน
เวลา Create Account มาใหม เลือก Print Cards และเลือก รูปแบบ card ของเราไดเลย เสร็จแลวคลิ๊ก รูป Card ก็จะไดดังรูป ถัดไป
***เสร็จแลว Internet Card แบบงาย ๆ แนะนําใหใช โปรแกรม Browser Firefox เทานั้นนะครับ
ดวน+++ ปองกันการ Hack proxy (โดยการ Set proxy port 80) แกไขใหม
26. ถาไมเพิ่มบรรทัดนี้ใน chilli.iptables ยูสเซอร สามารถ set proxy ใน Browser ที่ port 80 จะทําใหออกเน็ตไดเลย โดยไมตอง Authen
ใหเพิ่มที่หัวขอ (ตัวแดงนะครับ)
#Allow transparent proxy 2/2
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 192.168.2.0/24 --dport 80 -j RETURN
$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
***เสร็จแลวอยาลืม run script ใหมนะครับ
/etc/init.d/chilli.iptables
เทคนิคการติดตั้งโปรแกรม phpmyprepaid เวอรชั่นลาสุด
ในหนังสือผมจะสอนแคการติดตั้ง phpmyprepaid04b3 ถาทานใดลงสําเร็จแลว แนะนําใหลง phpmyprepaid04RC2 ทับไปไดเลยครับ มีวิธีคือ
ลบ /install ออกกอน ดังนี้
#rm -rf /var/www/phpmyprepaid/www/install/
#cd /var/www
#tar -xzvf /root/phpmyprepaid04RC2.tar.gz
#chmod 777 /var/www/phpmyprepaid/www/install/
เสร็จแลว เขา Browser setup ตาม step เลยครับ
***(สําหรับมือใหม)ไมแนะนําให ลงโดยไมได upgrade จากเวอรชั่นเกา ตองลงเวอรชั่น 04b3 กอนครับ
วิธีกําหนดเวลาการใชงานในแตละวันใหกับ User ที่ตองการ
แกไขไฟล /etc/freeradius/radiusd.conf
#pico /etc/freeradius/radiusd.conf
คนหาบรรทัด authorize {
authorize {
สิ่งที่ตองเพิ่ม
noresetcounter
dailycounter #กําหนดให user สามารถใชงานเวลาไดในแตละวัน ถาเวลาหมดไมสามารถใชไดตอในวันนั้น
monthlycounter #กําหนดให user สามารถใชงานเวลาไดในแตละเดือน ถาเวลาหมดไมสามารถใชไดตอในเดือนนั้น
}
คนหาบรรทัด instantiate {
instantiate {
สิ่งที่ตองเพิ่ม
noresetcounter
dailycounter #กําหนดให user สามารถใชงานเวลาไดในแตละวัน ถาเวลาหมดไมสามารถใชไดตอในวันนั้น
monthlycounter #กําหนดให user สามารถใชงานเวลาไดในแตละเดือน ถาเวลาหมดไมสามารถใชไดตอในเดือนนั้น
}
-------------------------------------------------------------------------------------- Restart Freeradius
#/etc/init.d/freeradius restart
--------------------------------------------------------------------------------------Max-Daily-Session เปน Attribute สําหรับกําหนดการใชงานใน
แตละวัน
เพิ่ม Attribute ในตาราง radcheck ใหกับ user ที่ตองการกําหนดเวลาการใชงานในแตละวัน
ตัวอยาง ตองการกําหนดให user1 มีเวลาการใชงาน 2 ชั่วโมงตอวัน (7200 วินาที)
INSERT INTO radcheck (UserName, Attribute, Op, Value) VALUES ('user1', 'Max-Daily-Session', ':=', '7200');
คุณตองแกไขตรงไหนบาง ถาหากคุณเปลี่ยน chillispot แจกไอพี เปนหมายเลขอื่น
27. ในหนังสือที่ผมเขียนจะกําหนดให ในไฟล /etc/chilli.conf แจก ip เปน 192.168.2.0/24 สวน tun0 จะเปน ip 192.168.2.1 ถาหากวาคุณกําหนด
เปน class อื่น เชน 10.0.0.0/24 คุณจะตองแกไขในไฟลตอไปนี้ (ถา 192.168.2.1 เปลี่ยนเปน 10.0.0.1 แตถา 192.168.2.0/24 เปลี่ยนเปน
10.0.0.0/24)
1) /etc/chilli.conf
บรรทัด net 192.168.2.0/24
บรรทัด https://192.168.2.1/cgi-bin/hotspotlogin.cgi
บรรทัด https://192.168.2.1/welcome.html
บรรทัด #dns1 192.168.2.1 (จริงๆ แลวไมมีผล เพราะมี # อยูขางหนา)
บรรทัด #dns2 192.168.2.1 (จริงๆ แลวไมมีผล เพราะมี # อยูขางหนา)
บรรทัด uamlisten 192.168.2.1
เสร็จแลว /etc/init.d/chillispot restart
2) /etc/apache2/site-avilables/hotspot
บรรทัด NameVirtualHost 192.168.2.1
บรรทัด VirtualHost 192.168.2.1:443
บรรทัด ServerName "192.168.2.1"
3) /etc/apache2/apache2.conf
บรรทัด ServerName 192.168.2.1
4) /etc/hosts
บรรทัด 192.168.2.1 hotspot.domain.org hotspot
5) /etc/squid/squid.conf
บรรทัด acl net src 192.168.2.0/24
บรรทัด visible_hostname 192.168.2.1
เสร็จแลว /etc/init.d/squid restart
shutdown -r now
*** สําหรับ ubuntu 8.04 ตองแกไข /etc/apache2/ports.conf
บรรทัด Listen 192.168.2.1:80
บรรทัด Listen 192.168.2.1:443
มาแลวครับ Theme 2009 By Dreamnop V1 แกไข
แกไขใหมครับ 30/3/52 ทําการ Redirect Chilli Hotspot Server โดยไมตองไปเปลี่ยนคาใดๆใน Theme ที่ผมโมมานะครับ แค แกไขไฟล
chilli.conf สองบรรทัดก็พอแลวครับ เพราะระบบจะคนหาไอพีใหเองลองดูนะครับ
28. เยี่ยมอีกแลว คุณนพ ขออนุญาตอธิบายวิธีใชงานคราว ๆ
กอนอื่นก็ใช Winrar แตกไฟลกอน ก็จะได Folder New Theme
ใช Winscp Transfer ไปไวบน Server ทั้ง Folder เลยครับ สมติวาผมไวที่ /root ละกันครับ
# cd /root/New Theme/
# cp -a * /var/www/
# vi /etc/chilli.conf
หาบรรทัดแลวแกไข
uamserver http://192.168.2.1/hotspotlogin.php
...........
uamhomepage http://192.168.2.1/index.html
บันทึกแลวออกมา
# vi /var/www/index.html
หาบรรทัดแลวแกไข
<META HTTP-EQUIV="Refresh"
CONTENT="3;URL=http://192.168.2.1:3990/prelogin"mce_href="http://192.168.2.1:3990/prelogin">
บนทึกแลวออกมา
อยาลืมแกไข /var/www/hotspotlogin.php บรรทัด
$uamsecret = "uamsecret"; # ตองตรงกันกับ /etc/chilli.conf นะครับ
สุดทาย
# /etc/init.d/chillispot restart
*** หมายเลขไอพีที่แกไขขางตน แลวแตวาตั้งเปนอะไรนะครับ ไมจําเปนตองเปนหมายเลขนี้ (อันนี้ยึดตามคูมือครับ)
ลองดูนะครับ สําหรับผม ให A+ ครับ