Managing a Linux server is not a hard task if you have the right skills and know the methods/technologies involved. Linux systems have evolved a lot since its launch. It is becoming more and more user friendly with the arrival of Control Panels and other technologies/techniques/methods. Now, we can manage Linux servers with manageable frontend/GUI.
This article is to make you aware of the simple things that you should keep in mind when you are managing a Linux system/server.
Command Line expertise and Core Linux knowledge
The core of Linux server administration is knowledge in the basic Linux commands to execute tasks. Even though there are lot of tools which gives you user interfaces now, proper Linux server administration is practically impossible without knowing basic Linux commands and how a Linux system works. Otherwise, troubleshooting an issue would be a big mountain to climb.
These are packages/softwares which provides web based GUI/front end for easy management of Linux servers. It offers one click mechanisms to achive taks that we usually do with single or multiple commands in terminal/CMD. There are a lot of Control Panels available in the internet. Among those,
* cPanel * Plesk * Virtualmin/Webmin * DirectAdmin Etc.are the most commonly used ones.
All these are commercial control panels. Virtualmin/webmin has both free and enterprise editions.
There a wide variety of open source control panels available as well. Here is a list of few open source control panels available.
* ISP Config * Ajenti * Kloxo * ZPanel * OpenPanel * EHCP * ispCP * VHCS * RavenCore * DTC * InterWorx * SysCP * BlueOnyx
You can select the desired control panel based on your requirement. For eg: if you need a Linux server for hosting a 1000+ websites, you can choose cPanel/Plesk/Virtualmin/DirectAdmin because it has lot of hosting related options and customizations. Also they offer proper technical support and they release immediate patches etc. for vulnerabilities and bugs.
Since the servers must be online 24*7 and for keeping up the uptime, we can setup monitoring tools for the purpose, so that the monitoring applications will do the job and server admins can relax rather than manually verifying themselves. There are lot advanced monitoring tools available online now. Some of the commonly used tools are:
* Cacti * Nagios * Icinga * NeDi * Observium * Zabbix * Ntop
The idea behind these monitoring tools is that, for instance in Nagios tool, there will be a Nagios server with all Nagios application and its plugins installed. It also keeps all the client details like IP, hostname, system admin Email address (for Email alerts) etc. There will be a Nagios client application (nrpe) installed in the server to be monitored. Nagios will query the status of the services to the nrpe and nrpe will acknowledge the status and this will shown in a web interface by Nagios. System admins can easily identify the server status just by looking into the web based interface.
Auditing the server on a regular basis is the most important task in keeping a Linux server secure. There are lot of security practises that system admins use to keep the server safe. Here are a few of them:
* Updating all installed packages/applications/CMS to the latest stable version * Keeping track of vulnerabilities and bugs and applying patches. * kernel auditing, updating kernel to the stable releases. * Scanning the server for viruses, malwares, rootkits etc. with tools like Maldet, ClamAV, chkrootkit etc. * Server hardening to tighten the security. Eg:- enabling SELinux, securing /tmp etc.
Creating and storing backups of both files and databases have great significance in Linux server administration. As you may know that data recovery is extremely hard in Linux systems. So it is very important to keep backups of the contents in the server to avoid data loss in cases like accidental deletion of data, hard drive failures etc. It is now possible to setup a new remote backup server just to store backups of another server in addition to keeping backups in the same server. Here are a few commonly used backup management tools.
* R1Soft * Areca Backup * BackupPC * Bacula * fwbackups
Most of these backup tools offer bare metal restoration with which we can restore the entire server. So even if you have to reload or update/downgrade the OS, we can restore the server completely.
If you have multiple servers, automating them with certain automation tools/applications helps you save lot of time. For eg: If you have 50+ servers and you need to apply a simple patch on all of them, it takes a lot of time for you to complete the task. But if you have automated systems, you can apply the patch in a single go. This is similar to broadcasting a message to multiple servers. Some of the common automation tools are listed below.
* Puppet * Ansible * Actionaz * Chef etc.
Linux Server Administration is not just these topics mentioned above, it involves discipline, passion, skill, technical know-how, keeping yourself updated to the upcoming and trending technologies etc. and much more. The best way to get better in Linux system administration is to keep working and keep reading 🙂