{"id":505,"date":"2006-10-02T17:33:56","date_gmt":"2006-10-02T15:33:56","guid":{"rendered":"http:\/\/www.multiplicity.dk\/?p=494"},"modified":"2006-10-02T17:33:56","modified_gmt":"2006-10-02T15:33:56","slug":"chillispot-howto","status":"publish","type":"post","link":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/","title":{"rendered":"Chillispot Howto"},"content":{"rendered":"

I wrote this howto on setting up a hotspot system on ubuntu with user authentication about a year ago, but the site that hosted it seems to have gone down.<\/p>\n

Here’s the original link:<\/p>\n

http:\/\/140.105.28.77:3455\/1\/62<\/a><\/p>\n

And here’s the text as stolen from google cache (please excuse the horrible formatting):<\/p>\n

Goal<\/strong><\/p>\n


\nThe goal is to setup a gateway that will force users to login (via a captive portal web-page). Once setup the machine will have 2 network interfaces (we will use eth0 and eth1 in this example). One interface is connected to the internet (eth0) the other is an internal interface through which we connect our other machines (eth1) this could be a ethernet port with a switch to which we attach a number of other machines or wireless Access Points (layer 2 transparent bridges), or it could be a wireless interface, automatically turning the gateway i nto an access point.<\/p>\n

The proccess<\/strong>
\nChillispot takes control of the internal interface (eth1) using a vtun kernel module to bring up a virtual interface (tun0). In fact thr vtun kernel module is used to move IP packets from the kernel to user mode, in such a way that chillispot can function without any non-standard kernel modules. Chillispot then sets up a DHCP server (this can be disabled from the chillispot conf file) on the tun0 interface.<\/p>\n

A client connecting to this interface has all packets rejected until it is authorized though the chillispot login page (acting as a supplicant for authentication). When a non-authenticated client tries to connect to a web-page (on port 80 or 443) the request is intercepted by chilli and redirected to a perl-script called hotspotlogin.cgi (served by apache over https).<\/p>\n

hotspotlogin.cgi serves a page to the end-user with a username and password field. These authentication data are then forwarded to the freeradius server, which matches them with information in it’s backend (using either PAP or CHAP). The backend in this case is mysql, but could be any number of services such as LDAP, Kerberos, unix passwd files or even Active Directory (probably).<\/p>\n

A user is then either rejected or authenticated by freeradius, prompting hotspotlogin.cgi to present either a rejection message or a page with a success message and a logout link to the user.<\/p>\n

Hardware Requirements<\/strong>
\nAny PC with 2 network interfaces should work.<\/p>\n

Software Installation<\/strong>
\nFor this howto we start with an installation of Ubuntu Linux. We’ve used the Hoary release of ubuntu, but this should work equally well with other versions of ubuntu, and with other Gnu\/Linux distributions such as Fedora Core, Mandriva etc.<\/p>\n

This has been tested with both server and desktop installs of ubuntu. The base installation is beyond the scope of this document, but the Ubuntu Website has plenty of documentation on installing ubuntu from scratch.<\/p>\n

Once ubuntu is installed, we need to install som extra packages that are not installed by default. If you do not know how to install software under ubuntu read this before proceeding, or if you’re familiar with the linux command-line read the manpage for the apt-get command. This is a Howto on adding the Universe repository to your ubuntu installation, which is required for some of the packages that need to be installed.<\/p>\n

You need to install the following extra packages (and their dependencies) via synaptic or the apt-get command before proceeding. some of these may not be necessary, or may be installed already by default. Please update this page if you have further information.:<\/p>\n

* mysql-server
\n* apache2
\n* freeradius
\n* freeradius-mysql<\/p>\n

Finally you need to get the [ http:\/\/chillispot.org\/download.html chillispot package] (which is not in the ubuntu repositories) from the Chillispot webpage.<\/p>\n

Once you have downloaded that file, open a terminal, go to the directory it was downloaded to and type:<\/p>\n

$ sudo dpkg -i chillispot_1.0RC3-1_i386.deb<\/p>\n

This should install the last piece of required software.<\/p>\n

Configuring Apache2 for SSL<\/strong>
\nFor security reasons we want to present the login page only via an encrypted (https) onnection, so we need to configure apache2 to serve SSL encrypted pages.<\/p>\n

There is a HowTo on configuring apache2 for SSL on the Ubuntu Forums. NOTE! most of the commands in the howto require root privileges and should be preceeded by the sudo command. Please follow the above howto before proceeding.<\/p>\n

Finally copy the chillispot cgi script to the default apache2 cgi-bin directory:<\/p>\n

$ sudo cp \/usr\/share\/doc\/chillispot\/hotspotlogin.cgi \/usr\/lib\/cgi-bin\/
\n$ sudo chmod +x \/usr\/lib\/cgi-bin\/hotspotlogin.cgi<\/p>\n

Configuring<\/strong><\/p>\n

Most of the following sections were manhandled from the install instrucions in the Release notes instructions for Debian Sarge (and parts of the Fedora Core instructions). All mistakes are MY fault, and not the errors of the original authors \ud83d\ude09<\/p>\n

Network and Firewall Setup<\/strong>
\nWe are assuming 2 network interfaces,<\/p>\n

* eth0 is connected to the internet and should be configured for this purpose (use ifconfig, \/etc\/network\/interfaces, or the graphical network configuration tool under System->Administration->Networking).
\n* eth1 is the interface that other computers should connect to. This interface should not be configured, but should be brought up.<\/p>\n

$ sudo ifconfig eth1 up<\/p>\n

or if it’s been previously configured use:<\/p>\n

$ sudo ifconfig 0.0.0.0 up<\/p>\n

In order to enable packet forwarding you should change the following line in \/etc\/network\/options:<\/p>\n

ip_forward=yes<\/p>\n

Then you have to restart networking:<\/p>\n

$ sudo \/etc\/init.d\/network restart<\/p>\n

In order to enable firewall and NAT you can use the firewall script in “\/usr\/share\/doc\/chillispot\/firewall.iptables” as a starting point. After you have reviewed the firewall rules you execute the script by issuing the command:<\/p>\n

$ sudo sh \/usr\/share\/doc\/chillispot\/firewall.iptables<\/p>\n

The firewall script needs to be executed every time the computer is restarted. One way to make sure this happens is to copy the file to \/etc\/init.d\/<\/p>\n

$ sudo cp \/usr\/share\/doc\/chillispot\/firewall.iptables \/etc\/init.d\/chili.iptables
\n$ sudo chmod u+x \/etc\/init.d\/chilli.iptables
\n$ ln -s \/etc\/init.d\/chilli.iptables \/etc\/rcS.d\/S40chilli.iptables<\/p>\n

Configuring the chillispot conf file<\/p>\n

You need to tell Chilli about the location of the authentication server (which in this scenario is on the same machine as chillispot). This is done by uncommenting and editing the following line in “\/etc\/chilli.conf”:<\/p>\n

uamserver https:\/\/192.168.182.1\/cgi-bin\/hotspotlogin.cgi<\/p>\n

192.168.182.1 is the default IP address that chillispot gives the tun0 interface. For added password security, we need to add a shared secret between the hotspotlogin.cgi and chilli. Find the line in “\/etc\/chilli.conf” that reads<\/p>\n

#uamsecret ht2eb8ej6s4et3rg1ulp<\/p>\n

Uncomment this line (remove the #) and CHANGE the secret to something equally weird but different. Remember the secret as it needs to also go into the hotspotlogin.cgi script (we will do this later).
\nSince we are also running the radius server (freeradius) on the same machine, we need to find and edit the lines that point to the radius server in “\/etc\/chilli.conf”. They should read:<\/p>\n

radiusserver1 127.0.0.1
\nradiusserver2 127.0.0.1<\/p>\n

You should also change the line in “\/etc\/chilli.conf” that starts radiussecret, so that it does not use the default secret to encrypt traffic between chilli and radius.<\/p>\n

radiussecret somethingReallyDifficultToGuess<\/p>\n

Remember this secret, as it needs to be added to the freeradius configuration files as well.<\/p>\n

Configuring freeradius<\/strong>
\nThe freeradius configuration files are all in the \/etc\/freeradius\/ directory. To start with, and for testing purposes, we will use the “\/etc\/freeradius\/users” text file, to enable a single test user (steve). Later we can change the configuration to use mysql for storing usernames and passwords, but first we want to make sure that the whole thing works in the simplest possible setup.<\/p>\n

Edit “\/etc\/freeradius\/clients.conf”.
\nFind the section that contains the line<\/p>\n

client 127.0.0.1 {<\/p>\n

make sure it is uncommented, and then, in the section between the { and the following }, change the following lines:<\/p>\n

secret = testing123<\/p>\n

change testing123 to match the radiussecret you chose for “\/etc\/chilli.conf” (somethingReallyDifficultToGuess)<\/p>\n

Edit “\/etc\/freeradius\/users”
\nUncomment the following line in the file<\/p>\n

#steve Auth-Type := Local, User-Password == “testing”<\/p>\n

This will be the test user and password we will use to make sure everything works.<\/p>\n

Customizing hotspotlogin script
\nTo improve password security, we need to add the “uamsecret” from “\/etc\/chilli.conf” to the hotspotlogin script. Edit “\/usr\/lib\/cgi-bin\/hotspotlogin.cgi”.
\nFind the line that reads:<\/p>\n

#$uamsecret = “ht2eb8ej6s4et3rg1ulp”;<\/p>\n

Uncomment this line and edit the secret to match the one in “\/etc\/chilli.conf” (The uamsecret, NOT the radiussecret).<\/p>\n

Also uncomment the line that reads:<\/p>\n

#$userpassword=1;<\/p>\n

Now, just to be sure all these changes have taken effec, restart apache2, freeradius and chilli<\/p>\n

$ \/etc\/init.d\/apache2 force-reload
\n$ \/etc\/init.d\/freeradius restart
\n$ \/etc\/init.d\/chilli restart<\/p>\n

Using chillispot<\/strong>
\nYou should now have a simple authentication server that allows a computer to log in and gain access to the network. Plug a computer into the eth1 interface on the chillispot machine, either via a switch or hub, or using a crossover utp cable (or by plugging a transparent bridge wireless access point into the eth1 interface). We will call this machine the “client” machine.<\/p>\n

On the client machine, bring up the network interface with DHCP. Chillispot should give you an ip address in the 192.168.182.0\/24 network.<\/p>\n

Open your browser, and try to go to any webpage like google.com<\/p>\n

You should be redirected to a login page with a field for username and password. Log in using “steve” and “testing”, and you should get a message that says you have successfully logged in. You should now have full access to the internet until you click the logout link in the chillispot webpage.<\/p>\n","protected":false},"excerpt":{"rendered":"

I wrote this howto on setting up a hotspot system on ubuntu with user authentication about a year ago, but the site that hosted it seems to have gone down. Here’s the original link: http:\/\/140.105.28.77:3455\/1\/62 And here’s the text as stolen from google cache (please excuse the horrible formatting):<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[1,17],"tags":[],"yoast_head":"\nChillispot Howto • krag.be<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Chillispot Howto • krag.be\" \/>\n<meta property=\"og:description\" content=\"I wrote this howto on setting up a hotspot system on ubuntu with user authentication about a year ago, but the site that hosted it seems to have gone down. Here’s the original link: http:\/\/140.105.28.77:3455\/1\/62 And here’s the text as stolen from google cache (please excuse the horrible formatting):\" \/>\n<meta property=\"og:url\" content=\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/\" \/>\n<meta property=\"og:site_name\" content=\"krag.be\" \/>\n<meta property=\"article:published_time\" content=\"2006-10-02T15:33:56+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<meta name=\"twitter:creator\" content=\"@tkrag\" \/>\n<meta name=\"twitter:site\" content=\"@tkrag\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tomas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/krag.be\/#website\",\"url\":\"https:\/\/krag.be\/\",\"name\":\"krag.be\",\"description\":\"I am multiple and various - Tomas A. Krag\",\"publisher\":{\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/krag.be\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage\",\"url\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/\",\"name\":\"Chillispot Howto • krag.be\",\"isPartOf\":{\"@id\":\"https:\/\/krag.be\/#website\"},\"datePublished\":\"2006-10-02T15:33:56+00:00\",\"dateModified\":\"2006-10-02T15:33:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/krag.be\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chillispot Howto\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage\"},\"author\":{\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0\"},\"headline\":\"Chillispot Howto\",\"datePublished\":\"2006-10-02T15:33:56+00:00\",\"dateModified\":\"2006-10-02T15:33:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage\"},\"wordCount\":1605,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0\"},\"articleSection\":{\"1\":\"Wireless\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#respond\"]}]},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0\",\"name\":\"Tomas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c551b8d07191bf152b7a271de3489235?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c551b8d07191bf152b7a271de3489235?s=96&d=retro&r=g\",\"caption\":\"Tomas\"},\"logo\":{\"@id\":\"https:\/\/krag.be\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/linkedin.com\/in\/tkrag\",\"https:\/\/twitter.com\/tkrag\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Chillispot Howto • krag.be","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/","og_locale":"en_US","og_type":"article","og_title":"Chillispot Howto • krag.be","og_description":"I wrote this howto on setting up a hotspot system on ubuntu with user authentication about a year ago, but the site that hosted it seems to have gone down. Here’s the original link: http:\/\/140.105.28.77:3455\/1\/62 And here’s the text as stolen from google cache (please excuse the horrible formatting):","og_url":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/","og_site_name":"krag.be","article_published_time":"2006-10-02T15:33:56+00:00","twitter_card":"summary","twitter_creator":"@tkrag","twitter_site":"@tkrag","twitter_misc":{"Written by":"Tomas","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/krag.be\/#website","url":"https:\/\/krag.be\/","name":"krag.be","description":"I am multiple and various - Tomas A. Krag","publisher":{"@id":"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/krag.be\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage","url":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/","name":"Chillispot Howto • krag.be","isPartOf":{"@id":"https:\/\/krag.be\/#website"},"datePublished":"2006-10-02T15:33:56+00:00","dateModified":"2006-10-02T15:33:56+00:00","breadcrumb":{"@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/krag.be\/"},{"@type":"ListItem","position":2,"name":"Chillispot Howto"}]},{"@type":"Article","@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#article","isPartOf":{"@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage"},"author":{"@id":"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0"},"headline":"Chillispot Howto","datePublished":"2006-10-02T15:33:56+00:00","dateModified":"2006-10-02T15:33:56+00:00","mainEntityOfPage":{"@id":"https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#webpage"},"wordCount":1605,"commentCount":12,"publisher":{"@id":"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0"},"articleSection":{"1":"Wireless"},"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/krag.be\/index.php\/2006\/10\/02\/chillispot-howto\/#respond"]}]},{"@type":["Person","Organization"],"@id":"https:\/\/krag.be\/#\/schema\/person\/0a3bccef1d3b78b8f864bee3ed963db0","name":"Tomas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/krag.be\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c551b8d07191bf152b7a271de3489235?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c551b8d07191bf152b7a271de3489235?s=96&d=retro&r=g","caption":"Tomas"},"logo":{"@id":"https:\/\/krag.be\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/tkrag","https:\/\/twitter.com\/tkrag"]}]}},"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8poVB-89","jetpack-related-posts":[{"id":493,"url":"https:\/\/krag.be\/index.php\/2006\/03\/22\/the-security-challenge-of-open-wireless-networks\/","url_meta":{"origin":505,"position":0},"title":"The Security Challenge of Open Wireless Networks","date":"22\/03\/2006","format":false,"excerpt":"**Disclosure**: I am currently in the proccess of interviewing for a job with [Fon](http:\/\/fon.com\/) and this piece is largely a result of me spending time (for the first time in years) on the challenges of shared wireless in the rich countries of the west (rather than thinking mostly about the\u2026","rel":"","context":"In "ict4dev"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":429,"url":"https:\/\/krag.be\/index.php\/2004\/01\/09\/zero-config-wifi-gadget\/","url_meta":{"origin":505,"position":1},"title":"zero-config WiFi gadget","date":"09\/01\/2004","format":false,"excerpt":"When we do commercial WiFi installations in hotels, caf\u00e9s, or community housing projects, one of the main issues is how to provide client equipment that has little or no setup hassle. I mean, we are currently working on a WiFi setup for a business hotel\/apartmetn chain here in Copenhagen. They\u2026","rel":"","context":"In "Wireless"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":269,"url":"https:\/\/krag.be\/index.php\/2003\/02\/03\/the-voice-over-ip-argument\/","url_meta":{"origin":505,"position":2},"title":"The Voice over IP argument","date":"03\/02\/2003","format":false,"excerpt":"A common argument about delivering Internet to the developing world, is that given IP networks, VoIP is practically free. Blog.org attributes it to my friend Howard Rheingold: Howard Rheingold pointed out that depending on how you implement your IP network thanks to IP telephony you can get wireless telephony \"thrown\u2026","rel":"","context":"In "Wireless"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":353,"url":"https:\/\/krag.be\/index.php\/2003\/06\/06\/wifi-in-india\/","url_meta":{"origin":505,"position":3},"title":"WiFi in India","date":"06\/06\/2003","format":false,"excerpt":"The Digital Divide Network: Over 200 rural villages in India's Maharashtra state have formed a wireless Internet cooperative, establishing 50 wi-fi \"hotspots\" in their communities. The co-op has managed to raise more than $400,000 (RS20 million) to expand the reach of wireless Internet locally. Maharashtra is not alone, however; communities\u2026","rel":"","context":"In "ict4dev"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":272,"url":"https:\/\/krag.be\/index.php\/2003\/02\/05\/community-radio-vs-internet\/","url_meta":{"origin":505,"position":4},"title":"Community Radio vs. Internet","date":"05\/02\/2003","format":false,"excerpt":"Riptari refers to an article by Roberto Verzola, with a comparison of the cost benefit of community radio vs. internet access for the poor. While in general the article is spot-on when analysing the cost: The Internet: Considering the generally high cost for user and network server equipment, especially if\u2026","rel":"","context":"In "ict4dev"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":441,"url":"https:\/\/krag.be\/index.php\/2004\/02\/15\/emergingtech-writeup\/","url_meta":{"origin":505,"position":5},"title":"EmergingTech Writeup","date":"15\/02\/2004","format":false,"excerpt":"Offline and unable to sleep because of a really painful lower back, I spent my laptop battery writing up some notes from my experience at Emerging Tech. The advantage of doing it from that vantage point is probably a bit more reflection than in my previous entries. The disadvantages inclue\u2026","rel":"","context":"In "Mixed Bag"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/posts\/505"}],"collection":[{"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/comments?post=505"}],"version-history":[{"count":0,"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/posts\/505\/revisions"}],"wp:attachment":[{"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/media?parent=505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/categories?post=505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/krag.be\/index.php\/wp-json\/wp\/v2\/tags?post=505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}