4.1. Operating System
Prev | Chapter 4. Bugzilla Security | Next

## 4.1. Operating System

### 4.1.1. TCP/IP Ports

The TCP/IP standard defines more than 65,000 ports for sending and receiving traffic. Of those, Bugzilla needs exactly one to operate (different configurations and options may require up to 3). You should audit your server and make sure that you aren't listening on any ports you don't need to be. It's also highly recommended that the server Bugzilla resides on, along with any other machines you administer, be placed behind some kind of firewall.

### 4.1.2. System User Accounts

Many daemons, such as Apache's `httpd` or MySQL's `mysqld`, run as either “root” or “nobody”. This is even worse on Windows machines where the majority of services run as “SYSTEM”. While running as “root” or “SYSTEM” introduces obvious security concerns, the problems introduced by running everything as “nobody” may not be so obvious. Basically, if you run every daemon as “nobody” and one of them gets compromised it can compromise every other daemon running as “nobody” on your machine. For this reason, it is recommended that you create a user account for each daemon.

You will need to set the `webservergroup` option in `localconfig` to the group your web server runs as. This will allow `./checksetup.pl` to set file permissions on Unix systems so that nothing is world-writable.

### 4.1.3. The `chroot` Jail

If your system supports it, you may wish to consider running Bugzilla inside of a `chroot` jail. This option provides unprecedented security by restricting anything running inside the jail from accessing any information outside of it. If you wish to use this option, please consult the documentation that came with your system.

Prev | Up | Next
Chapter 4. Bugzilla Security | Home | 4.2. Web server