Apache
  Home arrow Apache arrow Page 9 - Secure Installation and Configuration
Dev Shed Forums  
Administration  
AJAX  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Smartphone Development  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Mobile Linux  
App Generation ROI  
IBM® developerWorks  
Forums Sitemap  
E-Commerce Hosting  
Linux Web Hosting  
Managed Hosting  
Small Business Hosting  
VPS Hosting  
Weekly Newsletter

 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid  
Request Media Kit
Contact Us  
Site Map  
Privacy Policy  
Support  
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
Google.com  
APACHE

Secure Installation and Configuration
By: Apress Publishing
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: starstarstarstarstar / 30
    2004-08-17


    Table of Contents:
  • Secure Installation and Configuration
  • Asymmetric Encryption and GnuPG
  • GnuPG and Apache Signatures
  • Checking and Installing Apache
  • Running Apache and Testing it with Nikto
  • Secure Configuration
  • File Permissions
  • Don’t Give Extra Information Away
  • Apache and SSL
  • Generate Certificates
  • Configuration

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      error-file:tidyout.log Del.ici.ous error-file:tidyout.log Digg
      error-file:tidyout.log Blink error-file:tidyout.log Simpy
      error-file:tidyout.log Google error-file:tidyout.log Spurl
      error-file:tidyout.log Y! MyWeb error-file:tidyout.log Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article

     
     
    ADVERTISEMENT


    Secure Installation and Configuration - Apache and SSL
    ( Page 9 of 11 )

    At the beginning of this chapter I introduced cryptography as a means of checking that the Apache package I downloaded was correct (digital signatures).

    SSL (Secure Sockets Layer) is a protocol used by a web browser (and therefore Apache) to establish an encrypted connection. It is common to see SSL on sites that accept confidential information from their client (for example, credit card numbers or personal details). In this section, I will explain how to compile Apache with mod_ssl, generate the relevant certificate, and have it signed.

    To understand SSL in general, you can (and should) read the documentation for mod_ssl at http://www.modssl.org/docs/2.8/. The second chapter, http://www.modssl.org/docs/2.8/ssl_intro.html, is an excellent article based on Frederick Hirsch’s paper “Introducing SSL and Certificates using SSLeay.” Remember that this documentation is valid for mod_ssl as a stand-alone third-party module, and therefore it may not be perfectly applicable to the mod_ssl bundled with Apache 2. x.

    Installation for Apache 1.3.x

    You will first need to download mod_ssl from http://www.modssl.org/, making sure that you select the right package for your version of Apache (in my case, mod_ssl-2.8.14-1.3.29.tar.gz for Apache 1.3.29).

    You should then read the INSTALL file, which comes with the package and details all the installation options. I would recommend following the instructions marked as “The flexible APACI-only way,” which show you how to install any third-party modules in Apache (as well as SSL).

    Here is the transcript of my installation, which should have exactly the same result as the one I showed at the beginning of the chapter (in this case, OpenSSL was already installed on the target system):

    [root@merc apache_source]# tar xvzf apache_1.3.29.tar.gz
    apache_1.3.29/
    apache_1.3.29/cgi-bin/
    apache_1.3.29/cgi-bin/printenv
    [...]
    apache_1.3.29/src/support/suexec.c
    apache_1.3.29/src/support/suexec.h
    apache_1.3.29/src/Configuration
    [root@merc apache_source]#
    [root@merc apache_source]# tar xvzf mod_ssl-2.8.14-1.3.29.tar.gz
    mod_ssl-2.8.14-1.3.29/ANNOUNCE
    mod_ssl-2.8.14-1.3.29/CHANGES
    mod_ssl-2.8.14-1.3.29/CREDITS
    mod_ssl-2.8.14-1.3.29/INSTALL
    [...]
    mod_ssl-2.8.14-1.3.29/pkg.sslsup/mkcert.sh
    mod_ssl-2.8.14-1.3.29/pkg.sslsup/sslsup.patch
    [root@merc apache_source]#
    [root@merc apache_source]# cd mod_ssl-2.8.14-1.3.29/
    [root@merc mod_ssl-2.8.14-1.3.29]# ./configure --with-apache=../apache_1.3.29
    Configuring mod_ssl/2.8.14 for Apache/1.3.29
    + Apache location: ../apache_1.3.29 (Version 1.3.29)
    [...]
    [root@merc mod_ssl-2.8.14-1.3.29]#
    cd ..
    [root@merc apache_source]#
    cd apache_1.3.29
    [root@merc apache_1.3.29]#
    SSL_BASE=/usr ./configure --enable-module=ssl
    --prefix=/usr/local/apache1 --enable-module=most --enable-shared=max

    [...]
    Creating Makefile in src/modules/extra
    Creating Makefile in src/modules/proxy
    Creating Makefile in src/modules/ssl
    [root@merc apache_1.3.29]#
    make
    ===> src
    make[1]: Entering directory `/root/apache_source/apache_1.3.29'
    make[2]: Entering directory `/root/apache_source/apache_1.3.29/src'
    ===> src/regex
    [...]
    +--------------------------------------------------------+
    make[1]: Leaving directory `/root/apache_source/apache_1.3.29'
    <=== src
    [root@merc apache_1.3.29]# make install
    make[1]: Entering directory `/root/apache_source/apache_1.3.29'
    ===> [mktree: Creating Apache installation tree]
    ./src/helpers/mkdir.sh /usr/local/apache1/bin
    mkdir /usr/local/apache1
    mkdir /usr/local/apache1/bin
    ./src/helpers/mkdir.sh /usr/local/apache1/bin
    ./src/helpers/mkdir.sh /usr/local/apache1/libexec
    [...]
    | Thanks for using Apache. The Apache Group |
    |                  
    http://www.apache.org/ |
    +--------------------------------------------------------+
    [root@merc apache_1.3.29]#

    Your Apache installation should now be ready to go.

    Installation for Apache 2.x

    mod_ssl is included in Apache 2. x; this makes its installation very simple. All you have to do is add two options to the ./configure script: --enable-ssl (to enable SSL) and -with-ssl=/openssl_directory (to specify OpenSSL’s base directory).

    Here is the installation transcript:

    [root@merc httpd-2.0.48]# ./configure --prefix=/usr/local
    /apache2 --enable-modsshared=most --enable-ssl --with
    -ssl=/usr
    checking for chosen layout... Apache
    checking for working mkdir -p... yes
    checking build system type... i686-pc-linux-gnu
    checking host system type... i686-pc-linux-gnu
    checking target system type... i686-pc-linux-gnu

    Configuring Apache Portable Runtime library ...

    checking for APR... reconfig
    [...]
    checking for SSL/TLS toolkit base... /usr
    checking for SSL/TLS toolkit version... OpenSSL 0.9.7a Feb 19 2003
    checking for SSL/TLS toolkit includes... /usr/include
    checking for SSL/TLS toolkit libraries... /usr/lib
      adding "-I/usr/include/openssl" to INCLUDES
      setting LIBS to "-lssl -lcrypto"
    checking for SSL_set_state... no
    checking for SSL_set_cert_store... no
    checking whether to enable mod_ssl... shared (most)
    [...]
    config.status: executing default commands
    [root@merc httpd-2.0.48]# make
    Making all in srclib
    make[1]: Entering directory `/root/apache_source/httpd-2.0.48/srclib'
    Making all in apr
    [...]
    make[2]: Leaving directory `/root/apache_source/httpd-2.0.48/support'
    make[1]: Leaving directory `/root/apache_source/httpd-2.0.48'
    [root@merc httpd-2.0.48]# make install
    make install[root@merc httpd-2.0.48]# make install
    Making install in srclib
    make[1]: Entering directory `/root/apache_source/httpd-2.0.48/srclib'
    Making install in apr
    make[2]: Entering directory `/root/apache_source/httpd-2.0.48/srclib/apr'
    Making all in strings
    Installing build system files
    make[1]: Leaving directory `/root/apache_source/httpd-2.0.48'
    [...]
    [root@merc httpd-2.0.48]#

    This chapter is from Hardening Apache, by Tony Mobily. (Apress, 2004, ISBN: 1590593782). Check it out at your favorite bookstore today. Buy this book now.



     
     
    >>> More Apache Articles          >>> More By Apress Publishing
     

       

    APACHE ARTICLES

    - Creating a VAMP (Vista, Apache, MySQL, PHP) ...
    - Putting Apache in Jail
    - Containing Intrusions in Apache
    - Server Limits for Apache Security
    - Setting Permissions in Apache
    - Installing Apache
    - Apache Installation and Configuration
    - Apache Tapestry and Custom Components: DateI...
    - Tapestry and AJAX: Autocompleter and InlineE...
    - PropertySelection and IPropertySelectionMode...
    - The DatePicker and Shell Components of Apach...
    - Apache Tapestry: ASO and More Components
    - Apache Tapestry and DirectLink, IoC and DI
    - Making a CelebrityCollector with Apache Tape...
    - Apache Tapestry and Listener Methods, Condit...





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 6 Hosted by Hostway
    For more Enterprise Application Development news, visit eWeek