How to create a simple encrypted Two-Way SSH tunnel

How to create a simple encrypted Two-Way SSH tunnel

Why would you need to create a simple Two-Way SSH tunnel? In your Linux system administration job have you ever found your self in a situation in which you cannot SSH to a any of your servers/hosts that may be behind a firewall, NAT or otherwise obstructed from an easy access.

In order to gain the access, you would need to reconfigure the firewall or create VPN which could be an enormous overhead just because you need to execute few commands from now and then. With Two-Way SSH tunnel you can connect to any destination under a single condition, which is, the ability to ssh login from the destination to the source.

If you can do that, you can as well reverse login from source to destination even if it is behind firewall or NAT.

In this tutorial you will learn:

  • How to create Two-Way SSH tunnel

Read more

Install an RPM on RHEL 8

How to Install an RPM package on RHEL 8 / CentOS 8 Linux

There are a few different ways that you can install an RPM package on RHEL 8 / CentOS 8 as oppose to package installation from a systems repository. They each have their own merits, but DNF should probably be your first choice in most situations. It’s also good to remember that, for stability’s sake, it’s a good idea to limit your external RPM installs as much as possible.

In this tutorial you will learn:

  • How to Install an RPM with DNF
  • How to Install an RPM with Yum
  • How to Install an RPM with RPM

Read more

User is not in the sudoers file error message on RHEL 8 / CentOS 8 Linux

RHEL 8 / CentOS 8 add user to sudoers

The sudo command allows regular users to execute commands with administrative/root privileges. By adding any user to predefined sudo group wheel will grant root privileges to execute any command as root user. Any attempt to use the sudo command for the non-sudo user will result in:

user is not in the sudoers file.  This incident will be reported.

In this tutorial you will learn:

  • How to create sudo user on RHEL 8 / CentOS 8 system.
  • How to add existing user to sudoers.

Read more

Changing the IP address in RHEL 8 from within GNOME is a matter of a few clicks

How to change IP address on RHEL 8 / CentOS 8 Linux

Most IPs these days are automatically assigned through DHCP by either your ISP or your home router. But there may come a time when you wish to opt for a static IP address and you will want to change it. It may be that you are configuring a home LAN and you don’t want to use DHCP or simply want a static IP address that you can access from outside your home. In this tutorial we will learn how we can change the IP address in RHEL 8 / CentOS 8 Linus system.

In this tutorial you will learn:

  • How to change the IP address in RHEL 8 / CentOS 8 using GNOME
  • How to change the IP address by editing configuration files
  • How to manually change your DNS server
  • How to restart networking in RHEL 8 / CentOS 8

Read more

RHEL 8 - HTTP & HTTPS protocol services. Open ports 80 & 443

RHEL 8 / CentOS 8 open HTTP port 80 and HTTPS port 443 with firewalld

This article explains how to open HTTP port 80 and HTTPS port 443 on RHEL 8 / CentOS 8 system with the firewalld firewall. HTTP and HTTPS protocols are primarily used by web services such as, but not limited to, Apache or Nginx web serves.

For more information about the firewalld firewall visit our introduction guide to firewalld syntax and usage guide.

In this tutorial you will learn:

  • How to open HTTP port 80 and HTTPS port 443.
  • How to open HTTP port 80 and HTTPS port 443 permanently.
  • How to list currently open ports/services.
  • How to close/remove HTTP port 80 and HTTPS port 443.

Read more

Check hostname on RHEL 8 Linux system using hostnamectl command

RHEL 8 / CentOS 8 change hostname

A hostname is the label or name linked to a device on a network. Its main purpose is to recognize a device on a specific network or over the internet. There are three different hostname types:

  • Static – Most of the time you will be interested in this type of hostname which is defined by user and the /etc/hostname configuration file.
  • Transient – This type of hostname is defined within kernel space and by default it is set to be the same as the static hostname. Transient hostnames can be set/updated by DHCP or mDNS at runtime.
  • Pretty – Pretty hostname allows for additional characters as per UTF8 character set hence serving rather only for presentation purposes. The pretty hostname also allows to include spaces.

This article will explain how to change or set hostname on RHEL 8 / CentOS 8 Linux server or workstation. To change hostname you will use the hostnamectl command.

In this tutorial you will learn:

  • How to change the static hostname.
  • How to change the transient hostname.
  • How to change the pretty hostname.
  • How to check the current hostname.

Read more

Stopping firewall on Red Hat Enterprise Linux 8.

How to stop/start firewall on RHEL 8 / CentOS 8

The firewall on RHEL 8 / CentOS 8 Linux system is enabled by default allowing for only few services to receive incoming traffic. FirewallD is the default daemon responsible for firewall security feature onRHEL 8 / CentOS 8 Server.

NOTE
The nftables framework replaces iptables as a default network packet filtering feature on RHEL 8.

The following is a list of default firewall opened ports and configured settings on RHEL 8 / CentOS 8 Linux system using the firewalld dynamic firewall daemon:

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

In this tutorial you will learn:

  • How to check the firewall status onRHEL 8 / CentOS 8.
  • How to stop firewall on RHEL 8 / CentOS 8.
  • How to start firewall on RHEL 8 / CentOS 8.
  • How to permanently disable firewall on RHEL 8 / CentOS 8.
  • How to enable firewall to start after reboot.

Read more

Linux Home Directory With Symlinks

How to Save Space with Symlinks and Mount Points

When you’re stuck with limited storage space, there’s always the option of purchasing more storage, but what if you can’t. Devices like Chromebooks and some laptops are fairly limited. Thankfully, Linux has a few tricks to help to make your Linux system administration job easier. Because Unix-like systems treat everything as a file, you can easily use symbolic links and mounted partitions to maximize space.

In this tutorial you will learn:

  • How to Use Symbolic Links at /home
  • How to Use Symlinks Elsewhere
  • How to Extend Your Storage with Mount Points
  • How to Make Effective Use of Networked Drives

Read more

JSch example execution

Executing commands on a remote machine from Java with JSch

SSH is an every-day tool of any Linux System Administration job. It is an easy and secure way to access remote machines on the network, transfer data and execute remote commands. Apart from interactive mode, there are many tools exist that enable automation of remote tasks that also rely on the existing ssh server/client architecture. For one such tool, you can read about ansible on Ubuntu for example. You can also find many implementations of the ssh client, but what about accessing the abilities ssh provides from code?

JSch is a project that implements the ssh protocol in Java. With it’s help, you can build applications that are capable to connect to and interact with a remote or local SSH Server. This way your application is capable of managing any aspect of the target machine that you could complete with your native ssh client, which gives yet another powerful addition to the already vast Java toolset.

In this article we will import JSch into our Java project, and develop the minimal necessary code pieces to create an application that can log in to a remote machine’s ssh server, execute some commands in the remote interactive shell, closes the session, then presents the output. This application will be minimal, however, it may give a hint of the power it provides.

In this tutorial you will learn:

  • How to import JSch into your Java project
  • How to setup the test environment
  • How to implement the UserInfo interface in a custom class
  • How to write an application that initiates interactive ssh session

Read more

Debian package

Easy way to create a Debian package and local package repository

This article describes a simple way to create a home made debian package and include it into a local package repository. Although we could use an existing Debian/Ubuntu package, we will start from scratch by creating and packaging our own trivial application. Once our package is ready, we will include it into our local package repository. This article illustrates a very simplistic approach, however it may serve as a template in many different scenarios.

In this tutorial you will learn:

  • How to create a trivial debian package
  • How to create a local debian repository
  • How to add the repository to the list of software sources

Read more

WPA Supplicant Configuration on Debian 10

How to Connect To WiFi From the CLI on Debian 10 Buster

Not all Debian systems have a GUI, and even though using WiFi on a server isn’t common, there are plenty of instances where you’re using WiFi with a headless setup, like on a Raspberry Pi. It’s not difficult to connect using only the tools provided out of the box in Debian.

In this tutorial you will learn:

  • How to Scan for a Network
  • How to Generate a WPA_Supplicant Config
  • How to Set up a WPA_Supplicant Config File
  • How to Connect to Your WiFi

Read more