Running Containers

Understanding Containers A container is a complete package to run an application, which contains all application dependencies Containers make it easy to run different versions of application dependencies side-by-side. Since containers are isolated environments, their functions has no effect on other containers Containers run on top of a container engine that is offered by the […]

Accessing Remote File Systems

Configuring a Base NFS Server Create a directory intended for sharing: Create the /etc/exports containing a path to the directory and the following line: Open the nfs, mountd, and RPC-bind services in firewalld: Run the nfs-server service: Mounting NFS Shares Use showmount -e [nfs-server] to show exports: Use mount nfsserver:/[share_dir] /[mnt_dir] to mount the share: […]

Configuring Time Services

Understanding Linux Time The system takes the time from the hardware clock at boot hwclock allows to set the time at the hardware level timedatectl sets several aspects of time on the system level Network Time Protocol (NTP) is a service provided by external servers that can be used to synchronize the time on the […]

Automating Installations

Understanding Automated Installation Solutions Vagrant is used for automatic deployment of virtual machines Cloud-init and other templates can be used in cloud environments Kickstart can be used with a PXE-boot server to provide instructions for automatic installations of RHEL PXE is a DHCP server, so instead of just providing an IP Address via DHCP, an […]

Managing Network Security

Understanding RHEL 8 Firewalling Firewalling begins with the kernel, which inspects incoming, outgoing, and forwarded packets. The kernel achieves this by using a net filter An interface called nftables sits on top of the kernel to inform the net filter of what is allowed and disallowed firewalld is used to write nftables rules Understanding firewalld […]

Managing SELinux

Understanding the Need for SELinux Linux security is built on UNIX security, which consists of different solutions that were never developed with current IT security needs in mind SELinux provides a complete and mandatory security solution Its principle is that if it isn’t specifically allowed, it will be denied As a result, unknown services will […]

Managing HTTP Services

Understanding Apache Configuration Apache (httpd) is a leading web server on Linux /etc/httpd/conf/httpd.conf: Main httpd configuration file /etc/httpd/conf.d: Contains additional snap-in files /var/www/html: The default DocumentRoot, which is where Apache stores the files it serves. It will look for file named index.html in this directory by default To install, enable, and start Apache: Use curl […]

Managing SSH

Initializing SSH Keys The Public and Private keys are created on the client using ssh-keygen The Private Key is stored securely on the client, and the Public Key is copied onto the server using ssh-copy-id Logging in with SSH Key When accessing the server via SSH, the server will send an encrypted packet to the […]

Introducing Bash Shell Scripting

Understanding Bash Shell Scripts A shell script can simply contain commands that are sequentially executed Scripts normally work with variables to make them react differently in different environments Conditional statements such as for, if, case, and while can be used A shell will always be available to interpret code from shell scripts Bash shell scripts […]

Essential Troubleshooting Skills

Understanding Troubleshooting Modes The boot procedure can be interrupted in various ways: Kernel Arguments can be used to within the Grub2 Menu The Kernel Argument rd.break can be used to interrupt the boot process right after the kernel and drivers are loaded Systemd can be replaced with init=/bin/bash The system can be booted into the […]