Category Archives: Guides

A collection of tutorial, how to guides and tips on system administration or other technology related posts.

How to: Samsung Odyssey G9 firmware update

After a few hours of struggling to get my Samsung G9 monitor to “find update files” in order to flash a newer firmware I decided to make a post listing everything that you need to do ‘end-to-end’ to get a new firmware flashed on this device.

Continue reading

Finding the cheapest Virtual Private Server (VPS) providers (<$10 per year)

Sometimes we want to test software or do remote monitoring and testing that you may not want to pay a premium to do, or maybe you just want to do it as a hobby. In this post I will share some tips on where to find dirt-cheap providers of virtual servers (VPS).

I strongly advise against placing any production or critical workflows on any of these; use for testing or fun.

Continue reading

Install proxmox on a partition instead of a full-disk

By default, installing Proxmox with ZFS during the installation process will force you to use the entire disk for the root zpool. For most installs this is good enough. However, I like to do things differently sometimes.

I have a pair of Samsung 840 Pro 256GB SSDs that I wanted to use for my new homelab that I am currently building (moving from vmware to proxmox). You may be wondering why I want to install the operating system on a partition instead of an entire disk. Several reasons:
Continue reading

Troubleshooting networking issues after fresh install of proxmox VE 4.4

Writing a quick troubleshooting guide and informative post to address an issue I came across when installing Proxmox VE 4.4 on two of my machines.

On servers with more than two network interfaces Debian/Proxmox renames all interfaces and does not properly detect eth0 as the on-board ethernet as many other linux flavors. This may cause a mild headache if you just installed Proxmox with static IP addresses using the installer and upon reboot you can’t access any network resources. Continue reading

How to flash Seagate firmware onto HP enterprise MB2000EAMZF drives

In my previous post I talked about how HP locks down their hard drives (made by Seagate) with custom firmware that is exclusive to HP and with the huge caveat that if you do not have an HP storage controller the software update package provided by HP won’t work for you at all.

I spent the past 48 hours researching and trying different things. I unpacked the official HP firmware and tried to find the binary/firmware dump from within the .scexe file provided by HP on their website to no avail.  I even contacted HP for help and they would not be willing to help if the drives were not connected to HP hardware.

After some research I discovered that the HP MB2000EAMZF 2TB drive I had was almost exactly the same (part number) as the official Seagate ST32000644NS  drive after failing to be able to flash HPs firmware using HP’s bootable Firmware Update 8.3 (injecting the .scexe files inside this live CD) – I decided I really had nothing to lose but try the method I will explain below.
Continue reading

Useful software development tools

This post is meant to be updated with useful tools for software development. I will only classify the tool and post a link to it, this post will be helpful for someone just starting out in devOps

API

  • Postman: allows to share, test, document & monitor APIs.

IDE

  • Visual Studio: Windows software development IDE (C#/WPF)
  • Jetbrains Webstorm: Javascript IDE that becomes powerful with plugins (I use it for writing Go code)

Text editors

Must have tools

  • Git (or Github Desktop or Git for Windows)
  • Linux terminal/bash (available on any Mac/Linux machine, for Windows download Git for Windows linked above)

cPanel DNSonly bind recursion

In case you may be running into issues with named/bind domain service on cPanel DNSonly not responding to DNS queries recursively, I have a fix for you.

In older versions of named/bind9 used by cPanel if you wanted to allow anyone (or if you wanted security you could have setup an ACL, let’s assume you want to allow all) you could simply edit the configuration file and change “recursion no;” to “recursion yes;” to allow anyone to make queries to your DNS server for those domains or records that are not kept in your local server (ie: resolve yahoo.com)
Newer versions of BIND9/named changed their past behavior and now require a more specific configuration, just add these under “options” section

options {
...
allow-recursion { any; };
allow-query { any; };
allow-query-cache { any; };
...
};

I found a detailed explanation on why bind/named dns server changed its behavior, on the next page  a copy of the support bulletin from July 2007:

Overriding Google Compute Engine hostname from getting reset

On my last post, I explained how I am experimenting with Google Compute Engine (GCE) to host my backup DNS service and my post about configuring mailjet as an exim mail relay.

I have run into a few issues on Google Compute Engine, it looks like every time the instance gets a DHCP offer the hostname of the machine will get reset to the internal hostname, overriding whatever setting you may have set… this is bad news for a server that needs to respond to DNS settings.

After a few hours of digging and testing out different approaches, including trying to setup a DHCP hook to run the “hostname” linux command I came across documentation from Google talking about “custom metadata”.

How to setup Mailjet on exim for cPanel dnsonly on Google Cloud

I have been experimenting with Google Compute Engine (GCE) for the past few days. I wanted to migrate a slave DNS server to Google as an experiment and this blog post will talk about the shortcomings, my workarounds, configuration and tips to achieve the goal of having cPanel DNSonly installed and setup using Google’s infrastructure.

What is Google Compute Engine?

Google Compute Engine (or “GCE”) is Google’s answer to Amazon’s AWS, it basically offers you the ability to deploy Virtual Machines (VMs) at Google’s datacenters. In the most simplistics of setups you would use a single VM or “compute instance” and if you wanted to have a more complex setup you could deploy multiple instances in different geographic locations spread across different datacenters in the United States to achieve a more redundant setup or to provide you with better capacity for large traffic workflows.

It all depends on what your goals are, myself I am just starting out with a simple requirement. I would like to use a single compute instance running CentOS linux that runs cPanel DNSonly (proprietary control panel/dns clustering solution for cPanel servers).

The goal is not to host websites or any critical services on this instance, but rather only keep a copy of my DNS zones. If my experiment fails or my instance goes down or gets destroyed there won’t be any losses or damages for this experiment as my primary server is still running on Proxmox PVE.

The limitations of GCE… What I learned so far

GCE instances run behind Google’s firewalls and depending on the datacenter you decide to host your instance your VM will have an internal IP within that datacenters network scope/range (for example: us-central1 datacenter zone has a 10.128.0.0/20 range for all VMs).

This means that assigning a IPv4 public static IP, which is needed to allow anyone to query the DNS server we’ll be hosting inside this instance will actually have to forward packets to the instances internal network. Not really a big deal unless your application can’t be behind a NAT firewall like it is the case here.

For our intensive use and purposes it is fine. One important issue that I found is that doing any kind of e-mail server related activities on GCE is prohibited (source). You won’t be able to use SMTP (Simple Mail Transfer Protocol) port 25, 465 or 587 to send or receive email.

Now for a DNS server that will not be a mailserver this is not a blocker, but it is really a pain in the ass. Why? because monitoring scripts running on the server need to email the administrator to notify me of issues or errors so they can be investigated.

Continued on the next page.

SecureCRT mapping “Page Up” and “Page Down” for Nano/SSH

If you use a windows ssh terminal client, or even macosx’s terminal.app, the functionality of your page up and page down key may not behave like you want it to. For example, in SecureCRT using pageup will actually page up your scroll buffer, and pagedown will scroll down your page buffer.

You’ll need to remap your keys to send the correct signal to your terminal. Change it from the default system function to “send string” and the following strings:

PageUp = 33[5~
PageDown = 33[6~

33 is a shortcut for the ESCAPE key (esc) since in some programs you can’t type in the actualy escape key.

Here are some other codes as well in case you need to remap keys.

Pause = 32
Macro = 03 # Break (Shift-Pause)
Home = 33[1~
Insert = 33[2~
Remove = 33[3~ # Delete
End = 33[4~

In SecureCRT the area to remap your keys is Tools -> Keymap Editor.

This is especially handy if you use command line IRC clients such as Irssi or BitchX.