Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

Industrial-strength Linux lockdown, Part 2: Executing only signed binaries

Enforce execution only of trusted code on Linux

Gary V. Vaughan (gary@gnu.org), Freelance open source developer and technical writer, Azazil
Author photo - Gary Vaughan
Gary Vaughan recently left his career as a British government scientist to pursue freelance technical writing and free software contract work that would allow him to travel the world, write the follow-up to his first book, GNU Autoconf, Automake and Libtool, and maintain his blog. He has been involved in the GNU project for nearly 10 years and currently maintains GNU Libtool and GNU M4 as well as contributing patches to many related free software projects.

Summary:  This tutorial, the second in a two-part series on locking your Linux® machines down to streamline the associated support and administration processes, shows how to configure the Linux kernel to execute only signed binaries.

View more content in this series

Date:  17 Jul 2007
Level:  Intermediate PDF:  A4 and Letter (68 KB | 19 pages)Get Adobe® Reader®

Activity:  13086 views
Comments:  

Before you start

In addition to the machine on which you're reading this tutorial, you need an old Linux installation that you don't mind breaking—preferably with a rescue disk in case something goes wrong. If you have any data you might ever need to return to on that machine (even if you follow this tutorial on a different partition or on a separate drive using a multi-boot setup), you'll need to make and test a full backup of that data before you try any of the techniques described here.

About this series

From an installation or support manager's point of view, its capacity for modification is perhaps one of Linux's greatest source of problems; anyone who has been given responsibility for any kind of medium- to large-scale installation has at least looked over the edge of that precipice. Every machine may have been radically tweaked with additional applications, configurations, and installations of unknown software. This series of tutorials is for anyone who has ever wanted to painlessly manage and install such a large-scale Linux installation across an enterprise.


About this tutorial

This tutorial expands on the groundwork laid in Part 1, which gave some good reasons for keeping Linux's propensity for customization under control and took the first cautious steps toward locking down a standard Linux distribution to prevent spurious user changes to the baseline installation. Part 2 completes the lockdown process by building a kernel that enforces use of only signed binaries that have been introduced in a controlled way to each machine that you're supporting.


Objectives

In this tutorial, you learn about some of the management issues and processes that you must build up to maintain a large-scale installation of Linux machines running a kernel specially built to execute only authorized executables, each configured with the basic lockdown processes set out in Part 1. You will see how to manage the cryptographic data needed to maintain such a system in the first place and ultimately prevent the execution of unmanaged executables in your secure environment. By the time you've implemented the measures described in this series, you'll be able to configure an industrial-grade, locked-down Linux distribution that cannot be injected with applications that you have not personally audited and signed off.


Prerequisites

This tutorial is written for Linux administrators whose skills and experience are at an intermediate to advanced level. You should have good familiarity with Public Key Infrastructure (PKI), especially with respect to GNU Privacy Guard (GPG), be comfortable with a command-line shell, and possess a working knowledge of the C programming language. Of course, you must also have read and understood Part 1 of this tutorial series.


System requirements

To follow the steps in this tutorial, you must have root access on a Linux machine with the ability to reboot the computer at will and to destroy all the data stored on it. You must have an installed compilation environment and a way to get your distribution's Linux kernel sources and headers as well as the tutorial source code from Part 1.

During the development of this tutorial, I used Ubuntu Linux V6.10 installed from a live installation CD, although except in the finer details, any Linux distribution you're comfortable with should be fine. If you have access to a copy of VMware and don't need to try the hardware and firmware sections of the tutorial, VMware's snapshot utility allows you to experiment more freely, because you can go back in time to a known good state if the Linux installation stops booting at any stage without resorting to a rescue disk to diagnose and repair the problem.

1 of 8 | Next

Comments



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Linux
ArticleID=241025
TutorialTitle=Industrial-strength Linux lockdown, Part 2: Executing only signed binaries
publish-date=07172007
author1-email=gary@gnu.org
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.