Tuesday, November 24, 2009

How To Encrypt Home on Fedora

Encrypt Your Linux Home Partition

This how to explains the process of encrypting a partition on an existing system.

If you are installing a new Linux box, or reinstalling, the graphical installation for RHEL5.4 and later, Fedora, Ubuntu, OpenSuSE now all provide easy GUI tools to accomplish this.

Doing so on an existing system takes a bit of care so as not to destroy data.

The following are notes that I took while running through the process for the first time. Some steps may be redundant or unnecessary, if so, feel free to add comments and I'll adjust the process.

  1. Identify the partition that should be encrypted. In this example, I'm going to encrypt the partition (/dev/sdb1) that is mounted as /home
  2. Backup the data before proceeding. The process of encrypting requires a format, since this is /home, it makes sense to log out of the desktop, log in as root to the terminal (CTRL ALT F2) and 'init 3'. The /home directory can be safely unmounted
    # init 3
    # mkdir -p /backup/$(hostname -s)
    # rsync -a /home /backup/$(hostname -s)
    # umount /home

  3. Use cryptsetup to initialize the LUKS partition (again, make sure it is umounted) and set the initial key / passphrase. Use whatever good passphrase you want to unlock this device in the future. If necessary, additional keys can be added for multi user support.
    # cryptsetup luksFormat /dev/sdb1
  4. Identify the UUID of the partition
    # blkid /dev/sdb1

    /dev/sdb1: UUID="186f67df-9872-44d5-947c-a010d831f570" TYPE="crypto_LUKS"
  5. Open the LUKS partition setting up a mapping named based on the UUID (this is the default naming convention used by the Fedora installer)
    # cryptsetup luksOpen /dev/sdb1 luks-186f67df-9872-44d5-947c-a010d831f570
  6. Format the device, I'll use ext4 since it's the new standard on Fedora and Ubuntu
    # mkfs.ext4 /dev/mapper/luks-186f67df-9872-44d5-947c-a010d831f570
  7. Once again, verify the UUID for the device, if you don't get this correct, the system will hang at bootup as it attempts to mount the device
    # blkid /dev/sdb1

    /dev/sdb1: UUID="186f67df-9872-44d5-947c-a010d831f570" TYPE="crypto_LUKS"
  8. Add the device to crypttab to map it to the correct UUID
    # vi /etc/crypttab

    luks-186f67df-9872-44d5-947c-a010d831f570 UUID=186f67df-9872-44d5-947c-a010d831f570 none
  9. Add the new mount to /etc/fstab so that it mounts at boot (make sure to comment or remove the existing /home entry). If you choose to automount encrypted partitions the boot process will pause prompting for the passphrase. This may be undesireable, especially in the case of a server where you might choose to mount manually following boot!
    # vi /etc/fstab

    /dev/mapper/luks-186f67df-9872-44d5-947c-a010d831f570 /home ext4 defaults 1 2
  10. Before you reboot, make sure to locate a copy of the installation media just in case you need to enter recovery mode (most likely due to a typo in fstab or crypttab)
    # /sbin/shutdown -r now
  11. During the boot process you'll be prompted to enter a passphrase to unlock the partition.
  12. If you need multiple keys (maybe this is a shared workstation or laptop), you can add new keys as follows
    # cryptsetup luksAddKey /dev/sdb1

Chromium on Fedora 12

Update: Google now has an official repo for Linux that work for Fedora 12 and 13

20100917 - Updated the contents of this post to replace 'beta' package references to 'stable'.

Create the Google yum repository configuration file (replace x86_64 with i386 in the repo file to use the 32bit Google repository)
$ sudo vim /etc/yum.repos.d/google-chrome.repo

[google]
name=google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub


Then install Google Chrome
$ sudo yum install google-chrome-stable

====================================================================================================================================
Package                                    Arch                          Version                                      Repository   
====================================================================================================================================
Installing:
google-chrome-stable                       x86_64                        5.0.307.11-39572                             google-chrome
Installing for dependencies:
cvs                                        x86_64                        1.11.23-8.fc12                               fedora       
foomatic                                   x86_64                        4.0.3-8.fc12                                 updates      
foomatic-db                                noarch                        4.0-8.20091126.fc12                          updates      
gettext                                    x86_64                        0.17-16.fc12                                 updates      
libmodplug                                 x86_64                        1:0.8.7-2.fc12                               fedora       
libmpcdec                                  x86_64                        1.2.6-6.fc12                                 fedora       
patch                                      x86_64                        2.6.1-1.fc12                                 updates      
pax                                        x86_64                        3.4-10.fc12                                  fedora       
phonon                                     x86_64                        4.3.80-5.fc12                                updates      
phonon-backend-xine                        x86_64                        4.3.80-5.fc12                                updates      
qt                                         x86_64                        1:4.6.2-3.fc12                               updates      
qt-sqlite                                  x86_64                        1:4.6.2-3.fc12                               updates      
qt-x11                                     x86_64                        1:4.6.2-3.fc12                               updates      
qt3                                        x86_64                        3.3.8b-28.fc12                               fedora       
redhat-lsb                                 x86_64                        3.2-7.fc12                                   fedora       
xine-lib                                   x86_64                        1.1.16.3-5.fc12                              updates


Original content:
Want to run Google Chrome web browser on your Fedora workstation? Not exactly Chrome, but you can install and run the open source browser (devoid of Google branding), Chromium, of which Google Chrome is based.

Chromium will install on both 32bit and 64bit systems.

First, create a new yum repository configuration file (/etc/yum.repos.d/chromium.repo):
[chromium]
name=Chromium Test Packages
baseurl=http://spot.fedorapeople.org/chromium/F$releasever/
enabled=1
gpgcheck=0
Next install chromium, 2 packages will come from the chromium repo, chromium and v8:
$ sudo yum install chromium

Dependencies Resolved

==============================================================================
Package      Arch      Version                            Repository     Size
==============================================================================
Installing:
chromium    x86_64  4.0.252.0-0.1.20091119svn32498.fc12   chromium      9.7 M
Installing for dependencies:
minizip     x86_64  1.2.3-23.fc12                         fedora         24 k
nss-mdns    x86_64  0.10-8.fc12                           fedora         21 k
v8          x86_64  2.0.0-1.20091118svn3334.fc12          chromium      810 k

Once installed, you'll find Chromium on the Applications menu under Internet.

v8 is Google's open source JavaScript engine.

Tuesday, October 27, 2009

Major NFSv4 issue with CentOS 5.4 / RHEL 5.4

I updated my NFS server yesterday to EL5.4 (kernel 2.6.18-164.el5) as well as the client workstations. The clients mount /home via NFSv4.

Shortly there after my users began reporting odd behavior like "Firefox bookmarks won't load".

I decided to test it remotely and encountered a file locking problem with .Xauthority:

$ ssh -X wkstation01
/usr/bin/xauth: error in locking authority file /home/flakrat/.Xauthority

After much digging, an IRC user in #RHEL pointed me to the following bug:
https://bugzilla.redhat.com/show_bug.cgi?id=524520

Three immediate solutions:
  • Reboot to the previous 2.6.18-128.7.1.el5 kernel until the new kernel is released
  • Download the patches in the bug and rebuild the kernel
  • Get RH support to send you the interim patched kernel

Wednesday, September 9, 2009

Looking for a Replacement for Notepad++ on Linux? Try Geany!

There are many nice text editors / IDEs out there for Windows, Linux, and Mac. On the Windows front, one of the best (IMHO) is Notepad++.

Unfortunately, NP++ is not available for Linux. Sure you can get it working via WINE, but I'd rather have something that provides similar features that just works in Linux. Notepad++ uses Scintilla as it's core editing component.

Luckily, there are several IDEs for Linux that use Scintilla, so the features and feel of Notepad++ are not lost to the Linux world.

Geany is the editor that I've been using lately (along with vi/vim). Currently at version 0.18, Geany has a long list of features and supports many of the common scripting and programming languages. One of the primary goals of the development was to limit dependencies, thus Geany only requires the GTK2 runtime libraries and is agnostic to the desktop (Gnome, KDE, etc...).

Here are some of the features listed on the website:
  • Syntax highlighting
  • Code folding
  • Symbol name auto-completion
  • Construct completion/snippets
  • Auto-closing of XML and HTML tags
  • Call tips
  • Many supported filetypes including C, Java, PHP, HTML, Python, Perl, Pascal (full list)
  • Symbol lists
  • Code navigation
  • Build system to compile and execute your code
  • Simple project management
  • Plugin interface (see Plugins)
Up to now, I've been using KDevelop (in Gnome :-) as my IDE. It's a nice editor, but a little clunky for my scripting needs. So far, I'm very impressed with Geany.

If you are running Fedora, Geany and various plugins can be installed using the following Yum command:
$ sudo yum install geany geany-plugins-*

If you'd like to stick to Gedit, you can pimp it out using this guide. The advantage here, Gedit is available on most distributions right out of the box (assuming a graphical install).

iPhone OS 3.1 and iTunes 9 Released Today

The Apple website has announced that iTunes 9.0 and iPhone OS 3.1 have been released. Apple also has information related to their new line of iPods.

The new iTunes has a nifty feature that lets you organize your apps from within iTunes (rather than on the device itself).

See this InformationWeek article for more details.

The feature I'm eagerly anticipating, the ability to skip song tracks using the controls on my Motorola S9 stereo bluetooth head set. OS 3.0 introduced stereo bluetooth to the iPhone, but for some reason did not include the ability to skip forward / back song tracks.

iTunes 9.0 is ready to download now, the OS update is supposed to be out today (Wed) but it's not yet shown up in iTunes.

Friday, July 24, 2009

iPhone 3.1 OS Update to Include BlueTooth Control Support

According to The iPhone Blog the upcoming release of iPhone 3.1 OS includes support for using the next/prev track controls on Blue Tooth head sets.

iPhone OS 3.0 introduced support for stereo BT head sets including partial support for the controls (volume and play/pause), but curiously no support for skipping tracks. 3.1 will remedy that thankfully.

There are other features and improvements in 3.1, for example, you will be able to paste into the phones keypad screen (automatically transposing alpha-numerics phone numbers into digits) and some updates to 3GS specific functionality.

Unfortunately, there isn't any mention yet whether Apple has identified the root causes of 3.0's battery consumption and heat issues.

3.1 beta 2 released this week, expect several more betas before the final product is released.

Thursday, July 16, 2009

VMware Releases ESXi with Dell / IBM Customizations

The VMware ESXi download page has two new downloads, ESXi installable with Dell and IBM customizaions:

VMware ESXi 4.0 with Dell Customization
Version 4.0.0 | 164009 - 07/16/09 348 MB ISO Image for ESXi Installable that includes Dell customization.

VMware ESXi 4.0 with IBM Customization
Version 4.0.0 | 164009 - 07/16/09 348 MB ISO Image for ESXi 4.0 Installable that includes IBM customization for use on supported IBM server platforms.

I can't find any information detailing what 'customization' is included in either install. Is it management (OpenManage stand alone), drivers???

I suppose I'll have to install it on one of the m600 servers and find out.

Update: I got a response from a Dell rep on the Power Edge mailing list "Vmware ESXi 4.0 includes Dell OpenManage as well apart from drivers."