The HendGrow site and channel was created to provide how-to guides that empowers the viewer to implement various solutions on their own. Maybe the viewer is looking for a free firewall solution to protect their family or business. Decided to open a store and needs a web or retail Point of Sale (POS) system. Small company that requires a ticketing system to keep track of all the daily tasks. The HendGrow site and channel aims to provide guides and walk-throughs on these and various other topics. The topics are either directly from our subscriber requests or derived from solutions we have implemented, that we believe could add value to the community. It’s our way to give a little back and hopefully help a few people along the way.

Visit the youtube or LBRY channels

OSSEC Open Source HIDS with Web user interface. (updated for Ubuntu 20.04 & OSSEC 3.6.0)

—– Guide Starts Here —–

urls used:

OSSEC Server/Agent – https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz

OSSEC Windows Agent – https://updates.atomicorp.com/channels/atomic/windows/ossec-agent-win32-3.6.0-12032.exe

Start with installing some packages on Ubuntu 20.04.

ssh to your ubuntu 20.04 server

$ ssh yoursuser@yourserverip

$ sudo apt update && sudo apt upgrade

$ sudo apt install -y php php-cli php-common libapache2-mod-php apache2-utils sendmail inotify-tools apache2 build-essential gcc make wget tar zlib1g-dev libpcre2-dev libpcre3-dev unzip libz-dev libssl-dev libpcre2-dev libevent-dev build-essential

Enter you password when prompted.

$ sudo systemctl enable apache2

$ sudo systemctl start apache2

$ sudo a2enmod rewrite

$ sudo systemctl restart apache2

OSSEC Install

$ wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz

$ sudo tar -xvzf 3.6.0.tar.gz

$ sudo /home/hgadmin/ossec-hids-3.6.0/install.sh 

Provide your preferred input as prompted. For the demo we opted for the below:

The inputs we selected for the demo
Input your server IP Address or hostname

Installing the Web User Interface.

$cd /tmp/

$ sudo git clone https://github.com/ossec/ossec-wui.git 

$ sudo mv /tmp/ossec-wui /var/www/html

$ cd /var/www/html/ossec-wui

$ sudo ./setup.sh

When prompted enter your chosen username and password. For the web server name enter www-data.

Set Permissions

$ sudo chown -R www-data:www-data /var/www/html/ossec-wui/

$ sudo chmod -R 755 /var/www/html/ossec-wui/

Restart Apache and launch Web User Interface

$ sudo systemctl restart apache2

Open browser and navigate to http://your-servers-ip/ossec-wui

Configure WUI port to :8090

One way to change the WUI port is to edit the 000-default.conf file.

vi /etc/apache2/sites-enabled/000-default.conf

Add the following to the file


<VirtualHost *:8090>
DocumentRoot /var/www/html/ossec-wui
</VirtualHost>

Edit the /etc/apache2/ports.conf file and add the port you specified. In our case 8090.

sudo vi /etc/apache2/ports.conf

Restart apache and test.

sudo systemctl restart apache2

Open your browser to http://your-ip-address:your-port / http://192.168.68.143:8089

Windows Agent Install

Download the OSSEC agent from – https://updates.atomicorp.com/channels/atomic/windows/ossec-agent-win32-3.6.0-12032.exe

Open the command prompt and ssh to your ossec server.

ssh hgadmin@192.168.68.123

launch the OSSEC Agent Manager

sudo /var/ossec/bin/manage_agents

Input option (A) to add a new agent. Input your windows machines name when prompted.

Input the windows machines IP when prompted and confirm adding with responding (y)

Launch the executable agent file you have downloaded as administrator. Should be in your downloads folder.

Open the OSSEC agent as administrator that you installed and enter the IP address of your OSSEC server.

Open the command prompt window that you used to ssh to the OSSEC server. Extract the Key by inputting option (e) and then the corresponding Agent ID for the windows machine in the OSSEC Agent Manager that should still be open.

Highlight and copy the key, update the OSSEC Agent. Save the updated info and start the OSSEC Agent.

Open your web browser and navigate to your OSSEC Servers IP and specific port if you set one.

—– Guide Ends Here —–

How to install QRadar CE 7.3.3. via the OVA file provided by IBM.

During this walk-through we will demonstrate how in download and install QRadar CE 7.3.3. via the OVA file provided by IBM. QRadar CE is a fully-featured free version of QRadar that includes a limited 50 events per second (EPS) & 5000 network flows a minute (FPS) perpetual license. It is the perfect solution to start learning QRadar or use it to monitor your home network.

*Q1 LABS, QRADAR and the ‘Q’ Logo are trademarks or registered trademarks of IBM Corp. Trademarks and related content are owned by their respective companies / owners.

—START—
QRadar 733 Steps

1. Download the OVA from – https://developer.ibm.com/qradar/ce/

2. Double click on the OVA file you just downloaded to kick of the import to VirtualBox.

3. Initial login. User = root. / Password = password

4. When prompted enter your chosen password and confirm for the password change.

5. Type in ./setup.sh to kick off the install.

6. Accept the terms by pressing Enter.

7. Enter password of your choice for the web interface.

8. Open a compatible web browser and input the IP of your QRadar CE Server, In our example – “https://192.168.68.141”

Urls used

https://developer.ibm.com/qradar/ce/

https://www.virtualbox.org/

—END—

How To Secure & Install MariaDB On Ubuntu Desktop 20.04

—START HERE—

Follow this guide to install and start securing MariaDB on Ubuntu desktop 20.04.

  1. Update Ubuntu 20.04 and install MariaDB Server.

sudo apt-get update

sudo apt-get install mariadb-server

  1. Secure the MariaDB installation by running the included security script.

sudo mysql_secure_installation

Press Enter

Sec_mysql_enter

You will be prompted to set a root password. Input Y and input the new password for root and validate it.

Set root password

The Next prompt will ask if you want to remove anonymous users. Input Y

anaon_remove_users

Prompt will request input to disallow remote root login. Input Y

Prompt will request input to remove the test database and access. Input Y

test db remove

Last prompt will request input to reload the privilege tables. Input Y

Last Prompt

Login to the MariaDB server and confirm its running.

sudo mariadb

Enter the password you decided on for root during the first prompt.

Login MariaDB

Create user to access DB other than root.

GRANT ALL PRIVILEGES ON *.* TO ‘sqladmin’@’localhost’ IDENTIFIED BY ‘password_here’;

quit;

quit;

End


You should always harden your servers.

Some useful links:

Secure your MariaDB installation – https://mariadb.com/kb/en/securing-mariadb/

Ubuntu Security and Server hardening – https://ubuntu.com/security

How to Install RT 5. Robust, High Volume Ticketing System! Ubuntu 20.04 with MariaDB and Apache2!

This walk-through aims to guide you through the process of Installing the world class, industry tested ticket system known as Request Tracker or RT. We start with a solid Ubuntu 20.04 base as the server combined with MariaDB for the Database and Apache2 as the web server.

You will need a base install of Ubuntu 20.04. Once complete ssh to your Ubuntu 20.04 server.

ubuntu 20.04 uname output

ssh to the Ubuntu server you have provisioned. Ubuntu 20.04 was used for this walk-through.

ssh username@your_servers_ip


Installing the some system base packages.

  1. Ensure the system is up to date.

sudo apt-get update

1.1 Install the some system base packages

sudo apt install build-essential apache2 libapache2-mod-fcgid libssl-dev libexpat1-dev libmysqlclient-dev libcrypt-ssleay-perl liblwp-protocol-https-perl mariadb-server mariadb-client

1.3 Installing some Perl modules

sudo /usr/bin/perl -MCPAN -e shell

1.3.1 When prompted with the below, input yes then q to quit.

Would you like to configure as much as possible automatically? [yes]

1.3.2 Installing the required Perl modules

sudo cpan install Parallel::Perforce

sudo cpan install HTML::FormatText

sudo cpan install HTML::TreeBuilder

sudo cpan install HTML::FormatText::WithLinks

sudo cpan install HTML::FormatText::WithLinks::AndTables

sudo cpan install DBD::mysql

sudo cpan install LWP::Protocol::https


General RT5 Installation

  1. Download and unpack the RT5 tar file to a temporary location.

wget https://download.bestpractical.com/pub/rt/release/rt-5.0.0.tar.gz

2.1 Extract / unpack the file to /tmp and run the ./configure script provided.

tar xzvf rt-5.0.0.tar.gz -C /tmp

cd /tmp/rt-5.0.0/

sudo ./configure

2.2 Ensure the required Perl and system libraries are installed with the command below.

sudo make testdeps

2.2.1 If the script reports any missing dependencies run the fixdeps command.

sudo make fixdeps

2.2.2 During our demo install we were promoted with the following three questions while running the fixdeps script. We opted to answer yes.

Perl Option 1
Perl Option 2

Once the fixdeps script is complete validate all dependencies are present by running the testdeps script to confirm. You should see the below.

All Perl Dependencies found (RT5)

2.3 Run the make install with appropriate permissions to install RT5

sudo make install

  1. Initialize the Database for RT5

sudo make initialize-database

3.1 If the initialization fails run make dropdb and then rerun make initialize-database. Once completed successfully you should see the following.

RT5 DB init

3.1.1 Change the default password for the RT database user. (We recommend for production systems to also change the user.)

sudo mysql -u root -p

ALTER USER ‘rt_user’@’localhost’ IDENTIFIED BY ‘your_new_rt_pass’;

commit;

quit;

RT5 DB User Password Change

Although not covered in this guide, we recommend securing your MariaDB by running the below script.

sudo mysql_secure_installation


3.1.2 Update the RT_Config.pm config to reflect our password change we did for the RT database user rt_user.

sudo vi /opt/rt5/etc/RT_Config.pm

Edit the section as shown below:

Original Config – RT5 database user

RT5 DB user org pass img

Updated Config – RT5 database user

RT5 DB user pass updated

3.2 Confirm we have a working RT instance running with the standalone rt-server.

sudo /opt/rt5/sbin/rt-server –port 8080

3.2.1 Open your web browser and navigate to your servers ip or FQDN and port 8080. For our demo server it is http://135.181.98.216:8080/. You should see the login page.

RT 5 Initial login page tst img

NOTE: If this a demo system you can stop here. For production use we recommended configuring RT to use a production ready web server like Apache2.


Configure RT5 to work with the Apache2 web server

  1. Create a RT5 sites-available configuration file.

sudo vi  /etc/apache2/sites-available/rt5.conf

4.1 Populate the file you just created with the information below. (link to conf file or image)

https://hendgrow.com/gitp/RT5/rt5.conf
RT5_Apache2_conf_img

4.2 Edit the apache2.conf file and add the information below. (link to conf file or image)

sudo vi /etc/apache2/apache2.conf

https://hendgrow.com/gitp/RT5/RT5_apache2.conf_add.txt

4.2.1 Add the following

RT5_Apache2_1.png

4.3 Enable the RT5 site

sudo a2ensite rt5

4.3.1 Disable the default site

sudo a2dissite 000-default

4.3.2 Check the config

sudo apachectl configtest

4.3.3 Restart Apache

sudo systemctl restart apache2

4.4 Open your web browser and navigate to your servers ip or FQDN. For our demo server it is http://135.181.98.216. You should see the login page.

4.4.1 You should see the login page.

RT_login_page.png

NOTE: The default credentials for RT5 are:

User: root | Password: password

Your first step once logged in is to change the root password! It is a SECURITY risk!


This guide does not cover server / application hardening and security as it is a broad topic and not the aim of this guide. You should always harden your servers.

Some useful links:

Secure your MariaDB installation – https://mariadb.com/kb/en/mysql_secure_installation/

Apache2 Security Tips – https://httpd.apache.org/docs/2.4/misc/security_tips.html

Ubuntu Security and Server hardening – https://ubuntu.com/security


This guide stops here.

There still is allot to do like configuring an RT email gateway, task scheduler, full text search and general system security etc. That’s potentially for a future guide should there be demand.

youtube.com/HendGrow Subscribe if you found this valuable!

Web hosted POS & e-commerce solution

During this walk-through we will guide you on how to install a web based POS and ecommerce solution that can be used to sell your goods via your physical and online stores from the same backend. If you don’t have a WordPress base to start with follow the links below. (This was done as a response to a request by on of our subscribers)

How to install the WordPress base server: https://youtu.be/vvOES877BAM How to secure your WordPress Server: https://youtu.be/XocAaMKuQ_k

Installing WordPress on Ubuntu 20.04 (Start to Finish under 10 min)

In this walk-through we will install all the components needed to run WordPress on your own local or cloud Ubuntu 20.04 server. This video was done as a response to a direct request.

The Base Install to run WordPress

ssh to the linux server you have provisioned. We used Ubuntu 20.04 for this walk-through.

We will install Apache, MariaDB, PhP7.4 and WordPress.

$ ssh root@95.217.222.229

Install Apache Web Server

$ sudo apt-get update

$ sudo apt-get install apache2 apache2-utils

$ sudo systemctl enable apache2

$ sudo systemctl start apache2

Test apache works by navigating to your servers Ip with a web browser. You should see the below

Image of Apache2 installed and working.

Install MariaDB Database Server

$ sudo apt-get install mariadb-server mariadb-client

Set the root password for the Database Server

$ sudo mysql_secure_installation

Enter current password for root (enter for none): (Press Enter)

Enter your new password and confirm

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

mysql_secure_installation image of output

Install php

$ sudo apt-get install php7.4 php7.4-mysql php7.4-cli php7.4-cgi php7.4-gd libapache2-mod-php7.4

To test create a file called info.php

$ sudo vi /var/www/html/info.php

Add the following to the file:

phpinfo text for info.php test

Test php works by navigating to your servers Ip with a web browser. in our case it was http://95.217.222.229/info.php

You should see the below:

info.php page image

Install WordPress

First we need to get the latest WordPress files.

$ sudo wget -c http://wordpress.org/latest.tar.gz

Extract the files

$ sudo tar -xzvf latest.tar.gz

Move the WordPress files to /var/www/html

$ sudo rsync -av wordpress/* /var/www/html/

Set file / directory permissions

$ sudo chown -R www-data:www-data /var/www/html/

$ sudo chmod -R 755 /var/www/html/

Create the WordPress user and Database

login to the MariaBD server with the user root and the password you entered earlier.

$ mysql -u root -p

CREATE DATABASE wp_pos;

GRANT ALL PRIVILEGES ON wp_pos.* TO ‘wpposuser’@’localhost’ IDENTIFIED BY ‘your_DB_password_here’;

FLUSH PRIVILEGES;

EXIT;

Update the WordPress config file with Database and user information needed.

Navigate to /var/www/html/

$ cd /var/www/html/

$ sudo cp wp-config-sample.php wp-config.php

$ vi /var/www/html/wp-config.php

Enter the relevant details as seen below:

wp-config settings for walk-through

We now need to rename the default Apache index file so the wordpress one is the active one.

$ mv index.html index.html.old

Restart apache and Database to ensure the new configs are being use.

$ sudo systemctl restart apache2.service

$ sudo systemctl restart mysql.service

Initial WordPress Install

Test WordPress is ready for initial install navigating to your servers Ip with a web browser. you should see the following:

Wordpress Initial Install web page

If you see the page click on “Continue”. You should be presented with the page below. Complete the details and click “Install WordPress”

Creds input for WP install

Once the installation is complete login with the credentials you have just provided.

Wordpress Initial login picture

If your login is successful. You will be presented with the screen shown below. Your WordPress site is now up and running!

WordPress initial login

Build & run your own Minecraft server

We walk-through how to build your own Minecraft server & run it for under €10 a month. This video was inspired by one of our kids that required a Minecraft server to play on with friends.

We have hosted the following open Minecraft server should you want to test before building. https://hendcraft.com/hcaws/

Note: The aim is to show you how to build a minecraft server. What we don’t cover in this setup is how to secure the server. Highly recommend that you always follow industry security & hardening standards.

Steps. PDF or follow below.

We walk-through how to build your own Minecraft server & run it for under €10 a month. This video was inspired by one of our kids that required a Minecraft server to play on with friends.

We have hosted the following open Minecraft server should you want to test before building. https://hendcraft.com/hcaws/

Note: The aim is to show you how to build a minecraft server. What we don’t cover in this setup is how to secure the server. Highly recommend that you always follow industry security & hardening standards.


–Start–


URL’s used

Hetzner Cloud – https://accounts.hetzner.com/login

Minecraft Server Download – https://www.minecraft.net/en-us/download/server/


–Steps–

  1. Navigate to https://accounts.hetzner.com/login and commision your selected ubuntu server.
  2. Open your ssh client and ssh to the server you just commissioned.

ssh root@your-server-ip

  1. Enter the password that was provided to you in the mail from Hetzner. It will prompt you to select a new password. input your password and again to confirm it.
  2. update your server instances software

apt-get update

apt-get upgrade

  1. Next install Java as Minecraft version we installing requires it. When prompted if you want to continue select yes.

apt-get install openjdk-14-jdk

  1. Validate the JDK install

java –version

  1. Create a directory for the Minecraft server to run.

cd /opt

mkdir minecraft

cd /opt/minecraft

  1. Download the “server.jar” from the minecraft.net site.

wget https://launcher.mojang.com/v1/objects/a412fd69db1f81db3f511c1463fd304675244077/server.jar

  1. Install screen. Screen provides the ability to run multiple shell sessions from a single ssh session. This will allow us to launch the minecraft server and detach from the session allowing the Minecraft server to continue to run.

apt-get install screen

  1. Launch the Minecraft server for the first time.

cd /opt/minecraft

java -Xmx2GB -Xms1G -jar server.jar -nogui

  1. You will be prompted to agree to the eula. Open the eula file with a file editor like vi or nano.

vi eula.txt. (Update the line “eula=false to eula=true“)

  1. Once the eula has been accepted. Launch the Minecraft server again. Once running you can disconnect from the screen session with Ctrl+a+d

cd /opt/minecraft

java -Xmx2GB -Xms1G -jar server.jar -nogui

  1. Launch your minecraft client. Select Play.
  2. Select Multiplayer
  3. Select Add Server
  4. Input the details of your server. Provide a name and enter your server public IP. The select done.
  5. Select the server entry you just added and click on “Join Server”

Blocking https sites with IPFire

Got a request from “dedu mihail” & “Amandeep Singh” on how to block https sites. In this quick walk-through we show how to use the proxy with manual settings which is needed to block https urls / sites. It does not work via transparent mode. (We could not find a simple way to make it work via transparent mode).

1. Configure the end user machine to use the proxy.

2. Configure the proxy on IPFire to use the url filter capability.

3. Configure the url filter to block the https url 4. Configure the url filter to allow restriction bypass for listed IP’s.

Your free & private VPN solution! Use it while on the go! (A how to guide)

Ever been away from home or office and wanted to use a VPN securing your network connection. (You should always use a VPN when on un-trusted networks!) You also never sure what the “Free” VPN providers are doing with your logs. Why not setup your own VPN, that you have full control off. In this how to guide we will go through the installation of IPFire with OpenVPN and the relevant configurations. This will enable you to make use of your own private VPN when away from home or the office.

NextCloud Setup – Azure

In this walk-through we will demonstrate the basic steps used to install NextCloud on Azure.

This walk-through will include:

1) Create the Virtual Machine running Ubuntu

2) Install snap & NextCloud via snap on the Virtual Machine.

3) Configure Static IP with DNS / FQDN.

4) Configure Firewall rules.

5) Configure HTTPS with lets Encrypt

6) Test the the NextCloud instance is accessible.

Commands used:

  1. sudo apt-get update
  2. sudo apt-get install snap
  3. sudo snap install nextcloud
  4. sudo nextcloud.enable-https lets-encrypt

Keep in mind this is only a basic install and will need to be secured using best security practices etc. If enough demand, we might do a future walk through on how to secure your public facing systems.