dgaudet     97/12/13 16:49:20

  Modified:    htdocs/manual install.html
               htdocs/manual/misc security_tips.html
  Removed:     htdocs/manual install_1_1.html
  Log:
  We talk about a "proper installation" occasionally... and assume folks know
  how to set the perms on the serverroot.  But I don't think we document it
  anywhere.  Nowhere that's easily found direct from the "how to install"
  page.  Document it better, link to it.  Remove the install_1_1 docs.
  Update a 1.2 reference to 1.3.
  
  Revision  Changes    Path
  1.18      +4 -5      apachen/htdocs/manual/install.html
  
  Index: install.html
  ===================================================================
  RCS file: /export/home/cvs/apachen/htdocs/manual/install.html,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- install.html      1997/11/25 09:47:47     1.17
  +++ install.html      1997/12/14 00:49:18     1.18
  @@ -14,10 +14,7 @@
   >
   <!--#include virtual="header.html" -->
   
  -<H1 ALIGN="CENTER">Compiling and Installing Apache 1.2</H1>
  -
  -<P>If you wish to download and install an earlier version of Apache please
  -read <A HREF="install_1_1.html">Compiling and Installing Apache 1.1</A>.</P>
  +<H1 ALIGN="CENTER">Compiling and Installing Apache 1.3</H1>
   
   UnixWare users will want to consult <A HREF="unixware.html">build notes</A>
   for various UnixWare versions before compiling.
  @@ -128,7 +125,9 @@
   designed to be configured and run from the same set of directories
   where it is compiled. If you want to run it from somewhere else, make
   a directory and copy the <CODE>conf</CODE>, <CODE>logs</CODE> and
  -<CODE>icons</CODE> directories into it.  <P>
  +<CODE>icons</CODE> directories into it.  In either case you should
  +read the <a href="misc/security_tips.html#serverroot">security tips</a>
  +describing how to set the permissions on the server root directory.<P>
   
   The next step is to edit the configuration files for the server. This
   consists of setting up various <B>directives</B> in up to three
  
  
  
  1.11      +42 -10    apachen/htdocs/manual/misc/security_tips.html
  
  Index: security_tips.html
  ===================================================================
  RCS file: /export/home/cvs/apachen/htdocs/manual/misc/security_tips.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- security_tips.html        1997/07/06 17:19:07     1.10
  +++ security_tips.html        1997/12/14 00:49:19     1.11
  @@ -22,16 +22,48 @@
   
   <HR>
   
  -<H2>Permissions on Log File Directories</H2>
  -<P>When Apache starts, it opens the log files as the user who started the
  -server before switching to the user defined in the
  -<a href="../mod/core.html#user"><b>User</b></a> directive.  Anyone who
  -has write permission for the directory where any log files are
  -being written to can append pseudo-arbitrary data to any file on the
  -system which is writable by the user who starts Apache.  Since the
  -server is normally started by root, you should <EM>NOT</EM> give anyone
  -write permission to the directory where logs are stored unless you
  -want them to have root access.
  +<a name="serverroot">
  +<H2>Permissions on ServerRoot Directories</H2></a>
  +<P>In typical operation, Apache is started by the root
  +user, and it switches to the user defined by the <a
  +href="../mod/core.html#user"><b>User</b></a> directive to serve hits.
  +As is the case with any command that root executes, you must take care
  +that it is protected from modification by non-root users.  Not only
  +must the files themselves be writeable only by root, but so must the
  +directories, and parents of all directories.  For example, if you
  +choose to place ServerRoot in <code>/usr/local/apache</code> then it is
  +suggested that you create that directory as root, with commands
  +like these:
  +
  +<blockquote><pre>
  +    mkdir /usr/local/apache
  +    cd /usr/local/apache
  +    mkdir bin conf logs
  +    chown 0 . bin conf logs
  +    chgrp 0 . bin conf logs
  +    chmod 755 . bin conf logs
  +</pre></blockquote>
  +
  +It is assumed that /, /usr, and /usr/local are only modifiable by root.
  +When you install the httpd executable, you should ensure that it is
  +similarly protected:
  +
  +<blockquote><pre>
  +    cp httpd /usr/local/apache/bin
  +    chown 0 /usr/local/apache/bin/httpd
  +    chgrp 0 /usr/local/apache/bin/httpd
  +    chmod 511 /usr/local/apache/bin/httpd
  +</pre></blockquote>
  +
  +<p>You can create an htdocs subdirectory which is modifiable by other
  +users -- since root never executes any files out of there, and shouldn't
  +be creating files in there.
  +
  +<p>If you allow non-root users to modify any files that root either
  +executes or writes on then you open your system to root compromises.
  +For example, someone could replace the httpd binary so that the next
  +time you start it, it will execute some arbitrary code.  Or someone
  +could overwrite the logs with arbitrary data.
   <P>
   <HR>
   <H2>Server Side Includes</H2>
  
  
  

Reply via email to