- <title>The GNU General Public License is not magic pixie dust</title>
- <link>http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/The_GNU_General_Public_License_is_not_magic_pixie_dust.html</guid>
- <pubDate>Mon, 30 Nov 2015 09:55:00 +0100</pubDate>
- <description><p>A blog post from my fellow Debian developer Paul Wise titled
-"<a href="http://bonedaddy.net/pabs3/log/2015/11/27/sfc-supporter/">The
-GPL is not magic pixie dust</a>" explain the importance of making sure
-the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> is enforced.
-I quote the blog post from Paul in full here with his permission:<p>
-
-<blockquote>
-
-<p><a href="https://sfconservancy.org/supporter/"><img src="https://sfconservancy.org/img/supporter-badge.png" width="194" height="90" alt="Become a Software Freedom Conservancy Supporter!" align="right" border="0" /></a></p>
-
-<blockquote>
-The GPL is not magic pixie dust. It does not work by itself.<br/>
-
-The first step is to choose a
-<a href="https://copyleft.org/">copyleft</a> license for your
-code.<br/>
-
-The next step is, when someone fails to follow that copyleft license,
-<b>it must be enforced</b><br/>
-
-and its a simple fact of our modern society that such type of
-work<br/>
-
-is incredibly expensive to do and incredibly difficult to do.
-</blockquote>
-
-<p><small>-- <a href="http://ebb.org/bkuhn/">Bradley Kuhn</a>, in
-<a href="http://faif.us/" title="Free as in Freedom">FaiF</a>
-<a href="http://faif.us/cast/2015/nov/24/0x57/">episode
-0x57</a></small></p>
-
-<p>As the Debian Website
-<a href="https://bugs.debian.org/794116">used</a>
-<a href="https://anonscm.debian.org/viewvc/webwml/webwml/english/intro/free.wml?r1=1.24&amp;r2=1.25">to</a>
-imply, public domain and permissively licensed software can lead to
-the production of more proprietary software as people discover useful
-software, extend it and or incorporate it into their hardware or
-software products. Copyleft licenses such as the GNU GPL were created
-to close off this avenue to the production of proprietary software but
-such licenses are not enough. With the ongoing adoption of Free
-Software by individuals and groups, inevitably the community's
-expectations of license compliance are violated, usually out of
-ignorance of the way Free Software works, but not always. As Karen
-and Bradley explained in <a href="http://faif.us/" title="Free as in
-Freedom">FaiF</a>
-<a href="http://faif.us/cast/2015/nov/24/0x57/">episode 0x57</a>,
-copyleft is nothing if no-one is willing and able to stand up in court
-to protect it. The reality of today's world is that legal
-representation is expensive, difficult and time consuming. With
-<a href="http://gpl-violations.org/">gpl-violations.org</a> in hiatus
-<a href="http://gpl-violations.org/news/20151027-homepage-recovers/">until</a>
-some time in 2016, the <a href="https://sfconservancy.org/">Software
-Freedom Conservancy</a> (a tax-exempt charity) is the major defender
-of the Linux project, Debian and other groups against GPL violations.
-In March the SFC supported a
-<a href="https://sfconservancy.org/news/2015/mar/05/vmware-lawsuit/">lawsuit
-by Christoph Hellwig</a> against VMware for refusing to
-<a href="https://sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html">comply
-with the GPL</a> in relation to their use of parts of the Linux
-kernel. Since then two of their sponsors pulled corporate funding and
-conferences
-<a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">blocked
-or cancelled their talks</a>. As a result they have decided to rely
-less on corporate funding and more on the broad community of
-individuals who support Free Software and copyleft. So the SFC has
-<a href="https://sfconservancy.org/news/2015/nov/23/2015fundraiser/">launched</a>
-a <a href="https://sfconservancy.org/supporter/">campaign</a> to create
-a community of folks who stand up for copyleft and the GPL by
-supporting their work on promoting and supporting copyleft and Free
-Software.</p>
-
-<p>If you support Free Software,
-<a href="https://sfconservancy.org/blog/2015/nov/26/like-what-I-do/">like</a>
-what the SFC do, agree with their
-<a href="https://sfconservancy.org/linux-compliance/principles.html">compliance
-principles</a>, are happy about their
-<a href="https://sfconservancy.org/supporter/">successes</a> in 2015,
-work on a project that is an SFC
-<a href="https://sfconservancy.org/members/current/">member</a> and or
-just want to stand up for copyleft, please join
-<a href="https://identi.ca/cwebber/image/JQGPA4qbTyyp3-MY8QpvuA">Christopher
-Allan Webber</a>,
-<a href="https://sfconservancy.org/blog/2015/nov/24/faif-carols-fundraiser/">Carol
-Smith</a>,
-<a href="http://www.jonobacon.org/2015/11/25/supporting-software-freedom-conservancy/">Jono
-Bacon</a>, myself and
-<a href="https://sfconservancy.org/sponsors/#supporters">others</a> in
-becoming a
-<a href="https://sfconservancy.org/supporter/">supporter</a>. For the
-next week your donation will be
-<a href="https://sfconservancy.org/news/2015/nov/27/black-friday/">matched</a>
-by an anonymous donor. Please also consider asking your employer to
-match your donation or become a sponsor of SFC. Don't forget to
-spread the word about your support for SFC via email, your blog and or
-social media accounts.</p>
-
-</blockquote>
-
-<p>I agree with Paul on this topic and just signed up as a Supporter
-of Software Freedom Conservancy myself. Perhaps you should be a
-supporter too?</p>
+ <title>Where did that package go? &mdash; geolocated IP traceroute</title>
+ <link>http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html</link>
+ <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html</guid>
+ <pubDate>Mon, 9 Jan 2017 12:20:00 +0100</pubDate>
+ <description><p>Did you ever wonder where the web trafic really flow to reach the
+web servers, and who own the network equipment it is flowing through?
+It is possible to get a glimpse of this from using traceroute, but it
+is hard to find all the details. Many years ago, I wrote a system to
+map the Norwegian Internet (trying to figure out if our plans for a
+network game service would get low enough latency, and who we needed
+to talk to about setting up game servers close to the users. Back
+then I used traceroute output from many locations (I asked my friends
+to run a script and send me their traceroute output) to create the
+graph and the map. The output from traceroute typically look like
+this:
+
+<p><pre>
+traceroute to www.stortinget.no (85.88.67.10), 30 hops max, 60 byte packets
+ 1 uio-gw10.uio.no (129.240.202.1) 0.447 ms 0.486 ms 0.621 ms
+ 2 uio-gw8.uio.no (129.240.24.229) 0.467 ms 0.578 ms 0.675 ms
+ 3 oslo-gw1.uninett.no (128.39.65.17) 0.385 ms 0.373 ms 0.358 ms
+ 4 te3-1-2.br1.fn3.as2116.net (193.156.90.3) 1.174 ms 1.172 ms 1.153 ms
+ 5 he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.627 ms he16-1-1.cr2.oslosda310.as2116.net (195.0.244.48) 3.172 ms he16-1-1.cr1.san110.as2116.net (195.0.244.234) 2.857 ms
+ 6 ae1.ar8.oslosda310.as2116.net (195.0.242.39) 0.662 ms 0.637 ms ae0.ar8.oslosda310.as2116.net (195.0.242.23) 0.622 ms
+ 7 89.191.10.146 (89.191.10.146) 0.931 ms 0.917 ms 0.955 ms
+ 8 * * *
+ 9 * * *
+[...]
+</pre></p>
+
+<p>This show the DNS names and IP addresses of (at least some of the)
+network equipment involved in getting the data traffic from me to the
+www.stortinget.no server, and how long it took in milliseconds for a
+package to reach the equipment and return to me. Three packages are
+sent, and some times the packages do not follow the same path. This
+is shown for hop 5, where three different IP addresses replied to the
+traceroute request.</p>
+
+<p>There are many ways to measure trace routes. Other good traceroute
+implementations I use are traceroute (using ICMP packages) mtr (can do
+both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
+traceroute and a lot of other capabilities). All of them are easily
+available in <a href="https://www.debian.org/">Debian</a>.</p>
+
+<p>This time around, I wanted to know the geographic location of
+different route points, to visualize how visiting a web page spread
+information about the visit to a lot of servers around the globe. The
+background is that a web site today often will ask the browser to get
+from many servers the parts (for example HTML, JSON, fonts,
+JavaScript, CSS, video) required to display the content. This will
+leak information about the visit to those controlling these servers
+and anyone able to peek at the data traffic passing by (like your ISP,
+the ISPs backbone provider, FRA, GCHQ, NSA and others).</p>
+
+<p>Lets pick an example, the Norwegian parliament web site
+www.stortinget.no. It is read daily by all members of parliament and
+their staff, as well as political journalists, activits and many other
+citizens of Norway. A visit to the www.stortinget.no web site will
+ask your browser to contact 8 other servers: ajax.googleapis.com,
+insights.hotjar.com, script.hotjar.com, static.hotjar.com,
+stats.g.doubleclick.net, www.google-analytics.com,
+www.googletagmanager.com and www.netigate.se. I extracted this by
+asking <a href="http://phantomjs.org/">PhantomJS</a> to visit the
+Stortinget web page and tell me all the URLs PhantomJS downloaded to
+render the page (in HAR format using
+<a href="https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js">their
+netsniff example</a>. I am very grateful to Gorm for showing me how
+to do this). My goal is to visualize network traces to all IP
+addresses behind these DNS names, do show where visitors personal
+information is spread when visiting the page.</p>
+
+<p align="center"><a href="www.stortinget.no-geoip.kml"><img
+src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geoip-small.png" alt="map of combined traces for URLs used by www.stortinget.no using GeoIP"/></a></p>
+
+<p>When I had a look around for options, I could not find any good
+free software tools to do this, and decided I needed my own traceroute
+wrapper outputting KML based on locations looked up using GeoIP. KML
+is easy to work with and easy to generate, and understood by several
+of the GIS tools I have available. I got good help from by NUUG
+colleague Anders Einar with this, and the result can be seen in
+<a href="https://github.com/petterreinholdtsen/kmltraceroute">my
+kmltraceroute git repository</a>. Unfortunately, the quality of the
+free GeoIP databases I could find (and the for-pay databases my
+friends had access to) is not up to the task. The IP addresses of
+central Internet infrastructure would typically be placed near the
+controlling companies main office, and not where the router is really
+located, as you can see from <a href="www.stortinget.no-geoip.kml">the
+KML file I created</a> using the GeoLite City dataset from MaxMind.
+
+<p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg"><img
+src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy-small.png" alt="scapy traceroute graph for URLs used by www.stortinget.no"/></a></p>
+
+<p>I also had a look at the visual traceroute graph created by
+<a href="http://www.secdev.org/projects/scapy/">the scrapy project</a>,
+showing IP network ownership (aka AS owner) for the IP address in
+question.
+<a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-scapy.svg">The
+graph display a lot of useful information about the traceroute in SVG
+format</a>, and give a good indication on who control the network
+equipment involved, but it do not include geolocation. This graph
+make it possible to see the information is made available at least for
+UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
+3 Communications and NetDNA.</p>
+
+<p align="center"><a href="https://geotraceroute.com/index.php?node=4&host=www.stortinget.no"><img
+src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-small.png" alt="example geotraceroute view for www.stortinget.no"/></a></p>
+
+<p>In the process, I came across the
+<a href="https://geotraceroute.com/">web service GeoTraceroute</a> by
+Salim Gasmi. Its methology of combining guesses based on DNS names,
+various location databases and finally use latecy times to rule out
+candidate locations seemed to do a very good job of guessing correct
+geolocation. But it could only do one trace at the time, did not have
+a sensor in Norway and did not make the geolocations easily available
+for postprocessing. So I contacted the developer and asked if he
+would be willing to share the code (he refused until he had time to
+clean it up), but he was interested in providing the geolocations in a
+machine readable format, and willing to set up a sensor in Norway. So
+since yesterday, it is possible to run traces from Norway in this
+service thanks to a sensor node set up by
+<a href="https://www.nuug.no/">the NUUG assosiation</a>, and get the
+trace in KML format for further processing.</p>
+
+<p align="center"><a href="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.kml"><img
+src="http://people.skolelinux.org/pere/blog/images/2017-01-09-www.stortinget.no-geotraceroute-kml-join.png" alt="map of combined traces for URLs used by www.stortinget.no using geotraceroute"/></a></p>
+
+<p>Here we can see a lot of trafic passes Sweden on its way to
+Denmark, Germany, Holland and Ireland. Plenty of places where the
+Snowden confirmations verified the traffic is read by various actors
+without your best interest as their top priority.</p>
+
+<p>Combining KML files is trivial using a text editor, so I could loop
+over all the hosts behind the urls imported by www.stortinget.no and
+ask for the KML file from GeoTraceroute, and create a combined KML
+file with all the traces (unfortunately only one of the IP addresses
+behind the DNS name is traced this time. To get them all, one would
+have to request traces using IP number instead of DNS names from
+GeoTraceroute). That might be the next step in this project.</p>
+
+<p>Armed with these tools, I find it a lot easier to figure out where
+the IP traffic moves and who control the boxes involved in moving it.
+And every time the link crosses for example the Swedish border, we can
+be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
+Britain and NSA in USA and cables around the globe. (Hm, what should
+we tell them? :) Keep that in mind if you ever send anything
+unencrypted over the Internet.</p>
+
+<p>PS: KML files are drawn using
+<a href="http://ivanrublev.me/kml/">the KML viewer from Ivan
+Rublev<a/>, as it was less cluttered than the local Linux application
+Marble. There are heaps of other options too.</p>
+
+<p>As usual, if you use Bitcoin and want to show your support of my
+activities, please send Bitcoin donations to my address
+<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b&label=PetterReinholdtsenBlog">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>