• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,405
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
103
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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+ ครับ