<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Operating System</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="The Bugzilla Guide - 2.20.1 
    Release"
HREF="index.html"><LINK
REL="UP"
TITLE="Bugzilla Security"
HREF="security.html"><LINK
REL="PREVIOUS"
TITLE="Bugzilla Security"
HREF="security.html"><LINK
REL="NEXT"
TITLE="MySQL"
HREF="security-mysql.html"></HEAD
><BODY
CLASS="section"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide - 2.20.1 
    Release</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="security.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 4. Bugzilla Security</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="security-mysql.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="security-os"
>4.1. Operating System</A
></H1
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="security-os-ports"
>4.1.1. TCP/IP Ports</A
></H2
><P
>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.
      </P
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="security-os-accounts"
>4.1.2. System User Accounts</A
></H2
><P
>Many <A
HREF="glossary.html#gloss-daemon"
><I
CLASS="glossterm"
>daemons</I
></A
>, such
      as Apache's <TT
CLASS="filename"
>httpd</TT
> or MySQL's
      <TT
CLASS="filename"
>mysqld</TT
>, run as either <SPAN
CLASS="QUOTE"
>"root"</SPAN
> or
      <SPAN
CLASS="QUOTE"
>"nobody"</SPAN
>. This is even worse on Windows machines where the
      majority of <A
HREF="glossary.html#gloss-service"
><I
CLASS="glossterm"
>services</I
></A
>
      run as <SPAN
CLASS="QUOTE"
>"SYSTEM"</SPAN
>. While running as <SPAN
CLASS="QUOTE"
>"root"</SPAN
> or
      <SPAN
CLASS="QUOTE"
>"SYSTEM"</SPAN
> introduces obvious security concerns, the
      problems introduced by running everything as <SPAN
CLASS="QUOTE"
>"nobody"</SPAN
> may
      not be so obvious. Basically, if you run every daemon as
      <SPAN
CLASS="QUOTE"
>"nobody"</SPAN
> and one of them gets comprimised it can
      comprimise every other daemon running as <SPAN
CLASS="QUOTE"
>"nobody"</SPAN
> on your
      machine. For this reason, it is recommended that you create a user
      account for each daemon.
      </P
><DIV
CLASS="note"
><P
></P
><TABLE
CLASS="note"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>You will need to set the <VAR
CLASS="option"
>webservergroup</VAR
> option
        in <TT
CLASS="filename"
>localconfig</TT
> to the group your webserver runs
        as. This will allow <TT
CLASS="filename"
>./checksetup.pl</TT
> to set file
        permissions on Unix systems so that nothing is world-writable.
        </P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H2
CLASS="section"
><A
NAME="security-os-chroot"
>4.1.3. The <TT
CLASS="filename"
>chroot</TT
> Jail</A
></H2
><P
>&#13;        If your system supports it, you may wish to consider running
        Bugzilla inside of a <TT
CLASS="filename"
>chroot</TT
> 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.
      </P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="security.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="security-mysql.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Bugzilla Security</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="security.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>MySQL</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>