Thursday, June 18, 2020

Linux - Ubiquiti Unifi Network Controller Installation/Upgrade

Ubiquiti Unifi Network Controller on Ubuntu

For anyone running their own Ubiquiti Unifi Network Controller on a Linux platform, you should check out the upgrade script written by Glenn Rietveld. This script is updated with every new release of the controller software and makes the installation and upgrade process much easier. Download the script here:
  • Prerequisites

    • apt-get update; apt-get install ca-certificates wget -y
    • wget
  • Installation

    • chmod +x
    • ./
After the script launches it will auto update to the latest version and will prompt which version of the Unifi Network Controller software you'd like to install. Follow the onscreen prompts and when it's done, you'll have the latest release of the Unifi Controller software running. It even has a function to run a backup of your controller before continuing with any actual software changes.

VMware - vSphere ISO Upload Certificate Error

VMware KB2147256

The operation failed for an undetermined reason. Typically this problem occurs due to certificates that the browser does not trust. If you are using self-signed or custom certificates, open the URL below in a new browser tab and accept the certificate, then retry the operation.


Saturday, July 14, 2018

iPhone Data Usage Tips

iPhone Data Usage Tips

If you're on a limited or shared data plan, downloading a bunch of app updates or IOS upgrade over your cellular data can be really frustrating. The good news is, there are several options within IOS 11 to tweak the cellular data usage settings so you can avoid downloading many of the typical bandwidth hogs unless you're on WiFi.


  • Disable Cellular Data - Automatic Downloads
  • Disable Cellular Data - Video Autoplay
  • Disable - Wi-Fi Assist
  • Disable Cellular Data  - Background App Refresh

Automatic Downloads

On IOS 11, go to Settings -> iTunes & App Stores: Set Use Cellular Data to "Off".

Video Autoplay

On IOS 11, go to Settings -> iTunes & App Stores -> Video Autoplay: Set to Wi-Fi Only.

Wi-Fi Assist

On IOS 11, go to Settings -> Cellular: Set Wi-Fi Assist to "Off".

Background App Refresh

On IOS 11, go to Settings -> General -> Background App Refresh -> Background App Refresh On: Set to Wi-Fi.

Disable Cellular Data

If all else fails, you can simply disable use of all cellular data, at least temporarily until your data usage cycle resets. Go to Settings -> Cellular: Set Cellular Data to "Off".

Sunday, July 8, 2018

Running Linux on Windows (WSL)

Running Linux on Windows (WSL: Windows Subsystem for Linux)

The Windows Subsystem for Linux is fully available in Windows 10 release 1709 (Fall Creators Update). This lets you drop into bash from a Windows command prompt. The default distributions available in the Microsoft Store are Ubuntu, openSuse Leap, SUSE Linux Enterprise Server, Debian, and KALI. But what if you want to run another version like CentOS or similar? That's where RoliSoft's WSL Distribution Switcher comes into play. This python based set of scripts allows you to download Docker hub versions of Linux and run them from the WSL command line. Here's what I had to do to get CentOS 7 running on my Windows 10 machine.


Installing WSL Feature in Windows 10

From the Windows search bar type Windows Feature and you should see the "Turn Windows Features On and Off" program.

Scroll all the way to the bottom of the list and you should now see the "Windows Subsystem for Linux". Check the box to the left and click OK to install. Please note, this will require a reboot of your computer to complete.

Install Python3 for Windows

I have written a separate blog post on installing Python 3.7 for Windows. You can view that here.

Install WSL Distribution Switcher

Before you can run the WSL Distribution Switcher Python scripts, you'll need to prep the WSL environment so everything will work properly. The two basic commands related to WSL you'll need to run are lxrun.exe and wslconfig. By default there isn't a Linux distribution loaded after the WSL feature is enabled. If you only wanted to run one of the distributions available from the Microsoft Store you could simply go there and download/install your flavor of choice. However if you want to run a distribution not currently available on the store, this is what you'll need to do.

Install the Legacy WSL Ubuntu distro:
lxrun.exe /install

Next run the following to verify that the distribution is installed:
wslconfig /list /all

You'll see where any previously installed distributions from the Microsoft Store (Ubuntu in this example) are installed and set to the default. In order for the Distribution Switcher scripts to run however, we need the Legacy distro as the default.

wslconfig /s legacy

In order for everything to install smoothly, the root account needs to be the default user for the bash shell. To set this run:
lxrun /setdefaultuser root

Now that everything is properly prepared for the Distribution Switcher scripts, the installation should run normally. CD to the directory where you downloaded the WSL Distribution Switcher Scripts, in this example E:\Linux and run the installer:
python3 centos:latest

You can see from the above screenshot CentOS 7.5 is installed and I was able to update via a yum update command. To get to the Linux shell from a Windows command prompt simply type bash.

You can now install other Linux distributions from the WSL Distribution Switcher as necessary.

Here's a repository list they support:

Installing Python 3.7 on Windows

Installing Python 3.7 on Windows

Python is a great scripting language and is available for both Linux and Windows. The installation is very simple and straightforward and will allow you to run python scripts directly from a Windows command prompt.



Start by browsing to the homepage from the link above and select the latest version. This example is for Python 3.7. I am running Windows 10 so I elected to download the Windows x86-64 executable installer.


Launch the above downloaded application and you should see a typical Windows application install wizard. Be sure to check both boxes for all users, and to add Python to PATH. This makes running python commands from a command prompt much easier.

Click "Install Now" and the installation should progress.

Once you see the "Setup was successful" screen, click the Close button. To verify if Python is now installed and working browse to the installation directory (Default: C:\Users\Username\AppData\Local\Programs\Python\Python37).
If you see python.exe and etc as listed above, you should be able to execute python commands/scripts from the command line. If you want to do some of your own scripting, I would highly recommend an editor such as PyCharm from Jet Brains.

Tuesday, March 13, 2018

Exchange 2010 - Outlook Web App Didn't Initialize

Outlook Web App Didn't Initialize

I recently ran across this problem again and decided I should blog this issue for future reference. Unfortunately Exchange 2010 is still used today even though it is no longer officially supported by Microsoft. When you do run across odd issues with older software it can be a real pain to get things working properly again. In this case I had to migrate an Exchange 2010 server to VMware because that was the company's e-mail server with the intention of migrating it to Exchange 2016 later. This is running on Windows Server 2012 R2.

Outlook Web App Error:

After migrating the server I was getting the following error when attempting to access "Outlook Web App didn't initialize. If the problem continues, please contact your helpdesk." This is a super helpful and descriptive error, thanks Microsoft!

This error actually has to do with a mismatching IIS virtual directory authentication method and Exchange's Client Access OWA authentication method.


The proper settings if you want to enable forms based authentication (ideal for users outside the local domain), you'll want to set the Exchange OWA authentication method to Forms Based and select the local domain for your user accounts.

Start by browsing to MS Exchange->Server Configuration->Client Access: then select owa (Default Web Site) from the Outlook Web App tab.

Make note of the Internal and External URLs as those could be different.

Next click the "Authentication" tab from the owa (Default Web Site) Properties menu.

Make sure you select "Use forms-based authentication" then select the logon format that you prefer. I recommend "User name only" and setting the Logon domain to the company.local or whatever is appropriate for your organization.

You'll want to repeat the process with the ecp (Default Web Site) under the Exchange Control Panel tab as well. Make sure you have "Use forms-based authentication" set.

The next step is to verify that the authentication settings are correct within IIS. In my example I opened the Default Web Site and browsed to ecp and owa. On each of them select the Authentication icon. 

Make sure the "Basic Authentication" setting is enabled and the rest are disabled

If you run basic authentication you'll also want to ensure that the website requires SSL to connect. Select the SSL Settings icon then check the box "Require SSL" and make sure "Client certificates" is said to "Ignore".

Additional Notes:

If you receive the WINRM error when trying to access the Exchange Management Console (EMC) then check to make sure the IIS Default Web Site has an entry for all available IPs on port 443 and 80. This can happen if you use named redirects with multiple NICs/IPs.

Saturday, March 3, 2018

Ubuntu Server - Landscape

Ubuntu Server - Landscape

Ubuntu's Landscape 17.03 is a centralized update management server for Ubuntu Server and Desktop. It allows you to configure a central Landscape server and the join your Ubuntu machines to that Landscape server with the Landscape client. The setup is relatively painless and provides some nice reporting as well as centralized management. Very handy stuff from Ubuntu! The free license will allow for management of 10 stand alone servers. You can purchase additional server licenses directly from Canonical with their advantage support.

Landscape Server Install:

After your initial Ubuntu server installation completes (I ran LTS 16.04) from the SSH prompt run the following:

 sudo add-apt-repository ppa:landscape/17.03 

 sudo apt update 

 sudo apt install landscape-server-quickstart 

Once the installation has completed you'll be able to browse to https://hostname.FQDN/ and access the management website for Landscape. The first step is to setup all of the account settings so you can start deploying the clients. Click on "Account" and enter the appropriate information. To get the information you'll need for the client install later click the link on the left side of the page that says "following these instructions".

On the account page you'll want to enter your company name or designation and optionally you can input a registration_key.

The client setup page gives an example of what to enter to install the Landscape client on your Ubuntu servers. I'll go into more depth on that setup in the next section.

Landscape Client Install:

The client install should be run on any Ubuntu server you wish to manage from the Landscape server. I ran this on both version 14 and 16 servers. The first thing you'll need to do is copy the server certificate to the client's you want to register. I used WinSCP to download the certificate to my workstation and then used WinSCP again to copy the certificate to the client computer. You could also do this using ssh directly.

Landscape server certificate path:  /etc/ssl/certs/landscape_server_ca.crt 

Copy to the client here:  /etc/landscape/server.pem 

Now edit the  /etc/landscape/client.conf  file and add the following line to the end of the file:

 pico /etc/landscape/client.conf 

It probably looks something like this:
log_level = info
data_path = /var/lib/landscape/client
account_name = standalone

Now add the following line to the end of the file:
 ssl_public_key = /etc/landscape/server.pem 

Now you can run the installation on the client:

 sudo apt-get update 

 sudo install landscape-client

sudo landscape-config --computer-title "My Web Server" --account-name standalone -p registration_key --url https://hostname.FQDN/message-system --ping-url http://hostname.FQDN/ping

You will be prompted to enter some information on screen. Most of that is not critical and can be changed later. The defaults are likely what you want. The last step will ask you to register the client with the server, select Y there and then go back to the Landscape web application and you should now see your computer under the "Computers" tab.

That's pretty much all there is to it, you can also use Landscape to manage cloud based Ubuntu deployments including within AWS.