FreeBSD Handbook

The FreeBSD Documentation Project

Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 4.11-RELEASE and FreeBSD 5.4-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
Preface
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 X11
5.4 X11 Configuration
5.5 Using Fonts in X11
5.6 The X Display Manager
5.7 Desktop Environments
II. Common Tasks
6 Desktop Applications
6.1 Synopsis
6.2 Browsers
6.3 Productivity
6.4 Document Viewers
6.5 Finance
6.6 Summary
7 Multimedia
7.1 Synopsis
7.2 Setting Up the Sound Card
7.3 MP3 Audio
7.4 Video Playback
7.5 Setting Up TV Cards
7.6 Image Scanners
8 Configuring the FreeBSD Kernel
8.1 Synopsis
8.2 Why Build a Custom Kernel?
8.3 Building and Installing a Custom Kernel
8.4 The Configuration File
8.5 Making Device Nodes
8.6 If Something Goes Wrong
9 Printing
9.1 Synopsis
9.2 Introduction
9.3 Basic Setup
9.4 Advanced Printer Setup
9.5 Using Printers
9.6 Alternatives to the Standard Spooler
9.7 Troubleshooting
10 Linux Binary Compatibility
10.1 Synopsis
10.2 Installation
10.3 Installing Mathematica®
10.4 Installing Maple
10.5 Installing MATLAB®
10.6 Installing Oracle®
10.7 Installing SAP® R/3®
10.8 Advanced Topics
III. System Administration
11 Configuration and Tuning
11.1 Synopsis
11.2 Initial Configuration
11.3 Core Configuration
11.4 Application Configuration
11.5 Starting Services
11.6 Configuring the cron Utility
11.7 Using rc under FreeBSD 5.X
11.8 Setting Up Network Interface Cards
11.9 Virtual Hosts
11.10 Configuration Files
11.11 Tuning with sysctl
11.12 Tuning Disks
11.13 Tuning Kernel Limits
11.14 Adding Swap Space
11.15 Power and Resource Management
11.16 Using and Debugging FreeBSD ACPI
12 The FreeBSD Booting Process
12.1 Synopsis
12.2 The Booting Problem
12.3 The MBR, and Boot Stages One, Two, and Three
12.4 Kernel Interaction During Boot
12.5 Device Hints
12.6 Init: Process Control Initialization
12.7 Shutdown Sequence
13 Users and Basic Account Management
13.1 Synopsis
13.2 Introduction
13.3 The Superuser Account
13.4 System Accounts
13.5 User Accounts
13.6 Modifying Accounts
13.7 Limiting Users
13.8 Personalizing Users
13.9 Groups
14 Security
14.1 Synopsis
14.2 Introduction
14.3 Securing FreeBSD
14.4 DES, MD5, and Crypt
14.5 One-time Passwords
14.6 TCP Wrappers
14.7 KerberosIV
14.8 Kerberos5
14.9 OpenSSL
14.10 VPN over IPsec
14.11 OpenSSH
14.12 File System Access Control Lists
14.13 Monitoring Third Party Security Issues
14.14 FreeBSD Security Advisories
14.15 Process Accounting
15 Mandatory Access Control
15.1 Synopsis
15.2 Key Terms in this Chapter
15.3 Explanation of MAC
15.4 Understanding MAC Labels
15.5 Module Configuration
15.6 The MAC bsdextended Module
15.7 The MAC ifoff Module
15.8 The MAC portacl Module
15.9 MAC Policies with Labeling Features
15.10 The MAC partition Module
15.11 The MAC Multi-Level Security Module
15.12 The MAC Biba Module
15.13 The MAC LOMAC Module
15.14 Implementing a Secure Environment with MAC
15.15 Another Example: Using MAC to Constrain a Web Server
15.16 Troubleshooting the MAC Framework
16 Storage
16.1 Synopsis
16.2 Device Names
16.3 Adding Disks
16.4 RAID
16.5 USB Storage Devices
16.6 Creating and Using Optical Media (CDs)
16.7 Creating and Using Optical Media (DVDs)
16.8 Creating and Using Floppy Disks
16.9 Creating and Using Data Tapes
16.10 Backups to Floppies
16.11 Backup Basics
16.12 Network, Memory, and File-Backed File Systems
16.13 File System Snapshots
16.14 File System Quotas
16.15 Encrypting Disk Partitions
17 GEOM: Modular Disk Transformation Framework
17.1 Synopsis
17.2 GEOM Introduction
17.3 RAID0 - Striping
17.4 RAID1 - Mirroring
18 The Vinum Volume Manager
18.1 Synopsis
18.2 Disks Are Too Small
18.3 Access Bottlenecks
18.4 Data Integrity
18.5 Vinum Objects
18.6 Some Examples
18.7 Object Naming
18.8 Configuring Vinum
18.9 Using Vinum for the Root Filesystem
19 Localization - I18N/L10N Usage and Setup
19.1 Synopsis
19.2 The Basics
19.3 Using Localization
19.4 Compiling I18N Programs
19.5 Localizing FreeBSD to Specific Languages
20 The Cutting Edge
20.1 Synopsis
20.2 FreeBSD-CURRENT vs. FreeBSD-STABLE
20.3 Synchronizing Your Source
20.4 Rebuilding “world”
20.5 Tracking for Multiple Machines
IV. Network Communication
21 Serial Communications
21.1 Synopsis
21.2 Introduction
21.3 Terminals
21.4 Dial-in Service
21.5 Dial-out Service
21.6 Setting Up the Serial Console
22 PPP and SLIP
22.1 Synopsis
22.2 Using User PPP
22.3 Using Kernel PPP
22.4 Troubleshooting PPP Connections
22.5 Using PPP over Ethernet (PPPoE)
22.6 Using PPP over ATM (PPPoA)
22.7 Using SLIP
23 Electronic Mail
23.1 Synopsis
23.2 Using Electronic Mail
23.3 sendmail Configuration
23.4 Changing Your Mail Transfer Agent
23.5 Troubleshooting
23.6 Advanced Topics
23.7 SMTP with UUCP
23.8 Setting Up to Send Only
23.9 Using Mail with a Dialup Connection
23.10 SMTP Authentication
23.11 Mail User Agents
23.12 Using fetchmail
23.13 Using procmail
24 Network Servers
24.1 Synopsis
24.2 The inetd “Super-Server”
24.3 Network File System (NFS)
24.4 Network Information System (NIS/YP)
24.5 Automatic Network Configuration (DHCP)
24.6 Domain Name System (DNS)
24.7 BIND9 and FreeBSD
24.8 Apache HTTP Server
24.9 File Transfer Protocol (FTP)
24.10 File and Print Services for Microsoft® Windows® clients (Samba)
24.11 Clock Synchronization with NTP
25 Firewalls
25.1 Introduction
25.2 Firewall Concepts
25.3 Firewall Packages
25.4 The OpenBSD Packet Filter (PF) and ALTQ
25.5 The IPFILTER (IPF) Firewall
25.6 IPFW
26 Advanced Networking
26.1 Synopsis
26.2 Gateways and Routes
26.3 Wireless Networking
26.4 Bluetooth
26.5 Bridging
26.6 Diskless Operation
26.7 ISDN
26.8 Network Address Translation
26.9 Parallel Line IP (PLIP)
26.10 IPv6
26.11 Asynchronous Transfer Mode (ATM) on FreeBSD 5.X
V. 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
FreeBSD Glossary
Colophon
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 4.X ISO Image Names and Meanings
2-6. FreeBSD 5.X ISO Image Names and Meanings
3-1. Disk Device Codes
16-1. Physical Disk Naming Conventions
18-1. Vinum Plex Organizations
26-1. Wiring a Parallel Cable for Networking
26-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
18-1. Concatenated Organization
18-2. Striped Organization
18-3. RAID-5 Organization
18-4. A Simple Vinum Volume
18-5. A Mirrored Vinum Volume
18-6. A Striped Vinum Volume
18-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
11-1. Creating a Swapfile on FreeBSD 4.X
11-2. Creating a Swapfile on FreeBSD 5.X
12-1. boot0 Screenshot
12-2. boot2 Screenshot
12-3. An Insecure Console in /etc/ttys
13-1. Configuring adduser and adding a user on FreeBSD 4.X
13-2. Adding a user on FreeBSD 5.X
13-3. rmuser Interactive Account Removal
13-4. Interactive chpass by Superuser
13-5. Interactive chpass by Normal User
13-6. Changing Your Password
13-7. Changing Another User's Password as the Superuser
13-8. Adding a Group Using pw(8)
13-9. Adding Somebody to a Group Using pw(8)
13-10. Using id(1) to Determine Group Membership
14-1. Using SSH to Create a Secure Tunnel for SMTP
16-1. Using dump over ssh
16-2. Using dump over ssh with RSH set
16-3. A Script for Creating a Bootable Floppy
16-4. Using vnconfig to Mount an Existing File System Image under FreeBSD 4.X
16-5. Creating a New File-Backed Disk with vnconfig
16-6. Using mdconfig to Mount an Existing File System Image under FreeBSD 5.X
16-7. Creating a New File-Backed Disk with mdconfig
16-8. Configure and Mount a File-Backed Disk with mdmfs
16-9. md Memory Disk under FreeBSD 4.X
16-10. Creating a New Memory-Based Disk with mdconfig
16-11. Creating a New Memory-Based Disk with mdmfs
21-1. Adding Terminal Entries to /etc/ttys
23-1. Configuring the sendmail Access Database
23-2. Mail Aliases
23-3. Example Virtual Domain Mail Map
24-1. Sending inetd a HangUP Signal
24-2. Mounting an Export with amd
26-1. Branch Office or Home Network
26-2. Head Office or Other LAN
A-1. Checking Out Something from -CURRENT (ls(1)) and Deleting It Again:
A-2. Using SSH to check out the src/ tree:
A-3. Checking Out the Version of ls(1) in the 3.X-STABLE Branch:
A-4. Creating a List of Changes (as Unified Diffs) to ls(1)
A-5. Finding Out What Other Module Names Can Be Used:

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

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