FreeBSD Handbook

The FreeBSD Documentation Project

Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 4.10-RELEASE and FreeBSD 5.2.1-RELEASE. This manual is a work in progress and is the work of many individuals. Many sections do not yet exist and some of those that do exist need to be updated. If you are interested in helping with this project, send email to the FreeBSD documentation project mailing list. The latest version of this document is always available from the FreeBSD web site. It may also be downloaded in a variety of formats and compression options from the FreeBSD FTP server or one of the numerous mirror sites. If you would prefer to have a hard copy of the handbook, you can purchase one at the FreeBSD Mall. You may also want to search the handbook.

Table of Contents
I. Getting Started
1 Introduction
1.1 Synopsis
1.2 Welcome to FreeBSD!
1.3 About the FreeBSD Project
2 Installing FreeBSD
2.1 Synopsis
2.2 Pre-installation Tasks
2.3 Starting the Installation
2.4 Introducing Sysinstall
2.5 Allocating Disk Space
2.6 Choosing What to Install
2.7 Choosing Your Installation Media
2.8 Committing to the Installation
2.9 Post-installation
2.10 Supported Hardware
2.11 Troubleshooting
2.12 Advanced Installation Guide
2.13 Preparing Your Own Installation Media
3 UNIX Basics
3.1 Synopsis
3.2 Virtual Consoles and Terminals
3.3 Permissions
3.4 Directory Structure
3.5 Disk Organization
3.6 Mounting and Unmounting File Systems
3.7 Processes
3.8 Daemons, Signals, and Killing Processes
3.9 Shells
3.10 Text Editors
3.11 Devices and Device Nodes
3.12 Binary Formats
3.13 For More Information
4 Installing Applications: Packages and Ports
4.1 Synopsis
4.2 Overview of Software Installation
4.3 Finding Your Application
4.4 Using the Packages System
4.5 Using the Ports Collection
4.6 Post-installation Activities
4.7 Dealing with Broken Ports
5 The X Window System
5.1 Synopsis
5.2 Understanding X
5.3 Installing XFree86
5.4 XFree86™ Configuration
5.5 Using Fonts in XFree86
5.6 The X Display Manager
5.7 Desktop Environments
II. System Administration
6 Configuration and Tuning
6.1 Synopsis
6.2 Initial Configuration
6.3 Core Configuration
6.4 Application Configuration
6.5 Starting Services
6.6 Configuring the cron Utility
6.7 Using rc under FreeBSD 5.X
6.8 Setting Up Network Interface Cards
6.9 Virtual Hosts
6.10 Configuration Files
6.11 Tuning with sysctl
6.12 Tuning Disks
6.13 Tuning Kernel Limits
6.14 Adding Swap Space
6.15 Power and Resource Management
6.16 Using and Debugging FreeBSD ACPI
7 The FreeBSD Booting Process
7.1 Synopsis
7.2 The Booting Problem
7.3 The MBR, and Boot Stages One, Two, and Three
7.4 Kernel Interaction During Boot
7.5 Device Hints
7.6 Init: Process Control Initialization
7.7 Shutdown Sequence
8 Users and Basic Account Management
8.1 Synopsis
8.2 Introduction
8.3 The Superuser Account
8.4 System Accounts
8.5 User Accounts
8.6 Modifying Accounts
8.7 Limiting Users
8.8 Personalizing Users
8.9 Groups
9 Configuring the FreeBSD Kernel
9.1 Synopsis
9.2 Why Build a Custom Kernel?
9.3 Building and Installing a Custom Kernel
9.4 The Configuration File
9.5 Making Device Nodes
9.6 If Something Goes Wrong
10 Security
10.1 Synopsis
10.2 Introduction
10.3 Securing FreeBSD
10.4 DES, MD5, and Crypt
10.5 One-time Passwords
10.6 KerberosIV
10.7 Kerberos5
10.8 Firewalls
10.9 OpenSSL
10.10 VPN over IPsec
10.11 OpenSSH
10.12 File System Access Control Lists
10.13 FreeBSD Security Advisories
11 Mandatory Access Control
11.1 Synopsis
11.2 Key Terms in this Chapter
11.3 Explanation of MAC
11.4 Understanding MAC Labels
11.5 Module Configuration
11.6 The MAC bsdextended Module
11.7 The MAC ifoff Module
11.8 The MAC portacl Module
11.9 MAC Policies with Labeling Features
11.10 The MAC partition Module
11.11 The MAC Multi-Level Security Module
11.12 The MAC Biba Module
11.13 The MAC LOMAC Module
11.14 Implementing a Secure Environment with MAC
11.15 Another Example: Using MAC to Constrain a Web Server
11.16 Troubleshooting the MAC Framework
12 Printing
12.1 Synopsis
12.2 Introduction
12.3 Basic Setup
12.4 Advanced Printer Setup
12.5 Using Printers
12.6 Alternatives to the Standard Spooler
12.7 Troubleshooting
13 Storage
13.1 Synopsis
13.2 Device Names
13.3 Adding Disks
13.4 RAID
13.5 USB Storage Devices
13.6 Creating and Using Optical Media (CDs)
13.7 Creating and Using Optical Media (DVDs)
13.8 Creating and Using Floppy Disks
13.9 Creating and Using Data Tapes
13.10 Backups to Floppies
13.11 Backup Basics
13.12 Network, Memory, and File-Backed File Systems
13.13 File System Snapshots
13.14 File System Quotas
13.15 Encrypting Disk Partitions
14 The Vinum Volume Manager
14.1 Synopsis
14.2 Disks Are Too Small
14.3 Access Bottlenecks
14.4 Data Integrity
14.5 Vinum Objects
14.6 Some Examples
14.7 Object Naming
14.8 Configuring Vinum
14.9 Using Vinum for the Root Filesystem
15 Localization - I18N/L10N Usage and Setup
15.1 Synopsis
15.2 The Basics
15.3 Using Localization
15.4 Compiling I18N Programs
15.5 Localizing FreeBSD to Specific Languages
16 Desktop Applications
16.1 Synopsis
16.2 Browsers
16.3 Productivity
16.4 Document Viewers
16.5 Finance
16.6 Summary
17 Multimedia
17.1 Synopsis
17.2 Setting Up the Sound Card
17.3 MP3 Audio
17.4 Video Playback
17.5 Setting Up TV Cards
18 Serial Communications
18.1 Synopsis
18.2 Introduction
18.3 Terminals
18.4 Dial-in Service
18.5 Dial-out Service
18.6 Setting Up the Serial Console
19 PPP and SLIP
19.1 Synopsis
19.2 Using User PPP
19.3 Using Kernel PPP
19.4 Troubleshooting PPP Connections
19.5 Using PPP over Ethernet (PPPoE)
19.6 Using PPP over ATM (PPPoA)
19.7 Using SLIP
20 Advanced Networking
20.1 Synopsis
20.2 Gateways and Routes
20.3 Wireless Networking
20.4 Bluetooth
20.5 Bridging
20.6 Diskless Operation
20.7 ISDN
20.8 Network Address Translation
20.9 Parallel Line IP (PLIP)
20.10 IPv6
20.11 ATM on FreeBSD 5.X
21 Network Servers
21.1 Synopsis
21.2 NFS
21.3 NIS/YP
21.4 DHCP
21.5 DNS
21.6 NTP
21.7 The inetd ``Super-Server''
22 Electronic Mail
22.1 Synopsis
22.2 Using Electronic Mail
22.3 sendmail Configuration
22.4 Changing Your Mail Transfer Agent
22.5 Troubleshooting
22.6 Advanced Topics
22.7 SMTP with UUCP
22.8 Setting up to send only
22.9 Using Mail with a Dialup Connection
22.10 SMTP Authentication
22.11 Mail User Agents
22.12 Using fetchmail
22.13 Using procmail
23 The Cutting Edge
23.1 Synopsis
23.3 Synchronizing Your Source
23.4 Using make world
23.5 Tracking for Multiple Machines
24 Linux Binary Compatibility
24.1 Synopsis
24.2 Installation
24.3 Installing Mathematica®
24.4 Installing Maple
24.5 Installing MATLAB®
24.6 Installing Oracle®
24.7 Installing SAP® R/3®
24.8 Advanced Topics
III. Appendices
A. Obtaining FreeBSD
A.1 CDROM and DVD Publishers
A.2 FTP Sites
A.3 Anonymous CVS
A.4 Using CTM
A.5 Using CVSup
A.6 CVS Tags
A.7 AFS Sites
A.8 rsync Sites
B. Bibliography
B.1 Books & Magazines Specific to FreeBSD
B.2 Users' Guides
B.3 Administrators' Guides
B.4 Programmers' Guides
B.5 Operating System Internals
B.6 Security Reference
B.7 Hardware Reference
B.8 UNIX® History
B.9 Magazines and Journals
C. Resources on the Internet
C.1 Mailing Lists
C.2 Usenet Newsgroups
C.3 World Wide Web Servers
C.4 Email Addresses
C.5 Shell Accounts
D. PGP Keys
D.1 Officers
D.2 Core Team Members
D.3 Developers
List of Tables
2-1. Sample Device Inventory
2-2. Partition Layout for First Disk
2-3. Partition Layout for Subsequent Disks
2-4. Possible Security Profiles
2-5. FreeBSD ISO Image Names and Meanings
3-1. Disk Device Codes
13-1. Physical Disk Naming Conventions
14-1. Vinum Plex Organizations
20-1. Wiring a Parallel Cable for Networking
20-2. Reserved IPv6 addresses
List of Figures
2-1. Kernel Configuration Menu
2-2. The Kernel Device Configuration Visual Interface
2-3. Expanded Driver List
2-4. Driver Configuration With No Conflicts
2-5. Sysinstall Main Menu
2-6. Typical Device Probe Results
2-7. Select Sysinstall Exit
2-8. Selecting Usage from Sysinstall Main Menu
2-9. Selecting Documentation Menu
2-10. Sysinstall Documentation Menu
2-11. Sysinstall Main Menu
2-12. Sysinstall Keymap Menu
2-13. Sysinstall Main Menu
2-14. Sysinstall Options
2-15. Begin Standard Installation
2-16. Select Drive for FDisk
2-17. Typical Fdisk Partitions before Editing
2-18. Fdisk Partition Using Entire Disk
2-19. Sysinstall Boot Manager Menu
2-20. Exit Select Drive
2-21. Sysinstall Disklabel Editor
2-22. Sysinstall Disklabel Editor with Auto Defaults
2-23. Free Space for Root Partition
2-24. Edit Root Partition Size
2-25. Choose the Root Partition Type
2-26. Choose the Root Mount Point
2-27. Sysinstall Disklabel Editor
2-28. Choose Distributions
2-29. Confirm Distributions
2-30. Choose Installation Media
2-31. Selecting an Ethernet Device
2-32. Set Network Configuration for ed0
2-33. Editing inetd.conf
2-34. Default Anonymous FTP Configuration
2-35. Edit the FTP Welcome Message
2-36. Editing exports
2-37. Security Profile Options
2-38. System Console Configuration Options
2-39. Screen Saver Options
2-40. Screen Saver Timeout
2-41. System Console Configuration Exit
2-42. Select Your Region
2-43. Select Your Country
2-44. Select Your Time Zone
2-45. Select Mouse Protocol Type
2-46. Set Mouse Protocol
2-47. Configure Mouse Port
2-48. Setting the Mouse Port
2-49. Enable the Mouse Daemon
2-50. Test the Mouse Daemon
2-51. Network Configuration Upper-level
2-52. Select a default MTA
2-53. Ntpdate Configuration
2-54. Network Configuration Lower-level
2-55. Select Configuration Method Menu
2-56. Select Default Desktop
2-57. Select Package Category
2-58. Select Packages
2-59. Install Packages
2-60. Confirm Package Installation
2-61. Select User
2-62. Add User Information
2-63. Exit User and Group Management
2-64. Exit Install
14-1. Concatenated Organization
14-2. Striped Organization
14-3. RAID-5 Organization
14-4. A Simple Vinum Volume
14-5. A Mirrored Vinum Volume
14-6. A Striped Vinum Volume
14-7. A Mirrored, Striped Vinum Volume
List of Examples
2-1. Using an Existing Partition Unchanged
2-2. Shrinking an Existing Partition
3-1. Sample Disk, Slice, and Partition Names
3-2. Conceptual Model of a Disk
4-1. Downloading a Package Manually and Installing It Locally
6-1. Creating a Swapfile on FreeBSD 4.X
6-2. Creating a Swapfile on FreeBSD 5.X
7-1. boot0 Screenshot
7-2. boot2 Screenshot
7-3. An Insecure Console in /etc/ttys
8-1. Configuring adduser and adding a user on FreeBSD 4.X
8-2. Adding a user on FreeBSD 5.X
8-3. rmuser Interactive Account Removal
8-4. Interactive chpass by Superuser
8-5. Interactive chpass by Normal User
8-6. Changing Your Password
8-7. Changing Another User's Password as the Superuser
8-8. Adding a Group Using pw(8)
8-9. Adding Somebody to a Group Using pw(8)
8-10. Using id(1) to Determine Group Membership
10-1. Using SSH to Create a Secure Tunnel for SMTP
13-1. Using dump over ssh
13-2. Using dump over ssh with RSH set
13-3. A Script for Creating a Bootable Floppy
13-4. Using vnconfig to Mount an Existing File System Image under FreeBSD 4.X
13-5. Creating a New File-Backed Disk with vnconfig
13-6. Using mdconfig to Mount an Existing File System Image under FreeBSD 5.X
13-7. Creating a New File-Backed Disk with mdconfig
13-8. Configure and Mount a File-Backed Disk with mdmfs
13-9. md Memory Disk under FreeBSD 4.X
13-10. Creating a New Memory-Based Disk with mdconfig
13-11. Creating a New Memory-Based Disk with mdmfs
18-1. Adding Terminal Entries to /etc/ttys
20-1. Branch Office or Home Network
20-2. Head Office or Other LAN
21-1. Mounting an Export with amd
21-2. Sending inetd a HangUP Signal
22-1. Configuring the sendmail Access Database
22-2. Mail Aliases
22-3. Example Virtual Domain Mail Map
A-1. Checking Out Something from -CURRENT (ls(1)) and Deleting It Again:
A-2. Checking Out the Version of ls(1) in the 3.X-STABLE Branch:
A-3. Creating a List of Changes (as Unified Diffs) to ls(1)
A-4. Finding Out What Other Module Names Can Be Used:

This, and other documents, can be downloaded from

For questions about FreeBSD, read the documentation before contacting <>.
For questions about this documentation, e-mail <>.