Aufbau und Zugriffsschutz des
CERN httpd 3.0

HTTP-Server


... [ Seminar WWW und JAVA ] ... [ Thema HTTP ] ...[ Server Aufbau ]... [ Server Sicherheit ] ...

Inhalt


Server Installation

  • cgi-bin/
Platz für Programme. Skripts die Dokumente erzeugen
  • config/
Platz für alternative Konfigurationsdateien
  • icons/
Platz für Icons z.B. für von http erzeugte Dir-Listings
  • logs/
Platz für Log-Dateien des Servers

  • cgiparse*
Hilfsprogramm für Shell-Skripts in cgi-bin/ zum Zerlegen von Formulareingaben
  • cgiutils*
dito, zum Erzeugen von HTTP-Headern
  • htadm*
Hilfsprogramm zum Pflegen von Paßwort-Dateien
  • htimage*
Programm zur Verarbeitung von Image-Map-Dateien
  • httpd*
Das Server Programm
  • http.conf
Die aktuelle Konfigurationsdatei
  • httpd-pid
Wird von httpd angelegt, um seine PID zu speichern


Server Konfiguration

Die Konfiguration des CERN httpd erfolgt weitgehend über die Konfigurationsdatei httpd.conf

z.B. General Settings:

ServerRoot /usr/local/www

HostName www.fh-wedel.de

ServerType StandAlone

Port 80

Siehe auch das Beispiellisting.


Starten des Servers

Normaler Start

Teststart

Start über inetd


Zugriffsschutz zu Dokumenten


Weitere Konfigurationsdateien

Rule File

Protection Setup File

Access Control List (ACL) file

Password File

Group File


Beispiellisting der http.conf

Dieses Listing ist die leicht verkürzte Ausgabe des zentralen WWW-Servers der HHU (Uni-Düsseldorf).

#
#       Configuration file for cern_httpd on hermes.rz.uni-duesseldorf.de
#
# IMPORTANT:
#       Default values are in {curly braces} values that you need to
#       provide are in <angle brackets>, but braces and brackets are
#       *NOT* part of the syntax!
#
# See:
#       http://www.w3.org/hypertext/WWW/Daemon/User/Config/Overview.html
#
# for more information.
#

#
# *** GENERAL SETTINGS/DIRECTIVES ***
#

ServerRoot                      /usr/local/www
HostName                        www.uni-duesseldorf.de
ServerType                      StandAlone
Port                            80
PidFile                         httpd-pid
UserId                          www
GroupId                         wwwadms

Protection PROXY-PROT {
        ServerId        Proxy.rz.uni-duesseldorf.de
        Mask            @(*.uni-duesseldorf.de, 134.99.*.*, *.fh-duesseldorf.de, 193.23.168.*, 193.23.169.*, 193.23.170.*, 193.23.171.*, 192.166.32.*)
}
Protect  *  PROXY-PROT

#
#       Pass the URLs that this proxy is willing to forward.
#
Pass    http:*
Pass    ftp:*
Pass    gopher:*

#       Default protection for own documents: public to anyone
#
Protection NO-PROT {
        ServerId        WWW.rz.uni-duesseldorf.de
        Mask            @(*, *.*.*.*)
}
Protect  /*  NO-PROT

Protection UNI-FH {
        ServerId        www.rz.uni-duesseldorf.de
        GetMask         @(*.uni-duesseldorf.de, 134.99.*.*, *.fh-duesseldorf.de, 193.23.168.*, 193.23.169.*, 193.23.170.*, 193.23.171.*)
}

Protection UNI {
        ServerId        www.rz.uni-duesseldorf.de
        GetMask         @(*.uni-duesseldorf.de, 134.99.*.*)
}

Protect /WWWAdmin/*     {
        UserId          cappel
        GroupId         wwwadms
        AuthType        Basic
        ServerId        www-admins.uni-duesseldorf.de
        PasswordFile    /usr/local/www/admin/wwwadmins.passwd
        GroupFile       /usr/local/www/admin/groups
        GetMask         wwwadmins@(*.uni-duesseldorf.de, 134.99.*.*)
}

Protect /WWW/UniFH/*    UNI-FH
Protect /WWW/Uni/*      UNI
Protect /WWW/ZCL/Uni/*  UNI

#
#Enable                         {GET HEAD POST}
#Disable                        {all others}
#IdentityCheck                  {Off}
#Welcome                        {Welcome.html welcome.html index.html}
#AlwaysWelcome                  Off
UserDir                         public_html
#MetaDir                        {.web}
#MetaSuffix                     {.meta}
#MaxContentLengthBuffer         {50 K}

#
# *** URL TRANSLATION RULES ***
#

#Redirect               /some_url/*             http://some_server/some_url/*
Exec                    /htbin/*                /usr/local/www/htbin/*
Exec                    /cgi-bin/*              /usr/local/www/cgi-bin/*
Exec                    /WWWAdmin/cgi-bin/*     /www/WWWAdmin/cgi-bin/*
Map                     /www/d/*                /WWW/D/*
Pass                    /icons/*                /usr/local/www/icons/*
Pass                    /ftp/*                  /ftp/*
Pass                    /*                      /www/*

#
# *** FILENAME SUFFIX DEFINITIONS ***
#

#AddType                <.suffix>       <representation>        <encoding>      [<quality>]
#AddEncoding            <.suffix>       <encoding>
#AddLanguage            <.suffix>       <encoding>
#SuffixCaseSense        {Off}

#
# *** ACCESSORY SCRIPTS ***
#

#Search                         <search_script_pathname>
#Post-Script                    <post_handler_pathname>
#Put-Script                     <put_handler_pathname>
#Delete-Script                  <delete_handler_pathname>

#
# *** DIRECTORY LISTINGS ***
#

DirAccess                       Selective
#DirReadme                      {Top}
#FTPDirInfo                     {Top}
#DirShowIcons                   {On}
#DirShowBrackets                {On}
#DirShowMinLength               {15}
#DirShowMaxLength               {25}
#DirShowDate                    {On}
#DirShowSIze                    {On}
#DirShowBytes                   {Off}
#DirShowHidden                  {Off}
#DirShowOwner                   {Off}
#DirShowGroup                   {Off}
#DirShowMode                    {Off}
#DirShowDescription             {On}
#DirShowHTMLTitles              {On}
#DirShowMaxDescrLength          {25}
#DirShowCase                    {Off}

#
# *** DIRECTORY ICONS ***
#

#AddIcon                <icon_url>      <alt_text>      <url_template>
#AddBlankIcon           <icon_url>      <alt_text>      <url_template>
#AddUnknownIcon         <icon_url>      <alt_text>      <url_template>
#AddDirIcon             <icon_url>      <alt_text>      <url_template>
#AddParentIcon          <icon_url>      <alt_text>      <url_template>

#
# *** LOGGING ***
# (relative to ServerRoot if doesn's start with slash)
#

AccessLog                       /var/log/http/http.log
#ProxyAccessLog                 /var/log/http/proxy.log
CacheAccessLog                  /var/log/http/http_cache.log
ErrorLog                        /var/log/http/http.error
LogFormat                       Common
#LogTime                        {LocalTime}
#NoLog                          <url_template>

#
# *** TIMEOUTS ***
#

#InputTimeOut                   {2 mins}
#OutputTimeOut                  {20 mins}
#ScriptTimeOut                  {5 mins}

#
# *** PROXY CACHING ***
#

#
#       Enable caching, specify cache root directory, and cache size
#       in megabytes
#
Caching         On
CacheRoot                       /wwwcache
CacheSize                       1900 M

#
#       Specify absolute maximum for caching time
#
CacheClean     2 months

#
#       Specify the maximum time to be unused
#
CacheUnused     http:*          2 weeks
CacheUnused     ftp:*           1 week
CacheUnused     gopher:*        1 week

#
#       Specify default expiry times for ftp and gopher;
#       NEVER specify it for HTTP, otherwise documents generated by
#       scripts get cached which is usually a bad thing.
#
CacheDefaultExpiry      ftp:*           10 days
CacheDefaultExpiry      gopher:*        2 days

NoCaching                       http://gopher.rz.uni-duesseldorf.de/*
NoCaching                       http://www.rz.uni-duesseldorf.de/*
NoCaching                       http://www.uni-duesseldorf.de/*
NoCaching                       http://ftp.uni-duesseldorf.de/*
NoCaching                       http://*.rz.uni-duesseldorf.de/*
#CacheOnly                      <url_template>
#CacheDefaultExpiry             <url_template>                  <time_period>
#CacheLastModifiedFactor        <factor>/<Off>
#KeepExpired                    {Off}
#CacheTimeMArgin                <time_period>
#CacheNoConnect                 {Off}
#CacheExpiryCheck               {On}
#Gc                             {fn(Caching)}
#GcDailyGc                      <time>/<Off>
#GcMemUsage                     {500}
#CacheLimit 1                   {200 K}
#CacheLimit 2                   {4000 K}
#CacheLockTimeOut               <fn(>OutputTimeOut)>

#
# *** HANDLING MULTIPLE PROXIES ***
#

#HTTP proxy                     <outer_proxy_server>
#FTP proxy                      <outer_proxy_server>
#Gopher proxy                   <outer_proxy_server>
#WAIS proxy                     <outer_proxy_server>
#no proxy                       <outer_proxy_server>




... [ Seminar WWW und JAVA ] ... [ Thema HTTP ] ...[ Server Aufbau ]... [ Server Sicherheit ] ...