Featured Post

HOW TO: Install VPN server on Ubuntu when server is behind firewall

The whole point in this post is to run your own VPN service, and allow you to connect remote devices to your home network. To start off yo...

Jan 22, 2013

Openelec, my XBMC of choice!

So I have about 3 machines in my house that function as HTPCs.  One of those systems I use with full blown blown Ubuntu and XBMC install from repo.  The other systems I use Openelec, I have this installed on an old NVIDIA ION system and a Rasberry Pi.

I have also advised two systems, which I setup, to use Openelec.  Zotac ZBOX which has a great price on it, I can only assume due to the fact that they are coming out with a new version...which openelc is already optimized for!

Some of the main benefits about openelec.
  • Great scene, so stable updates.
  • Automatic updates through system configuration
  • libCEC support on Raspberry Pi (for TV remote support for application control)
 The main reason I am not using this on my main media center is due to the lack of support installing Subsonic.  This main system is used to serve my streaming music to web and mobile apps, therefore, until I have played about with installing Subsonic on NAS4Free or Openelec, I will stick with an Ubuntu system in my household.

Some other options:

Web Based Task Automation

Found a new website, it's excellent. 

If This Then That

Basically this allows for simple tasks to be carried out...such as, if I like a track on last.fm then blog it.  From playing with this site I ended up buying a blink(1), I have no idea what I am going to use it for, but I like gadgets.

Jan 19, 2013

Apple Airport Extreme 5th Generation (Quick review)

It's pretty good.  But I am not sure it is any better than my Netgear WNR3500L running DD-WRT, my wireless range isn't any better.  I guess the best thing about it is the daul band wireless, I find I get higher wireless speeds.

I set the base station up using only my iPhone.  The software for desktop is only available for Windows or Mac.  The Windows version requires Windows 7 SP1.

NAS4Free and Secure FTP (SFT) accesss from iPhone

So, for the longest time I tried to get secure FTP working with iPhone and my home server (my problem was I was trying to use FTPS, instead of SFTP).  Using FileZilla I could always successfully connect using "require explicit FTP over TLS":

Based on this I figured it was an issue with the iPhone apps, I think it was error 425 (cannot build data connections).  Then I thought it was my Netgear WNR3500L, since I used DD-WRT on it, I figured maybe something was screwy - a draw back of bleeding edge geeky stuff, you question it.  Anyway, it was a port configuration issue by me.

I needed to open port 22, not 21.  I also had to connect using different settings SFTP.

As for iPhone client, I have tried a few; FTPOnTheGo, Files Connect, and Easy FTP.  Of them all I like FTPOnTheGo - I should probably look into the options again - considering iPad clients too.

Since I originally stater this investigation and setup, I treated myself to a new router Apple Extreme Base Station.  I might write a quick review on it actually...

Jan 16, 2013

Creating a Self-signed Certificate for Secure FTP/Web Connections

From the following site: http://www.akadia.com/services/ssh_test_certificate.html

Step 1: Generate a Private Key
The openssl toolkit is used to generate an RSA Private Key and CSR (Certificate Signing Request). It can also be used to generate self-signed certificates which can be used for testing purposes or internal usage.

The first step is to create your RSA Private Key. This key is a 1024 bit RSA key which is encrypted using Triple-DES and stored in a PEM format so that it is readable as ASCII text.

    openssl genrsa -des3 -out server.key 1024

 Follow the on-screen instuctions.

Step 2: Generate a CSR (Certificate Signing Request)
Once the private key is generated a Certificate Signing Request can be generated. The CSR is then used in one of two ways. Ideally, the CSR will be sent to a Certificate Authority, such as Thawte or Verisign who will verify the identity of the requestor and issue a signed certificate. The second option is to self-sign the CSR, which will be demonstrated in the next section.

During the generation of the CSR, you will be prompted for several pieces of information. These are the X.509 attributes of the certificate. One of the prompts will be for "Common Name (e.g., YOUR name)". It is important that this field be filled in with the fully qualified domain name of the server to be protected by SSL. If the website to be protected will be https://public.akadia.com, then enter public.akadia.com at this prompt. The command to generate the CSR is as follows:
   openssl req -new -key server.key -out server.csr
Step 3: Remove Passphrase from Key
One unfortunate side-effect of the pass-phrased private key is that Apache will ask for the pass-phrase each time the web server is started. Obviously this is not necessarily convenient as someone will not always be around to type in the pass-phrase, such as after a reboot or crash. mod_ssl includes the ability to use an external program in place of the built-in pass-phrase dialog, however, this is not necessarily the most secure option either. It is possible to remove the Triple-DES encryption from the key, thereby no longer needing to type in a pass-phrase. If the private key is no longer encrypted, it is critical that this file only be readable by the root user! If your system is ever compromised and a third party obtains your unencrypted private key, the corresponding certificate will need to be revoked. With that being said, use the following command to remove the pass-phrase from the key:

    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key

The newly created server.key file has no more passphrase in it.

    -rw-r--r-- 1 root root 745 Jun 29 12:19 server.csr
    -rw-r--r-- 1 root root 891 Jun 29 13:22 server.key
    -rw-r--r-- 1 root root 963 Jun 29 13:22 server.key.org

Step 4: Generating a Self-Signed Certificate
At this point you will need to generate a self-signed certificate because you either don't plan on having your certificate signed by a CA, or you wish to test your new SSL implementation while the CA is signing your certificate. This temporary certificate will generate an error in the client browser to the effect that the signing certificate authority is unknown and not trusted.

 To generate a temporary certificate which is good for 365 days, issue the following command:

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Upgraded to NAS4Free to reap the benefits of SMB2

Previously on FreeNAS 0.7.2 I had to use the following configuration to get additional speed on my transfers, and those benefits were only when copying to the NAS, not from it.

Everything was acceptable on FreeNAS 0.7.2, however updates had halted, FreeNAS took a leap to version 0.7.5, which there is no official upgrade route from 0.7.2, then 0.7.5 seems to have branched off into NAS4Free.

So what to do?

I changed my FreeNAS 0.7.2 installation into an embedded install, then upgraded to 0.7.5.  At this point I had to re-mount all my drives (backup configurations at every stage).  I was able to check the permissions I had configured by checking my old configuration_###.xml files.  Within minutes I had FreeNAS 0.7.5 running, additional benefits were already there - however the plan was to move to NAS4Free since I see FreeNAS support halting completely in the future.

Upgrading to NAS4Free, while experimental, was the simplest process:

  1. Make a backup of your configuration. (Web GUI 'System|Backup/Restore')
  2. Modify the configuration by changing the upper most and the most lowest string on the configuration to and respectively.
  3. Change the version to 1.0.
  4. Burn the Live CD (ISO) and install NAS4Free.
  5. Restart the server without the CDROM.
  6. Import your modified configuration (Web GUI 'System|Backup/Restore') and restore.
At this point I was able to remove all the extra auxiliary parameters for SAMBA.

Update:  NAS4Free has an upgrade path from FreeNAS now.

Notes can be found at the following location:

This version supports upgrading from FreeNAS 0.7.2 or 0.7.5. The supported lowest config version is 8.9. (

Upgrading DD-WRT on 3500NLv1

So I recently took the opportunity to upgrade my Netgear 3500NL v1 to the latest DD-WRT firmware out there:

DD-WRT v24-sp2 (03/16/12) vpnkong
I had been running an older version, I believe it was a MEGA build (DD-WRT "Mega" BETA svn 14826 (2010-07-18) for WNR3500L), but decided based on other changes in my network - why not go the whole hog.

Unfortunately there were a couple of issues:
  1. I couldn't use my previous settings, since the port forwarding rules were not impoted correctly.
  2. Filter WAN NAT Redirection seems to be broken and required a workaround
The following firewall script was required, under Administrations | Commands:

iptables -t nat -A POSTROUTING -j MASQUERADE

This worked around the Filter WAN NAT Redirection problem (it doesn't appear that I can disable it)
Point 2 specifically prevented me reaching internal services that had port forwarding associated with them.