Hotspotubuntu8
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Hotspotubuntu8

on

  • 3,073 views

 

Statistics

Views

Total Views
3,073
Views on SlideShare
3,073
Embed Views
0

Actions

Likes
0
Downloads
102
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hotspotubuntu8 Document Transcript

  • 1. การติดตั้ง 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 ถาเจอปญหาดังรูป
  • 3. ใหใชคําสั่ง chmod 777 /var/www/phpmyprepaid/www แลวจะไดผลลัพทดังรูป 24.ขั้นตอนที่ 4 จะเปนดังรูป ใหปอนคาใหถูกตองโดยเฉพาะคา Phpmyprepaid path อาจจะตองเปลี่ยนใหตรงความเปนจริง 25.ขั้นตอนเปนการคอนฟก Radius ก็ใหปอนขอมูลใหตรงตามรูป
  • 4. 26.ขั้นที่ 6 เปนการจัดการเรื่อง User Interface ก็ใหปอนขอมูลตามตองการ แตอยาลืม user และ password ที่ไดกําหนดไวดวย 27.ขั้นตอนที่ 7 เปนการคอนฟกฐานขอมูล ใหปอนขอมูลตรงกับที่ไดกําหนดไวดังรูป
  • 5. 28.เมื่อปอนขอมูลในขั้นตอนที่ 7 ถูกตอง ก็จะไดผลลัพทดังขั้นตอนที่ 8 29.ขั้นตอนที่ 9 เปนการปอนขอมูล Location ดังรูป 30.ขั้นตอนที่ 11 เปนการคอนฟกขอมูลทั่วไป ดังรูป 31.ขั้นตอนที่ 11 เปนขั้นตอนสุดทาย ใหอานขอความดวยนะครับเพราะมีคําแนะนําบางอยางที่ตองทําตามดวย
  • 6. 32.จากนั้นเมื่อเราเรียกใชงาน http://host/phpmyprepaid/www/ ก็จะไดหนาตาดังรูป 33.เมื่อ Login เขาสูระบบไดแลว จะไดผลลัพทดังรูป
  • 7. 34.รูปขางลางเปนตัวอยางการเพิ่ม Account ที่สามารถกําหนดความเร็วในการ upload และ download ได
  • 8. 35.ทดสอบการทํางานของ FreeRadius ดวยคําสั่ง radtest radtest username password localhost 0 mysecret ถาเซ็ตอัพถูกตองและปอนคาถูกตองจะไดผลลัพธวา Access-Accept ดังรูป
  • 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 เขาไป
  • 22. 9) จะแสดงตัวอยาง รูป Logo ที่เราเลือก คลิ๊กปดไป 10) กลับมาหนา Image Properties เลือก OK ไดเลย
  • 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+ ครับ