Mail migration
As a response to my crashed firewall, I decided to retire my hobby mail server running Postfix/Dovecot on Ubuntu Server. Instead I have decided to join the masses and go for a hosted exchange service instead. For a die-hard Linux freak as yours truly, this sucks. However, on the flip side, I gain better reliability and set of services, such as beside of synching mail to my Android HTC Hero mobile, I also get calendar and contacts.
Before summer I was looking intensively for a open source version of calendaring and contacts that allowed me to synch to a mobile phone. I tried eGroupware with Funambole client. But there were allways some part that didn’t work, whever I got something to work.
Now, when I’m on the move frequently I need a working solution for mobile mail/calendar/contacts that also works with a desktop client. Google mail wasn’t an option becuase they doesn’t seem to have a professional solution for a small-business.
As long as it comes to pure mail management using the postfix/dovecot/spam-assasin/postgray combo, it works flawlessly. But finding a decent (open source) calendar and contacts server, accessing them over HTTPS from a hotel room or via a mobile phone, is not possible.
Running a SOHO server(s) has its moments, when the broadband connection goes down, when the home assembled firewall crashes or just the cat plays with a cable that happens to be cord to the ADSL modem. Last summer (2008), the firewall crashed due to iover-heating. It was an old PC baught for my son when we were living in London 2001. The problem was, me and my wife was at the Canary Islands for another two weeks. After that I got some new hardware from a local computer store and it lasted for a year. The firewall software I’m using is Smoothwall, which used to be a very decent OS-based firewall. However, they haven’t upgraded the bundled drivers for many years, which results in it’s not able to install on modern hardware.
When the firewall crashed recently I bought a brand-new (cheap) PC, just to discover for the second time that Smoothwall doesn’t install on contemporary hardware. I wasn’t particulary tempted to build my own distribution with the appropriate drivers, at the same time I was cut-off from the net. So, I found a spare machine from 2004, which allowed installation of Smoothwall. But, as I said in the beginning of this post, I will not wait for this junk to crash, so I have migrated the mail handling elsewhere.
The next step will be to migrate the webs {www, blog, lib}.ribomation.com. I will write another post, when it’s done. Probably it will take some time, because I will be on the move for several weeks during September and October. Next week I will run a series of seminars on Cloud Computing, Groovy & Grails and trends in Application Development. The following weeks I will teach Erlang, Real-time Systems Programming in C++, more seminars and then more Erlang and RT++. It goes on like this until November. It’s fun and intensive.
Setting up a home server
Nowadays, with cheap broadband connections more and more people are hosting their own server, just for the fun of it. Which is what I’m doing and just as a hobby. If you are considering setting up one yourself, there are some remarks to point out.
The first is that you should from the beginning consider two boxes, one for the server and one for the firewall. That means you can setup your firewall first, make it as restrictive as possible and then playing around with your server. Use port forwarding to only the ports (services) your really want to expose to the public. That way your server can provide both public and private services - if you like.
FireWall
I know about two firewall Linux distributions. Over time I have used both.
- SmoothWall - which is my current favorite. It is slightly better than the next.
- IPCop - which is a pure open source project. Originally an offspring from SmothWall.
They both work the same, you convert a PC to a complete stand-alone firewall. At the minimum you need two network cards. However, I do recommend plugging in three network cards, which means you can setup you own DMZ and keep you server there in the fridge.
You can use an old PC, yes very old. My first SmoothWall2 installation run at a desktop PC with 200MHz CPU, 64MB RAM and 2GB disk. The second installation, was IPCop, running at a 233MHz CPU, 96MB RAM, 4GB disk Toshiba Satelite laptop. It were operable for several years, until one of the two network PCCARDs burnt. I couldn’t find a new one with a dongle. All PCCARDs nowadays comes with a bulb, wich prevents one stacking two on top of each other. My current SmoothWall3 installation, runs on the cheapest PC I could buy at that time. It has three gigabit network cards, so I can run my server in a separate DMZ.
Server
My server is runningUbuntu server edition on a box I assembled myself, just for the fun of it. Another post, some other day, will describe the server.
NAS
Sooner or later, you will end up with a requirement for large storage and/or backup. If you have a spare box, which do not be fancy, try setting up a NAS. It’s very easy. Besides of the box, you need at least one disk for storage. I do recommend two or three disks and setting up RAID. I have been using
- FreeNAS - for a year now and is very pleased with it.
It is based on BSD and not Linux, but that does not matter. You control it via a web interface anyway. If you want to try it first before investing in disk, you can install it to a virtual box, like VMware, VirtualBox etc. Try first a plain vanilla installation. After you know how it is working, rip it out and create a new VM with three disks and install FreeNAS with RAID5. RAID5 requires three equally sized empty disks. In practice, you will need a very, very small fourth disk for the OS, although you can run FreeNAS from a USB stick or a CD/Floppy combo.
I grabbed an old spare box, bought three new cheap 500GB disks and installed FReeNAS with RAID5 without any hazzles at all. It provides several services, like SAMBA for the Windows machines belonging to the rest of the family and RSYNC for server backup.
