Introduction to Linux Apps
As a Linux apps system administrator, you need all the tools to maintain and monitor your system. Most Linux training distributions helpfully come with a ton of monitoring Linux training, tools, and commands that provide metrics to get information on system activities. You can use them to find possible causes of performance problems.
But if you are already familiar with these inbuilt commands and Linux training or want something more than what the distribution comes with, here are some great tools that every administrator will find useful and even compulsory for doing their job. What’s more, these tools are fully free.
Free Tools for Linux Apps
Given below are the free tools for Linux apps:
1. Puppet Open Source
While Puppet Open Source is available as a paid commercial version called Puppet Enterprise, we are talking about the open-source, free version called Puppet Open Source. The paid version has more support and features, but the free one can be pretty effective too. It is used for IT reporting, orchestration, and automation.
With these Linux apps, you can define how you want your system, simulate the changes and then automatically deploy the state that you want. You can then discover the differences before and after the Puppet was run. The Puppetmaster defines the desired state, and the Puppet agents are installed on the servers you want to control. The agents will receive the desired state from the master and implement it accordingly.
Here is a look at what Puppet can do for administrators:
- File Control: With Linux apps, files are everything. If you modify files the right way, you can control anything. But there can be hundreds of files to edit across different servers. With Puppet, you do not have to edit files in each server however you want. You can instead specify the changes in the Puppetmaster, and the agents will make the changes across the servers where they are installed. For instance, let’s say you have a custom /etc/sudoers and /etc/ssh/sshd_config file that locks down the SSH and gives admins root access. You can roll these out and other future changes via Puppet. If the controlled files are overwritten or changed in the event of an attack or something else, the agents can put back the changes.
- Cron Jobs and Packages: Puppets can set up cron jobs across all servers using the Puppetmaster without manually doing it for each server. You can also ensure that packages are removed or installed from servers with the tool. For example, you can set up the Puppet master to check whether Apache is there, along with the necessary configuration files. You can also set it up to remove Apache and ensure it is not installed on a server.
- Keep Services Running and Execute Commands: You can use Puppet to ensure services are stopped or running, like the previously mentioned Apache. If you want to keep a service running, Puppet will try to start the service if it detects it is not running. You can also set up Puppet to run a command on all servers, like an auto-install command for an agent to install it automatically on all servers. Remember that all the above can only happen when an agent completes a run. The Puppetmaster determines when an agent completes a run. By default, the Puppet runs every 30 minutes.
2. Puppet MCollective
MCollective is a framework for parallel job execution or server orchestration systems. Although it is installed with the Puppet agent, as indicated by its name, it is separate from it. Based on command line criteria, it can scan networks for virtual machines and allows you to send messages. For instance, you can find out which processes are down or restarted on a virtual machine or the entire machine from a single central location. Since this tool is written in Ruby, you can copy some of this and adapt it to your needs. The data comes from plugins like Factor, Chef, and Puppet, and it reads metadata created using these tools.
Here is a quick look at some commands and what they do:
- mc-service-with-class/dev_server/httpd restart: This restarts the development web servers.
- mc-RPC: This can be used to send messages to machines and find the ones with errors, as they do not echo back the message.
- mc-service-with-class/dev_server/httpd status: This finds the machines running the web servers.
- mc-facts: This command finds out which machines are in which country.
- mc-find-hosts: This command identifies all the virtual machines.
3. Webmin
This open-source tool is Webmin; you can use it to manage your server configurations and administer servers with a browser-based web interface instead of directly working with files via SSH. You can use it to set up user accounts, Apache configuration files, disk quotas, enable file sharing and more. The system utilizes administrative modules in the form of .gz files to aid in configuration, allowing for updates and enhancements to its functionality.
Here are some modules available, and you can find more online:
- Network configuration
- LDAP server to manage OpenLDAP
- LDAP client to search and edit LDAP records
- Kerberos
- File system backup
- File manager
- DHCP server
- CD burner
- Backup configuration files
- BSDS firewall
- Bind DNS server
Apache, to configure almost all directives of Apache instead of doing it individually.
4. Darik’s Boot and Nuke
Darik’s Boot and Nuke free tool can be used to remove data from disks on a server. It is a boot disk to erase all detected disks, making it a great tool for server decommissioning. It also makes it a bit dangerous to use too. One misstep can erase important data! The tool works with Linux apps and Windows and can be helpful if you want to delete data securely so it cannot be recovered.
5. Wireshark
This is a network sniffer or network prototype analyzer. It is similar to tcpdump and other tools, but it has a graphical interface for ease of use and can filter traffic more easily by source, type, ports, and destination addresses. The tool can run on all major operating systems. On Windows, it uses WinPcap, while on Linux apps, it uses libpcap to capture packets.
You can use it to troubleshoot application and network issues or monitor traffic on the network. Remember that Wireshark, or any sniffer, can only sniff packets that go to and from a machine. You must change your router to promiscuous mode or connect your machine to a network switch, router, or hub. On a busy network, the output can come and go rather fast. You can, however, log the traffic to a pcap file for later review.
6. Ubuntu Rescue Remix
This is an Ubuntu Linux live CD customized for forensics and data recovery. You can boot it via CD or USB drive and inspect disks at a block level. Since it is life, it can work on any operating system, like Linux or Windows. Once booted, you will get a Linux shell and several tools for data recovery. The tools include, among others, ddrutility, which can show file fragments and names in unrecoverable disk blocks. Other great data recovery tools include ClamAV, Gnu-fdisk, The Sleuth Kit, and PhotoRec. It is important to note that the developer does not maintain or support the project. But it still works well and does the job.
7. TightVNC
These Linux apps allow you to remotely access a graphical user interface for controlling a Linux training system. Linux servers are typically administered via command line with SSH, but some users prefer to manage it with a GUI, particularly through a desktop machine. VNC works similarly to the remote desktop notification of Microsoft. You need to install and run the VNC server on the machine you want to connect to, and you can do so once it is configured. It is important to note that the tool is not secure. Traffic is transferred in plain text or in a way that is easily cracked. In most cases, connecting with a username and password is not secured by default. To enhance security, it is advisable to enable tunneling VNC over SSH in most VNC clients, as it facilitates establishing an encrypted connection.
You can find several VNC clients for Mac, Linux apps, and Windows systems to connect remotely from anywhere and anytime. You can even find Android clients to connect from a smartphone, with Ripple being popular. VNC works independently of the platform, so you can find several versions.
8. ConfigServer and Security Firewall
The previous tool had a huge gap in security, so let’s take some time to acknowledge a tool that does provide security. ConfigServer and Security Firewall (CSF) is a script suite that provides intrusion detection, login, firewall, and other capabilities. The firewall is a front-end for iptables with several additional features. It first uses the iptables firewall, enabling you to implement rules without understanding the syntax and details of iptables. You can then secure your server by locking outbound and inbound traffic. For example, you can set up the server to only enable SSH connections on a certain port from a certain IP address and deny all other requests to that port.
CSF can also block attacks actively. Let’s take an example where you allow only one IP address to connect to a certain port, and someone compromises the server and then tries to establish an SSH connection to your server. If they try to do this and fail to log in a set number of times within a set period, their source IP address will be temporarily blocked in the firewall. If there are enough temporary blocks, they could be blocked permanently. This works for SSH and mod_security failures, Exim SMTP authentication, and failed logins to htpasswd-secured web pages.
CSF can use a standalone Linux apps server and also provides a graphical user interface component when utilized on a cPanel or WHM server. Given the popularity of WHM hosting, you can manage and configure it via WHM instead of a command line.
9. Capistrano
Another open-source tool in Ruby, Capistrano, is used for remote server deployment and automation. It supports task scripting and execution, and you can use it to deploy web applications across various machines in a set sequence or simultaneously. You can also use it to run automatic audits like applying patches and checking logs and to perform data migration and other tasks. You can also add other source control management software to this tool to expand its capabilities. Another thing to note is that Capistrano is a Ruby gem. This means that you get complex functionality that can be used rather simply.
10. Fabric
The fabric is a command-line tool and a Python library to streamline the use of SSH for administrative tasks or application development. It provides operations to execute remote or local shell commands, and you can do a module containing multiple functions and then execute them all through this command-line tool. Once you define a task, you can run it across multiple servers.
For instance, let’s look at the following command:
fab -H localhost,remoteserver host_type
You will then get the output of ‘uname –s’ from the specified servers: the remote server and localhost. You only need to define a module one time. Once you do it, you can easily invoke it by typing the name on the command line. Just imagine what you can do with this functionality!
11. MySQL Tuner
Are you running MySQL on your server? MySQL Tuner can be a great way to improve performance and stability. It is a Perl script that can quickly example the MqSQL and provide suggestions to get better performance and improve stability. The suggestions are generally good, but adding changes you can fully understand and control is better. You can easily look up the MySQL documentation for the variables to understand how each suggestion works. You can also make the changes on a test server rather than directly applying them to a production server. Some changes would require you to restart MySQL, which means server downtime.
Recommended Articles
We hope that this EDUCBA information on “Linux Apps” was beneficial to you. You can view EDUCBA’s recommended articles for more information.