Sunday, April 27, 2025

Company IT Technician VS. IT-Outsourcing Entrprise Grade Support

I recently changed jobs, and my eyes have been blown wide open. Actually, until now, I did all sorts of odd jobs, most of them not even in tech. Things like brick and marble laying, working as a sports shop technician, and bike mechanic. I also worked in oil recycling, where we refined used cooking oil to resell either for research purposes or to established companies to create lubricants or biodiesel.
I am also a coach for trail running and expedition counseling. Additionally, I do a lot of health advisory work, as I have, through 25 years of constant self-education, a much wider view on health than most one-shop doctors, naturopathy practitioners, or even regular doctors.

In terms of IT, I was mostly peeking into projects, doing hands-on stuff like helping set up basic infrastructures, doing open-source to Microsoft migrations (and vice versa), cleaning up messy setups, and loads of physical and software-based repairs.

The thing is, when you work for just one company, after a few days you get the hang of it. You know what types of employees they have, what sorts of demands you might get. You know the physical servers. You know the physical PCs and equipment. You know the types of software used and what could become problematic. You understand how their infrastructure is set up.
After a while, you get totally comfortable and can solve any issue. You know that you can't really mess up — you aren’t doing anything too dangerous, thanks to your ever-increasing internal knowledge.

But when you are handling 10 companies, each with 5 to 10 locations — all installed by different people, not just IT specialists — your initial view, especially during the first three months, is total chaos.

Let me give you an example.
I have companies working with multiple Internet Service Providers. Some use multiple ISPs for redundancy, some delegate different services to different providers. Some sites have a single entry point, others multiple entry points.
In the server bays, sometimes — if I'm lucky — I find only Cisco switches. But that's almost never the case! If I walk through one of our bays, I usually find a messy mix: old Netgear, Cisco, Fortinet switches... then in different buildings, a random mix of manageable and non-manageable Huawei and TP-Link switches.

I might find a FortiGate firewall — but sometimes it's a Meraki. Sometimes they use Windows-based VPN services, paid VPN services, or the built-in FortiGate VPN from the firewall.
Printers could be simply connected directly to the network — or there could be a full print server setup: CUPS, PaperCut, or Windows Print Services.

WiFi?
Well, in very old buildings where there’s no network cabling, WiFi is set up in a messy mesh from the first connected router.

Backups? Again, a different story every time.
Sometimes there's just a simple Windows backup running to a local mini-server. Other times, multiple Synology NASes with VEEAM are on-site. Sometimes, those NASes are there and there’s also Azure Backup running.
Some companies still run Windows Server 2008. Others have a mix of all possible Windows Server versions plus a couple of Ubuntu servers.

Some companies have everything covered under an M365 plan. Others have a chaotic mix of physical on-premises servers and M365 — with or without directory synchronization.

And this mess? It doesn’t even scratch the surface of the 1% real catastrophes IT technicians face when managing big infrastructures.

A simple task like user creation becomes a nightmare.
In a one-shop setup, it takes 3 minutes: create user, add to groups, done.
In a multi-site environment, it’s different every time and full of procedures:
You have to create the user, add to the necessary groups, wait for GPOs to apply, handle printing setups, configure cloud and physical file sharing (which could be a mix of Google, SharePoint, local servers, or others), manage VPN settings, check whether the Windows server syncs with M365, and set up email filtering (Barracuda, Cisco, Mailinblack, etc.).
And of course, set that filtering either in Windows Server, Lighthouse, or both!

When you're handling all this, your mind is just expanding every day.
Your level of experience jumps, Diablo-style — 10x faster than a regular one-shop IT guy.
You collaborate daily with area experts: network engineers, phone system engineers, Android and iPhone specialists, cybersecurity experts, and so on.


[The goal of this write-up is simple:]
I'm advising anyone starting out in IT to join a company like this for a few years.
Your knowledge will become so strong that passing a Network or Sysadmin exam will feel like a flash!
Going for a degree afterward will also be ridiculously easy — even doing a Master’s in Cybersecurity or Networking.
Understanding real infrastructures gives you real knowledge.
Things like CMD line, PowerShell, Cisco/Huawei/Fortinet/Netgear supervisory interfaces will become daily interactions.
Writing reports and technical documents will be second nature.
And when you stand in front of professors with four degrees, you'll already have 100 times the practical experience.

Of course, specialized jobs are much more tranquil: easy, slow-paced.
But those are very elitist and highly sought-after.
The "throw-you-in-the-water" positions — the high-pressure, fast-learning ones — are often reserved for young, enthusiastic, and fast learners. They are usually team positions, meaning there are more openings.

{What I strongly recommend though: don’t settle for Level 1 or Level 2 remote tech support.
That will ruin your daily life.
You’ll be stuck on the phone, unplugging mice and recovering Excel files remotely —
all day long.
Often (especially in the US), your access rights will be heavily admin-blocked, limiting your ability to actually learn.}

Where I work, if I have 30 minutes free and don’t understand something, I can remote into any server, check connections, investigate event viewers, call a site to turn on a PC, or even drive there myself with my company car.


My Recommendations:

  • Keep your health in check: do sports, eat well, drink plenty of water, and sleep properly.

  • Add 2–4 extra work hours per day to explore and learn.

  • Avoid screen time before and after work.

  • Focus hard during work, but disconnect afterward.

  • Once you are comfortable, limit your working hours to the strict minimum.

  • Start learning new skills independently.

  • Prepare for exams!


You know, if you gave me a Windows Server with three redundancy servers, a nice BAY, 100 PCs, AD-Azure connection, a couple of NAS+UPS devices with, Azure Backup, and some extras, I could easily handle it in 15–20 hours per week.
Right now, I'm doing 50–60 hours of work weekly to master what I do.
Thanks to my health-conscious lifestyle, I still run every day and do strength and conditioning daily.
It’s tough during the week — my family misses me — but it's not permanent. On weekends, I am 100% with them anyway!!!

I hope this advice helps you and gives you some ideas for future-proofing your place in the IT world.


Sunday, March 23, 2025

Install MS Teams on linux

For certain situations using teams might be very essential. Right now I am dealing with different kind of government related officials and their way of communication, especially when going through documents together with screen sharing, is MS TEAMS.

I personally prefer Telegram, Signal, Jitsi, Apache.Openmeetings or any open source free service. Full web integration might be time to time itchy, but in most cases, if the client has a well working Firefox, Edge or Chrome, they work fine.

NOTE:In browsers WEB-RTC must be turned ON/Enable for online video calls!
I usually have this disabled due to IP leaks and vulnerabilities.

"A WebRTC leak occurs when the WebRTC protocol inadvertently exposes a user's actual IP address. These leaks typically happen due to the STUN (Session Traversal Utilities for NAT) requests that WebRTC uses to discover the public IP of devices behind a NAT firewall !"


If you did not want to install TEAMs, you can use it in a web browser as client or host too, if had an MS account !

Otherwise, the answer is yes, you can install it on any linux device. Here is what I do for debian based distros. I personally don't use Ubuntu, but it will work on that too. On my main machine I run Debian, have a Mint laptop and another small notebook with Fedora, what would be slightly different.

Install or Launch Microsoft TEAMS on Linux

### Install TEAMS by APT
    ## V1
        $ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

        $ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/ms-teams stable main" > /etc/apt/sources.list.d/teams.list'

        $ sudo apt update

        $ sudo apt install teams
    
    ##V2
        $ sudo mkdir -p /etc/apt/keyrings
        $ sudo wget -qO /etc/apt/keyrings/teams-for-linux.asc https://repo.teamsforlinux.de/teams-for-linux.asc
        $ echo "deb [signed-by=/etc/apt/keyrings/teams-for-linux.asc arch=$(dpkg --print-architecture)] https://repo.teamsforlinux.de/debian/ stable main" | sudo tee /etc/apt/sources.list.d/teams-for-linux-packages.list
        $ sudo apt update
        $ sudo apt install teams-for-linux

====================================
### Download .deb or APPIMAGE

        https://github.com/IsmaelMartinez/teams-for-linux/releases
        Install .deb with apt for solving dependencies
        If downloaded an appimage, just chmod +x on it and double
        click to launch .
====================================
### SNAP Install
        $ sudo apt update
        $ sudo apt install snapd

        $ sudo snap install teams-for-linux
====================================
### Flatpak Install
        $ sudo apt install flatpak

        # REPO:
        $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

        $ flatpak install flathub teams-for-linux
                                  teams.for.linux
 

You can also use the graphical install for flatpak and snap.                               
                        
 

Saturday, March 22, 2025

Mass OpenSSH Decryption - Linux Bash Script

Running all the decryption models on a file is a fast and efficient way to unlock an openssl coded file, document, binary or anything, if you were not sure, how it was encrypted. You can do it with this command :

$ openssl enc -d -aes-256-cbc -in secret -out decrypted.txt -pass pass:vgrohhfyek0wkfi5fv13anexapy3sso6
 
However, to insert all the cipher commands one by one, would take a good 15 minutes. 
Cipher commands (see the `enc' command for more details)
aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb       
aes-256-cbc       aes-256-ecb       aria-128-cbc      aria-128-cfb      
aria-128-cfb1     aria-128-cfb8     aria-128-ctr      aria-128-ecb      
aria-128-ofb      aria-192-cbc      aria-192-cfb      aria-192-cfb1     
aria-192-cfb8     aria-192-ctr      aria-192-ecb      aria-192-ofb      
aria-256-cbc      aria-256-cfb      aria-256-cfb1     aria-256-cfb8     
aria-256-ctr      aria-256-ecb      aria-256-ofb      base64            
bf                bf-cbc            bf-cfb            bf-ecb            
bf-ofb            camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  
camellia-192-ecb  camellia-256-cbc  camellia-256-ecb  cast              
cast-cbc          cast5-cbc         cast5-cfb         cast5-ecb         
cast5-ofb         des               des-cbc           des-cfb           
des-ecb           des-ede           des-ede-cbc       des-ede-cfb       
des-ede-ofb       des-ede3          des-ede3-cbc      des-ede3-cfb      
des-ede3-ofb      des-ofb           des3              desx              
rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc           
rc2-cfb           rc2-ecb           rc2-ofb           rc4               
rc4-40            seed              seed-cbc          seed-cfb          
seed-ecb          seed-ofb          sm4-cbc           sm4-cfb           
sm4-ctr           sm4-ecb           sm4-ofb           zlib 

 

LET'S WRITE A SCRIPT

 
$ nano mass_decrypt.sh
 
In the script:
  • Basically you just have to replace the password with your password, if you had it.
  • Put your input file in place of input_file.
  • Change output directory name if wanted.
-----------------------------------------------------

#!/bin/bash

password="vgrohhfyek0wkfi5fv13anexapy3sso6"
input_file="secret"
output_dir="decrypted_attempts"

# Create output directory
mkdir -p $output_dir

# Get a list of all available OpenSSL ciphers
algorithms=$(openssl list -cipher-algorithms)

echo "Starting mass decryption with all available algorithms..."

for algo in $algorithms; do
    output_file="$output_dir/decrypted_$algo.txt"
    echo "Trying $algo..."
    openssl enc -d -$algo -in $input_file -out $output_file -pass pass:$password 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "[+] Success with $algo! Output saved to $output_file"
    fi
done

echo "Decryption complete. Check the $output_dir directory for results."
-----------------------------------------------------
$ chmod +x mass_decrypt.sh
$ ./mass_decrypt.sh

Here you go, either you are looking for one particular file, maybe one particular string, you can filter with grep if needed. 

Thursday, January 30, 2025

DATE Chnaging python script

 I had a bunch of files that I smartly named by using a date format of DAY / MONTH / YEAR. The format was this "22_12_2025_" .
Except when you put them into name order, they get sorted by days first in a hectic monthly and yearly order and not by year and month, then day. Here is a python script to sort out this basic issue.

 
```python


import os
import re

# Path to the folder containing the documents
directory = "/home/levi/Documents/date"

# Function to convert date format from DD_MM_YYYY to YYYY_MM_DD
def convert_date_format(filename):
    # Use a regex to match the date pattern at the start of the filename
    match = re.match(r"(\d{2})_(\d{2})_(\d{4})_", filename)
    if match:
        day, month, year = match.groups()
        # Reformat to YYYY_MM_DD
        new_date = f"{year}_{month}_{day}_"
        return filename.replace(match.group(0), new_date)
    return filename

# Iterate over each file in the directory
for filename in os.listdir(directory):
    old_path = os.path.join(directory, filename)
    
    # Skip directories and only process files
    if os.path.isfile(old_path):
        new_filename = convert_date_format(filename)
        new_path = os.path.join(directory, new_filename)
        
        # Rename the file if the name has changed
        if old_path != new_path:
            os.rename(old_path, new_path)
            print(f"Renamed: {filename} -> {new_filename}")
```

Tuesday, December 3, 2024

VMWare automatic TOOLS update / Install issues on Guest #linux-host

Update 04/07/2025 :
VMWare keeps having issues under debian after updates with VMWARE Tools.
You can download it here for each client os if needed:

https://packages.vmware.com/tools/esx/latest/
------------------------------------------------------------

There is a simple solution if you cannot install the needed VMWare tools for shared folders, shared clipboard and improved speed and compatibility from the latest VMWare Workstation Pro.
Make sure that you have the latest VMWARE PRO and VMWare OpenVM Tools installed...

$ sudo apt-get install open-vm-tools-desktop
$ vmware -v

 

Illustration of VMware Workstation Pro interface with a virtual machine running on the desktop, showing the application dashboard and controls

Illustration of VMware Workstation Pro interface with a virtual machine running on the desktop, showing the application dashboard and controls


Then you make sure that your virtual machines CD rom / sata and all is in working order. Remove Floppy drive if needed. Remove CD / DVD if needed and READD it.

Launch VM. Selon your operating system, you simply download the necessary ISO from here, !!! inside the VM !!!:

https://packages.vmware.com/tools/releases/latest/

Illustration of VMware Workstation Pro interface with a virtual machine running on the desktop, showing the application dashboard and controls

In Windows, it is easy. Double Click the ISO downloaded, launch setup.exe and follow the install. I preferably would install the full package.

Illustration of VMware Workstation Pro interface with a virtual machine running on the desktop, showing the application dashboard and controls

Here you go, installing the latest VMWare Tools when the Workstations pro fails. 

 

_dnhyper

 

 

 

 

 

Wednesday, November 20, 2024

Install VMWARE on Debian Bookworm

Since VMWare is free, it is a good thing to go ahead and start learning it for your labs. I have been using Oracle Virtualbox forever and while I always can work around compatibility issues, running into constant hickups is normal. Right now, there is an issue of windows server recognizing virtual disks to create storage pool, because VBOX is not creating different friendlynames and disk names for disks so if two or 10 disks have the same friendlyname and the same identification name, despite the different volume IDs and different uids, ms win server cannot recognize them as two separate disks for storage pools. Anyways. This is why VMWARE can be a good alternative, maybe more complicated and complex, but better:

Firsts of all you update and upgrade everything:

$ sudo apt update -y && sudo apt upgrade -y

Then you download the VMWARE from here for exempe:

$ wget https://softwareupdate.vmware.com/cds/vmw-desktop/ws/17.6.1/24319023/linux/core/VMware-Workstation-17.6.1-24319023.x86_64.bundle.tar

Untar

$ tar -xvf VMware-Workstation-17.6.1-24319023.x86_64.bundle.tar

You make it executable:

$ chmod 766 VMware-Workstation-17.6.1-24319023.x86_64.bundle

Execute: 

$ /home/'Username'/Downloads/VMware-Workstation-17.6.1-24319023.x86_64.bundle

Build Modules

$ /usr/bin/vmware-modconfig --console --install-all
# It will look like this

 $ /usr/bin/vmware-modconfig --console --install-all
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
[AppLoader] Use shipped Linux kernel AIO access library.
An up-to-date "libaio" or "libaio1" package from your system is preferred.
[AppLoader] GLib does not have GSettings support.
Stopping VMware services:
   VMware Authentication Daemon                                        done
   Virtual machine monitor                                             done
make: Entering directory '/tmp/modconfig-bA4AXU/vmmon-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/6.1.0-27-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-27-amd64'
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/crosspage.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/moduleloop.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/sharedAreaVmmon.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/statVarsVmmon.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/bootstrap/bootstrap.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/bootstrap/monLoader.o
/tmp/modconfig-bA4AXU/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-bA4AXU/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-bA4AXU/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/bootstrap/monLoaderVmmon.o
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/bootstrap/vmmblob.o
/tmp/modconfig-bA4AXU/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
  LD [M]  /tmp/modconfig-bA4AXU/vmmon-only/vmmon.o
  MODPOST /tmp/modconfig-bA4AXU/vmmon-only/Module.symvers
  CC [M]  /tmp/modconfig-bA4AXU/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-bA4AXU/vmmon-only/vmmon.ko
  BTF [M] /tmp/modconfig-bA4AXU/vmmon-only/vmmon.ko
Skipping BTF generation for /tmp/modconfig-bA4AXU/vmmon-only/vmmon.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-27-amd64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-bA4AXU/vmmon-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-bA4AXU/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory '/tmp/modconfig-bA4AXU/vmmon-only'
make: Entering directory '/tmp/modconfig-bA4AXU/vmnet-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/6.1.0-27-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.0-27-amd64'
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/vnetUserListener.o
/tmp/modconfig-bA4AXU/vmnet-only/userif.o: warning: objtool: VNetCsumCopyDatagram+0x57: call to csum_partial_copy_nocheck() with UACCESS enabled
  LD [M]  /tmp/modconfig-bA4AXU/vmnet-only/vmnet.o
  MODPOST /tmp/modconfig-bA4AXU/vmnet-only/Module.symvers
  CC [M]  /tmp/modconfig-bA4AXU/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-bA4AXU/vmnet-only/vmnet.ko
  BTF [M] /tmp/modconfig-bA4AXU/vmnet-only/vmnet.ko
Skipping BTF generation for /tmp/modconfig-bA4AXU/vmnet-only/vmnet.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.1.0-27-amd64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-bA4AXU/vmnet-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-bA4AXU/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory '/tmp/modconfig-bA4AXU/vmnet-only'
Starting VMware services:
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done
   Shared Memory Available                                             done

Run VMWARE from your main menu...

_dnhyper


Monday, August 19, 2024

Long Term Ubuntu 24.04 LTS review

Let's start with my rig. I have a very basic work set up with a Ryzen 5 5600G, an asrock AM-B650 AM4, 32gigs of G skill DDR4 and a Samsung EVO 970 Gen3 512.
I installed ubuntu 4 months ago as my base OS.

Because of the small base HDD, what is actually still very much enough for me, as I filled it up only till like 200gigs, I did not use installation security partitioning, so home, var, etc are all on the same base partition. 

I started having little glitches the moment I started using multiple work-spaces and hot corners. Sometimes this resulted in just image freezing for maybe 20 second, then logging me out, sometimes completely rebooting. My system is always up to date. My major activity on the PC is learning and testing. Virtual box, Boxes, software testing, and some basic video editing. I monitor my PCs temp, so I never actually really go over 60°C and most of the time it stays well under 50°C.  

Anyways, I happened to still succeed in crashing Ubuntu in multiple instances weekly when trying out something new. I think that the harmony between packages and package-managers are not that sound. There are can .deb or .appimage files that you download from the internet, you can use apt as a package manager, flatpak and snap as package manager systems. If you did not find still whatever you need you could still install yum, dnf and npm. The mix and match, forgotten updates or forgotten type of installs create a kind of a mess. The ease of use time to time makes you forget about future stability.
One advice. If you wanted to keep your ubuntu pristine, stick to APT, .deb downloads and compiling from source. Don't use snap and flatpak if you can avoid and add safe a and secure apt repositories so you can enlarge your updates for your downloads. 

Finally, I messed up something while playing around with drivers and installation of Openshot and OBS. This sounds very basic, but at the end the GDM3 failed so miserably that I could not stand up the system. Gnome Display Manager - GDM3 error.
After succeeding downloading the best packages and installing them for me for proper OBS and Openshot use, I did a reboot and boom. GDM3 failed.
I did the necessary to make the system stand up, but before the CLI was shutdown too, I made a quick boot USB-key for debian net-install from command line. Non of this is easy as my internet is a usb-tethered 4g+ one right now, so when ubuntu shuts down my connection, I have to rewrite my netplan yum file as the name of my driver changes every time.

I like challenges so I played around with my CLI for like 8hours. I one by one uninstalled all packages and removed all GNOME related stuff. Everything. I uninstalled all software. I mean all and everything. No libreoffice, thunderbird, like nothing. I uninstalled system software like open-ssh client and server, ufw, rkhunter, all. Then did a reboot, system health and memory check from cli.

$ sudo apt-get install --reinstall linux-image-$(uname -r)

$ sudo apt-get install --reinstall linux-headers-$(uname -r)

$ sudo update-grub

I tried installing lightdm first, but did not work, so reinstalled "gnome everything" with all AMD drivers for my VEGA. Nothing. GDM3 error. 

Then I repeated the process by trying to use KDE instead of gnome, but that made a mass too. Anyway, I had fun in trying out saving my system and learnt a lot. 

One thing to take away from this experience. Basically if the kernel is not compromised, nearly every time you can have a CLI. If you had a CLI, your data is not lost. Probably if I went deeper in error analysing and checking the logs for more info, it would have been possible to make my system stand up, but after 8hours of checking back and forth my phone, I had enough and just installed Debian as my next, future proof OS. Will see how long it will last. I have very little important data and I store most of that in txt files and back that up on my dropbox and proton cloud so I am not worried about testing out new linux distros as my main os. I am running the latest Fedora on my laptop too and as I do little fidgeting on it, it stays very stable and fast, but with ton of updates. Will see, but I am keen to try Manjaro as I heard a lot of good stuff about it too.

Iperf for Network monitoring

 IPERF is a very simple command line tool the check network quality between two PCs. Client - Server. There are options for stressing the te...