tag:blogger.com,1999:blog-28606859865380360662024-03-22T06:20:45.622+08:00Mamak SpotHotspot Management System [ Linux Freeradius Coova-Chilli PHP MySQL Apache ]Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.comBlogger100125tag:blogger.com,1999:blog-2860685986538036066.post-3966352971300435882009-05-14T00:02:00.003+08:002009-05-14T00:08:12.577+08:00Mamakspot 3 Screenshots<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz0b-ldBH9BqH1fViHCtvRO2YRTgVo5jubrXen0DkNPP6XHRZKDGJptxoomBUyZeCgXiRB7d32KZ9wPibKLLbk3ZhqfKLx0U_guRb9etVjQUxpF2-PPP_U1_31ujDZyI9ookjLBsrPqpyj/s1600-h/portal.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz0b-ldBH9BqH1fViHCtvRO2YRTgVo5jubrXen0DkNPP6XHRZKDGJptxoomBUyZeCgXiRB7d32KZ9wPibKLLbk3ZhqfKLx0U_guRb9etVjQUxpF2-PPP_U1_31ujDZyI9ookjLBsrPqpyj/s400/portal.png" alt="" id="BLOGGER_PHOTO_ID_5335340843031807666" border="0" /></a><br />Captive Portal WYSWYG Editor<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRqXWdGO1GnOLZtLBCWiWfrBe-e5NWaeUjG9Ck1_ltm3BxxtZQwO8qgDjP5201y_Fl9xNDcb-qjfjEjzT2Om5No5w6WWkVjtI3TQ-KdPKuib4Fb94iUp2GCdEezQrWuiYFstvb2jnKfSg/s1600-h/Screenshot-5.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRqXWdGO1GnOLZtLBCWiWfrBe-e5NWaeUjG9Ck1_ltm3BxxtZQwO8qgDjP5201y_Fl9xNDcb-qjfjEjzT2Om5No5w6WWkVjtI3TQ-KdPKuib4Fb94iUp2GCdEezQrWuiYFstvb2jnKfSg/s400/Screenshot-5.png" alt="" id="BLOGGER_PHOTO_ID_5335340842026339954" border="0" /></a><br />Location Map on Captive Portal<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmqJ_bHnobqJwhCFgKQzouW5GrpGGBRSH3D05HWvU6gPor8CG8AgRF3OLrKsfFX3Wsjm5DL-HGTh_i1F3HA06Oaw1ovNbZjo_RC0juooSyWI7NDQspzYwsYKqscXhzuXxq5B5HeUVXf4d/s1600-h/Screenshot-6.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHmqJ_bHnobqJwhCFgKQzouW5GrpGGBRSH3D05HWvU6gPor8CG8AgRF3OLrKsfFX3Wsjm5DL-HGTh_i1F3HA06Oaw1ovNbZjo_RC0juooSyWI7NDQspzYwsYKqscXhzuXxq5B5HeUVXf4d/s400/Screenshot-6.png" alt="" id="BLOGGER_PHOTO_ID_5335340220158928082" border="0" /></a><br />Captive Portal Editor<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnlrIYqwIvgiKIOLtU1bikLpGZxXapw_MluJQkDpgltF_ZS8Hxh9ur8zjN8hJbZMZ_XqMD09ZuaU2OozLL5KEw9_-Q1FAPw6-zDlf1Hy19p-O8Eg2DbwUTuEC_ek5olbh7EnaZcJDp3bDs/s1600-h/Screenshot-7.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnlrIYqwIvgiKIOLtU1bikLpGZxXapw_MluJQkDpgltF_ZS8Hxh9ur8zjN8hJbZMZ_XqMD09ZuaU2OozLL5KEw9_-Q1FAPw6-zDlf1Hy19p-O8Eg2DbwUTuEC_ek5olbh7EnaZcJDp3bDs/s400/Screenshot-7.png" alt="" id="BLOGGER_PHOTO_ID_5335340216049828130" border="0" /></a><br />Response to your hotspot requests using live chat<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKMmDT_x-iFWZYSLVF5mKE-uwZbA3xpyXeZIXWV40nr8hrJ_A3q6J0hIPsD6TtfDeKk6wbNMQOwZLlAe-PuDyjrSCfgMcDQvwswRPriNG-7pkxcXBi8nrhCHXJ8HqhqotiookE5FwHAK_F/s1600-h/Screenshot-8.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKMmDT_x-iFWZYSLVF5mKE-uwZbA3xpyXeZIXWV40nr8hrJ_A3q6J0hIPsD6TtfDeKk6wbNMQOwZLlAe-PuDyjrSCfgMcDQvwswRPriNG-7pkxcXBi8nrhCHXJ8HqhqotiookE5FwHAK_F/s400/Screenshot-8.png" alt="" id="BLOGGER_PHOTO_ID_5335340190635840002" border="0" /></a><br />The chatbox in the captive portal<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePzT03Y-5kbI8iJsBtso42Ufsi8SUMLz8q6-H2WdtKWkEq970Rvi87mPAv8Uw6m5qnoeH2GbyPidp8Mer5MMtgu51kUBmLeopajjh8pw-xHZXE2siMmaLxXjvdUEMNEpJh4QLHq9wrEx0/s1600-h/Screenshot-9.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiePzT03Y-5kbI8iJsBtso42Ufsi8SUMLz8q6-H2WdtKWkEq970Rvi87mPAv8Uw6m5qnoeH2GbyPidp8Mer5MMtgu51kUBmLeopajjh8pw-xHZXE2siMmaLxXjvdUEMNEpJh4QLHq9wrEx0/s400/Screenshot-9.png" alt="" id="BLOGGER_PHOTO_ID_5335340183804270626" border="0" /></a><br />Prepaid Editor<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUWgINTbWQ3eQP5EPcq8lP-g7yel7UNNcHGIjzvQNxzSsnqsgCT2yY3yVJMspDL4es0YLSRrOJ8wKKFyVYrKx3gZHvMfCe_BUoloejk3puHhYfvkfdkpgd8uSho440py-cT_gTQkNH455n/s1600-h/admin-login.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUWgINTbWQ3eQP5EPcq8lP-g7yel7UNNcHGIjzvQNxzSsnqsgCT2yY3yVJMspDL4es0YLSRrOJ8wKKFyVYrKx3gZHvMfCe_BUoloejk3puHhYfvkfdkpgd8uSho440py-cT_gTQkNH455n/s400/admin-login.png" alt="" id="BLOGGER_PHOTO_ID_5335340184149727794" border="0" /></a><br />Prepaid Manager login pageAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-78684914310418358432009-05-05T16:16:00.001+08:002009-05-05T16:16:57.444+08:00MamakSpot Version 3I've started mamakspot version 3 development.<br /><br />http://mamakspot.my/index.php/topic,37.0.htmlAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-32770952470374092312008-11-18T07:56:00.002+08:002008-11-18T07:59:15.639+08:00cacti & TrafIP is up<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdtXZvsDbTIH-8-Hp1TQc1266nWlnIJfMpt5mMBMCf-rbPfOKqGJpOOSH3c2yfr-NhhTBQANhcyvzWOLF3ajiG1mz1n8SvyUqGB-1MC2me0R807Lte5FVKcoar_BU-xpa7hl7Iw4h1RPoj/s1600-h/collecting-2.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdtXZvsDbTIH-8-Hp1TQc1266nWlnIJfMpt5mMBMCf-rbPfOKqGJpOOSH3c2yfr-NhhTBQANhcyvzWOLF3ajiG1mz1n8SvyUqGB-1MC2me0R807Lte5FVKcoar_BU-xpa7hl7Iw4h1RPoj/s400/collecting-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5269780136615107122" border="0" /></a><br />cacti Report on bandwidth usage @ Wireless 1 AP<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZerPsf5bcpwtWtKTG8WL_BTGVzfai_6Bgp4LNlWYrHQ0O6grXfriGHONTv2v1IWeSjp7EgzIaY37WSMFkORHNwuX1KANZlXwX7iMTpN0RQVTKO40lciVj1dQEJQYj-Qulcl8K3b8jirQT/s1600-h/collecting.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZerPsf5bcpwtWtKTG8WL_BTGVzfai_6Bgp4LNlWYrHQ0O6grXfriGHONTv2v1IWeSjp7EgzIaY37WSMFkORHNwuX1KANZlXwX7iMTpN0RQVTKO40lciVj1dQEJQYj-Qulcl8K3b8jirQT/s400/collecting.jpg" alt="" id="BLOGGER_PHOTO_ID_5269780136323495122" border="0" /></a><br />IPtables - PHP report on gateway bandwidth usageAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-34747927366919945792008-11-17T08:52:00.004+08:002008-11-17T09:29:38.089+08:00Planned extra Features for V2<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://trafip.securityorg.net/UserFiles/Image/graph.png"><img style="cursor: pointer; width: 786px; height: 150px;" src="http://trafip.securityorg.net/UserFiles/Image/graph.png" alt="" border="0" /></a><br /><span style="font-weight: bold;"><br />1. Reporting on successful login and logout</span><br /><span style="font-weight: bold;">2. User request form</span><br /><span style="font-weight: bold;">3. Admin disconnect online user </span><br /><span style="font-weight: bold;">4. Ajax interval 10 secs to show overall download and upload in MB</span> <span style="font-weight: bold;">5. Simple bandwidth graph</span><br /><br /><span style="font-weight: bold;">1. Reporting on successful login and logout</span><br />Have to create a table dedicated for logging successful logging and logout, so in the report it display like below<br /><br />10.0.0.2 logged in using xxxxx username at 10.20pm 12th December 2008<br />10.0.0.50 logged in using xxxxx username at 11.20pm 12th December 2008<br /><br /><span style="font-weight: bold;">2. User request form</span><br />Regiestered user can request XS Code by filling the form to the Admin, admin will be notified by email and will check request . A request is a discussion between admin and user. Have to use 2 tables until the request is marked done by the admin. Can use blog topic , blog commenst db structure.<br /><br /><span style="font-weight: bold;">3. Admin disconnect online user<br /></span>Admin can disconnect particular user by putting Max-All-Session = 0 into user's radcheck table. The connected user will be disconnected after radius interval check.<br /><br /><span style="font-weight: bold;">4. Ajax interval 10 secs to show overall download and upload in MB</span><br />Admin can view the concurrent usage by number of up/down bandwidth used<br /><br /><span style="font-weight: bold;">5. Simple Bandwidth Graph</span><br />Using IPtraf script to generate bandwidth graph.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-1623495859829058792008-11-16T21:15:00.002+08:002008-11-16T21:19:07.670+08:00Online Users<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYHMCfy8bzu5mK9IfW9ijsb7h88aD6UyTHnoZkYSAI07ShhFx7KyQt5viKj57FSwNK0wCDulGA1Ply_IahYAZF87QPrUkfVpsr2q8RZwVQL-wh6yCU9Xkx6EkFRfHCunNsR7MI7KA6Erq5/s1600-h/online-users.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYHMCfy8bzu5mK9IfW9ijsb7h88aD6UyTHnoZkYSAI07ShhFx7KyQt5viKj57FSwNK0wCDulGA1Ply_IahYAZF87QPrUkfVpsr2q8RZwVQL-wh6yCU9Xkx6EkFRfHCunNsR7MI7KA6Erq5/s400/online-users.jpg" alt="" id="BLOGGER_PHOTO_ID_5269244270169928530" border="0" /></a><br />I've written a module to show online users.<br /><br />I know that my maximum idle for every users is 300secs or 5 minutes.<br />So I can check againts radius.acctstoptime field == null in SQL.<br /><br />If use disconnected without logging out, radius will disconnect them after idling more than 5 minutes.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com2tag:blogger.com,1999:blog-2860685986538036066.post-82368197464909418972008-11-15T18:46:00.005+08:002008-11-15T19:29:45.662+08:00MamakSpot V2 on VMWARE<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyP9E1Hy3MsTofj8Eff1He_eHzUvaTtq-HkWeRXl3YTRxdjRLnret0xpE8aABqejW8Sw1R_eUPcKmO7Yw74GFta3jelojLHqpaeHntuSUH9hfSBompTkuNbwVuL3J30l5bh-Y1oowvgbax/s1600-h/mamakspot-3.jpg"><img style="cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyP9E1Hy3MsTofj8Eff1He_eHzUvaTtq-HkWeRXl3YTRxdjRLnret0xpE8aABqejW8Sw1R_eUPcKmO7Yw74GFta3jelojLHqpaeHntuSUH9hfSBompTkuNbwVuL3J30l5bh-Y1oowvgbax/s400/mamakspot-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5268844400076716210" border="0" /></a><br />From left: Win Xp running VMWARE as MamakSpot Server, Laptop simulating as wireless client<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlbaTP5vqjFrsGt7CItVseajPbdddPPARh_1_PQHrm6Tp3wQ2JTjA87jbXUgzV07tgnZp-F6V21Ss2hpA9aAHUM_MlAvzE8OnMoKgicA7oxF_DNb6VDrcqu_i4SiuNXPYs4xpYdnq4yfBP/s1600-h/mamakspot-2.jpg"><img style="cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlbaTP5vqjFrsGt7CItVseajPbdddPPARh_1_PQHrm6Tp3wQ2JTjA87jbXUgzV07tgnZp-F6V21Ss2hpA9aAHUM_MlAvzE8OnMoKgicA7oxF_DNb6VDrcqu_i4SiuNXPYs4xpYdnq4yfBP/s400/mamakspot-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5268844394316501058" border="0" /></a><br />Host Ap connected directly to ETh0 and Ap2 connected to AP 1 using WDS link ( wirelessly )<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTZC9mm1zIrCRz2I05xfTGzm91AuJ9i53NtmKCHk1DGAkijffRgETQ2m9bm1waajV3s8sOrjqztMnL-MIIttC_thLMUgikPm-f8Jk630XfKjwsaB0-ZKGKsHSCgS0xM9zYsveXAbJVU4rC/s1600-h/mamakspot-1.jpg"><img style="cursor: pointer; width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTZC9mm1zIrCRz2I05xfTGzm91AuJ9i53NtmKCHk1DGAkijffRgETQ2m9bm1waajV3s8sOrjqztMnL-MIIttC_thLMUgikPm-f8Jk630XfKjwsaB0-ZKGKsHSCgS0xM9zYsveXAbJVU4rC/s400/mamakspot-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5268844384073378594" border="0" /></a><br />AP1 ( host ), Ap2 ( WDS Client )..look..no AP 2 connect wirelessly<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEg8qMOlqtEE-BnLKeJi0_y4Jj6D4NXfQyk51EUnywa2RzhtZCmm76DC6b19B2AFh8ocamp_hCmSsD9y0OkRyIJ_u9tw9gtDnDWpai1Jh6dHKeIcALhDMTSxv9-f-lBAXo06_pvp64a4sC/s1600-h/wds-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEg8qMOlqtEE-BnLKeJi0_y4Jj6D4NXfQyk51EUnywa2RzhtZCmm76DC6b19B2AFh8ocamp_hCmSsD9y0OkRyIJ_u9tw9gtDnDWpai1Jh6dHKeIcALhDMTSxv9-f-lBAXo06_pvp64a4sC/s400/wds-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5268839580192205810" border="0" /></a><br />Wifi AP System Status<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWXwCd4iV2JDNDYYIeOeggp8bgStET9mYdjPEh755yN4-Tmf-jWRIInrFncmd5bo12qnMzdqtnW9gvrcRkf234P4SJCcTeY2m0_roZ-X3B_3AuQ8FpxJAuOL20P6HAKzcF3cs1VbzRB3aW/s1600-h/dhcp-status.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWXwCd4iV2JDNDYYIeOeggp8bgStET9mYdjPEh755yN4-Tmf-jWRIInrFncmd5bo12qnMzdqtnW9gvrcRkf234P4SJCcTeY2m0_roZ-X3B_3AuQ8FpxJAuOL20P6HAKzcF3cs1VbzRB3aW/s400/dhcp-status.jpg" alt="" id="BLOGGER_PHOTO_ID_5268839575264433266" border="0" /></a><br />DHCP Status received by Mamakspot client<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhND7bdE5XozitvdePbpsWbHOdDhukL4FKDSzuEyxfW7gfILOXLgqPF2YXhjPZppiQVx0D2y3RkcBGaR1Ox7ug6yfAGEeWlxa8b0mn-h1uwQn_k6zaHQhpAtlE89HCkHOi8c684cAwxAKZk/s1600-h/conn-status.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhND7bdE5XozitvdePbpsWbHOdDhukL4FKDSzuEyxfW7gfILOXLgqPF2YXhjPZppiQVx0D2y3RkcBGaR1Ox7ug6yfAGEeWlxa8b0mn-h1uwQn_k6zaHQhpAtlE89HCkHOi8c684cAwxAKZk/s400/conn-status.jpg" alt="" id="BLOGGER_PHOTO_ID_5268839572237454546" border="0" /></a><br />Connection status for client at Mamakspot landing page<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyJoiL09sIYpuSFTqWAJuy9RmQeazlSRASkJBmsJ93Jbrx6zqgWTXS5904cNhqdofjKkOfP8QSoZ94r728SDxsf6K4I9YGthyKRT4XTK63woLceOW-nNxVmBaR3RoLnrYE0vjytOUkY9Q/s1600-h/wds-2.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuyJoiL09sIYpuSFTqWAJuy9RmQeazlSRASkJBmsJ93Jbrx6zqgWTXS5904cNhqdofjKkOfP8QSoZ94r728SDxsf6K4I9YGthyKRT4XTK63woLceOW-nNxVmBaR3RoLnrYE0vjytOUkY9Q/s400/wds-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838724388070162" border="0" /></a><br />Wireless Distribution System Status<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNWtpfh-F2Jb0KZI34nb361U-EATNnNHDfXVFPKAbsJiF0CoGgIXH_baKEVCajy2JuyQqL1kQMpQ7tgzOoPPzTwaHdfggMpkHcQsXD9I66EfsrCKpuT43gGXUKtB463i7np7W1Lh5u4aP/s1600-h/Clipboard10.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPNWtpfh-F2Jb0KZI34nb361U-EATNnNHDfXVFPKAbsJiF0CoGgIXH_baKEVCajy2JuyQqL1kQMpQ7tgzOoPPzTwaHdfggMpkHcQsXD9I66EfsrCKpuT43gGXUKtB463i7np7W1Lh5u4aP/s400/Clipboard10.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838390674672434" border="0" /></a><br />VMWARE control panel<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaei5GVR1wV3yCN6kNNEMmg5MK7gWHSxElH_fE4jKSgDS7EpmOp66qSjnPmHksguTX-3vQFDIX1jIkgYE68x9k_cN09ZURG7de9IZYtIJx08CfMgrMSbWeOQ15kxazDHtOI0XEHoRDavHM/s1600-h/vmware.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaei5GVR1wV3yCN6kNNEMmg5MK7gWHSxElH_fE4jKSgDS7EpmOp66qSjnPmHksguTX-3vQFDIX1jIkgYE68x9k_cN09ZURG7de9IZYtIJx08CfMgrMSbWeOQ15kxazDHtOI0XEHoRDavHM/s400/vmware.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838381390401074" border="0" /></a><br />Running tcpdump on VMWARE<br /><br /><br /><br />Host PC : Windows XP pro with 2 NIC<br />VMWARE : Redhat Linux EL5 Console Edition running MamakSpot V2<br />Gateway Server : 192.168.1.1 ( router modem )<br />VMWARE MAMAKSPOT ; 192.168.1.2, 10.0.0.1<br />Linksys AP 1 : 10.0.0.254<br />Linksys AP 2 : 10.0.0.253<br />Client PC : DHCP<br />DNS Server : Public Open DNS Server<br /><br />Planned<br />1. Squid cache server running on transparent networkAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-54338707125708765462008-11-14T08:43:00.004+08:002008-11-14T09:04:21.038+08:00Writing blog engine @ Mamak stall<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9q_tkD418jEzVUPEMfg9eowjfYt1tuwfdIQMe6VO2oR3akLIkciwXto-qwfz9ACV1UrITmpQkC5vDA0qYAItNjjFJINlQiymZ9Uq5yJW117_vDcmaZRNGAz66aAufAk9aqMsTUkEpZUN/s1600-h/blog-3.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_9q_tkD418jEzVUPEMfg9eowjfYt1tuwfdIQMe6VO2oR3akLIkciwXto-qwfz9ACV1UrITmpQkC5vDA0qYAItNjjFJINlQiymZ9Uq5yJW117_vDcmaZRNGAz66aAufAk9aqMsTUkEpZUN/s400/blog-3.jpg" alt="" id="BLOGGER_PHOTO_ID_5268310838494032338" border="0" /></a><br />The controller<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6yPDwg5X4Av4LN7-JiugIAXKQXvpalZOTSo7NRkXh_XtvZmXmZ2CQVdOcNrNrYfBaHs53rMmxOrwLKKkNr0bl3NAfz0vKjHtGXFJtrVwHJLeCPJG2xJHhlDmb8YF595sueCTB4cmFma1b/s1600-h/blog-2.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6yPDwg5X4Av4LN7-JiugIAXKQXvpalZOTSo7NRkXh_XtvZmXmZ2CQVdOcNrNrYfBaHs53rMmxOrwLKKkNr0bl3NAfz0vKjHtGXFJtrVwHJLeCPJG2xJHhlDmb8YF595sueCTB4cmFma1b/s400/blog-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5268310825229624290" border="0" /></a><br />The add new post<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDyh9RXm4eCtgxxDQ7JeG4F-myuQyAKz5j0oZih2RiUgxXNbrxniYW2SXETsUqcppkBKoYBUi-XIbEEMXd7vz3ETVLinIDIIx0ojWDzx5MPqk5yKY4z1hJH7HQvBTbpZmlqfsgNmVgT4Fz/s1600-h/blog-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDyh9RXm4eCtgxxDQ7JeG4F-myuQyAKz5j0oZih2RiUgxXNbrxniYW2SXETsUqcppkBKoYBUi-XIbEEMXd7vz3ETVLinIDIIx0ojWDzx5MPqk5yKY4z1hJH7HQvBTbpZmlqfsgNmVgT4Fz/s400/blog-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5268310823382294306" border="0" /></a><br />The blog index<br /><br />I left the office at 5.30pm and arrive at my wife's office area arounf 6pm, then she informed me that she will be late. Luckily there's a mamak stall nearby. I ordered a Roti Telur and Teh Tarik ( typical Malaysian fast food ) and turn on my Laptop.<br /><br />Okay, to kill the time ahead of me, I'll will write a blog system for my Mamak Spot Wifi Controller. Fired up Firefox and pointed to PhpMyAdmin installed locally on my pc.<br /><br />So I create a blog_posts table consists of<br />1. id<br />2. title<br />3. body<br />4. created<br />5. modified<br /><br />Then I create my BlogPost model in /app/model as blog_post.php.<br /><br /><br /><br />Notice that I use $scaffold in the controller. Then I point to http://localhost/blog_posts and tadaaa, the basic CRUD interface is there. But I need to customize the index layout, so that it will bring a basic blog interface. So I have to create a folder inside /views as blog_posts and create a new file named index.ctp<br /><br /><br /><br />Save the file, refresh the browser. Tadaaa, a nice blog interface.<br /><br />The phone rang again, okay, time to pickup my wife and I manage to kill my 1 hour waiting by writing a simple blog complete with CRUD functions.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com1tag:blogger.com,1999:blog-2860685986538036066.post-49755730080512856672008-11-12T22:20:00.002+08:002008-11-12T22:21:33.855+08:00Usage report for each user<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEIPS3PhtTPlsu21wsNlgOUg673e7-ze8fFylNQx5arB4v6enc8qJuTn0wBYxKNaSBwrkO2Okxm3d5eoeoE9JmDcA-YiG_zbAIcLhwcTKdq4GKJLVNi2Lxfgw_DNMrxek78froftAqyrpe/s1600-h/usage.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEIPS3PhtTPlsu21wsNlgOUg673e7-ze8fFylNQx5arB4v6enc8qJuTn0wBYxKNaSBwrkO2Okxm3d5eoeoE9JmDcA-YiG_zbAIcLhwcTKdq4GKJLVNi2Lxfgw_DNMrxek78froftAqyrpe/s400/usage.jpg" alt="" id="BLOGGER_PHOTO_ID_5267775929827086850" border="0" /></a><br />At least you can know which user is heavy downloaderAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-5082278239895051212008-11-12T21:52:00.002+08:002008-11-12T21:57:07.825+08:00DD-WRT V24 SP2 Repeater ModeHost AP : Linksys WRT54GL running CoovaAP<br />Repeater AP : Linksys WRT54GL running DD-WRT V24 SP2<br /><br />I put the host AP in the kitchen and repeater AP in the main hall. The repeater AP actually repeat the Host's AP SSID and I can connect to the net with excellent strength.<br /><br />I think , I'll use repeater mode for easy deployment.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-83893164570644253092008-11-12T09:09:00.002+08:002008-11-12T09:11:35.608+08:00WDS vs Repeater vs Repeater Bridge<a href="http://www.dd-wrt.com/wiki/index.php/Repeating_Mode_Comparisons">http://www.dd-wrt.com/wiki/index.php/Repeating_Mode_Comparisons</a><br /><br />At home , I run 2 unit Linksys WRT54GL 1.1 with WDS mode between them. Have been running for months without switching off,and no visible performance drop at all.<br /><br />For low cost 'MESH', WDS is way to go. Repeater/RB will cost more 'resource' and you will have more control in WDS mode.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-71745357723438913182008-11-11T16:01:00.001+08:002008-11-11T16:04:07.888+08:00External Radius test with PDRNETMe and Azmi Hamzah did a simple eternal radius test. He used his Pfsense box to test radius auth over my radius server at home connected by Streamyx broadband. It works !Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-8824412130190622682008-11-10T15:37:00.004+08:002008-11-10T16:20:27.756+08:00ICT Funds Needed !This development costs time and money. Luckily, I am the only one who develops this so, become a Jack Of All Trades is not good for your health.<br /><br />To built Mamakspot in full scale, you'll need<br /><br />1. PHP Programmer ( CakePHP 1.2 knowledge )<br />2. Database Administrator ( MySQL )<br />3. Radius Engineer ( Free Radius )<br />4. UI engineer ( Ajax,Javascript )<br />5. Web Designer ( Web 2.0, CSS,HTML )<br />6. Linux System Admin ( LAMP Deployment , Firewall)<br />7. Network Engineer ( LAN,WAN )<br />8. Wifi Network Engineer ( Mesh,WDS,Firmware,Network )<br />9. Security Engineer ( Web App Security, DDOS,Server Patches, Firewall )<br />10. Technical Writer ( documentation,manual, proposals )<br />11. Web Marketing ( SEO,PPC,Keyword )<br />12. Sales ( the most important job, selling the product )<br />13. Support Engineer ( Installer, Troubleshooting, Helpdesk )<br />14. Project Manager & Technical Lead ( the roadmap for future version )<br /><br />Ok, now I can create 15 jobs including me, each of them will cost me RM5k per month.<br /><br />So, goverment...please help me :)Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com2tag:blogger.com,1999:blog-2860685986538036066.post-18813105886387770572008-11-10T11:06:00.000+08:002008-11-10T11:07:20.976+08:00CoovaAP and FreeradiusI have the same problem by the user mentioned here -> <a href="http://coova.org/phpBB3/viewtopic.php?f=3&t=393">http://coova.org/phpBB3/viewtopic.php?f=3&t=393</a>Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-4579356598702850472008-11-09T20:15:00.002+08:002008-11-09T20:19:14.538+08:00Connect Status<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSgQaVcXe1szp2GxgWdcwI-0Lq5RJdoH2gj91i7dtKFxktbi_Y7GTej-CD0OwBsMzq-cMFWXmGMkJLjEMZAfpegT0iwBDR-ZMzrkrOhhjVLNXDKABuQ0-xPeLTP09sIwwwDPSa_qIqgSxs/s1600-h/connect-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSgQaVcXe1szp2GxgWdcwI-0Lq5RJdoH2gj91i7dtKFxktbi_Y7GTej-CD0OwBsMzq-cMFWXmGMkJLjEMZAfpegT0iwBDR-ZMzrkrOhhjVLNXDKABuQ0-xPeLTP09sIwwwDPSa_qIqgSxs/s400/connect-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5266631232724088386" border="0" /></a><br /><br />To present a simple status after user connected to the net, the coding in the bakground is not easy. I have to talk with 2 databases ( radius and mamakspot ) and user 5 tables.<br /><br />User can see their current status like<br />1. total bandwidth used<br />2. time to expire<br />3. minutes assigned ( prepaid )<br />4. minutes left ( prepaid )<br />5. total time used<br /><br />The default Coova JSON interface also used in the status page. Here the screenshotAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-32240042034768593262008-11-09T03:58:00.003+08:002008-11-10T11:18:49.326+08:00NAS Box Controller<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYylCfneNtpQGs_E5ySqb_aXioH051n6jZv2Nu4Agy1lxbMFIy-Sk-FfrC58_XTriehI4cdCBUPD2D2X7wDShUHQDaOBz8JyL1d-3pfTh_0cea8sj7FqwPLPRe1PJVLEF7L_sTkMcrnTd7/s1600-h/nas-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYylCfneNtpQGs_E5ySqb_aXioH051n6jZv2Nu4Agy1lxbMFIy-Sk-FfrC58_XTriehI4cdCBUPD2D2X7wDShUHQDaOBz8JyL1d-3pfTh_0cea8sj7FqwPLPRe1PJVLEF7L_sTkMcrnTd7/s400/nas-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5266379378499650354" border="0" /></a><br />Nas table structure in MySQL<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihkj8rSuOxwFpdPzu2VKm1seZEry44vcWyuk__uJcy51hHuSOHYcP_AsatK7jn_n3aZUiCm4yJRLnaBnMxteE9x-0GAH3RXWvj4zBaXq_51rh6hwhvMun3QDcVWPw2d5kVzhbTss5aOlw_/s1600-h/nas.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihkj8rSuOxwFpdPzu2VKm1seZEry44vcWyuk__uJcy51hHuSOHYcP_AsatK7jn_n3aZUiCm4yJRLnaBnMxteE9x-0GAH3RXWvj4zBaXq_51rh6hwhvMun3QDcVWPw2d5kVzhbTss5aOlw_/s400/nas.jpg" alt="" id="BLOGGER_PHOTO_ID_5266379374488898290" border="0" /></a><br />Nas Controller in mamakspot<br /><br /><br />Using CakePHP scaffolding magic, I write this simple application to manage my NAS box. Quite handy if you want to add/remove wifi AP. Perhaps in the future I'll add the longtitude/lattitude column and I can track all the NAS using Google Map<br /><br />This features can be extended<br />1. Have a nas_profile table for each nas inserted here<br />2. lattitude & longitude for the nas box<br />3. built a page showing history of user connected to particular nas<br />4. Google map widget to show the nas location in the countryAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com1tag:blogger.com,1999:blog-2860685986538036066.post-51803764370842291202008-11-09T03:57:00.003+08:002008-11-09T03:58:39.417+08:00Usage Report per User<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpDcbXVKFJuMLtWEh2kNpJdkTSQqJioYj6dPlUEnt_6Cms4ks2gHuP8KAYnSeZkhyphenhyphenLuVcIJyCbAGQ_C28vV-zPpFL1ohIF9TIVrZ0fF40nw40eb5USMwWMHPSfATl9NMi67S-_sPqpvQ6y/s1600-h/usage-report-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpDcbXVKFJuMLtWEh2kNpJdkTSQqJioYj6dPlUEnt_6Cms4ks2gHuP8KAYnSeZkhyphenhyphenLuVcIJyCbAGQ_C28vV-zPpFL1ohIF9TIVrZ0fF40nw40eb5USMwWMHPSfATl9NMi67S-_sPqpvQ6y/s400/usage-report-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5266378409275382530" border="0" /></a><br /><br />Now I can track every user's usage and DENY access if their usage way too highAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-15977049316839069592008-11-08T20:31:00.002+08:002008-11-08T20:33:52.857+08:00Bug Squashing DayBugs<br />1.Each user will have multiple radacct sessions but in admin panel, it only show one.Seems like CakePHP model relation not working, so I use RequestAction to get lists of radacct sessions using username.<br /><br />2. WISPr doesn't accept integer like 512.2222, so I have use php function round()Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-89366599169960262872008-11-07T13:40:00.002+08:002008-11-07T13:50:41.782+08:00How do I solve dynamic ip NAS in Freeradius ?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE1SvnuoRJfFb5HqhP-qMkIgF_mVcDHh0D6rMeqd5FdPrJIMwBp0uTVUw5_F7ng9rrx4nHbFnCJbooPQVb-49kFAUraMrt0bQKAFAM__ZzZe3FWux8Cb89_XWnCc3AXV4XzYb-UdLavzHo/s1600-h/nas-2.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE1SvnuoRJfFb5HqhP-qMkIgF_mVcDHh0D6rMeqd5FdPrJIMwBp0uTVUw5_F7ng9rrx4nHbFnCJbooPQVb-49kFAUraMrt0bQKAFAM__ZzZe3FWux8Cb89_XWnCc3AXV4XzYb-UdLavzHo/s400/nas-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5265788779928213570" border="0" /></a><br />Free radius reloading, new setting and reading NAS information for Radius.nas table<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjl_h9wnlRVV1cYVzMQn3YyMfQS_FFBgUPCJkBtVyTTjBFQ1FZPRNpvNso0VXanmU3MNGJWiSgdNrEwYOhWTxPOYAYErvitOx1mOp1WNyQv6yERvCZCVBMEjWGJJ5quBmZcN9hNof4Kofz/s1600-h/nas-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjl_h9wnlRVV1cYVzMQn3YyMfQS_FFBgUPCJkBtVyTTjBFQ1FZPRNpvNso0VXanmU3MNGJWiSgdNrEwYOhWTxPOYAYErvitOx1mOp1WNyQv6yERvCZCVBMEjWGJJ5quBmZcN9hNof4Kofz/s400/nas-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5265788778216734466" border="0" /></a><br />The NAS table in MySQL<br /><br />Traditionally, we will use clients.conf for NAS lists control. But what if, your NAS is using dynamic ip address ?<br /><br />Imagine the scenario<br /><br />1. You Radius server hosted in datacenter at radius.yourdomain.com<br />2. You have 100 of wireless AP that scattered around the country.<br />3.Each time the AP dies, ISP will provide them with dynamic IP<br />4. How to tell radius, each AP new ip address so that users connected to the Ap can authenticate with radius server ?<br /><br />Solution<br />1. Use Nas MySQL option, turn on readclients = yes in sql.conf<br />2. Write a simple cron job to update NAS IP every 10 minutes<br />3. Use http $_GET to retrieve nas informations in the radius server and update the mysql.Each nas will have different nas-secret.<br />4. Set the radius server to reread configuration when there's in update on nas table.<br />5. Problem solvedAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com2tag:blogger.com,1999:blog-2860685986538036066.post-83996991873730697182008-11-07T09:40:00.003+08:002008-11-07T09:43:48.335+08:00Radius @ Work<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBTYzDoHNxxEGUIYcyTIEvruGSfb3QndhQ6C7ybDn-aw4JvmPqE-jnW-IXPtoOT465PeT4YS2oBVPJHkuLZYWPuRHOOGTMSsT8x3P8XicEsJX0wedzc_z5s49d51QZpmXI00cAX2kRhMv9/s1600-h/Screenshot.png"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBTYzDoHNxxEGUIYcyTIEvruGSfb3QndhQ6C7ybDn-aw4JvmPqE-jnW-IXPtoOT465PeT4YS2oBVPJHkuLZYWPuRHOOGTMSsT8x3P8XicEsJX0wedzc_z5s49d51QZpmXI00cAX2kRhMv9/s400/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5265725316742355442" border="0" /></a><br />Fired up Ubuntu mahchine and tried to do simple radtest check over my radius server at home from my office.<br /><br />In my home's firewall, I've set all these credentials<br /><br />ALLOW 1812 TCP DEST 192.168.1.5<br /><br />ALLOW 1813 TCP DEST 192.168.1.5<br /><br />ALLOW 1814 TCP DEST 192.168.1.5<br /><br />But it failed. Maybe I should use UDP instead of TCP.<br /><br />Here is some screenshotsAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-71131572227228083902008-11-06T18:12:00.002+08:002008-11-06T18:14:11.690+08:00Ajax Updated<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DaqxI8VDlb55o3oAp4_oF6ussrwZVYNliPbBrX-DU73dKFdzzvY2Yac-sWr0p8mK8zC44Z4nyKXaVyE7A38aATyz_sSXeM5DbDx_eAGnzXvJbu4v5sYC-BWQwRpJZ_3I6FwyK3_VYKti/s1600-h/ajax-updated.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7DaqxI8VDlb55o3oAp4_oF6ussrwZVYNliPbBrX-DU73dKFdzzvY2Yac-sWr0p8mK8zC44Z4nyKXaVyE7A38aATyz_sSXeM5DbDx_eAGnzXvJbu4v5sYC-BWQwRpJZ_3I6FwyK3_VYKti/s400/ajax-updated.jpg" alt="" id="BLOGGER_PHOTO_ID_5265485598063306802" border="0" /></a><br />If admin set the time expiration, and choose date, the Ajax will auto calculate the date in readble format.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-370116805503768652008-11-06T13:37:00.002+08:002008-11-06T13:40:16.962+08:00White Russian: Coova AP flashed into my Linksys WRT54GL<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ZK_5MsXf1rVYNGw1kypHliaz1bhhUI_T5wjCYGvAAqF6laAuYbS5_i4-O-eZTRzGN3c7TeqZ_fKrkNIFyPwDzrWNSBgDNzq8CCDt5Jl51kgIjImMd2qabyVMRP6G_otlertxrt068zBh/s1600-h/coovaap-2.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ZK_5MsXf1rVYNGw1kypHliaz1bhhUI_T5wjCYGvAAqF6laAuYbS5_i4-O-eZTRzGN3c7TeqZ_fKrkNIFyPwDzrWNSBgDNzq8CCDt5Jl51kgIjImMd2qabyVMRP6G_otlertxrt068zBh/s400/coovaap-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5265415040068989378" border="0" /></a><br />The info page<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1fqovJZdUeXeO8k5-QpOWmYoaqpxr_T_vr72QEaMH466s-XXHQViCappu4FhKcNZAYGkEa0AG2sI76SmU1cEGN7IV4bQp-b3HGdmnZChMt6KF2HZ_z8wPEdimEHpTX1liqpXRrM1tprPI/s1600-h/coovaap-1.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1fqovJZdUeXeO8k5-QpOWmYoaqpxr_T_vr72QEaMH466s-XXHQViCappu4FhKcNZAYGkEa0AG2sI76SmU1cEGN7IV4bQp-b3HGdmnZChMt6KF2HZ_z8wPEdimEHpTX1liqpXRrM1tprPI/s400/coovaap-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5265415040135838146" border="0" /></a><br />First time boot<br /><br />Downloaded the image file, 2.5MB from <a href="http://www.coova.org/">Coova.org</a><br /><br />Upload the bin file into Linksys original firmware -> upgrade firmware<br /><br />Took 5 minutes to upgrade<br /><br />Turn off the AP for 1-2 minutes<br /><br />Turn on back and Coova AP already in actionAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-91459156645809536622008-11-06T12:57:00.002+08:002008-11-06T13:01:28.533+08:00A little bit of Ajax<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmlttWAA0qoyCzSL0s2gv9AlruFnN7CLZ5j16wdg18_nAE3alW2YxfHZFvgM3w5gmKJoBec2W-V68UqIPhYWINtGXc4frwILfWv1G2TYyvI0cStM3QbsnJVfodniXJnol0tyl5zYCcd2su/s1600-h/ajax.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmlttWAA0qoyCzSL0s2gv9AlruFnN7CLZ5j16wdg18_nAE3alW2YxfHZFvgM3w5gmKJoBec2W-V68UqIPhYWINtGXc4frwILfWv1G2TYyvI0cStM3QbsnJVfodniXJnol0tyl5zYCcd2su/s400/ajax.jpg" alt="" id="BLOGGER_PHOTO_ID_5265405163946035554" border="0" /></a><br /><br />I've tested Meraki Hotspot controle panel yesterday and they used Ajax slider to set the user upload and download bandwidth speed. Quite a handy function.<br /><br />Since I'm using CakePHP 1.2 and Prototype Ajax already built in, I've changed the form interface. See the screenshot.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-69071350505957816212008-11-06T07:58:00.002+08:002008-11-06T07:59:12.753+08:00Planning to flash my firmware to Coova API've been fan of DDWRT for a long time, but now it is time to embrace the new world<br /><br /><a href="http://coova.org/wiki/index.php/CoovaAP/InstallFAQ">http://coova.org/wiki/index.php/CoovaAP/InstallFAQ</a>Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-1471463638659973592008-11-06T00:59:00.003+08:002008-11-06T01:16:04.108+08:00Registered Users Access Module<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXf5au-UxTlrz3fJqhbB2yJnjV4XLQ0GU-qFHW_BWFZV1tHTcq21ZvryO7Yt16hD1RDYAPuYhcJx3o06CfJM2ts5EoWtu53DFId8nHwjUugY901z3t0Oo0tArZGxXnsJWV_4ldWxWkYPo2/s1600-h/Clipboard03.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXf5au-UxTlrz3fJqhbB2yJnjV4XLQ0GU-qFHW_BWFZV1tHTcq21ZvryO7Yt16hD1RDYAPuYhcJx3o06CfJM2ts5EoWtu53DFId8nHwjUugY901z3t0Oo0tArZGxXnsJWV_4ldWxWkYPo2/s400/Clipboard03.jpg" alt="" id="BLOGGER_PHOTO_ID_5265222212924907730" border="0" /></a><br />Granted user can see his Internet Access Code. Simply copy and paste the code<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6n7iQy_K-iT4I_7rPocwZoAjEf3cSkaI0NYedParKhZr5ssYSPrmwrfEm5tZ999jtbJuFdRYvw-EdB05axVKmdvU99gSGKSJbHHcy29eNZ_FfbvpXfCjbjAcY25h5ntF8UhGq8rNzLs2-/s1600-h/Clipboard01.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6n7iQy_K-iT4I_7rPocwZoAjEf3cSkaI0NYedParKhZr5ssYSPrmwrfEm5tZ999jtbJuFdRYvw-EdB05axVKmdvU99gSGKSJbHHcy29eNZ_FfbvpXfCjbjAcY25h5ntF8UhGq8rNzLs2-/s400/Clipboard01.jpg" alt="" id="BLOGGER_PHOTO_ID_5265222207031203170" border="0" /></a><br />The login form<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvfjtKx6YWxCPV1KARipNp8fmZUcpBYs18WZ_G3zHRtGWDtOQAB3oYPIX3wJX8vxqLx3-1n1FRPQFddAKCKHStYM1Pn94mqg3KPpWmQRQGwH0ElRRQOyfJYsyOZNsVZJx1bH9hvzZCVPT/s1600-h/Clipboard04.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwvfjtKx6YWxCPV1KARipNp8fmZUcpBYs18WZ_G3zHRtGWDtOQAB3oYPIX3wJX8vxqLx3-1n1FRPQFddAKCKHStYM1Pn94mqg3KPpWmQRQGwH0ElRRQOyfJYsyOZNsVZJx1bH9hvzZCVPT/s400/Clipboard04.jpg" alt="" id="BLOGGER_PHOTO_ID_5265222201748419394" border="0" /></a><br />Registered users. admin can grant selected users<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAdDPRhBvTc75V28X_SD9HIUkwWI-SSNguNQX0WiEu_MfjAmxqU5JrUN-grIyMk-oBbpwiFcHschBwT1Nq7nV-h4Jor-52aeCT0sIOvRBQ1M7Kuw0e0DLnmpJsmamd372WZyzST0oIDYEA/s1600-h/Clipboard08.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAdDPRhBvTc75V28X_SD9HIUkwWI-SSNguNQX0WiEu_MfjAmxqU5JrUN-grIyMk-oBbpwiFcHschBwT1Nq7nV-h4Jor-52aeCT0sIOvRBQ1M7Kuw0e0DLnmpJsmamd372WZyzST0oIDYEA/s400/Clipboard08.jpg" alt="" id="BLOGGER_PHOTO_ID_5265222200802252498" border="0" /></a><br />Grant the user for internet use<br />- can set expiration time<br />- can set max upload speed<br />- can set max download speed<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigQdKurhqp1NBVhdRxD68lt2iI-CbnXvx_bCN_ezTWMP3kyPhRQdqolSOHR2JPQkFRV14T5ObOHqJXzLbLclhUZRBG3TMKkuddyvigvJtsGZsALRrSRhDhw0w9DPUhg5CZIkyhomx_2Af4/s1600-h/Clipboard09.jpg"><img style="cursor: pointer; width: 400px; height: 250px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigQdKurhqp1NBVhdRxD68lt2iI-CbnXvx_bCN_ezTWMP3kyPhRQdqolSOHR2JPQkFRV14T5ObOHqJXzLbLclhUZRBG3TMKkuddyvigvJtsGZsALRrSRhDhw0w9DPUhg5CZIkyhomx_2Af4/s400/Clipboard09.jpg" alt="" id="BLOGGER_PHOTO_ID_5265222192334315362" border="0" /></a><br />Admin can see connected users Internet Session<br /><br /><br />12.59am, spent almost 6 hours finishing the XS Module for registered users.<br /><br />here are the screenshotsAzril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0tag:blogger.com,1999:blog-2860685986538036066.post-44462771902304692172008-11-05T13:47:00.004+08:002008-11-05T13:53:37.537+08:00Planning for MamakSpot FreeWifi With AdWISPr-Redirection-URL := "<a class="url" href="http://www.google.com/">http://10.0.0.1/advertisements</a>"<br /> Idle-Timeout := 600<br /> Session-Timeout = 3600<br /><br />I'm planning to do simple test where user can user my free wifi service, no subscriptions, no prepaid, simple press Connect Button and off you go.<br /><br />Well , there's a catch. Every 600 secs or 5 minutes, they will be redirected to my own Advertisement page where I can simply run<br /><br />1. Advertisement engine , to force free wifi user see the latest ad<br />2. Google Adsense Pay Per Click<br />3. Ad Rotating banner displaying products of my Advertisement clients<br /><br />And use a javascript to show CONTINUE button after the user see the Ad for 10 secs<br />So, no body lose<br /><br />I can get money from running ads, and my users can surf the net for free.Azril Nazli Aliashttp://www.blogger.com/profile/07257188874193060703noreply@blogger.com0