Thursday, November 3, 2016

How to make a linux server

My professional expertise is generally limited to all things Network, however I dabbled in other areas in school and continue to dabble in my free time at home. I have always taken an interest in different Operating Systems and how they compare to each other; so once I got over Darwin and its proprietary everything I feel in love with Linux: clean, fast, customizable and open source. I have always tried to challenge my Linux CLI skills but it’s only recently that I took the plunge into Linux Servers. Whether you’re building a server for fun, for simple file services or working up to building your own Onion site everyone has to start somewhere. Remember that companies like Apple, Amazon and even Google started with limited hardware in a garage.
Microsoft Server was one subject I focused on in school; however my career has little to nothing to do with MS Server. I have run a few MS Server 2008 VMs and even an old PC, but always found that my cheap hardware was too limited for Microsoft. Annoyingly, there are certain Server roles, which cannot be placed on the same server – this bad news if you’re looking to set up a cheap home server with some basic services on one box. A few months ago I tried to build another 2008 Server on an old PC and quickly got fed up. Looking around the Craigslist sites I found a few reasonably priced user PowerEdge (and similar server brands) in the $250-500 range, but at the time I really didn’t have the money to spend on a hobby machine. I decided to try something and found an AMD single core PC with 1 Gig of RAM and a 40 GB hard drive – this is my story of how I turned that old $10 beast and a $5 domain name into a functioning Linux server.
The first thing that I need to get out of the way is the GUI. I have since built another Linux server with absolutely no GUI, but when I started this budget endeavor I felt squeamish not having a GUI. As you can see, Ubuntu provides you with an easy-to-use menu even when installing no GUI (many server distros will not offer this).

This would end up being quite ironic since I set up most of my services through a putty SSH connection to the box. Since I was dealing with a low spec machine I reviewed my options and decided to go with Xubuntu. Why didn’t I go with Lubuntu? Well, I honestly find it quite ugly and I know that Xfce is solid so the decision was easy. Why Ubuntu in general? As many of you may know, Ubuntu is probably the best supported “user friendly” Linux around (and I like Debian). With these lightweight versions of Ubuntu you don’t have to deal with the new touch screen friendly UI and you get a straightforward desktop. I didn’t want to hit time consuming roadblocks just to get the installation complete, so I decided to pick a distro that I could stand up easily. installing Ubuntu Server is as easy as installing Ubuntu desktop, so if you’re just beginning it is a great choice

Ubuntu server installs now provide an option to install a LAMP server template (Linux Apache MySQL PHP), but since I was really looking for a lightweight HTTP & FTP machine, I didn’t bother with this – I certainly won’t be using an large databases, but if this is what you’re looking for I would recommend installing the LAMP installation and save yourself some time. As mentioned, my first goal was to get HTTP and FTP installed and running. For HTTP you are going to want to install Apache2 and for FTP you can go with the simple vsftpd (unless you need something fancier). Remember that a server doesn’t have to be a Proliant, Power Edge or ESX host. A server can be any computer that hosts various services.
Although I decided to start with a nasty old single core PC with a GB RAM (and have proven it can work), you may want to look for something beefier. My build was to see how cheaply I could make a functional server, but I can guarantee that anything more than 5 users on it will bring it to its knees. My recommendation is to buy the best hardware