VirtualBox and Bridged Networking on a Headless Ubuntu Server Host

In the previous VirtualBox post, I explained how (and how not) to set up bridged networking with LAN access to a Virtual Machine running on a Windows XP Host. Today I will explain how to do the same thing (without the How Not To part) using a virtual Machine running on a Headless Ubuntu Server.

For this example we can assume a few things:

  1. You have already set up a headless VirtualBox server
  2. You have already created a Virtual Machine instance. For this sample, we will call the Virtual Machine “MyVM”.

Believe it or not, setting up bridged networking to allow your VM to access your network is pretty simple and completed by issuing the following VBoxManage command in a terminal window.

Command: VBoxManage modifyvm “MyVM” –nic1 bridged –nictype1 82540OEM –bridgeadapter1 eth0

Break it down

To understand a bit more about what’s happening here, let’s break down the command string from the beginning.

VBoxManage – This is the command line utility used to access, control, configure and manage your VirtualBox Virtual Machines.

modifyvm – This command allows you to make changes to the properties of a Virtual Machine, including the amount of memory assigned, nic interfaces, Virtual device boot sequence, number of CPUs, etc. It can be compared to the Settings dialog of the VirtualBox Graphical user Interface. The command line version, however, offers additional advanced options not found in the GUI.

Note: the VM must be registered within VirtualBox, but must not be running

MyVM” – This is simply the name of the VM you want to modify.

–nic1 bridged – The –nic1 parameter is used to set the type of networking your VM should use for each of the it’s virtual network cards. You can have more than one network card in use for a VM so the paramater is written as –nicX where X is the network card being targeted. Here, “–nic1” is the first network interface, –nic2 would be the second and so on. This portion of the command string is setting the type of networking on the first interface to “bridged”.

–nictype1 82540OEM – The –nictype1 parameter allows you to specify which networking hardware VirtualBox should emulate for the VM’s virtual network cards. Here we set the networking hardware to emulate an Intel PRO/1000 MT Desktop card or 82540EM.

–nictypeX follows the same sequence numbering and –nicX for multiple interfaces where –nictype1 is the first virtual card, –nictype2 is the second and so on.

Note:  The following is a list of the available nic hardware types and the associated ID recognized in VirtualBox.

  • AMD PCNet PCI II = Am79C970A
  • AMD PCNet FAST III = Am79C973 (the default)
  • Intel PRO/1000 MT Desktop = 82540EM
  • Intel PRO/1000 T Server = 82543GC
  • Intel PRO/1000 MT Server = 82545EM
  • Paravirtualized network adapter = virtio-net

–bridgeadapter1 eth0 – Finally we have the –bridgeadapter paramater. This is the only part of the command string that references a part of the VirtualBox host and tells your VM which physical host adapter to pass it’s traffic through.

Again, this uses the same sequence numbering as nicX and nictypeX for multiple interfaces. Here, we are setting the bridgeadapter for our first virtual network card to use the eth0  interface on the host. Note that is eth zero, as in the number and not the letter O.

And that’s it. Restart your VM and you should now have a working bridged network interface for you VM with full network and internet access.

Add a Network Printer to an Ubuntu Desktop – The Easy Way?

The Rant

It’s no secret that I am a fan of Ubuntu Linux. BUT.. one of the annoying things about using Ubuntu is trying to set up a network printer on a desktop or workstation. Regarding nearly all administrative tasks under most Linux systems that would require root permissions, Ubuntu has done a nice job of making it possible to operate a system as a “normal” user without elevated privileges, and then easily gain the elevated (root) privileges temporarily assigned to complete some specific administrative task. Ubuntu detects when a user is trying to do something requiring the elevated (root) privileges and pops up a small window asking for the current user’s password to gain the required permission. All the magic happens behind the scene and the user never has to issue a text command. It wasn’t long ago that users would have had to open a command terminal and issue all the instructions by hand. Well.. we’ve come a long way.. With the exception of installing a network printer. For some reason, when installing a printer in Ubuntu, the user is not prompted with the normal su password pop-up that presents itself for all other administrative tasks. Instead, the CUPS system prompts the user for the root password – and under Ubuntu, there is no root password by default meaning that root can not complete any direct action requiring a password. In fact, root can not log directly into the system at all. Fortunately, the solution is fairly easy.

The Solution

Do not try to install a printer from System > Administration > Printing menu. It won’t work. Sure, it will allow you to go through the wizard and give you the false impression that you’re actually accomplishing something – until you reach the point where a driver needs to be installed and you’re prompted for the root password. Instead, go to the Applications > Accessories menu and select Terminal.

Once the terminal window opens, issue the following command

sudo system-config-printer

The next line in the terminal window will ask for your password. Type in your user password and hit enter. If all is correct, the printer setup and configuration window will open with elevated privileges enabled and you can finish installing and setting up your new printer from comfort of an easy to use GUI.

Sample Setup

Lets take a few minutes and walk through the process. In this example, I will be setting up a Dell 1700 Laser Printer in my Home Office. Before you get started, you will need to know a few things about the printer first. Continue reading “Add a Network Printer to an Ubuntu Desktop – The Easy Way?”

Ubuntu Jaunty Jackalope Caters to Web Applications and the Cloud

I’ll admit, I am a fan of Ubuntu. I run it on all my personal and home computers with the exception of one (8 in total) and have nothing to complain about. Now the new version, expected to be released in April 2009, is expected to see improvements in booting and operational speeds. That is always a good thing, but what I don’t understand are the claims that the new OS version, code named “Jaunty Jackalope” will cater to Web Applications and the Cloud (cloud computing). I have not heard of any other company making such claims, and I wonder exactly how they plan to “cater”. As far as I can see, no other details have been discussed. It’s unclear if Canonical will make OS or code changes somehow to improve support for web applications, or just make them more available through the UI.

Change of Plans – As I was writing the above, Something occurred to me.

Some points of interest

  • Google uses a custom version of Ubuntu for internal operations.
  • Google has generated a lot of Buzz recently about entering the office application market opposite Microsoft.
  • Canonical/Ubuntu has made impressive progress bringing an alternative desktop operating system to market and is regarded by some as an acceptable replacement to Microsoft.
  • Following the Quote from Mark Shuttleworth himself, it does sound like Canonical and Google have been at least talking about ways to “finalize Jaunty plans”.
    "We will be gathering forces in Mountain View on 8th - 12th December to
    survey the upstream landscape and finalize Jaunty plans, enjoying the
    excellent hospitality of Google and Silicon Valley's abundance of talent
    and innovation." - Mark Shuttleworth

Warning – Pure Speculation Follows:

Is it possible that Canonical’s intention to cater to web apps means teaming up or forming some sort of partnership with Google to use or push Google’s suite of web applications (Google Apps) while providing a competitive operating system to rival Microsoft?

References:
http://bits.blogs.nytimes.com
https://lists.ubuntu.com/archives/ubuntu-devel-announce/2008-September/000481.html

How-to: Active Directory Authentication with WordPress

Why Use Active Directory with WordPress?

I recently set up a WordPress Blog internally for our company to use over our intranet to help improve communication, collaborate, share and develop ideas, and stay informed about company announcements or current events.. etc.

One of the requirements I had was to allow authentication against our Active Directory. Yes, we operate a Windows network primarily, but you can also authenticate against other LDAP directories as well. This was important from an IT position as well as the participants of the blog. I felt people would be more likely to participate if they didn’t have to manage separate user accounts for each service on the intranet. I also set up a Wiki that is Active Directory enabled. I’ll post about that at a later time. The point is, it makes little sense to create different credentials for each user with each new service. It not only becomes a hassle for IT to track and manage the accounts, it’s also a drag for participants to keep track of and manage their username and password pairs for each service. The result would most likely lead to lack of use and that is not what we want.

Integrating the existing Active Directory accounts means that each participant can access these services using the same credentials they use to access or log into their network accounts and desktops. When time comes to change passwords, you need only to update the Active Directory account and your done. Simple! What could be better?

Starting Point

The first thing we needed to do was find out how to include AD Authentication with WordPress 2.5. There are a small number of plugins that claim to allow AD Authentication, but from what I came across, most of them were older and no longer actively maintained. But…there were two in particular that still showed signs of being actively maintained and had promise.

The first was was aptly called “Active Directory Authentication

The other plugin and the ultimately the one I managed to successfully include is wpDirAuth.

The Trials

Although I was able to get wpDirAuth to work with WordPress 2.5, there was a catch. The current “Official” release of wpDirAuth as of this writing is version 1.2 which is not compatible with WordPress 2.5 so there was some work involved to make this happen. I visited the wpDirAuth plugin page to look at the install directions. They seemed easy enough. It wasn’t until I actually installed and activated the plugin that I realized it wouldn’t work. My next stop was the support channel that the author set up to help troubleshoot install and authentication issues. It was here that I learned there was a patch already available and provided by a generous wpDirAuth user – Adam Yearout. I applied the patch and then tried to login with my network credentials again, and … No luck! By now I was scratching my head. Searching and reading all the information I could find, I finally found myself on the wpDirAuth Developer Support Channel. This was another channel set up specifically for developers. It was here that I uncovered some clues as to what was happening and a small code tweak that was necessary to overcome the problem. Apparently, the author of the plugin assumed that the login name was also the name associated with the Active Directory Account Email, which in most cases is true, but not always. For example username: johndoe would by default have an email johndoe@domain.com. In my case, my email and name and login name were not the same, so the logic that the plugin author used would not work. The good news is that the fix is a fairly simple one if you know where to look and the dev channel contained all the clues needed to find the info.

Setting up wpDirAuth with WordPress 2.5

For this how-to, I am using wordpress 2.5 installed on an Ubuntu 8.04 LTS server With Apache2 and PHP5. There is no GUI and I am not running an ftp server on this server so all settings and changes are completed using putty over SSL. Continue reading “How-to: Active Directory Authentication with WordPress”

How To Set A Static IP In Ubuntu or Linux Using The Command Line

After installing Ubuntu Linux 7.10 Server Edition, I found that the IP address was assigned by DHCP served by my home router. This is fine for getting the server installed, but under most conditions, you will want to assign a static IP for your server. This Blog post will show you how to do just that. One of the issues with the Ubuntu server editions is that everything is done from a command line. There is no pretty windowed GUI.

One thing to note is that these commands need to be issued from either root or using sudo. I prefer to use the sudo su method to avoid having to type sudo each time I issue a command. (WARNING) if you do use sudo su, remember to exit the root when you are done.

In this example, I will be assigning the a static IP address of 192.168.1.2 to the primary network interface on my server.
My network subnet is 192.168.1.0
My network gateway is 192.168.1.3
And my netmask is 255.255.255.0
Continue reading “How To Set A Static IP In Ubuntu or Linux Using The Command Line”

Does Google have their eye on the “Apple”

By now you may have heard of Google’s new initiative known as “Android”. Android is Google’s new project set to bring an open source mobile platform based on the Linux OS to the cell phone market. So what does this mean for the cell phone and mobile markets? Google has created an alliance called the “Open Handset Alliance” including a selection of 34 market leading hardware, software and telecom companies.

Andy Rubin, Google’s director of mobile platforms, and Android project leader said the open-source strategy would encourage rapid innovation and lower the bar to entry in the highly competitive cellphone market, where software accounts for an increasing share of the cost of making a phone.

I believe most of the excitement surrounds the fact that this is, in some fashion, an “open” project which means more support from more providers, manufacturers, developers, and applications with lower costs. However, it is still unclear how “open” it will be and it is still possible that handset makers and operators will “lock” their own release and limit use to their own services or applications. Either way, this is in sharp contrast to Apple’s iPhone which is completely shut down, locked out and restricted to anyone outside Apple.

One thing to note is that there will not be an actual Google device (“gPhone”). Instead, the platform will be freely available to developers and manufacturers who will create the mobile devices to use the Android software.

Andy Rubin together with other members of the crew talk about the so-called Gphone.

It will be very interesting to see how this plays out over the coming months and year(s).

Installing LinuxMCE 1.1 Beta 2 – The Good, The Bad, and The (mostly) Ugly!

I have been using PlutoHome as a home automation solution to control lighting, media (A/V), and my home phone network. LinuxMCE is a direct branch of PlutoHome originally ported to run on top of an Ubuntu Desktop. With the latest Beta of LinuxMCE, the desktop of choice is now Kubunu, the KDE version of Ubuntu. This change was made in order to overcome a limitation of Gnome’s X11 implementation that is not apparent in KDE.

To start things off, I downloaded 3 ISO files.

  1. Kubuntu install disk
  2. LinuxMCE Packages disk
  3. LinuxMCE Cache Disk

The LinuxMCE Packages and Cache disk are available as a single torrent file.

After downloading the ISO files, they were burned to CD using Nero.

Installing Kubuntu:
The first step to the actual install is make sure the target system is able to boot from a CD. This can be set by accessing the system BIOS, and setting the CDRom as the first boot device in the boot sequence. Refer to you Motherboard’s BIOS information for instructions on setting this up. Continue reading “Installing LinuxMCE 1.1 Beta 2 – The Good, The Bad, and The (mostly) Ugly!”