Just recently I signed up with Linode for a virtual private server. I should have done this a long time ago but payment methods and too much choice lead me to put it off. So far I’m quite happy with the price and the quality of the product.
I think I would have preferred just buying a new dedicated machine myself, however unless you’re in the CBD you can’t get upload speeds much more than 1.5Mbps around here (if you are lucky), which is not really fast enough, hence I’ve gone with the 3rd party hosting option. Perhaps if this NBN the government keeps taking about is turned on and not too expensive I’ll switch. In the mean time it seems silly that Australians need to host content that is mainly consumed by Australians overseas just because of the price difference.
For example if A wants to host content to Australians, but it is cheaper to do so from overseas, then A will mostly likely host their content overseas. This just means Australia has an even greater disturbance in the overseas traffic up/down ratio (i.e. we pull more than we push), which in turns means our local ISPs have to pay more compared to the overseas ISPs to lay the cables, this in turn leads to higher internet costs for Australians compared to overseas ISPs.
At any time our local ISPs could provide incentives for keeping traffic local inside the country by making overseas traffic more expensive than local traffic (for both people hosting and consuming), which would help Australians host locally and in turn even up the balance. It also means that the overseas pipes won’t need to be as thick (because for sites which mostly get Australian visitors, hosting locally means the total amount of cross country traffic for that site is less, hence more efficient).
There is not much I can do about this, so I’m giving in and hosting overseas with the hope that one day things will return to sanity, but in the meantime I haven’t been left off-line.
Anyway, back to Linode, I having a lot of fun at the moment setting it up and getting things working.
I’m running Debian 6.0, with unattended-upgrades, lighttpd, ufw, etckeeper (and soon either exim or postfix and possibly I’ll migrate this wordpress blog across). I have run through http://www.debian.org/doc/manuals/securing-debian-howto/ it’s a bit dated and I’m by no means following everything, but none the less it’s still a nice read.
I’ve set up ssh with protocol 1 disabled (securing debian howto says it has some design flaws, so why enable it if I don’t need it?), publickey authentication only, fail2ban, and only accepting traffic to the ssh port from IP ranges I know I’ll be connecting from (I know if I’ve got security via publickey auth, I don’t really need this, but it can’t hurt… at least my logs don’t fill up with as many break in attempts.).
However since one can always log into the machine via the console at linode.com, security here comes down to the weakest link of web based username/password and ssh publickey auth (ignoring all the other threats like compromised VM separation, compromised VM host, physical security, etc.. stuff I have no control over).
I have set up lighttpd as RAM is limited and I read that this (and nginx) are better than Apache httpd in this regard. I have also set up munin and munin-node (and adapted /etc/munin/apache.conf for lighttpd). I would prefer the munin stats not be appreciable to the world, so I just expose it to localhost only and access it via an SSH tunnel.
Additionally, while trying to debug lighttpd configuration I noticed that it wasn’t responding to nc. Apparently lighttpd will only respond to my requests when lines end with \r\n but just typing away in the terminal as input to nc and using the Enter key I only end lines with \n. Apparently this is per the HTTP spec and it only works with Apache because it isn’t as strict about this.
Next I have to see about getting a domain name. This is a huge problem in itself, but it since,
- the IP can change at any time (and will change if I move away from Linode),
- you can’t have sub-domains to separate parts of the site, and
- you can’t really do email
I don’t really have a choice. Unfortunately the current ICANN DNS is the only real option at the moment, so I’m just going to have to pay up, and try to avoid having some details which I don’t want listed, listed in WHOIS. At the moment I’ll probably go for a .id.au domain.
I’ll probably move this blog across once I set up a domain name, so more news to come on this later.
Update: I’ve registered with gandi.net. My site is now available at http://tianjara.net/
Unless you are aware of the more technical details of web browsing its reasonable for the average web user to assume that if you hover your mouse over a link and Firefox tells you in the status bar that the link is to http://foobar.com/, then clicking on the link will actually take you to http://foorbar.com/. But sadly this is not the case for out of the box Firefox.
Take a look at a Google search results pages. Hovering your mouse over the links gives one URL in the status bar, yet clicking the link actually takes you somewhere else.
Here is a sample of the HTML for the link,
<a href="http://www.example.com/page1.html" onmousedown="return rwt(this,'','','res','1','$ID1','&sig2=$ID2','$ID3')">Page Title</a>
The problem I see with this is what if some unsuspecting user checks the link in the status bar, clicks the link thinking they are going one place then get taken somewhere else. This becomes even more of a problem if that site is susceptible to certain kinds of XSS attacks. So you can think your going to https://paypal.com/, and the URL bar after clicking the link goes to https://paypal.com/ but yet you’ve actually got some malicious js or html injected in the paypal.com/ page that you have loaded in your browser window.
I originally thought this was clickjacking, but the Wikipedia article describes that as when a transparent layer on top of the page provides the concealed URL.
So I have a site over at http://andrew.harvey4.googlepages.com/ which I used to deliver my HSC notes to the public. Some time after I put it up I added Google’s Analytics bug to the page to track the number of visitors. Almost two years on from that I can now present the results of the experiment. I have found no reason to hide this data and its not a business here so I have nothing to hide. The site (which is really just one page) got (over the period 17 Feb 2008 to 21 Nov 2009) 9,614 visits, 12,918 pageviews and 6,605 visitors according to Google Analytics.
The most notable thing is that you see a spike on the day before the physics HSC exam (and then drops off as expected), there is also a gradual increase from Jul till whenever the exams are on.
As for traffic sources well search took time to increase and certainly has. In the beginning you wouldn’t find my site in the top 10 results of common queries but now I’m getting traffic from queries (and these are the top 5, but only make up 45% of all queries) like “andrew harvey”, “andrew harvey hsc”, “andrew harvey physics notes”, “andrew harvey chemisty”, and “andrew harvey physics”. The main traffic sources are 40% referer from community.boredofstudies.org, 30% direct, and 23% from Google. All referring sites actually made up 47% which was made up of this blog, various webmail services, various high school web sites, facebook.com…
96% of visitors were listed as coming from Australian IPs.
Unfortunately because I don’t run a site on a server I own (gosh I wish I could, but the cost is off putting), I don’t know the numbers of the PDF file downloads.
For as long as I could remember, loading pages in my wordpress.com blog dashboard was really slow. I should have realised what was happening sooner but I never took the time to investigate. Whether I went to the edit posts page (/wp-admin/edit.php), new post (/wp-admin/post-new.php) there seemed to be numerous connections back to wordpress.com once parts of the page were loaded. These requests were to s-ssl.wordpress.com. Taking a look at the source, all the css and js files linked to from the html of the page were over the https protocol, and rightly so because I always go over the https protocol. What I didn’t realise is that Firefox will not cache files from https by default. So if I go to about:config and change browser.cache.disk_cache_ssl to true then these static css and js files will be cached. I restart my browers and all of a sudden pages load much faster and much more tolerable. The only problem is that its not just css and js files transfered over https that are cached but html files as well. I’m not sure how to get Firefox just to cache css and js files from https, but I have to leave that for another day.
I just checked the junk mail box of my hotmail email account, inside I find an email with subject “Imagine Cup – Thank you for registering.” from “firstname.lastname@example.org”. So I go to imaginecup.com and it turns out that the web site comes under the Microsoft umbrella, that same Microsoft that Hotmail falls under. I find it quite odd that Microsoft flags its own email as spam. I should note that I did acutally register for this email, so it was not quite spam. Althought I do realise (although I’m just guessing) that the spam tag that this email was assigned was probably automatically generated from other users marking it as spam.