Let me start by saying, I really love Microsoft Azure and my brain is currently flooded with plenty of Azure goodness after earning my Azure Admin certification. Therefore I was surprised to find myself working on the Oracle Cloud Infrastructure (OCI) platform less than a week after passing the AZ-104. I find that my professional life is focused on Microsoft, Windows Server, Hyper-V, Powershell, IIS, Storage Spaces, etc. but the technical tinkerer in me is always working in the world of Linux. Additionally, my personal pet projects have personal pet budgets. So that means Apache, MySQL, PHP, BASH, Drupal, and WordPress.
I also delight in most things open-source. The first time I SSH’d into my hacked Western Digital “WDTV” media player well over a decade ago I was enchanted by the incredible things that can be done with Linux on not-so-incredible hardware and non-existent budgets.
Had you told me a month ago this blog would be running on Oracle hosted infrastructure supported by hardware released within the last three years I believe I would have laughed. First, I am familiar with Azure and genuinely like the platform. Second, “Oracle” and “Budget” are typically diametrically opposed concepts. And yet… here we (literally) are.
The current state of the world has caused some unique stresses on IT infrastructure. For IT departments servicing internal teams, remote access infrastructure in particular has felt the brunt of the blow. To that end, I spent a couple of weeks testing out enterprise VPN solutions.
If you use linux and have never come across this statement (or just realized this in the course of working with the OS), then let me be the first to tell you this critical truth…
“Everything is a bloody file.”
While this holistic statement isn’t quite 100% true, it’s close enough that if you adopt it as your life verse and it becomes your “modus operandi” for working in Linux, you will go farther faster.
It is so ubiquitous there is a wikipedia page devoted to it.
This opens up some novel concepts… for example, because everything is represented by a file, it means almost anything can be easily scripted… hence part of the fun of Linux…
For all of you out there like me who came from the Windows world, “Everything is a File” can also be a keen point of frustration if no one has ever made this statement to you and explained some of the implications. I have done my service and made the statement, I will leave it up to you to research and discover the implications. Go forth and research and then come back and keep reading.
Now, I am going to move on and start my first article in the new “Everything is a File” series in which I am going to attempt to tackle some of the most common files found on Debian Linux variants and explain their usage. To kick things off, I am going to document a file that I have to look up commonly; FSTAB. (the whole point of my blog is to create a place that I can just search my own notes rather than Googling (and re-Googling 6 months later) for other peoples’ notes)
If you run linux desktops (virtual, containerized, physical… or other?) then you may have come across the term VNC which is shorthand for “Virtual Network Computing” which is so ambiguous it means practically nothing. If you come from the windows world you are probably familiar with the term RDP which is shorthand for “Remote Desktop Protocol” which is vastly more descriptive.
VNC and RDP are both technologies used for used for interacting with an operating system from a distance, over the network, typically with the GUI. If you just need CLI access then most (all?) versions of Linux support SSH (secure shell) and Microsoft has remote powershell. But hitting up a GUI from afar is a more difficult affair, particularly on Linux.
In the monolithic world of Microsoft, RDP is dead simple and I will applaud Microsoft on a phenomenal application that has evolved well over the years, is simple, and honestly works fantastically well.
In the not-at-all monolithic world of linux however we are left with VNC… and there are many many VNC clients, most of which don’t work well in my experience and none-of-which are nearly as efficient as RDP… which means slow network links (like connecting to systems on the other side of the world) are a killer.
In my search for a good VNC server/client combo I finally stumbled across TigerVNC. I am delighted to say that it is stupid-simple to use and while perhaps not as fast as RDP, it does seem to perform better than the bulk of other VNC options out there. (more…)
Let’s Encrypt is an incredible, FREE, service that allows you to get trusted SSL certificates for your website. The certs expire every 90-days but what is great is that there are a lot of tools for auto-renewing the certificate without you ever having to touch anything on your server… until that process breaks.
Case-in-point: If you are running a Drupal 7 and are using the Apache Rewrite module (you should be…) then the default .htaccess file supplied with Drupal 7 core will block all access to hidden folders. (folders that start with a “.”) This is a problem for Let’s Encrypt because the auto-renew process generates a temporary key file that gets placed in a hidden folder on your web server that the Let’s Encrypt system has to be able to reach publicly (on port 80) in order to validate your server and fulfill your renewal request. Thankfully, another member of the Drupal community has already written the rewrite condition rule that needs to be placed in your .htaccess file to allow access to just the hidden folder required by Let’s Encrypt.