Skip to main content


developerWorks  >  Linux  >

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

Enforce execution only of trusted code on Linux

developerWorks

Level: Intermediate

Gary V. Vaughan (gary@gnu.org), Freelance open source developer and technical writer, Azazil

18 Jul 2007

Register now or sign in using your IBM ID and password.

For technical and non-technical users alike, maintaining a large installed base of Linux machines can be a harrowing experience for an administrator. Technical users take advantage of Linux®'s extreme configurability to change everything to their liking, while non-technical users running amok within their own file systems. This tutorial is the second in a two-part series on locking your Linux machines down to streamline the associated support and administration processes. In this tutorial, you learn how to configure the Linux kernel to execute only signed binaries.

In this tutorial

  • 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.

  • 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.

  • Configure an industrial-grade, locked-down Linux distribution that cannot be injected with applications that you have not personally audited and signed off.


Objectives

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.

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.



Duration

More than 2 hours


Formats

html, pdf


Learn more

Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!


Back to top


Document options

Document options requiring JavaScript are not displayed

Discuss


My developerWorks needs you!

Connect to your technical community