FreeBSD Handbook

The FreeBSD Documentation Project

Copyright ? 1995-2015 The FreeBSD Documentation Project

Last modified on by .

Abstract

Welcome to FreeBSD! This handbook covers the installation and day to day use of FreeBSD 8.4-RELEASE, FreeBSD 9.3-RELEASE, and FreeBSD 10.1-RELEASE. This manual is a work in progress and is the work of many individuals. As such, some sections may become dated and require updating. If you are interested in helping out 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 (previous versions of this handbook can be obtained from http://docs.FreeBSD.org/doc/). 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?9.*``X``* and Later 2.1. Synopsis 2.2. Minimum Hardware Requirements 2.3. Pre-Installation Tasks 2.4. Starting the Installation 2.5. Using bsdinstall 2.6. Allocating Disk Space 2.7. Committing to the Installation 2.8. Post-Installation 2.9. Troubleshooting 2.10. Using the Live CD 3. Installing FreeBSD?8.*``X``* 3.1. Synopsis 3.2. Hardware Requirements 3.3. Pre-installation Tasks 3.4. Starting the Installation 3.5. Introducing sysinstall(8) 3.6. Allocating Disk Space 3.7. Choosing What to Install 3.8. Choosing the Installation Media 3.9. Committing to the Installation 3.10. Post-installation 3.11. Troubleshooting 3.12. Advanced Installation Guide 3.13. Preparing Custom Installation Media 4. UNIX Basics 4.1. Synopsis 4.2. Virtual Consoles and Terminals 4.3. Users and Basic Account Management 4.4. Permissions 4.5. Directory Structure 4.6. Disk Organization 4.7. Mounting and Unmounting File Systems 4.8. Processes and Daemons 4.9. Shells 4.10. Text Editors 4.11. Devices and Device Nodes 4.12. Manual Pages 5. Installing Applications: Packages and Ports 5.1. Synopsis 5.2. Overview of Software Installation 5.3. Finding Software 5.4. Using pkg for Binary Package Management 5.5. Using the Ports Collection 5.6. Building Packages with Poudriere 5.7. Post-Installation Considerations 5.8. Dealing with Broken Ports 6. The X Window System 6.1. Synopsis 6.2. Terminology 6.3. Installing Xorg 6.4. Quick Start 6.5. Xorg Configuration 6.6. Using Fonts in Xorg 6.7. The X Display Manager 6.8. Desktop Environments 6.9. Installing Compiz Fusion 6.10. Troubleshooting II. Common Tasks 7. Desktop Applications 7.1. Synopsis 7.2. Browsers 7.3. Productivity 7.4. Document Viewers 7.5. Finance 8. Multimedia 8.1. Synopsis 8.2. Setting Up the Sound Card 8.3. MP3 Audio 8.4. Video Playback 8.5. TV Cards 8.6. MythTV 8.7. Image Scanners 9. Configuring the FreeBSD Kernel 9.1. Synopsis 9.2. Why Build a Custom Kernel? 9.3. Finding the System Hardware 9.4. The Configuration File 9.5. Building and Installing a Custom Kernel 9.6. If Something Goes Wrong 10. Printing 10.1. Quick Start 10.2. Printer Connections 10.3. Common Page Description Languages 10.4. Direct Printing 10.5. LPD (Line Printer Daemon) 10.6. Other Printing Systems 11. Linux? Binary Compatibility 11.1. Synopsis 11.2. Configuring Linux? Binary Compatibility 11.3. Advanced Topics III. System Administration 12. Configuration and Tuning 12.1. Synopsis 12.2. Starting Services 12.3. Configuring cron(8) 12.4. Managing Services in FreeBSD 12.5. Setting Up Network Interface Cards 12.6. Virtual Hosts 12.7. Configuring System Logging 12.8. Configuration Files 12.9. Tuning with sysctl(8) 12.10. Tuning Disks 12.11. Tuning Kernel Limits 12.12. Adding Swap Space 12.13. Power and Resource Management 13. The FreeBSD Booting Process 13.1. Synopsis 13.2. FreeBSD Boot Process 13.3. Configuring Boot Time Splash Screens 13.4. Device Hints 13.5. Shutdown Sequence 14. Security 14.1. Synopsis 14.2. Introduction 14.3. One-time Passwords 14.4. TCP Wrapper 14.5. Kerberos 14.6. OpenSSL 14.7. VPN over IPsec 14.8. OpenSSH 14.9. Access Control Lists 14.10. Monitoring Third Party Security Issues 14.11. FreeBSD Security Advisories 14.12. Process Accounting 14.13. Resource Limits 15. Jails 15.1. Synopsis 15.2. Terms Related to Jails 15.3. Creating and Controlling Jails 15.4. Fine Tuning and Administration 15.5. Updating Multiple Jails 15.6. Managing Jails with ezjail 16. Mandatory Access Control 16.1. Synopsis 16.2. Key Terms 16.3. Understanding MAC Labels 16.4. Planning the Security Configuration 16.5. Available MAC Policies 16.6. User Lock Down 16.7. Nagios in a MAC Jail 16.8. Troubleshooting the MAC Framework 17. Security Event Auditing 17.1. Synopsis 17.2. Key Terms 17.3. Audit Configuration 17.4. Working with Audit Trails 18. Storage 18.1. Synopsis 18.2. Adding Disks 18.3. Resizing and Growing Disks 18.4. USB Storage Devices 18.5. Creating and Using CD Media 18.6. Creating and Using DVD Media 18.7. Creating and Using Floppy Disks 18.8. Backup Basics 18.9. Memory Disks 18.10. File System Snapshots 18.11. Disk Quotas 18.12. Encrypting Disk Partitions 18.13. Encrypting Swap 18.14. Highly Available Storage (HAST) 19. GEOM: Modular Disk Transformation Framework 19.1. Synopsis 19.2. RAID0 - Striping 19.3. RAID1 - Mirroring 19.4. RAID3 - Byte-level Striping with Dedicated Parity 19.5. Software RAID Devices 19.6. GEOM Gate Network 19.7. Labeling Disk Devices 19.8. UFS Journaling Through GEOM 20. The Z File System (ZFS) 20.1. What Makes ZFS Different 20.2. Quick Start Guide 20.3. ``zpool` Administration <zfs-zpool.html>`__ 20.4. ``zfs` Administration <zfs-zfs.html>`__ 20.5. Delegated Administration 20.6. Advanced Topics 20.7. Additional Resources 20.8. ZFS Features and Terminology 21. Other File Systems 21.1. Synopsis 21.2. Linux? File Systems 22. Virtualization 22.1. Synopsis 22.2. FreeBSD as a Guest OS 22.3. FreeBSD as a Host with VirtualBox 22.4. FreeBSD as a Host with bhyve 23. Localization - i18n/L10n Usage and Setup 23.1. Synopsis 23.2. Using Localization 23.3. Finding i18n Applications 23.4. Locale Configuration for Specific Languages 24. Updating and Upgrading FreeBSD 24.1. Synopsis 24.2. FreeBSD Update 24.3. Updating the Documentation Set 24.4. Tracking a Development Branch 24.5. Synchronizing Source 24.6. Rebuilding World 24.7. Tracking for Multiple Machines 25. DTrace 25.1. Synopsis 25.2. Implementation Differences 25.3. Enabling DTrace Support 25.4. Using DTrace IV. Network Communication 26. Serial Communications 26.1. Synopsis 26.2. Serial Terminology and Hardware 26.3. Terminals 26.4. Dial-in Service 26.5. Dial-out Service 26.6. Setting Up the Serial Console 27. PPP 27.1. Synopsis 27.2. Configuring PPP 27.3. Troubleshooting PPP Connections 27.4. Using PPP over Ethernet (PPPoE) 27.5. Using PPP over ATM (PPPoA) 28. Electronic Mail 28.1. Synopsis 28.2. Mail Components 28.3. Sendmail Configuration Files 28.4. Changing the Mail Transfer Agent 28.5. Troubleshooting 28.6. Advanced Topics 28.7. Setting Up to Send Only 28.8. Using Mail with a Dialup Connection 28.9. SMTP Authentication 28.10. Mail User Agents 28.11. Using fetchmail 28.12. Using procmail 29. Network Servers 29.1. Synopsis 29.2. The inetd Super-Server 29.3. Network File System (NFS) 29.4. Network Information System (NIS) 29.5. Lightweight Directory Access Protocol (LDAP) 29.6. Dynamic Host Configuration Protocol (DHCP) 29.7. Domain Name System (DNS) 29.8. Apache HTTP Server 29.9. File Transfer Protocol (FTP) 29.10. File and Print Services for Microsoft??Windows? Clients (Samba) 29.11. Clock Synchronization with NTP 29.12. iSCSI Initiator and Target Configuration 30. Firewalls 30.1. Synopsis 30.2. Firewall Concepts 30.3. PF 30.4. IPFW 30.5. IPFILTER (IPF) 31. Advanced Networking 31.1. Synopsis 31.2. Gateways and Routes 31.3. Wireless Networking 31.4. USB Tethering 31.5. Bluetooth 31.6. Bridging 31.7. Link Aggregation and Failover 31.8. Diskless Operation with PXE 31.9. IPv6 31.10. Common Address Redundancy Protocol (CARP) V. Appendices A. Obtaining FreeBSD A.1. CD and DVD Sets A.2. FTP Sites A.3. Using CTM A.4. Using Subversion A.5. Using rsync B. Bibliography B.1. Books 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. Periodicals, Journals, and Magazines C. Resources on the Internet C.1. Websites C.2. Mailing Lists C.3. Usenet Newsgroups C.4. Official Mirrors D. OpenPGP Keys D.1. Officers FreeBSD Glossary Index

List of Figures

2.1. FreeBSD Boot Loader Menu 2.2. FreeBSD Boot Options Menu 2.3. Welcome Menu 2.4. Keymap Selection 2.5. Selecting Keyboard Menu 2.6. Enhanced Keymap Menu 2.7. Setting the Hostname 2.8. Selecting Components to Install 2.9. Installing from the Network 2.10. Choosing a Mirror 2.11. Partitioning Choices on FreeBSD 9.x 2.12. Partitioning Choices on FreeBSD 10.x and Higher 2.13. Selecting from Multiple Disks 2.14. Selecting Entire Disk or Partition 2.15. Review Created Partitions 2.16. Manually Create Partitions 2.17. Manually Create Partitions 2.18. Manually Create Partitions 2.19. ZFS Partitioning Menu 2.20. ZFS Pool Type 2.21. Disk Selection 2.22. Invalid Selection 2.23. Analysing a Disk 2.24. Disk Encryption Password 2.25. Last Chance 2.26. Final Confirmation 2.27. Fetching Distribution Files 2.28. Verifying Distribution Files 2.29. Extracting Distribution Files 2.30. Setting the ``root` Password <bsdinstall-post.html#bsdinstall-post-set-root-passwd>`__ 2.31. Choose a Network Interface 2.32. Scanning for Wireless Access Points 2.33. Choosing a Wireless Network 2.34. WPA2 Setup 2.35. Choose IPv4 Networking 2.36. Choose IPv4 DHCP Configuration 2.37. IPv4 Static Configuration 2.38. Choose IPv6 Networking 2.39. Choose IPv6 SLAAC Configuration 2.40. IPv6 Static Configuration 2.41. DNS Configuration 2.42. Select Local or UTC Clock 2.43. Select a Region 2.44. Select a Country 2.45. Select a Time Zone 2.46. Confirm Time Zone 2.47. Selecting Additional Services to Enable 2.48. Enabling Crash Dumps 2.49. Add User Accounts 2.50. Enter User Information 2.51. Exit User and Group Management 2.52. Final Configuration 2.53. Manual Configuration 2.54. Complete the Installation 3.1. FreeBSD Boot Loader Menu 3.2. Typical Device Probe Results 3.3. Selecting Country Menu 3.4. Selecting Keyboard Menu 3.5. Selecting Usage from Sysinstall Main Menu 3.6. Selecting Documentation Menu 3.7. Sysinstall Documentation Menu 3.8. Sysinstall Main Menu 3.9. Sysinstall Keymap Menu 3.10. Sysinstall Main Menu 3.11. Sysinstall Options 3.12. Begin Standard Installation 3.13. Select Drive for FDisk 3.14. Typical Default FDisk Partitions 3.15. Fdisk Partition Using Entire Disk 3.16. Sysinstall Boot Manager Menu 3.17. Exit Select Drive 3.18. Sysinstall Disklabel Editor 3.19. Sysinstall Disklabel Editor with Auto Defaults 3.20. Free Space for Root Partition 3.21. Edit Root Partition Size 3.22. Choose the Root Partition Type 3.23. Choose the Root Mount Point 3.24. Sysinstall Disklabel Editor 3.25. Choose Distributions 3.26. Confirm Distributions 3.27. Choose Installation Media 3.28. Selecting an Ethernet Device 3.29. Set Network Configuration for *``ed0``* 3.30. Editing ``inetd.conf` <install-post.html#inetd-edit>`__ 3.31. Default Anonymous FTP Configuration 3.32. Edit the FTP Welcome Message 3.33. Editing ``exports` <install-post.html#nfs-server-edit>`__ 3.34. System Console Configuration Options 3.35. Screen Saver Options 3.36. Screen Saver Timeout 3.37. System Console Configuration Exit 3.38. Select the Region 3.39. Select the Country 3.40. Select the Time Zone 3.41. Select Mouse Protocol Type 3.42. Set Mouse Protocol 3.43. Configure Mouse Port 3.44. Setting the Mouse Port 3.45. Enable the Mouse Daemon 3.46. Test the Mouse Daemon 3.47. Select Package Category 3.48. Select Packages 3.49. Install Packages 3.50. Confirm Package Installation 3.51. Select User 3.52. Add User Information 3.53. Exit User and Group Management 3.54. Exit Install 3.55. Network Configuration Upper-level 3.56. Select a Default MTA 3.57. Ntpdate Configuration 3.58. Network Configuration Lower-level 31.1. PXE Booting Process with NFS Root Mount

List of Examples

2.1. Creating Traditional Split File System Partitions 3.1. Using an Existing Partition Unchanged 3.2. Shrinking an Existing Partition 4.1. Install a Program As the Superuser 4.2. Adding a User on FreeBSD 4.3. `rmuser Interactive Account Removal <users-synopsis.html#idp69980496>`__ 4.4. Using ``chpass` as Superuser <users-synopsis.html#users-modifying-chpass-su>`__ 4.5. Using ``chpass` as Regular User <users-synopsis.html#users-modifying-chpass-ru>`__ 4.6. Changing Your Password 4.7. Changing Another User’s Password as the Superuser 4.8. Adding a Group Using pw(8) 4.9. Adding User Accounts to a New Group Using pw(8) 4.10. Adding a New Member to a Group Using pw(8) 4.11. Using id(1) to Determine Group Membership 4.12. Sample Disk, Slice, and Partition Names 4.13. Conceptual Model of a Disk 12.1. Sample Log Server Configuration 12.2. Creating a Swap File on FreeBSD?10.*``X``* and Later 12.3. Creating a Swap File on FreeBSD?9.*``X``* and Earlier 13.1. `boot0 Screenshot <boot-introduction.html#boot-boot0-example>`__ 13.2. `boot2 Screenshot <boot-introduction.html#boot-boot2-example>`__ 13.3. Configuring an Insecure Console in `/etc/ttys`` <boot-introduction.html#boot-insecure-console>`__ 14.1. Create a Secure Tunnel for SMTP 14.2. Secure Access of a POP3 Server 14.3. Bypassing a Firewall 15.1. mergemaster(8) on Untrusted Jail 15.2. mergemaster(8) on Trusted Jail 15.3. Running BIND in a Jail 18.1. Using ``dump` over ssh <backup-basics.html#idp78713552>`__ 18.2. Using ``dump` over ssh with RSH Set <backup-basics.html#idp78717008>`__ 18.3. Backing Up the Current Directory with ``tar` <backup-basics.html#idp78729808>`__ 18.4. Restoring Up the Current Directory with ``tar` <backup-basics.html#idp78732880>`__ 18.5. Using``ls` and cpio to Make a Recursive Backup of the Current Directory <backup-basics.html#idp78741456>`__ 18.6. Backing Up the Current Directory with ``pax` <backup-basics.html#idp78764752>`__ 19.1. Labeling Partitions on the Boot Disk 26.1. Configuring Terminal Entries 29.1. Reloading the inetd Configuration File 29.2. Mounting an Export with amd 29.3. Mounting an Export with autofs(5) 29.4. Sample `/etc/ntp.conf`` <network-ntp.html#idp86287312>`__ 31.1. LACP Aggregation with a Cisco? Switch 31.2. Failover Mode 31.3. Failover Mode Between Ethernet and Wireless Interfaces

All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.