Articles & Reviews


2
Jan 09

Installing Ubuntu 8.10 in Fusion

If you have a Mac and Fusion this article will get you started with a safe way to install Ubuntu without having to mutli-boot your Mac. In this article we’ll be discussing installation of Ubuntu using a commercial virtualization product from VMware called Fusion, in the coming days we’ll also look at Virtual Box an opensource project similar to VMware Fusion.

VMware Fusion is the OS X equivalent to VMware Workstation or VMware Server (free), which runs on Linux and Windows. These products allow you to virtualize operating systems without having to format your main desktop or laptop hard drive. We are going to look at a the installation of Ubuntu 8.10 inside of VMware Fusion and discuss some caveots you may encounter along the way. Before we begin we’ll assume you have the Ubuntu 8.10 ISO image downloaded and you have the latest version of VMware Fusion installed.

Like most virtualization desktop products VMware Fusion uses a very simple GUI wizard to guide the user through the installation allowing them advanced installation options if they wish. Throughout the article, I will reference (Figure X) to correspond with the correct images which are displayed at the end of the article.

Virtual Machine Creation

  • Open Fusion and create a new virtual machine by navigating to File > New from here a new window will appear (Figure 1).
  • Next, select “Continue without disk“, this will bring you to another window (Figure 2) allowing you to select the installation media. Select “Use Operating system installation disk image file ” select the Ubuntu ISO image, then click “Continue“.
  • Next, select the operating system and distribution type (this will default to Linux, Ubuntu 32bit) and click “Continue” as shown in (Figure 3).
  • Finally, You will be presented with a finalization window displaying the current settings of your virtual machine. If you wish to make further advanced customizations to the memory, cpu, disk and so you can select the “Customize settings” button. You can also have the virtual machine automatically start when Fusion is opening by putting a check in the “Always open this virtual machine when VMware Fusion starts” option. (Figure 4)
  • Once you are satisfied with your settings click, “Finish” to build the virtual machine and continue with the Ubuntu installation. You will be prompted to enter a name for the virtual machine once you finalize your settings.

Ubuntu Installation

  • NOTE: Once you click in the virtual machine window your keyboard and mouse are locked in, press Control-Command to release it.
  • Your virtual machine will now restart and the Ubuntu installation will begin (Figure 5), select the appropriate language and press “enter“.
  • Next, you will be presented with a menu (Figure 6) using the arrow keys select the “Install Ubuntu” option and press “enter“. Installation will begin as shown in (Figures 6 and 7). Once the installer has loaded a new window will be presented starting the actual installation (Figure 8 ) the language you selected in the previous screen should already be highlighted. Click “Forward“.  
  • On the next screen select your timezone and click “Forward” (Figure 9), select your keyboard language layout (Figure 10), click “Forward“.
  • Next, you are presented with the disk partitioner. We are going to use the defaults here which is “Guided – use entire disk“, click “Forward” to continue the installation.(Figure 11)
  • Next, you will be presented with a series of questions pertaining to setup of your user account. Fill in the fields with the acceptable information and click “Forward“. (Figure 12)
  • At this point installation is ready to begin, look over the proposed settings and click “Install” when you are ready. This will take a few minutes to complete. (Figure 13)
  • Figures 14, 15, 16 , 17 , 18 and 19 are examples of what you can expect along the way during installation.
  • When the installation is completed you will be prompted with a windows requiring you to restart the computer. Before doing this click the “Settings” button on the Fusion menu, navigate to the CDROM and disconnect it by un-checking the box, you will be given a warning select “Yes“. Once the CDROM is disabled, click “Restart now” to finalize and reboot (Figure 20). 
  • Once your machine has rebooted you will be prompted with a login screen as shown in (Figure 21) enter the username and password you specified during installation to log into Ubuntu.

VMware Tools Installation

Now that our Ubuntu desktop installation is complete we need to install some additional tools in order to maximize productivity. VMware provides a utility called VMware Tools, which allows you to share folders, the keyboard and mouse between the virtual machine and the host operating system, in this case OS X and Ubuntu.

  • Once you are logged into the Ubuntu Desktop, you will want to install all the latest updates for Ubuntu to ensure the VMware tools install correctly. To do this, goto System > Administrator > Update Manager, click the “Check” button and enter your password if required.  Updates will be displayed, finally click “Install Updates“. This may take awhile depending on your Internet connection speed and the amount of updates required. Once completed, reboot your Ubuntu Desktop.
  • Once rebooted, Click the “Virtual Machine” menu bar while in Fusion. From here select the “Install VMware Tools” option. You will notice a CDROM being mounted on your Ubuntu desktop, drag the file to your desktop and double click it and drag the contents to the desktop. (Figures 22 and 23)
  • Next, we need to drop to a terminal and install a couple pieces of software. Navigate to Applications > Accessories > Terminal at the command prompted enter the following “cd ~Desktop/vmware-tools-distrib” and  ”sudo apt-get install build-essential” to install the compilers needed for the VMware tools installation. If prompted enter your password, a confirmation dialogue will appear enter “y” and press enter. (Figure 25)
  • Once complete, run the following command to begin the VMware tools installer “sudo ./vmware-install.pl“. To save room I did not include the output from the installer, however, you can select the defaults throughout by pressing “enter” for each question.
  • Reboot once the VMware tools installation has completed, log in to your Ubuntu Desktop and then maximize the screen. VMware tools should automatically resize your desktop to fix your screen and your mouse should flow from Ubuntu to OS X without issue.
  • Enjoy Ubuntu :)

Below are the images referenced during installation.


16
Dec 08

CUPS Administrative Guide

I was recently given a copy of the CUPS Administrative Guide, which was written by Ankur Shah and published by Packt Publishing. The book covers the Common UNIX Printing System (CUPS) and offers a very simple yet powerful set of instructions for managing your CUPS environment.

The book is written well, its easy to understand and generally flows very well. The author did a great job explaining how to compile and install CUPS, configure CUPS, check printer status and configuring user access. These are just a few tidbits of information the book touches on.

If you are working with or plan to work with CUPS in the future I highly suggest checking this book out.

I’ve attached a sample of Chapter 4 with permission of the publisher so you can get an idea of how well the book is laid out.

Download Sample: Chapter 4 Managing multiple printers at a time


1
Dec 08

Install nginx w/ php5 on Ubuntu 8.10

Below are the steps I took to configure nginx and php5 on my Ubuntu 8.10 server. I choose nginx because its lightweight and relatively easy to manage once you figure out the configuration. I’ve been using Apache for years and its second nature at this point, however, on my small VPS server I needed to maximize my resources.

Make sure your system is updated:

sudo aptitude update && sudo aptitude safe-upgrade

Install nginx and PHP5, we’ll be installing the cgi version of php.

sudo aptitude install nginx php5-cgi

Download the following php-fastcgi startup script and save it to /etc/init.d/php-fastcgi. Nginx will use php in cgi-mode which is why we are creating a init file for it. (note: I found this init script on a mailing list someplace)

Download: php-fastcgi init script

Next, run the following commands on the php-fastcgi script.

sudo chmod u+x /etc/init.d/php-fastcgi
sudo chown 0.0 /etc/init.d/php-fastcgi
sudo update-rc.d php-fastcgi defaults 21 23

Now, go ahead and create your directory that will store your website. For example you might do the following:

mkdir -p /home/username/domains/yourdomaincom/{public_html,log,cgi-bin}

Modify the /etc/nginx/nginx.conf file and set the following variable. I have mine set to 15MB but if you wish to allow larger files to be uploaded over http set this accordingly.

client_max_body_size 15m;

Finally, lets setup a virtual domain. Navigate to the /etc/nginx/sites-available directory and create a file called yourdomain.com (replace with your domain) and use the following as a template. Make sure to replace your paths etc.

server {
listen  80;
server_name  yourdomain.com www.yourdomain.com;

access_log  /home/username/domains/yourdomain.com/log/access.log;

location / {
root   /home/username/domains/yourdomain.com/public_html;
index  index.html index.htm index.php;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /home/username/domains/yourdomain.com/public_html$fastcgi_script_name;
include fastcgi_params;
}
}

Like apache, nginx has a sites-available and sites-enabled folder this allows for better control of active/disabled virtual domains. Navigate to the /etc/nginx/sites-enabled folder and create a symlink back to your virtual host’s configuration.

cd /etc/nginx/sites-enabled/ && sudo ln -s ../sites-available/yourdomain.com

Finally, lets start everything up.
/etc/init.d/php-fastcgi start
/etc/init.d/nginx start

At this point you should be able to browse to your site using your domain name. You can easily duplicate multiple domains by creating new virtual host files and creating the sym link as noted above, remember that ngix will need to be restarted.


26
Apr 07

linux & active directory authentication

Recently I have had the pleasure to work with Microsoft active directory. The goal is to get CentOS 4.4 to authenticate from active directory for ssh/mail/telnet etc. Below is a quick “howto” of sorts that deals with setting up the Linux side to authenticate from active directory.

Much to my surprise I found this process really simple and pretty effective, I’ve collected some thoughts as to advantages and disadvantages in using kerberos on the Linux side to connect to active directory.

Advantages:
1. Streamlined authentication process 2. Easily maintenance (two config files)
3. Fall back to /etc/passwd
4. Apache has a krb5/ldap module to-do authentication that works against AD
5. No need for LDAP or two/one way syncing
6. Simple maintenance and setup

Disadvantages:
1. Requires user to be in /etc/passwd (no password needed)
2. User shell/uid/gid are maintained from the Unix side
3. If a user is removed from AD the user will need to be removed from the Linux side as well

Implementation is rather simple and below are the changes I made to the Linux side so I could authenticate linux users from active directory, change passwords from the Linux side and update them in active directory.

Installed software (CentOS4.4) if you are using another distro package names may vary.

krb5-libs-1.3.4-46
krb5-auth-dialog-0.2-1
krbafs-1.2.2-6
krb5-workstation-1.3.4-46
pam_krb5-2.1.8-1

Next you will want to edit the /etc/krb5.conf file, please note YOURDOAMIN.COM is the realm you are using in your active directory setup.

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = YOURDOMAIN.COM
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
YOURDOMAIN.COM = {
kdc = YOURACTIVEDIRECTORYSERVER.COM:88
default_domain = YOURDOMAIN.COM
kpasswd_server = YOURACTIVEDIRECTORYSERVER.COM
}

[domain_realm]
YOURDOMAIN.COM = YOURDOMAIN.COM

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

Next you will want to make sure to edit /etc/pam.d/system-auth to include the kerberos pam modules, the easiest way to achieve this is by running “authconfig” from the command prompt. If you are using another OS other then CentOS4.4 you can find the changes below.

auth sufficient /lib/security/$ISA/pam_krb5.so use_first_pass
account [default=bad success=ok user_unknown=ignore] /lib/security/$ISA/pam_krb5.so
password sufficient /lib/security/$ISA/pam_krb5.so use_authtok
session optional /lib/security/$ISA/pam_krb5.so

Additional information:
Users must be present in the /etc/passwd file in order to authenticate via active directory. A simple “useradd username” will do just fine. There is no need to set a password as it will be retrieved from active directory. If you do wish to set a password for the linux user you may and the user can then bypass active directory and authenticate via that password, the passwords must be different.

I hope this helps, your mileage may vary. :)