We go deeply technical today and discover the wonders of Virtual machines. What are they and why do we compare them to holographic characters in Star Trek ? We talk about the secret sauce to build a ‘Datacenter in a Box’ for your home. Instead of owning rows of old clunkers to test, or half a server rack to meet your needs, we take a tour of Virtualbox and how you can use it to shove an entire datacenter… under your desk.
You can also watch the Live recording of this show on Youtube.
This week in “Server week” we are going to set up a variety of servers that allow you to do a variety of things. One of the most basic and versatile server you can set up must be the SSH Server. Long time fans probably know that the SSH server is the base ingredient for a lot of fun stuff you can do. For example.
- Transfer files over the internet.
- Work with command line applications from a remote computer.
- Tunnel your browser traffic through your own server to stop nosy network admins.
- Connect to your home network with a VPN connection.
These are just a couple of things you can do, but before you can do that, you will need the basic ingredient : Let’s set up an SSH Server.
- Debian based Linux distribution : ( you can do it with a redhat based one too, but we use a debian based one for the tutorial)
- Static ip for your Linux distribution.
- Connection to the internet.
- If you don’t have a static IP : A dynamic DNS service like opendns or Dyndns.
- An open port on your router forwarded to your linux machine.
Let’s get cooking.
- Open up a terminal on your linux machine and type : sudo apt-get install openssh-server
- After the server is installed, connect to it from a remote machine using a terminal application like Putty (for Windows) Secure Shell (for the Chromebooks) or from the terminal on other Mac and Linux machines.
- Connect to your Linux server with the command : ssh yourusername@theipofyourserver
And starting out that is ALL you need to do. If you want to do this from the internet you need to forward the correct port (The standard port is Port 22) from your router to your linux machine so you can make it accessible from the internet.
Lets make it pretty.
- Want to have a unique login screen when you connect ? create a cool ASCII banner using THIS tutorial.
Lets make it secure.
- SSH servers run standard on port 22, so a lot of scriptkiddies will go around the internet and “knock” on your port 22 to see if there is a server there. We are going to “obscure” the location of your SSH server a little by changing the default portnumber (Remember you also need to adjust this on your server) Follow THIS tutorial to get you started.
- Next time you connect remember to connect with ssh -p portnumberyouchose yourusername@theipofyourserver
- If you want to get rid of entering your password when you connect you can log in using secure SSH keys. Its a little bit on the advanced geeky side but it DOES keep your machine extremely secure : Only a machine with a unique digital fingerprint can connect using this method : Here is a good tutorial.
Lets start using it.
The SSH server offers you a variety of functionalities we talked about in previous blogposts. We will line up the best uses for SSH here.
- Make a VPN connection to your home network using SSHUTTLE.
- Turn your server into a proxy server and tunnel all browser traffic though your home server. (here is the pdf howto)
- Keep an eye on what your server is doing.
- Run a remote supergeeky wordprocessor.
- Run remote graphical applications.
- Have a blast controlling your server from the command line.
- Run command line apps.
These are just a couple of examples of what you can do over this very powerful little SSH connection. Remember always to use strong passwords and keep your server up to date. Have fun !
Knowing “how busy” your network card is on your Linux system can be very handy in a variety of occasions. You might want to see whats holding up traffic if you use your Linux box as a router, You might want to check how fast that download is going on your torrent machine, you might want to see the top speed you can get out of your workstation. In any case : Getting a quick and comprehensible readout of how many bits you are spewing is not always easy, especially if you are connecting via the command line.
Enter “Slurm” an app that does one thing and does it well. It gives you a graphical overview on how fast your system is up – and downloading data. This information is specified into your ‘real time data usage’, your average data usage, your amount of data received and transmitted. It also comes with a cool graph that, on a glance, gives you an idea on how busy your pipe is.
Slurm is easy to use ( and does not have a ton of command line switches) an can be run on different network cards at the same time. This is very handy if you ever want to see how fast your home-built router is blasting bits on both interfaces. Slurm is available by installing it from the command line on any ubuntu/debian based system via sudo apt-get install slurm . You can use Slurm by hitting slurm -i eth0 (eth0 or 1 being the name of the network card you want to monitor.)
Sliding around from OS to OS and using the terminal as your ‘best friend’ makes for some interesting challenges. For one finding the answer to the question : ” What terminal do you use ? ” Most of you mouse jockeys might say ” Who cares ? A command line is a command line ?” But it is not that simpel. Every “terminal application” gives you different ‘ways’ to interact with the terminal. From keyboard shortcuts to multi layout windows .. every terminal app is a little different.
On Linux one of the favorite apps I use is “TERMINATOR” (No, Not you Arnold) The reason being that it gives me one big window that I can devide up into smaller terminal windows. That way I can have multiple connections or applications open at the same time.
On the Mac I found a great alterative that does not only offer that same functionality but also lets you tweak and tune your terminal application into a nice place to hang out.
iTerm2 lets you do all the things Terminator does and ads sassy looks to boot. You can customise color schemes, fonts, backgrounds and more, so you can make the terminal behave and look just the way you want it. Mountain Lions ‘FULLSCREEN’ function is actually useful for a change as it turns your iTerm window into a full screen “virtual desktop” that you can easily switch back and forth from in order to get stuff done.
iTerm2 is free and works on most versions of OSX.
Screenshot : My iTerm2 setup on the Mac. A nice Ubuntu wallpaper, light fonts, transparent background, running in fullscreen and connected to 2 of my virtual machines.