Thoughts on Phoenix Project II

by GI_Jack

Regarding "Hacking For Knowledge" in 33:3, I'm somewhat amused by your little project.  It's cute, and I fondly remember running similar setups as a teenager.  As a man who's been running home servers up until I started working in data centers and hosting my own professionally, I'll give you a hand.

OS Choice

What year was this written in?  Ubuntu 12.04 is ancient and outdated.  The latest LTS is 16.04, which, if you go the Ubuntu route, is your choice.  The older the distro, the sooner it goes into unsupported.  But I'll elaborate.

You have three decent choices for Server OS: Debian, Ubuntu Server, and CentOS (or RHEL).  Fer fawks sake, don't run a desktop version on a server.  If you don't know how to use SSH, learn.

Also, use the 64-bit version.  To reiterate, Ubuntu Server 64-bit version.

Hardware

32-bit hardware is a no-go.  There is no reason to throw a 2 GB RAM 32-bit Celeron back into service.  You can get a Dell PowerEdge 1950 for $20 on eBay, and you can get Dell workstations with similar electronics for about $50 that don't require a rack mount.  Parts are also cheap, so you can find OEM RAID cards and power supplies cheaper than you can desktops.  I recently paid $10 free shipping for a second power supply for a 1950.

Servers in the modern day should be 64-bit and run 64-bit OSes.  They should also be multi-core.  The workstation motherboards are good because you can shoehorn multiple Xeon CPUs, and they have lots of slots for RAM.  32 GB of RAM with eight cores on two CPUs is not entirely unreasonable at $25 for everything.

Also, when you get server grade shit, Xeons have larger cache and the mobos support ECC FB RAM.  Coolness.

RAID.  If you want to host a server, you need RAID.  At the very least, RAID-1 mirroring.  RAID-1 mirrors two disks, so when one of them fails, it can be replaced without interruption.  If you are using a rackmount, you likely have a quick release sled where you can quickly replace failed hard disks with no downtime or loss in service.  RAID-1 is the gold standard for "production" servers.  There are two types: hardware and software.

Software

Apache is not bad.  Investigate NGINX and PHP-FPM as an alternative - faster and exploited less often.

ownCloud as alternative groupware.  Combine with Postfix and Dovecot to use email.

ownCloud has integration with Android and GNOME Shell.  I use this ownCloud/Postfix + Dovecot stack as the integral part of my vertical Linux stack which includes GNOME desktops and Android cell phones.

MS Exchange is great, but in the Linux world, it's not what we need.

Also, ditch the FTP server.  It's unencrypted and, in today's world, that means some asshole like Jack over here is going to snarf your shit and then make fun of your porn habits, just for laughs.  SSH comes with SFTP, so use that as much as possible.  SFTP is used just like FTP, except it runs over SSH.  All major FTP clients support SFTP.

Management

Alrighty, because we don't want to get SSH popped by some skid, we need a management interface.  For this I use OpenVPN as a management network and SSH and all consoles face the VPN IP.  Hidden from the outside world.  I also use a certificate chain with RSA certs and TLS packet encryption, which makes it hard to bruteforce/recover the key, and packet encryption with a combination of using UDP packets means that the server will not respond unless the packet is correctly encrypted.  Therefore, my OpenVPN setup cannot be detected with Nmap or other port scanners.

So, best of luck to your "Phoenix Project."  I had to rewrite this a few times to get the expletives out.  I also tried to keep it brief, as it'd take another ten pages to give examples of everything.  $SEARCH_ENGINE is your friend here.

Return to $2600 Index